构建之法读后感
书中让我最茅塞顿开的地方是第二章的个人技术和流程以及软件工程师的成长,改变了我长期以来对我这个专业发展方向的很多困惑和误解,我一直觉得我作为一个程序员只要学如何写代码,顶多把数据结构和算法掌握清楚、操作系统和计算机网络的知识学习扎实,会写前端会折腾数据库就可以了,其他的能不了解就不用了解。我对于职业规划还一直还停留在学好算法计算机基础就可以进大公司的非常低级的想法层面上,读了这本书之后我才明白自己其实离一个优秀的程序员还差得很远,虽然我一直在努力为实现进入大公司成为优秀的软件工程师这一目标而努力,但是其实努力得还远远不够,而且光局限自己把代码写好是远远不够的,团队协作、小组敏捷开发、迭代会议、单元测试和代码复审这些部分都是我之前完全不了解的,而在我读完以后更有针对性和方法来实现自己的目标,开始关注踏实的学习和提升自己,并更加注意和身边的同学合作写代码并和自己身边的同学一起互相学习,这也提示我这样的初级软件工程师要如何让自己成长起来。
另外,我们这学期除了学习软件工程的理论外也在做一个团队项目,而我正是我们整个项目的Program Manager。这本书中所介绍的NACBD模型、分而治之方法、敏捷开发小组会议和燃尽图、结对编程这些方面的知识点和技巧我们都很好地应用到了自己的项目开发的整个过程之中去。我们每个人小组成员都利用NACBD模型在组内会议中分析了自己所想要用的一款软件,通过对比我们最终决定做一个桌面应用软件;我们通过分而治之的方法,利用WBS图拆分我们的需求,然后利用甘特图,结合每个组员的承诺工作时间把所要实现的所有功能具体化到每一天每一小时;我们在冲刺阶段采用了结对编程的方法,而且还实现了敏捷开发,并完成了至少2天一次的冲刺会议,每个人汇报自己的工作并展望第二天要做的事情,然后完善燃尽图;而且我们团队利用码云托管平台来管理代码,每个人做自己的模块,并保证一天至少merge一次所有人的分支,大大提升了团队协作的效率,每个人都完成了什么工作也是一目了然。可以说《构建之法》这本书对我们的团队的整个开发进展阶段都具有相当强的指导意义,也算是我们进行正式软件开发项目的一本入门引导手册了。
最后,《构建之法》的正文以及练习与讨论中有大量有价值的引用,这些内容可以让我们了解更多更广的知识,练习中大量的习题如果都能够独立思考并想办法解决的话,对我们的实际动手能力会有很大提升。