极客时间《软件工程之美》学完感

最近花了将进两个多月的时间,把极客时间上的专栏《软件工程之美》专栏学完了,同时也把相应的配套书本

,邹欣的《构建之法》,读完了。学完这个专栏,让我获益良多。

专栏《软件工程之美》和配套的书本《构建之法》,适合已经有编码经验工作了三四年的程序员,如果是刚毕业的

程序员可能比较无感。专栏里提到的很多内容,都是要经历了才会有比较深的感悟。

整个专栏的内容比较多,有 54 讲,涉及到软件工程的方方面面。根据我个人的理解,对内容进行了重新划分,

基础部分、开发过程和个人成长三个部分。具体看下面的图。

看一下上面的图,发现我们在日常开发中遇到的问题都会有涉及。

下面我会挑一部分出来将一下

首先是基础部分

基础部分包含工程思维和产品意识。

软件工程的诞生是为了解决软件危机,它的目的在于构建和维护高质量的软件。

说到工程,我们会想到工地上的建筑,它们是建筑工程。软件工程和建筑工程都叫做工程,它们有着很大相似之处,

例如它们的都是计划、设计、开发(施工)和发布(竣工)的阶段。以前做开发的时候总是想着自己开发的部分,没有

想过产品需求评审、测试和发布这些东西,总觉得它们和开发的关系不大。这种想法是有问题的。

工程思维的核心是能在整体而不是局部的角度去看问题。像一个版本迭代,就是一个项目工程,整个迭代过程,

需要需求评审、技术开发、测试接入、最终发版。前期需要需求评审,然后定工期,定计划表,开发、美术都

按计划表安排工作。中间还会涉及需求变更、也有因为技术难度大延期的。最后测试反馈 Bug, 进行修改到最终发版。

这样的一个迭代过程涉及非常多的过程,所以,可以利用工程的思维,用整体的角度去看待整个迭代过程。

另外作为一个开发人员不应该只是盯着自己开发的部分,还需要考虑对整个迭代工程的影响。例如发现最后时间不够、

离发版时间越来越近,这个时候就需要把一些需求砍掉, bug 也是按优先级去解决,有些影响不大的 bug ,可以放到

下个版本去解决。

作为一名程序员,平时做开发的时候要多想想,我这做是否对用户更加友好一些,而不仅仅是为了炫耀技术。技术的

价值在于它能提供商业价值。

开发部分

开发部分又分为开发前、开发中和开发后。

开发前我们会涉及到需求的分析、评审,在分析的时候多想想这个需求合不合理,有没有更好的实现方式,多问一下

产品经理这个需求是为了解决什么问题。想一想它的表层需求、深层需求和底层需求是什么。在开发周期比较紧的时候,

要学会对需求的优先级进行划分,不能眉毛胡子一把抓,能按优先级去完成相应的需求。

在开发的工程中,程序员会面临各种各样的问题,例如需求变更了怎么办、出现了 Bug 要怎么解决、怎样提高开发效率

等等这些问题。在专栏里面都会有详细的论述。

开发后的阶段往往是我们比较容易忽略的,特别是项目复盘。进行良好的项目复盘,可以把经验变成能力。对项目进行

复盘,通过分析、讨论开发总出现的问题,进而总结成功经验,吸取失败的教训,提升团队能力。

个人成长部分

个人成长部分有论述一个软件软件工程师的核心竞争力和成为架构师的能力。

在专栏中有一张图说明软件工程师竞争力金字塔。

  • 最底层、最基础的就是学习能力,通过学习能力,快速掌握新技术;

  • 中间是解决问题的能力,充分利用学到的技术,去发现问题、分析问题和解决问题;

  • 顶层是影响力,是核心竞争力的综合体现。

在这篇专栏文章中,提出几个针对各入非常的建议,我罗列一下

  1. 不要把自己绑死在一门或一个框架上,而是训练自己的学习能力,让自己可以拥有快速学习

    掌握新技术的能力;

    

    2. 日常工作不仅仅是实现一个个的功能,做一个个的项目,而是在这个过程中,去锻炼和提升

   发现问题、分析问题和解决问题的能力. 这样才能最大优化工作经验,而不是机械重复没有积累;

  3. 在工作中,不仅把事情做成,还要把事情做好;不仅是自己成长,还要帮助其他人成长;最大

    化的利用好所在平台和行业的经历,转变成自己的经验和影响力。工作之外,多分享,打造自己的品牌。

总结

极客时间的《软件工程之美》配合邹欣的《构建之法》一起学习,给自己带来很多收获。这些收获相对

于编码的硬技能,它是”软“技能。作为一个程序员,不能要有良好的编码能力,也要有一些软技能。就像

一个人想要走路,必须需要两条腿一样。

发布了58 篇原创文章 · 获赞 20 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/yxhuang2008/article/details/97615593
今日推荐