程序员修炼之道-注重实效

本篇文章是阅读《程序员修炼之道——从小工到专家》第一章 “注重实效的哲学” 的笔记。有了一些开发经验后再看这本书会比较有感触,本书第一章讲了一些对程序员最基本的要求,若是你正在进行职业规划,那么这本书有很好的参考意义。下面我结合本身的经历聊聊第一章的内容。前端

责任

责任是作一切事情得前提,小到对本身的代码,大到人生规划,我想这也是做者把它做为第一章第一段的缘由。责任是你主动承担的东西,固然若是这件事超过了你的控制范围,你有权不对它负责。不然的话你须要切实负起责任,即便过程当中犯了错误也应该坦诚认可,而不是找各类借口。我以为大部分程序员都会对本身的代码有很强的的责任心,毕竟它就像孩子同样,固然责任心太强每每会致使不肯认可一些错误。其实在职场中领导也比较喜欢那些可以主动认可错误的员工,谁也不能保证不犯错误,但对于犯了错误藏着掖着甚至乱甩锅的员工,领导可能更不放心交付他更重要的任务。程序员

软件的熵

熵是一个物理学的概念,指的是某个系统中 “无序” 的总量,当软件中的无序增加时,咱们称之为 “软件腐烂”。至于什么状况会致使软件腐烂,做者举了一个 “破窗户” 的例子,也就是咱们常据说的 “破窗理论”。简单来讲,算法

一扇破窗户,长时间不修理,会给人们带来一种废弃感。因而又破了一扇窗户,人们开始乱扔垃圾,乱涂乱画,最终房屋的结构遭到严重破坏,且超出了业主的修理程度,从而废弃感变成了现实。
破窗理论启发了警察部门对一些轻微的案件也严加处理,防止大案件的发生。

在软件开发中,低劣的设计、糟糕的代码和低质的文档等,都是 “破窗户”,应该看见一个修一个,不能让这种无序的状态愈来愈严重,致使软件腐烂。固然咱们可能没有时间、精力去清理全部的 “破窗户”,咱们能够加一些 TODO,或者集中整理成文档,拉一个专项专门处理。因此说,没有很差的程序员,只有很差的设计、代码和文档。编程

石头汤与煮青蛙

咱们开发过程当中,须要其余团队配合的时候,每每容易出现其余团队对咱们所作的事情的漠视、拖延。这时候比较好的作法是,咱们须要先把本身的想法进行落地,设计并开发出一个第一版,有一些成就积极与你们分享。当其余人看到这个东西正在走向成功的时候,别人就会愿意帮助咱们,最终共同协做完成项目,固然成果也要与你们共享。为了说明这个问题,做者讲了一个故事,后端

有三个饥饿的士兵,路过一个村庄,因为多年的战乱,村民的食物也很匮乏。因而,士兵们便煮了一锅水,里面放了几块石头。士兵告诉惊讶的村民说这是 “石头汤”,若是放一点胡萝卜会更鲜美,一个村民就跑开去拿胡萝卜。士兵又说放点土豆会更好,另外一个村民回去拿土豆。接下来不断有人拿东西,食物变得愈来愈多,汤愈来愈丰盛,最终士兵和村民一块儿享用了一顿美餐。
这就是 “石头汤” 的案例。固然,工做中也会碰到有些团队就是不配合,就像有些村民就是不肯意把本身私藏的东西拿出来。这也没办法,或许别人有更重要的事情去作。至少这个案例给了咱们一个解决这类问题的新视角。

从村民的角度来,这个案例也告诫咱们视野不要太狭窄,要关注到别人作的事情,若是是一件值得去作的事情就要积极主动地参与进去,留心大图景。不要执拗地只负责本身那一块的内容,不要作温水里的青蛙。因此,石头汤和煮青蛙看似两个独立的案例,却有必定的联系。markdown

用户的参与

完美的软件须要用户的参与,由于一般咱们是为别人编写软件。除了软件的功能需求,还要关注交付时间、软件质量等需求,无视用户的需求,一味地追求新特性、粉饰代码并非有职业素养的作法。以我所从事的大数据工做为例,其实咱们的用户就是运营、产品,若是无视他们的数据需求,一味地增长一些酷炫的指标,可能对分析产品并无什么帮助,显然这样作是不对的。一样,为了交付期限、功能需求而无视工程质量的作法也不可取。因此,咱们常常须要在知足用户需求与完美的工程实践之间权衡。架构

知识资产

咱们常常听到说程序员是吃青春饭的,也就是说知识资产是有时效性的。随着咱们的知识价值下降,咱们对公司或者客户来讲,咱们的价值也在下降。为了阻止这样的事情发生,咱们须要像对待金融资产同样,对待咱们的知识资产。每一年学一门新编程语言、每一个季度读一本书(按期投资本身)。多接触了解其余的技术栈,好比:作前端的了解后端技术,作大数据的了解算法(多元化的投资)。关注新技术,在新技术流行前就花时间研究,当它流行时咱们已经领先了大部分人(低买高卖)。要常常评估本身掌握的技术在市场上中的地位,若是已经凉了,须要果断放弃把经历放到新的方向(周期性地从新评估资产)。咱们常常拿老外来反驳程序员吃青春饭,看完这部份内容才发现,原来老外把知识资产当作了金融资产,因此才能保证本身的价值。编程语言

交流

虽然程序员生活中不善言谈,但在工做中每每须要大量的沟通,小到接口协议,大到架构设计。交流一方面是为了推动本身的工做,另外一方面是为了输出本身的观点,创建本身的影响力。同时交流的过程须要注意一些细节,好比:了解听众,选择沟通的时机,选择沟通的风格,沟通前注意本身的思路、文档是否清晰,交流中要倾听别人意见、让听众参与,沟通后及时总结、回复他人。大数据

小结

本篇内容各个小结看似比较独立,但实际上是有必定的联系的。首先责任是后续因此内容的一个前提。其次,做为程序员咱们要把本身的工做作好,“软件的熵” 告诉咱们要立足于咱们本身的工做,要解决本身软件里的的“破窗户”。当咱们把本身的事情作好,须要别人参与到咱们的软件中,组成一个大的协做体的时候,须要咱们怎么去协做,即是 “石头汤与煮青蛙” 一节的内容。咱们开发软件,最终要解决用户的需求、为用户创造价值,因此这个过程要有 “用户的参与”。虽然目前咱们开发出了让用户满意的产品,但过程当中咱们用到的知识有时效性的,“知识资产” 这节告诉咱们若是让本身有价值。最后提到的 “交流” 是为了让咱们上面全部的努力可以输出,创建本身的影响力。职业规划

欢迎关注公众号「渡码」,我将分享更多优秀书籍的内容

相关文章
相关标签/搜索