读后感

这个暑假我阅读的读物是周爱民老师的《大道至简—软件工程实践者的思想》,现在写下这篇读后感来谈一谈我的收获。

    通读这本书,给我印象最深的三个词汇是:实现,团队,本质。实现指编程的目的。我们既然是搞软件的,那么一定要满足客户的需求,这时候就需要我们利用代码来实现那个需求;团队,是工作的核心。我并不认为一个人可以在一定的时间内完美完成所有任务,即使有,那个人也一定不是我,这一点自知之明我还是有的,所以,团队的力量是必需的;本质,指的是问题的本质,我们看待一个问题,第一思路是去解决它,那么,这个问题的本质是什么呢?很少有人会深入思考,但是,如果不去了解问题的本质,一味地去解决问题,很可能会引出新的问题,因此,思考本质,是很有必要的。

    在读完这本书之前,我一直认为软件工程专业就是程序员的集结地。它不像计科那样需要硬件知识基础,打拼的是纯粹的代码能力,“这样的一个专业,只要注重代码就可以了吧?“带着这样的想法,我在专业分流的时候选择了软件工程。但现在我错了,或许软件工程确实要纯粹的代码能力,但”工程“二字才是关键,它是一个项目,因此你需要有相应的工程管理类的思想,最次你也要明白在团队中你是一个什么角色,如果你在团队中无法认清自己的位置,轻则自己脱离团队,重则垮掉整个工程。或许我只注重代码能力的话,在未来的某个团队中我可以去作为一个”开发者“的角色,沟通什么的交给其他人,但是在团队工作中,沟通是十分重要的一环,我们要了解客户的需求,根据需求去制定方案,设计代码,因此,只有纯粹的代码能力是不够的。

    对这本书的理解,我结合了自己在小学期完成代码作业时的经历。记得有一道题是“人机下棋“,就是编写一个井字棋系统。我尝试将这个题换一个角度来看:这个问题本质上是让电脑跟人下棋,我们作为编写者,目的是让电脑”动“起来,这也是我们要实现的目的。接下来就是该考虑怎么解决了,只要解决”构建棋盘“和”电脑下棋“两个问题就好,这里大概就是老师讲过的大而化小的思想吧。在”构建棋盘“的时候,我第一反应是构建二维数组,确定行列,但后来跟朋友商讨这道题的时候,他表示一维数组就可以,对应的是键盘的九宫格键盘,听了他的话我明白了:我一直在思考行与列,但没有想过有没有更简易的方法。相同的错误不止一处,题目中给出的量化思想我并没有完全理解,而是选择用”遍历“的方法,一个点一个点去判断,但显然,那样冗杂的代码,不提及时间复杂度,我本人失去了下手的欲望。依然是那聪明的朋友与我商讨,我完成了这道题。我一直以来是自己完成编程题,虽然最后可以运行出来,但看看自己写的东西很复杂,这次小学期我找了自己的“合作者”,或许称不上是一个“团队”,但总有一种一起做事的气氛。在互相交流想法的时候,我学到了很多,当然,这里的合作并不是合伙写代码,我自己的代码都是自己思考编写出来的。

    我即将进行软件工程专业的学习,代码能力的确是重中之重,其中我还要接触JAVA语言。谈到语言,不止周爱民老师,学校老师也说过:“语言只是工具,只要学会了一门语言,其他的接触的也快,最重要的是,它没有好用不好用之分。“大多数人比起C,更倾向好用的C++,我承认C++很简捷,但上次在打比赛的时候,我一道题用C++怎么都实现不了,最后还是用了C,这里肯定也有我学不扎实的原因,但不论哪种语言,无非就是”顺序“,”选择“,”循环“三大板块。工欲善其事必先利其器,利器的同时,你也要明白这个”器“怎么用,否则,手持削铁如泥的宝剑也可能打不过普通的菜刀。

    软件工程,重点是“工程“二字,我没有担当一个项目的能力,也要有担当一个项目的觉悟,在继续夯实我自己的代码能力的同时,我也要锻炼工程管理方面的思想。如果我真的只为了代码而代码,那毫无疑问我把自己的路走窄了。

posted @ 2019-07-30 23:04  千幽行  阅读(123)  评论(0编辑  收藏  举报