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

(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],分享转行菜鸟程序员成长过程汇总的烦恼和反思。

程序员为什么要学习软件工程相关推荐

  1. k8s 偏向运维技术 ,后端程序员为什么要学习k8s?

    k8s 偏向运维技术 ,后端程序员为什么要学习k8s?? 1.以前项目开发:开发,运维是密不可分 - 上线 运维,开发密不可分     2.开发&运维 结合更紧密 - DevOps - 流水线 ...

  2. 入行AI,程序员为什么要学习NLP?

    "认知"的核心技术是自然语言处理,这是人工智能领域中的一个重要方向,研究各种理论和方法,涉及的领域较多,主要包括机器翻译.阅读理解.智能写作.对话系统.基础技术和语义计算等. 计算 ...

  3. 程序员为什么要学习算法?

    计算机技术发展如此之快,两三年前还在用的框架可能现在已经被淘汰了,虽然它的技术更新迭代这么快,但是背后的原理都是数据结构.算法.计算机体系结构这些知识,万变不离其宗. 也就是说数据结构与算法是&quo ...

  4. 程序员为什么要学习数据结构与算法?

    前言 数据结构Q与算法是程序员内功体现的重要标准之一,且数据结构也应用在各个方面, 业界更有程序-数据结构+算法这个等式存在. 各个中间件开发者,架构师Q他们都在努力的优化中间件.项目结构以及算法提高 ...

  5. 干货收集者:为什么大家都说程序员必须要学习JVM?真的是这样吗?(内存区域、栈、堆、对象创建、Full GC 、引用)

    当然有必要.对于面试来说JVM知识是大厂必问的,你不会你就大概率被PASS,你说你学不学?对于平时工作来说,万一遇到内存异常的情况,你学过JVM有一定基础是不是对你查找问题更好呢?要注重实战,理论有时 ...

  6. 自学python顺序-要成为一名Python程序员,要学习哪些内容,学习顺序是怎样的?...

    完全零基础的话,学Python,可以用下面这本书入门,从安装Python到可以开发实际项目,一步一步教你入门,对小白来说,那是相当友好了.想了解更多的话,可以点下面链接到豆瓣看一下.<Pytho ...

  7. ruby on rails_.NET程序员为什么要学习Ruby on Rails?

    ruby on rails Very well written and thoughtful article by Stephen Chu up at InfoQ. InfoQ撰写的Stephen C ...

  8. 程序员,也需要学习分析与设计的方法?! (2)

    对于这个标题可能很多人会不以为然,"我是一名程序员,做好编码工作就可以了","只要给我看了文档.或是说明了需求,我就可以直接用代码表达出结果来". 现在企业的生 ...

  9. python程序员培训_Python程序员学习路线图

    Python程序员学习路线图,由黄哥python培训授课老师黄哥所写. 参加黄哥python远程视频培训, 帮你完成从不会写代码到会写代码解决问题的过渡. 咨询qq:1465376564 Python ...

最新文章

  1. Android实现下拉头部缩放功能
  2. mysql 慢查询 定位过程,和order by有关
  3. 启动模式 和 任务栈
  4. 各类木材强度_木材的力学性能
  5. footer固定到底部
  6. 【Luogu1937】仓配置(贪心,线段树)
  7. 第一行代码学习笔记第七章——探究内容提供器
  8. java: 错误: 不支持发行版本 5
  9. matlab graphic,Matlab图形系统,Matlab Graphic System,音标,读音,翻译,英文例句,英语词典...
  10. Taro+dva+Typescript 搭建微信小程序架构
  11. Core Animation演示
  12. miui10,miui11,miui12 rom下载,支持市面常见机型
  13. Alexa | Alexa Auto SDK 概述
  14. 技术贴 - 收藏集 - 掘金
  15. CodeForces - 140C New Year Snowmen
  16. 新冠死亡率居高不下,为什么偏偏是意大利?
  17. 从键盘输入一个不多于3位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字
  18. Multisim-滑动变阻器、稳压二极管
  19. Win7系统下如何设置改变文本文档背景颜色
  20. Java毕设项目共享充电宝系统(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 〖Python 数据库开发实战 - Python与MySQL交互篇⑭〗- 项目实战 - 实现新闻管理 - 审批新闻 功能
  2. mysql bit类型_MySQL bit类型
  3. python键盘控制_python如何直接控制鼠标键盘
  4. 鸿蒙杀戮手机电脑版,鸿蒙杀戮单职业
  5. (七)turtlebot3导航包解析
  6. Java正则表达式的使用
  7. linux 下通过 httpd服务创建网页
  8. Junit测试多线程与Shutting down ExecutorService ‘applicationTaskExecutor‘
  9. iOS App托管和分发搭建
  10. 通用管理平台GBase 8c Platform