这几天看了一部分《构建之法》这本书,突然发现有些例子王老师在课上已经给我们用过了,比如说第一章开头的四则运算那个例子,一开始只是让我们在eclipse的控制台输出式子进行运算,后来改成文件,再后来改成网页。在这个过程中,一个小程序,慢慢变成了某种意义上的软件(最终成果太差,还算不上软件)。我认为这就是第一章里提到的“软件=程序+软件工程”。
在我看来,软件就是一个可以满足用户需求的程序。这个程序肯定不是完美的,因为用户的需求永远在变动,只要有一点不能让用户满足,那它就称不上完美。所以我们只需要满足大部分用户的需求就足够了。
第二章讲了一些测试,比如单元测试、回归测试、效能分析等。我觉得这一部分很重要,单元测试可以帮助我们更好的规划程序,能让设计更加完善;回归测试这一部分说的很少,主要是说使用相同测试案例测试程序,结果新版本出现了老版本不会出现的bug,这就是一种“退步”;效能分析工具这一部分没怎么看懂,因为我还没用过这个工具,但是大体意思明白了,主要是能帮助我们优化当前算法。
第三章名为“软件工程师的成长”,这一章讲了一些程序员个人的做法,也是邹欣老师对我们这些小白的指导。
软件工程包括了开发、运用、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。
初级软件工程师应当在以下几个方面努力:
- 积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。
- 积累问题领域的知识和经验(例如对医疗或金融行业的了解)。
- 对通用的软件设计思想和软件工程思想的理解
- 提升职业技能(区别于技术技能)。
- 实际成果
在这一章,邹欣老师举了几个例子,比如微软公司的软件工程师职业要求、玩魔方的经历等,这些让我知道了,要想成为好的程序员,首先要打好基础,然后能熟练应用这些能力,最高层次就是创新,不局限于当前已有的知识。