程序员为什么要学习软件工程

按照惯例,先回顾一下这周完成的工作:

(1)练习英语听力240分钟

(2)完成了三个Test Case的自动化测试实现

(3)修复5个bug

(4)发布小版本,做回归测试

(5)读完《构建之法》

自从结束了CPA分析后,工作又回归了日常学英语、解bug、做测试的节奏。

**

自动化测试

**
自动化测试开发节奏略慢,因为这周大部分时间在研究subprocess模块,网上资料太过杂乱,拉慢了开发进度。这周实现了利用该模块调用多个软件,并将其配合使用,完成三个case的自动化测试。

之前,一直认为python仅仅用于做爬虫、网站和部分人工智能。在利用python+subprocess模块实现命令行的作用后,才发现python的库实在是太方便了,这可能就是python流行的部分原因吧。

**

解bug和测试

**
这周一共解决了5个bug,可能一些朋友会觉得数量很少。其实,解bug比较容易,但走流程非常慢。

在公司里,一个bug的生命周期如下:提出bug、分析bug、修改代码、编译通过、开会review代码、静态代码检查(QAC)、写Test Case、写bug修改报告、上传代码和文档、分配ticket给SQO、审核通过,关闭ticket,一共12步,而这还是省略了一部分步骤的结果。

复杂的流程可能是大公司的特色吧,但就如《构建之法》中所说,从短期和个人来看,复杂的流程是低效和浪费时间的,但从长期和团队来看,复杂的流程却是高效和易于管理的。另外,如果把软件开发作为一个工程项目来对待,软件开发流程相比其他行业已经算是简化了,从汽车行业转行的我深有体会,哈哈。。。

此外,这周发布了一个小版本给测试组,在发布版本之前,做了regression test(回归测试)。回归测试用于发布版本之前的测试,主要测试新版本相对于上个版本是否发生功能回退的现象,《构建之法》对回归测试的作用和重要性做了比较详细的解释。

**

读完《构建之法》

**
这周最重要事情是读完了《构建之法》,完成了之前立的flag。但说句实话,《构建之法》后9章带给我的启发没有前8章多。

在读完这本书之后,我又看了一遍目录做回顾,发现作者讲的关于软件开发部分的知识令我印象深刻,但项目管理、用户场景和用户体验之类的内容无法引起我的共鸣。

当然,这也是有几方面原因:

(1)我刚进入这个行业,软件工程中的很多知识还未接触,仅仅关注了软件开发的内容。

(2)作者是微软的项目经理,所开发的均是“为人服务”的软件。而我所做的是嵌入式软件开发,是为汽车开发ECU,差别较大。

然而,最重要的原因还是我在软件行业时间较短,还需要更多的积累。但通过这本书,我了解了整个软件从开始立项,到最后发布的全部过程。同时,也了解了软件开发不同阶段所需关注的重点,以及各具特点软件开发团队、不同的软件开发流程以及多种项目管理方式。

软件工程这门学科比较抽象,但它真正是从工程角度来剖析软件开发,促进开发人员养成工程思维,并将其应用到日常软件开发过程中。这就像每个学习汽车的学生必定逃不过《汽车工程》这门课一样,都是为了培养工程思维。

另外,从日常观察以及读书的过程中,我发现真正优秀的程序员必定是具备工程思维的,他们不一定学过软件工程,但却将工程思维应用于日常工作中。

总而言之,对于软件行业的学习才刚刚开始,接下来希望通过日常工作将学习的知识与实际开发相结合,同时也将继续学习软件开发的相关知识。

欢迎关注: ps. 欢迎关注我的公众号[酷酷的coder],分享转行菜鸟程序员成长过程汇总的烦恼和反思。

酷酷的coder

来源:程序猿司晨

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月23日
下一篇 2019年2月23日

相关推荐