寒假在家按主任要求读了邹欣老师的《构建之法》一本书,对于软件工程又有了新的认识
寒假在家也经常被亲戚朋友问:“你学的什么专业啊?”“软件工程是不是都会写软件,你会写一个什么什么的软件啊?”这种话,每遇到这种问题也只好笑笑而过,在这个问题当中就隐藏着两个个普通人对软件工程的误区,软件中团体与个人之间的关系、软件与程序之间的区别。从构建之法目录来看,只有第2章和第3章是在讲个人的一些发展和成长的一些方面,其余的章节都在讲两人以上团队当中我们应该做什么或者说怎样以个人软件工程师的身份为团队去做出贡献,对于这个问题当中有两个变量:一个是个人,一个是团队。千人千面,软件工程师也是如此,每个人的学习经历,开发技巧编程经验乃至于性格都不一样,你有你的代码风格,我有我的编程规范,那么对于多人同时开发一个软件来说,每个人可能负责不同的功能部分,如果没有统一的规范,最后组成的程序就好像一个房间同时结合了中式风格,田园风格,美式风格和北欧风格,那么想必然没有人愿意入住这样的一个房间。对于程序来说更是如此,一个程序除了开发之外最多的是维护,如果代码歪七扭八,团队之间毫无配合,那么程序开发必然是一件难事,但如果恰好相反每个人遵守着相同的代码规范,团队之间相互理解配合,那么无论是在开发时的调试阶段和运营时的维护阶段,都会使相应的调试时间成本大大减少。所以说如果一个人编程水平高超,掌握所有算法,但是不会团队协作,想必不能称之为软件工程师,相对于这样的一个人在工作时,团队可能更愿意录用一个愿意合作的编程小白。
第二点就是程序与软件之间的区别,这个问题在我学习一些编程语言做题的时候深有体会,在学习阶段留的一些故意***难的题,在当时我觉得哦,这样的题写出来怎么可能称之为软件。在书中对软件给出了定义:软件=程序+软件工程,那么软件工程就显得尤为重要。软件工程是什么?书中指出:
软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。
软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。
软件工程和下列的学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管
理、软件人体工学、系统工程、工业设计和用户体验设计。
所以软件工程也并不是简单的软件的开发,更多的是从软件的需求分析设计阶段再到整个软件的生命周期还有对用户的反应去不断改进这样的一个长期化的一个过程。在第7章实战中的软件工程当中介绍了微软解决方案框架(Microsoft Solution Framework,MSF),这套框架的9条基本原则我觉得对软件工程来说是一个非常值得去学习的解决方案,具体条目不再细说,里面的各项条目充分考虑了软件工程的团队合作或是软件运营的方方面面。至于后续一些章节还有对IT行业和软件企业的一些思考,对于我一个还处于学习阶段的学生来说,可能并没有太多实感,但是对于我所想的未来来说,还是希望软件工程师能够更加有活力一点,能够脱离那种古板码字程序员的标签。
在后续的学习中,除了要精进自己的理论技术之外,还希望自己能够多多尝试多多编程,最后能够小有所成吧
原则8 自身
软件工程师应当终生学习以提高自身的专业水平,并在工作实践中推动落实道德准则。