《构建之法》——第一次阅读作业

第一次阅读作业

这个作业属于哪个课程          此课程的链接                 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713                     
这个作业要求在哪里             作业要求的链接
我在这个课程的目标是  学习相关理论知识;提高个人技术能力;学会团队合作开发;顺利完成课程,争取拿到好成绩。
这个作业在哪个具体方面帮助我实现目标  阅读,大概了解课程知识。

 

1.建立博客并介绍自己 

我的博客地址:https://www.cnblogs.com/lazy-bear/

自我介绍:我是来自软件工程卓越班的一名学生,性格比较腼腆,不太善于与人交流。我是一个喜欢听歌的人,但是唱歌永远不在调子上的跑调王。每次让介绍自己的优点长处时,我心里就开始犯嘀咕,你,特长、优点有吗?吹拉弹唱,哇,样样不会。不过我觉得我自己的记忆力还是不错的,但是不在学习上,具体表现为我可以记住很多人的面孔以及名字,哪怕只是听别人讲过一次的名字,但是当让我去背书时总是上一秒记住下一秒就忘记了。同时呢,我也是一个耐心不错的人,忍得住寂寞,不怕孤独——所以我以前的老师说我适合学习,但是现在看来,并非如此。

2.阅读与思考

1)回想一下你初入大学时对你所在专业的畅想

  • 当初你是如何做出选择你所在专业的决定的?

当初填报志愿时,因为自己没有特别喜欢的专业,不清楚自己的喜好,所以在完全不了解的情况下选择了软件工程这个专业,没想到居然被录取了。那既然被录取了,就来吧。

  • 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?

目前我们已经学过了C语言程序设计、数据结构、设计模式、计算机系统基础、程序设计范式等课程,感觉课程还挺多的,但是我觉得学习得不是特别系统,有很多东西只是讲解了相关理论知识,在实践上还有所欠缺。还有就是居然还有物理课,这对我这个物理渣渣来说,简直是太吓人了,还好讲的都比较基础,不过到现在我也没有明白为什么要学习物理,还有物理操作实验。

  • 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?

实话实说,这个专业不是我喜欢的领域,但是具体要问我喜欢什么,我也说不出个一二(可能自己比较倾向于相对稳定的,我感觉自己是一个不太喜欢做出太大改变的人)。当然,这也不是我擅长的领域,虽然已经学习了两年的时间,但是我的实际动手能力仍然很差,虽然学习的时候也比较认真,但更适合考试。

  • 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

这是一个值得人深思的问题,到现在我都还在思考这个问题。一方面,我还是希望自己能够从事与专业相关的工作,毕竟自己大学学得就是相关的知识,如果我不用,那不就意味着我的大学时光白白浪费了;另一方面,我又觉得自己不适合从事相关的工作,首先自己学得知识很少,能不能找到工作都是一个未知数,其次自己没有太大的热情,最多就是三分钟热度。

(2)对照前人们走过的路和描述未来发展,现在的你

  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。

自己具备的专业知识很少,就所学的那些课程,而且学得也不精,以及自己学过的一点html,css,JavaScript。写过的代码不多,可以说很少。参加的复杂的项目,应该就是暑假补课的时候,做的一个在线购买影票的项目,而我主要负责的就是首页界面以及一些相关文档。

  • 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?

在我看来一名合格的本科毕业生,应当具备一套相对完备的知识体系和专业技能——能够独挡一面,自己养活自己。在专业知识上欠缺很大,以前学习的课程也是当时学一下,后面没有花太多心思,导致很多都忘记了。还有一些核心课程,例如操作系统、编译原理、数据库、计算机组成原理等都没有学习过。

