作业三:读《构建之法》1-5章后感

*爱你&永不变心* 提交于 2020-03-02 21:09:39

这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178


   国庆小长假期间,经过白天的忙碌,晚上的时间,终于能够静下心来看看这尚未细读过的《构建之法》。以下便是我的一点小感想。

第一章 概论

  第一章主要是讲述了计算机科学的领域,软件工程和计算机科学的关系,软件的特性,软件工程的定义与组成部分。

  在1.1节中有段话,“我们平时讨论程序的种种问题,究竟是在表1-1中的哪一个层次上谈论‘程序’呢?我们写的程序有没有考虑到类似于这两起飞行事故级别的问题呢?IT专业的大学毕业生找工作时声称:我精通Java,会用C++写‘Hello World’程序,我懂软件工程,我花了很多图,写了很多文档,最后得了很高的分数……这些同学是真的懂软件工程,是一个合格的软件工程师么?”毫无疑问,这并不是企业要求的软件工程师。我们大学生在学校里面根据学校安排的课程学习完了,完成了答辩,得了个过得去的分数,便以为自己出来找工作也像考试那般容易,可是现实是,工作不是在校学习,人家要的是能做项目的有实际动手能力的毕业生,而不是纸上谈兵的书生。在我看来,一份完成良好的项目,比得上简历的各种“自夸”。根据学校的课程学习了“软件工程Ⅰ”,学习了怎么画各种图,可是我们要想成为一名真正的软件工程师,又该怎么做呢?

  在1.2.2节中的一句话“希望堵住看了这一节之后,不在纠结‘科学’和‘工程’的问题,而是在不同的学习与工作阶段,投入到最适合的项目类型中去”不禁想问:目前最适合我们现阶段学习的项目类型是哪一些?

  


 

第二章 个人技术和流程

  第二章主要是讲述了单元测试,回归测试,效能分析和通过PSP讲解个人软件开发流程。

  在2.4节中,关于如何设计有实际意义的软件工程作业的问题,文中说到“我们可以把简单的程序从几个维度逐步扩展,增加复杂度,引入不同的需求,提高需求的易变性,在这个过程中,锻炼程序员对各种软件设计原则、软件工程原则的理解和应用,软件的适应性也得到加强。”听上去好像是挺容易实现的,但是,根据现实情况来说,目前大学生的代码能力不是很高,很大程度是通过老师,书本,网络上面的资源来习得。学生真的可以根据不同的需求来对自己的程序进行增删改操作吗?再者,需求说明书,说明文档等的事情,我也觉得我们如果想成为一名软件工程师就必须掌握,但是我们真的可以做到吗?对于如何学好软件工程,我还是不太明白,究竟如何才能成为企业要求的软件工程师,而不是学习了软件工程这门课的大学毕业生?

  

  


 

第三章 软件工程师的成长

  第三章主要是讲述了评价软件工程师水平的主要方法和软件工程师的思维误区。

  在3.3节中,简述了Emanuel Derman的故事,“回首当年,我(的态度)的确是错了,任何事情,当你仔细探讨,你就会理解它的量和质;当你对一个领域的神韵足够了解,并开始连接这个领域的表现形式和实现细节的时候,任何一个领域都是会变得引人入胜的。”这是他回顾自己的职业经历时说的话。我们现在还是大学生阶段,人生阅历不够丰富,未能做到如Emanuel Derman的深刻见解,在我看来,我们大学生目前所要做的就是保持一颗探索的心,不断地学习软件工程。

  我的困惑是:如何才能成长为一个合格的软件工程师?

  


 

第四章 两人合作

  第四章主要讲述了两个人合作编程的不同阶段,影响他人的技巧。

  在4.6.2节中说到如何给别人提供容易接受的反馈中提及的“三明治”办法,通过搜集资料,了解到这是一个对某个人先表扬、再批评、接着再表扬的一种谈话方式。在我们的日常中,有的同学说话单刀直入,直击要害;有的同学说话委婉辗转,话中有话,毫无疑问这都不是在同一个项目中合作的最佳的交流方式。因为在合作完成同一个项目,难免会出现各种分歧,因此正当的反馈交流是必不可少的。一个人的思维有局限,两个人的思维有碰撞,正因为有这些碰撞,才使得程序有不同。

  我的困惑是:假如同为合作伙伴的两个人产生了分歧的时候,是寻找第三人的帮助,还是通过内部的协调解决,哪一种办法得出的解决方案较好呢?

  


 

第五章 团队和流程

  第五章主要是讲述了典型的软件团队和开发流程及其优缺点。

  在5.2节中,“软件团队有各种形式,适用于不同的人员和需求”。每个团队都有自己的分工合作,团队中的每个人都有自己的任务。那么,怎么才能知道我自己是属于这一个团队的哪一部分呢?

  


   

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!