软件工程读书笔记(四)——软件工程师的成长

 

         昨天依靠一罐红牛撑了一天,在零点到来前五分钟commit了最终代码。脑袋昏沉地走出实验室,去肥西路的蒸小皖吃了一碗牛肉面,在凌晨一点之前,把自己扔到了床上,当然少不了敲开宿舍楼下的门的时候宿管阿姨的一顿教训。

         现在,意识到精神状态已经不是睡一觉就能恢复的了,于是,再来一罐红牛,两篇博客。

         《构建之法》第三章——软件工程师的成长,切中肯綮,及其接近生活。一方面是书中提到的问题要么就是我犯过的,要么就是我将来一定会犯的;一方面是自己工作中的一些没经过深入思考的小习惯在这里得到了认可和理论依据。刚经历了一个项目的我,读来实在是过瘾!

  本次读书笔记先谈一下关于“个人能力的衡量”的感受。

  如何让一个论坛里的程序员全都吵起来?发帖:PHP是最好的语言。

  程序员是喜欢比较,追求更好,以至于都认为自己已经做到了最好。也正是这种态度产生了更优的算法,更快的处理器。现代社会可以说是浸润在工程师们一较高下的红利中。

  对于程序员来说,大多数情况下,大家的工作环境都不一样,无法产生一种有效地衡量方式,而我们最擅长的就是发现这些环境区别,为自己的代码辩解。拿这次词频统计作业来说,周三的时候,同学发现树根本跑不赢哈希,要重构代码,不是能力问题;周四的时候大家功能几乎都完成了,处理数据时间的比较才刚刚开始,在这场比赛中大家指出的环境问题有:i几的CPU;几代;低压标压;机械盘固态盘;你的固态好一点吧;我的Linux虚拟机有问题……回想起来也是蛮有意思的。

  退一步说,假设现在我们有了同样的测试环境,就像这次作业检查一样,分出了高下。大家就能心服口服了吗?当然不是,像我就觉得我在win下代码跑的很好,结果也都对。移植后速度慢了,输出结果也有一些问题,我只能认为是……写到这里时,我突然意识到可能是字符编码不一样吧。言归正传,再说衡量标准,对于这次作业来说,有的同学投入了大量的精力,有的翘了一天的课,有的欠了几科的作业,也有同学几乎这周都没去上课,一天只睡几个小时,完成的不错;也有的同学正常上课交作业,作息规律,完成的也还看得过去。这之中个人能力的分量又如何衡量呢。

  昨天脑海中一闪而过的想法今天在书中就找到了答案:项目有多大?花了多少时间?质量如何?是否按时交付?关于质量,衡量方式为交付的代码有多少缺陷,单位为bugs/kloc。关于按时交付,我们更关心的是他地时间完成时间与预计时间的关系,显然这里的预计时间是一个合理的,团队可以接受,甲方可以接受的范围。那么在一个团队中,稳定、一直的交付时间是衡量一个员工能力的重要方面。

  而书中对软件工程师不能按时交付的原因更是让大家会心一笑:他们有时候不满足于“解决目前直接的问题”,而是想“解决问题背后的问题”,或是“解决通用的、不直接的、但有重大意义的问题”。

  想起来当初团队项目订课题时,我们认为做一个科研信息发布太直接。我们要解决的是背后的没有一个好的bbs即现代的校内信息平台的问题。幸好及时被邓老师叫停,如今在书中又看到这个画扇面的问题,深以为然。

  在现实生活中,上述要求就是软件工程师的标杆吗?做到高效,代码清晰就完美了吗?老板一定觉得是,然而屁股决定脑袋,如何轻松、稳定、有发展的工作才是我们想的吧。

 

 贴两个链接解释一下轻松、稳定与发展:

 https://www.zhihu.com/question/269288074/answer/346749597?utm_source=com.tencent.tim&utm_medium=social

 http://mp.weixin.qq.com/s/RfFcofGnQ_KFTN_xHYKfYQ

posted @ 2018-03-30 19:56  hhhua  阅读(294)  评论(1编辑  收藏  举报