提起“软件工程“一词,很多人都不会感觉到陌生,对编程有所了解的人可能会首先想到程序员以及无穷无尽、成百上千行的程序代码,而对于编程一无所知的人可能就会联想到“黑客”以及各种IT精英,给人一种很高大上的感觉。在报考大学专业之前,我也是属于第二种——对编程一无所知的人,抱有着每天玩弄电脑成为IT精英的态度报考了软件工程专业,结果到了大学才发现“软件工程”并不是玩电脑那么简单,也并没有玩游戏那么有趣,几乎每天都运行着“Dev-C++”、“eclipse”,编写着几百、几千乃至及万行的代码,在这些代码之间包含着你对每个问题的了解,蕴含着各种复杂的逻辑思维。我曾经对编写代码这种工作很反感,觉得它枯燥无味而且很复杂,曾经多次为了一个程序运行了几十次仍然无法通过测试而感到苦恼。最后,在老师的推荐下抱着试一试的态度读了《大道至简:软件工程实践者的思想》这本书,读完之后发现编程和做工程其实并没有那么复杂,正如书中所说:“做工程其实很简单,只是大家把它想复杂了。”
在读过这本书之前,我对于软件工程的理解仅限于编写程序,或者说我仅仅了解到了编程这一小部分,认为编程就是软件工程的全部。而对于编程,我也经常抱有应付的态度,自己并不愿意去思考程序中所蕴含的逻辑,常常对着之前老师发过的程序模板“照猫画虎”。在读过这本书之后我才发现自己对于软件工程的了解是多么片面。
《大道至简:软件工程实践者的思想》这本书的语言平易近人、通俗易懂,经常使用古文典故来达到清晰易懂的效果。该书的第一章便引用愚公移山的典故阐明了编程的本质——即顺序、选择和循环,说明了“程序=算法+结构+方法”,并告诉我们“编程并不是一种结果,而是一个过程”的道理;第二章作者引用“蜀守冰凿离堆”的故事告诉我们编写程序一定要懂得创新,不要总是照抄模板。通过阅读第三章,我对“团队”有了更深层次的认识,同时我也初次了解了什么是“项目经理”以及他的职能。在第四章中,我认识到了沟通的重要性,作为开发者,一定要学会与客户沟通,否则工作将很难进行。第五章中作者说明了编程的最终目的——解决问题,这个最终目的在我学习的过程中经常忽略,我常常是为了提交作业而编程,却忽略了它的最终目的。第六、七章中作者介绍了语言在工程中所扮演的角色;第八章作者介绍了工具的本质;第九、十章作者利用现实生活中的例子介绍了软件工程,让我对“软件工程”有了更深的了解。第十一章作者再次强调了自我思考的重要性,使我选择摒弃“照抄模板”的想法,懂得自我思考,自我创新。
通过阅读本书我认识到了自己“懒于思考”的问题,更重要的是对软件工程有了更深层次的了解,增强了编程的兴趣,我相信,只要善于思考,乐于学习,一定会在“软工人”的道路上越走越远。