第三章 软件工程师的成长
第一章提到:软件工程包括了开发,运营,维护软件的过程中的很多技术,做法,习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的时为了提高这些软件开发,运营,维护的效率,以及提升用户满意度,软件的可靠性和可维护性。
软件系统的绝大部分模块是由个人开发或维护的 。在软件工程的术语中,把这些单个的成员叫做Individual Contributor(IC)。每个人的工作质量直接影响最终软件的质量。那么,软件工程师如何衡量自己的能力?初级软件工程师可以有以下几个方面的成长。
1.积累软件开发相关的知识,提升技术技能。
2.积累问题领域知识和经验。
3.通用的软件设计思想和软件工程思想的理解。
4.提升职业技能(包括自我管理能力,表达和交流的能力,与人合作的能力,按质按量完成任务的执行力)。
5.实际成果。
软件开发的工作量和质量衡量的标准有:
1.项目/任务的大小。 2. 花了多少时间。 3.质量如何。 4.是否按时交付。
软件项目的确需要创造性,但更多的是常规的,可重复的任务。有某个人他说过,软件领域可以分为两个方面:一方面是技艺创新的大爆发。另一方面是坚持不懈的工程工作,包括软件的改善,维护和测试。
著名艺术家Chuck Close说过:我总觉得灵感是属于业余爱好者的,我们职业人士只是每天持续工作,今天你继续昨天的工作,明天你继续今天的工作,最终你会有所成就。
思维误区:1.分析麻痹(想弄清楚所有细节,所有依赖关系之后再动手,不想修复问题)。2.不分主次,想解决所有问题。 3.过早优化。 4.过早扩大化/泛化。
职业发展:对待职业的态度:1.临时的寄托或工作(低动力,低技能)。 2.工作。 3.职业。 4.投身的事业。 5 .理想的呼唤。
怎么提高技能呢?通过不断的练习,把低层次的问题都解决了,变成不用经过大脑的自动操作,然后再有时间和脑力来解决较高层次的问题。
我过去就是想分析完全部的细节然后一次完成所有的编码,而且想要把问题一次解决,一劳永逸。现在发现犯了思维误区中全部的错误。
以后我会从小规模的问题,简单的设计开始,记录下每一次的bug和改进,成为一名合格的软件工程师。