(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

  • 对照以上你阅读的前人们的经历,你的选择是什么?

就目前的情况来看,选择考研的可能性更大。当然也不排除直接转行的可能性,通过阅读大家的博客我发现大家都有浓厚的兴趣,并为之努力奋斗,于我而言,还没发现自己有多浓厚的兴趣。但是呢,我又没发现自己的兴趣之所在(唉,真是...),那就努力做好当前的事情吧,不要让自己后悔。

  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

优势的话,就是自己可以有更多的时间继续学习,弥补自己的不足之处;劣势呢,缺乏一定的工作经验,得不到实在的锻炼。

  • 针对你的选择,你给自己的大三设定的规划安排是什么?

第一要务还是认真完成所选的课程知识,然后抽时间多学一些技术知识,增强自己的能力。后面就要着手准备考研的事情了。其实呢,我也挺想逼自己一把,看看自己是否真的可以学好专业相关知识,提高自己的能力。

  • 你对于实现自己的梦想已经做了或者计划做什么样的准备?

努力把当前的事情做好。对自己的时间做一定的规划安排,比如列一张任务清单——今天要完成的事情,每完成一件就标记一下,这会给我自己带来一定的激励效果,促进我的积极性。

3.提有质量的问题

1)在1.2.2 软件工程与计算机科学的关系 这一节中,作者向我们展示了计算机科学和软件工程的不同侧重点,以我的理解就是理论与实践的区别。最后作者说让我们不要纠结“科学”和“工程”的问题,但是我还是忍不住去想这二者间的关系:实践才能让我们锻炼技术,有了技术别人才会认可你;但是我们在学校学的有很多理论知识,对于实实在在的技术可能没有多大帮助,而且时间久了之后还很容易忘记。但是都说理论要与实际相结合,但是具体应该怎么做呢,三七分还是五五分呢?——《1.2.2 软件工程与计算机科学的关系》

(2)我们需要考取相关从业资格证吗?书上提到考级有这样的好处:国家认证,有一定的权威性和通用性;任何人都可以参与。那也就意味着考级之后我们的优势更明显机会更多了,那么我们就应该去考取相关证书了,为自己博得更多的机会。但是书上同时也说到,这种考级内容相对滞后于工业界的发展,部分内容相当滞后,那么问题来了,既然考题相对落后,我们还有必要去花费一定的时间和精力去考级吗?——《3.3.1 职业发展—考级之路》

(3)我看了这一段文字“程序员写完功能的时候,我们感觉到好像项目完成了80%,殊不知后面的20%往往要花费80%的时间,敏捷流程没有明确表明到底何人何时以何种优先级来完成这20%的任务”,我有这样一个问题,如果不提前计划安排好人员来完成那20%的任务,后面的工作会不会更加难以完成,本来那20%的任务就需要80%的时间来完成,在时间投入上已经够大了,再加上没有明确表明何人何时以何种优先级来完成那些任务,会让后期的任务愈加复杂,说不定会花去更多的时间和精力,那岂不是有悖于“敏捷”?——《6.2 敏捷流程的问题和解决》

(4)“探索式”的测试,就是为了某一个特定目的而进行的测试,且就这一次,以后一般也不会重复测试。看到这句话的时候,我不禁想到这样做的可靠性如何,假如测试之后发现没有问题,那也就不会重复测试了,但是其他相关因素改变了怎么呢,例如坏境不同。对于软件产品而言,我们要保证其可靠性,那这样做的话,可靠性能得到相对保证吗?——《13.2.4 “探索式”的测试》

(5)在敏捷流程的第三步——冲刺,提到"冲刺阶段是时间驱动的,时间一到就结束",如果冲刺阶段的任务没有完成或是有些棘手的问题没有解决,也要强制终止吗?——《6.1 敏捷的流程简介》

4.了解和调查源程序版本管理工具

上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点? (提示:搜索一下GitGitHubMicrosoft TFSBitbucketMercurialTracBugzillaRationalApple XCode

名称               优点               缺点
Git
适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
GitHub

1.完整的支持Markdown语言,而且支持Emoji表情 

2.支持直接复制图片到页面,会自动上传图片(非常好的功能,知乎也支持)

3.比较好的支持Mobile。虽然github没有手机客户端,但是一般开发者,写好的blog都会通过微博进行分享,所以点击过来之后,就可以在手机浏览器里面访问。

4.使用github原生的功能,就可以进行类似评论的功能

5.支持@用户功能

6.支持标签,当然是你repository里面

7.强调个人,符合hacker更看重名誉/成就感的天性

8.功能设计简洁实用上手很快,可用性好,已有很多相当质量的各类项目和优秀开发者在上面。 

(对个人而言)

    1.GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。

    2.国内访问速度太慢,经常出现connect time-out

    3.不能很好的解决GB2312/GBK,对中文不够友好

    4.wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点

(对企业而言)

   5.免费套餐不支持私有项目,无非解决企业内部的需求,github:fi价格过高(最便宜要$5,000/年)

   6.基于git,学习曲线陡峭,企业大规模用git根本不现实。尤其国内大家都刚学会svn

   7.github有时可能被墙,或者不稳定

   8.没有集成社交分享功能。比如后面可以分享到微博,微信朋友圈等

Microsoft TFS

是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持。任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用。

能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。

 

 

posted @ 2019-09-10 21:55  爱睡觉的熊  阅读(206)  评论(2编辑  收藏  举报