写给忙碌的程序员:忙了一辈子,却没忙到点子上
作者 | 郑晔
出处 | 极客时间《10x 程序员工作法》专栏
在这个2018年的最后一周,我想和你聊聊“高效”这个话题。年末,你肯定会做个总结,复盘这一年有哪些收获,又有哪些遗憾。我知道,很多人总结到时候,总是会情不自禁地加一句,因为我比较忙,所以某某事情没来得及做。
对,当忙碌成为了主旋律,那高效一词就自然浮出了水面。
不知道你是否听说过“10x 程序员”,这个概念在国外很早就出现了,一个 10x 程序员的工作效率是普通程序员的 10 倍。
怎样才算 10x 程序员?他们跟普通程序员的区别在哪里?
有人说是因为聪明,但我觉得方法对了,每个人都有机会成为 10x 程序员。
但是往往,你很想潜心钻研技术,却发现每天花了很多时间在解决非技术类的问题。比如,你花了一天时间重点解决的一个问题,其实对于业务方来说,一点也不重要;赶着元旦要做活动,你错估了开发工作量,因而要拼命加班弥补......于是,你的工作很被动,忙忙碌碌却总在解决看似很“不值当”的事儿。
为什么会这样?软件行业的名著《人月神话》里提到两个重要概念:本质复杂度(Essential Complexity)和偶然复杂度(Accident Complexity)。简单来说,本质复杂度就是解决一个问题时,无论如何都要做的事,而偶然复杂度是因为做事方法不当,而导致要多做的事。
我在软件行业摸爬滚打近二十年,一路从普通程序员做到首席架构师,深刻意识到一个遗憾的事实:大部分程序员忙碌解决的问题,都不是程序问题,而是由偶然复杂度导致的问题。
换句话说,只有真正掌握高效工作的方法,减少偶然复杂度带来的工作量,你才有机会成为10x程序员,甚至是100x程序员。
而针对程序员的工作方法提升,有没有这样一种方式呢?完全基于程序员的实际工作场景,能够做到不复杂,有套路,有参考原则。
而这,正是我希望通过《10x 程序员工作法》专栏为你打造的“效率改造计划”,以帮助你拉近与高手的距离。
我是谁
我是郑晔,火币网首席架构师。从业20年,我写过代码,带过团队,在ThoughtWorks做过首席咨询师 ,也是开源项目Moco的创始人(Oracle Duke选择奖获奖作品),至今仍在第一线写着代码。
在《10x 程序员工作法》专栏中,我希望帮助你解决下面这样的问题:
- 接到需求任务,我要先做哪件事?有没有一套思考框架?
- 产品经理安排了不靠谱的产品特性,我该怎么办?如何和他们沟通?
- 如何分解任务?听到过很多方法论,但感觉都不适合程序员
- 新入职一家公司,陌生的环境和代码,我怎么才能最快进入工作状态?
- 领导让我接手一个遗留系统,我该从哪里入手?
这些困惑也是我常常被问到的。结合20年开发实践经验,我会帮你梳理出一套遇到问题的解决思路,围绕着这个思路,我还会给你一些原则和方法,希望对你有帮助。