这就是《软件工程师》读书摘要(下)


第四章:高手修养

上升通道:技术路线和管理路线

如果你待在一个做产品的公司,它一定会给你技术、管理两条晋升通道,无论公司是大还是小;如果你待在做项目的公司,也就是小商品工厂,它可能就不太需要专研技术的人才。有了这个认识后,根据自己的情况选择合适的公司。

业务上的精进

预见未来:软件工程师要有前瞻能力

这个阶段不管是宏观规划上还是细节上,你都能够掌握,这就是所谓的融汇贯通。

前瞻能力:指你得知道为什么系统今天是这个样子,以及未来他会朝着什么样的方向去演进。例如2011年特火的一个APP软件里有各种滤镜贴纸来换脸,当时火爆全球。你一定要有知识的广度,需要去读论文,去各公司做广泛交流,保证有足够多的不同的信息进入你的视野;多做跨行业的交流,跳出自己的圈子,跟其他行业人交流。

权衡利弊:软件工程师要有取舍能力

关键在于1.目标明确:最终目标就像一把尺子,是衡量最优方案的唯一标准;2.学会预测:建议你多总结行业内的历史,关注10-20年发生的事就可以。只有你知道历史的轨迹,才更容易知道未来在哪里

攻克难题:主动寻找技术难题并尝试不同的解决方案

技术难题有时候需要自己去找,这对自己能力的提升有很大帮助,在攻克技术难题时,想法设法尝试不同的方案是最重要的。

关键决策:技术选型的六大要素

宏观层面:1.看这项技术解决的是不是大问题。(格局更大的问题,比如C++解决的是C语言的一些问题,而Java则以颠覆者的角度解释了C/C++的很多问题);看这项技术解决的方式是否让人有想象空间,比如智能手机、AI技术的想象力就很大。

微观层面:看有没有大公司撑腰;看有没有很好的技术社区;看有没有杀手级应用,已为这项技术有颠覆性,如Java的杀手级应用WebSphere、Spring等;看有没有经历10年以上时间,十年是一个成熟技术产品的成长周期,这个时间是跨越不了的。

代码评审:不是“做出来”,而是“做漂亮”

作为一个没有参与代码编写的人,从头到尾把别人写的代码审一遍,看有没有需要改进的问题。“时间不够”“需求总变”不是拒绝评审的理由。如果业务逼得紧,让技术人员疲于奔命,那应该是需求管理和项目管理的问题;需求总变,我们更应该做代码评审,因为需求变得更快,对代码质量的要求越高。

评审清单:代码评审怎么做?

设计:代码是否经过精心设计并适合系统?

功能:代码是否复核开发者意图?代码对用户是否友好?

复杂性:代码是否可以更简洁?

命名/测试/注释/风格/文档等

评审误区:代码评审是为了找Bug吗?

代码评审有比找Bug更重要的价值,审查更高一级的代码质量,包括代码可读性、可维护性、可重用性,程序逻辑以及对需求和设计的实现等。找Bug有专门的环节负责,比如单元测试、功能测试、性能测试、回归测试等,不需要等代码评审环节才做。

千万不要等大厦盖好了再去评审,而是当有了地基、有了框架、有了房顶、有了门窗、有了装修的时候,循序渐进地评审,这样反而更有效率。

带团队的心法

实力服众:工程师宁愿被lead,不愿被manage.

这个行业对管理者的独特要求在于,你的技术足够牛,如果不能证明你有一定的技术水平和素养,下面的同学就不会服。有点像武林,你的武艺高强,才能领导大家,文弱书生相当领袖,基本不可能。

敢于放手:从工程师变成管理者

之前你想的是怎么让自己变得更好,现在你要做的是怎么让其他人做得更好,怎么让团队变得更好。你要给团队指导方向,告诉大家哪些该做、哪些不该做,哪些要坚持,并让下面的同学能够理解这样做的原因,用软件工程师能够理解的方式说服他们。

善于说服:相对于下指令,还是要讲道理

软件工程师最反感的事情是你让她做一件事情,却不能说明为什么。软件工程师都是自恃为专业人士,分配任务时你得告诉他背后的原因和道理,某种程度上,你得说服他。

招聘面试:考察一个人的元能力

看工作简历之外更重视一个人的元能力,看他工作过程中沉淀出了哪些基本素质,哪些可以持续拥有的能力。比如系统设计、代码的结构化,通过分析找到关键问题。元能力是软件工程师最底层,也是最核心的能力。元能力强的人,在设计开发的工作中自然不会差。

员工激励:让工程师更有成就感

