【软件工程】第一次阅读作业
这个作业属于哪个课程 |
|
这个作业要求在哪里 |
|
我在这个课程的目标是 |
了解专业知识,学习软件开发方法 |
这个作业在哪个具体方面帮助我实现目标 |
自我评价,了解前人经历,总结经验 |
一.建立博客并介绍自己
我来自软件工程3班,属于慢热型;喜欢玩魔方,听音乐;情绪经常写在脸上,不善言辞。
我的博客地址: https://home.cnblogs.com/u/3451ymx/
二.阅读与思考
(1)回想一下你初入大学时对软件工程专业的畅想
- 当初你是如何做出选择软件工程专业的决定的?
当时填志愿时间紧张,来不及深思熟虑就选了软件工程这个专业
- 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
- 还算符合吧。学了C语言、C#,数据结构与算法等基础课程,为日后的核心课程、实践打下基础
- 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
不喜欢也不讨厌,不擅长
- 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
不一定。目前学的东西不多,基础不是很好,对计算机行业也不是很感兴趣,还没想好
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
目前我具备的专业知识、技能、能力只能说是入门,要达到大佬级别,还有很长很长的路要走;写过的代码也不多
- 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
目前,可能连一个码农都称不上,对于软件开发也仅仅知识了解点点理论知识,各方面的综合能力,如合作能力、沟通能力、管理能力都有所欠缺
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
考研
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优势:首先,当前大学生越来越多,含金量也不是那么高,而且有的企业要求就会高些,所以研究生会在学历上胜过一筹;其次,也存在很多本科毕业就工作的,最终还是走上了考研之路;再次,对于我个人而言,还没想好是否要从事本专业工作,也许会跨考。
劣势:本科毕业就工作的一般都比考研的实战经验丰富、人脉广。
- 针对你的选择,你给自己的大三设定的规划安排是什么?
既然目前还没想好,就先学好当前的课程,尤其是专业课程。
三.提有质量的问题
问题一:
代码复审 4.4
文中提到代码复审有三种形式:自我复审、同伴复审和团队复审。
我的疑问:最好是有经验、熟悉代码的人来复审,而代码作者一定是最熟悉自己代码的,但他自己复审,会有思维的局限性;如果同伴复审,就不存在思维的局限性,那么是选择一个同伴复审,还是两个同伴复,甚至更多呢?如果是团队复审,最大的局限是效率不高。那么三种方式该如何抉择?
问题二:
结对编程 4.52
书中举有例子:越野赛车和驾驶飞机,两者共同特点是在高速度中完成任务,任务有较高的技术要求,任务失败的代价很高。
我的疑问是,开发程序时,什么样的情况是类似于文中举的例子,需要进行结对编程?是否有公司实行过结对编程?效果如何?对于合作的两人,是两人水平相当,还是一高一低?有什么特别的具体的要求吗?合作两人的适应期一般是多长时间呢?
问题三:
与顾客合作 7.2.9
文中提到MSF强调产品团队与顾客的交流合作,因为“我觉得”和“用户觉得”是两码事。
我的疑问:那么遇到那种类型的问题需要与顾客交流?大概多久进行一次呢?若是交流时遇到“对牛弹琴”的情况该如何处理、如何交流?
问题四:
目标、估计和决心 8.6.1
文中提到如果我们混淆了目标估计和决心,那就会犯错。其中软件时间的估计是多个估计值的乘除法(估计的需求、估计的复杂度等等)。
我的疑问:那么,究竟每一项估计该怎么估计才比较准确呢?
问题五:
PM做开发测试外的所有事情 9.3
文中提到微软公司有好几类PM,以及一名优秀的PM应有的能力。
我的疑问:无论是哪一类PM,是都必须要拥有文中所列举的那些能力吗?还是说负责内容不同,有不一样的要求?
四.了解和调查源程序版本管理工具
-
优点:
-
公共服务器压力和数据量都不会太大。
-
速度快、灵活。
-
任意两个开发者之间可以很容易的解决冲突。
-
离线工作。
-
缺点:
-
资料少(起码中文资料很少)。
-
学习周期相对而言比较长。
-
不符合常规思维。
-
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
mercurial优缺点【2】:
- 优点:
- 命令行简单,容易上手。
- 简洁优雅。
- 服务器部署相对容易。
- 缺点:
- 改写历史麻烦,易导致版本库混乱,也易出错导致丢失历史。
- 没有命名空间,易导致自己与别人的代码混成一团。
- 每种分支方式都有许多缺点及不便之处。
Bugzilla优缺点【3】:
- 优点:
- 定制功能较强,能满足用户的差异化需求
- 安装较简单。
- 缺点:
- 界面不友好。
- 语言单一。
- 更新慢。
【1】博客园
【2】【3】知乎