从coder到engineer的蜕变

珠珠Somerhalder
2018-05-17 09:53:16
Coder-Anyone who can write some code that compiles and runs, which will do something they want when its given the right inputs. This could be a program, a script, some classes or a library
Software Engineer Designs and Make new Software and contribute in their engineering. An engineer position would usually imply that you are a developer who has a specific type of degree, some knowledge of engineering, and is capable of designing a system.


生动活泼

说句实话,拿到这本书之后,一看名字,《构建之法》,什么东西嘛,看起来那么假大空,肯定又是扯一些有的没的,一点用处都没有,起初叫我看它,我是拒绝的。把它放在一些诸如《机器学习实战》、《计算机网络——自顶向下方法》等这些书籍中,显得十分碍眼。

这学期选了一门叫软件工程的课,老师布置作业要求我们团队合作开发一个项目,在此之前先进行需求分析等阶段。老师提到了NABCD模型

...
显示全文
Coder-Anyone who can write some code that compiles and runs, which will do something they want when its given the right inputs. This could be a program, a script, some classes or a library
Software Engineer Designs and Make new Software and contribute in their engineering. An engineer position would usually imply that you are a developer who has a specific type of degree, some knowledge of engineering, and is capable of designing a system.


生动活泼

说句实话,拿到这本书之后,一看名字,《构建之法》,什么东西嘛,看起来那么假大空,肯定又是扯一些有的没的,一点用处都没有,起初叫我看它,我是拒绝的。把它放在一些诸如《机器学习实战》、《计算机网络——自顶向下方法》等这些书籍中,显得十分碍眼。

这学期选了一门叫软件工程的课,老师布置作业要求我们团队合作开发一个项目,在此之前先进行需求分析等阶段。老师提到了NABCD模型。NABCD模型是啥呀,翻开书瞧一瞧。在介绍NABCD之前提到了“三拍”法来提出创新想法——拍脑袋、拍胸脯、拍屁股。一看我就对号入座了,这不就是我么,做什么项目都是脑子一热,一拍脑袋就想做什么东西,一拍胸脯就直接开写了,完全没有分析过什么需求,当然最后都是拍屁股走人了,项目并没有什么很大创新或者亮点,宣告失败。当时就觉得这个书还蛮有意思,语言如此通俗易懂,我倒要看看你的NABCD是何方神圣,怎么就解决了我的问题。按照一般的书的套路,肯定又要说一大把套话,每个字我都认识,串一起就不知道他在说些什么,看完之后依旧一头雾水。这本书就很不一样了,NABCD是什么,每个都只用了一句话简单诠释了下它的含义,比如N——Need,你的创意解决了用户的什么需求,然后剩下的篇幅都是在举例子,而且是我们身边的鲜活的例子,十分接地气,比如偷菜、QQ、hao123等等。作者选择用例子的堆叠来向我们完整的诠释他想要表达的意思,而不是完完全全的假大空。

这就驱使我从头开始细细品味邹老师的这部作品了,几乎不爱看书的我居然都可以看得津津有味,在图书馆随便一翻就是几十页,到了饭点都忘记去吃饭。邹老师的这本书并没有干巴巴的讲述理论和原则,反而牢牢地把握住了“人”这个重要因素,通过四个虚拟人物形象,借用他们的口吻,生动形象的把软件工程的内容展示了出来,写得非常通俗易懂,甚至有些俏皮,完全不像板着脸的软件工程「教材」,而是不断用打比方和讲故事的方法阐述软件工程中的概念。

从个人到团队

有很多同学,在本科,没有机会或者没有意愿,甚至是没有能力接触到一些比较大型的复杂的工程的,他们往往仅局限于使用某种语言、某些框架去解决自己生活中遇到的小问题,代码量不会很高,团队成员也不会很多,我更愿意称之为coder——一个编码者。

这本书带给我们的是如何做一个真正的工程,多人团队合作的结果,教我们如何有序的把个人的工作组织起来,每个人都以宏观的角度,软件工程的角度来思考问题。

Software Engineer 不像coder一样,把时间几乎都用在写代码上,那些看不见需求分析,单元测试,估算等等,才是软件开发中重中之重,隐藏在水面下的冰山。绝非是“三拍”之后写下来的程序,可维护性差,鲁棒性差,项目意义不明确,开发效率低,等等。

《构建之法》是给大家在软件开发领域搬砖工人到设计图纸的转变的指导。

不像某些教练说的“当你不知道怎么踢的时候就向门里踢”那么简单,更是像一个战术大师在哪怕只有10秒时也会布置有针对性的战术那样,让你的行动更职业。我想,这也是软件工程专业的同学更应该关注的问题。

做中学

令我惊喜的是,邹老师希望通过这本书,引发课堂教学模式的转变,倡导学生做中学,而不是学后做。我一点我要感谢我们的授课教师,把这一套新的理论继承了过来。我们通过一次完整的团队开发,从alpha到beta阶段,从需求分析到项目交付,算是完完整整的体验了一次做工程的感觉,结合课堂所学,及时应用到实践中去,拒绝空学理论。

最后

因为时间原因,这本书还没有拜读完毕,由衷的感谢邹老师愿意分享他对软件工程的独到的见解,带领我们后辈,少走弯路,希望我们都能像邹先生期许的那样,尽快从一个编程速成班就能培养出的coder,蜕变为能够在项目中独当一面的engineer。

0
0

查看更多豆瓣高分好书

回应(0)

添加回应

构建之法(第三版)的更多书评

推荐构建之法(第三版)的豆列

了解更多图书信息

豆瓣正在热议

豆瓣
免费下载 iOS / Android 版客户端