最近阅读了邹欣老师写的《构建之法》这本书,看了前几节之后,我发现王老师现在的教学方法就是按照书中所讲,在做中学,感觉这样学习确实很有效果,少了很多的枯燥乏味的串讲,上课也比较有趣味性。
开篇第一章概论,第一节中用程序员所熟知的:程序=数据结构+算法的名言,来引出程序员安身立命的程序。用程序员阿超给儿子设计出题程序,之后又根据学校的不同需求,将项目不断扩大,进而从一个简单程序,到应用软件,最后到软件服务。最后得到一个推论:软件=程序+软件工程,一个扩展推论:软件企业+软件+商业模式。得到结论:程序(算法,数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了一个软件企业的成败。软件从业人员和软件企业的道德操守会极大地影响软件用户的利益。接着通过类比玩具阶段、业余爱好阶段、探索阶段、成熟的产业阶段的几个小故事,告诉我们软件的开发也是从简单到复杂的,并列出了在每一个阶段成功或者失败的影响。
单元测试、回归测试、效能分析,软件的测试是衡量软件是否合格的标准,作者提出,单元测试应该在最基本的功能/参数上验证程序的正确性,必须由最熟悉代码的人来写,单元测试过后机器状态保持不变,单元测试要快,产生可重复、一致的结果,独立性,覆盖所有代码路径。
第三章作者讲述了团队对个人的期望。
(1)有效的和其他队员交流
(2)说到做到,按时交付
(3)接受团队赋予的角色并按角色要求工作
(4)全力投入团队的活动
(5)按照团队流程的要求工作
(6)做好准备工作
(7)理性的工作
很多人认为自己需要灵感和激情,才能为宏大的目标奋斗,才能成为专业人士,著名的艺术家Chuck Close说:我总觉得灵感是属于业余爱好者的。我们职业人士只是每天持续工作。今天你继续昨天的工作,明天你继续今天的工作,最终你会有所成就。
作者又提出了软件工程师思维的几个误区:
(1)分析麻痹
(2)不分主次,想解决所有依赖问题
(3)过早优化
(4)过早扩大化/泛化(Premature Generalization)(画扇画,调侃目标和远景)
通过对这一部分的阅读,我发现上面的问题在我平时的学习中也存在,正如果冻维修木桶一样,分析太多,出现麻痹,而迟迟不敢动手,导致在大的项目面前很难取得成效,另一种像小飞一样,为了解决一些无关的问题,而偏离了自己的方向,进而倒是项目难以进展。
今后的代码学习中,我要合理的分析问题,不能像之前一样,过于畏惧大的项目,导致无从下手,也不能为了整个大项目的冰山一角,而拖慢了整体的进度,要合理的进行规划,不能使自己陷入思想误区。