对软件工程师来说,成就感不单单来源于独立完成一个项目,而是能够做特别牛的事情,做开创性的项目,或在行业内取得含金量极高的奖项。重要的是作为管理者,你要有这个意识,你可以结合自己所在公司和领域的情况,来给团队成员创造可以获得成就感的机会。

团队建设:做好人才布局。

管理者需要对每个下属的诉求以及长处、短处有判断,每个人适合干什么,不适合干什么,判断之后给每个人选择一个赛道,你心里要清楚,每个人未来的职业通道是成为一个专家架构师,还是成为技术管理者,把每个人放在合适的位置上。

布局长远:关注长期目标

管理者要判断,哪些事情需要长期投入,做了之后能产生规模效应。管理者要坚定不移地投入到长期目标上,因为眼前地事太多了,一不小心,长期地项目就半途而废了,这个坑太大了。

平衡需求:判断紧急与重要

作为技术管理者,如果照单全收,就会使团队长期处于应对的状态,你必须去判断,哪些事情是紧急的,哪些事情是重要的。管理者在这些重要的事情和紧急的事情之间做出平衡,这个事情做的好不好,很能体现一个技术管理者的段位和格局。

协同机制:保持公开透明的信息协同

如今一个大的互联网产品小的工作室模式根本接不住。技术体系的要求也比之前高了很多,需要团队进行大规模的协同,形成高质量的流程线,去把最终的功能实现。所以鼓励公开透明的协作,让大家把自己做的东西工具化、开源化,让所有人都能看到和试用就很重要。

团队合作:一加一大于二

拼车要想让乘客有更好的体验,很大程度上要依赖地图团队,只有当地图团队真正理解拼车的顺是怎么回事,才能解决拼车体验更优的问题


第五章:行业大神

丹尼斯·里奇:保持简洁

里奇是“C语言之父”,也是UNIX系统的联合发明人,他创造了几乎所有计算机软件的DNA,是为乔布斯等IT巨匠提供肩膀的人。为了提高通用性和开放效率,里奇发明了一种新的计算机语言:C语言。

为什么UNIX和C语言能够至今不衰,真正的原因不在于复杂而在于简洁,“保持简单和直接”,也就是著名的“KISS原则”.C语言共有9种控制语句,32个关键字、34种运算符,既有低级语言的实用性,又有高级语言的基本结构和语句。

林纳斯·托瓦兹:只是为了好玩

买回来之后发现Minix根本不好用,于是决定自己写一个替代系统。后来有人想给林纳斯1000万美元售后Linux,但他拒绝了,他选择让Linux一直保持开源的状态。林纳斯觉得比起有钱,让全世界的软件工程师一起成就Linux更有意义。(当时的软件:微软、甲骨文、IBM等政策都是保护软件的知识产权,即使在公司内部,也只有少数核心员工有权限访问软件程序的完整源代码。)林纳斯开源了Linux,让任何人都可以查看和修改源代码,发起了全世界软件领域的“开源运动”。吉多·范罗苏姆:允许不完美、保持开放

范罗苏姆并不是在一开始就追求完美,但足以满足大家的需求,同时一直遵循开放、开源的原则,吸引了大量优秀的软件工程师。这些软件工程师协同改进Python ,有很多核心部分的重大改变或者重构都是由他们提出并落实的。范罗苏姆说,Python是互联网上发展的语言,完全开源,由一群志愿者组成的专业的社区开发,他们充满热情,也拥抱绝对的原创权。

玛格丽特·汉密尔顿:拯救人类登月计划

1965年,玛格丽特担任阿波罗登月计划的软件编程部部长,负责制定一套应急预案,一旦飞船出问题,就启动这套预案。玛格丽特两次绝境之下化险为夷(阿波罗8号和11号),背后靠的就是制定规范、严格制定。他认为程序员需要理解错误,梳理错误的原因,并防止下一次出错,这在计算机“蛮荒年代”,需要一颗清醒的头脑来制定规范。

玛格丽特率先用了“软件工程师”来称呼团队里的程序员。在她的推动下,“软件工程”成了一门更规范、更系统的科学,我们现在程序员们,才有了“软件工程师”这个称号。

杰夫·迪恩:开创分布式系统

今天我们看到的整个云服务运作的分布式存储、分布式计算,以及一些硬件、网络技术,都是基于迪恩的这个方向产生、蓬勃发展的,把整个行业的认知提升到不一样的水平,从而推动整个行业的发展。

第六章:行业清单

行业大事记

推荐资料

书籍:零基础入门、正式入门、专业进阶(编程语言、理论学科、系统知识、软件设计)、高手精进

影视作品

行业术语:

宏观、编程、并发、数据库、错误、系统、工程、安全、其他

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容