传说中的10x程序员?

共 2562字,需浏览 6分钟

 ·

2021-04-09 12:24

这里是Z哥的个人公众号

每周五11:45 按时送达

当然了,也会时不时加个餐~

我的第「187」篇原创敬上



大家好,我是Z哥。

这篇是前阵子写的《如何提升Debug效率》的姊妹篇。

相信不少人都听说过“10x程序员”的说法。最初的出处是「布鲁克斯法则」的提出者在他的文章《没有银弹》中提出的。

在普通设计师(程序员)和优秀设计师(程序员)之间,有着 10 倍多的差异。
《没有银弹》

优秀者和普通人之间的差距真的有这么大吗?根据我这么多年的职场观察,还真有,而且其中最大的差距可能不还不止10倍。

但是单单从coding的速度上,肯定不可能将差距拉得那么大。拉开差距的往往是“工作模式”上的不同。这和“人与人之间的最大差距是认知能力,而不是努力的程度”是类似的道理。


我不敢说自己就是10x程序员,但是回头看这些年,我的编程水平和效率相比刚入行的那会有好几倍的提升自然是有的(在之前的一些文章中,我也提到过自己曾经效率巅峰的例子[害羞脸])。同时,在这个成长的过程中,我也见到过身边不少快速成长的小伙伴,他们在一年之内的效率变化大到判若两人。当然,也见到过“发挥很稳定”的小伙伴,他们的效率几乎一直没有什么变化过。

从这些经历和观察中,我总结了一些经验,我想它们对你提高开发效率或多或少会有些帮助,下面我来分享给你。当然,也欢迎你在留言区分享你觉得好用的方法。

我想,没有人不愿意成为10倍程序员吧?肯定都希望自己变得更牛逼,是吧?


我们程序员的日常工作主要涉及到以下三件事。

  • 功能迭代开发

  • 沟通

  • 修复bug


提升效率的关键自然也藏在这三件事里。


/01  功能迭代开发/

01  设计

在中小型公司里,功能迭代开发所花费的时间应该是最多的吧。但是,恰恰也正因为是中小型公司,开发任务时的自由度相对较高,所以,很多人不太重视coding之前的设计工作。

有些同学看完一个需求文档后,撩起袖子就开始写代码、建数据表。说实话,这个效率看起来的确是杠杠滴,闪电般的高效。但是很多这种看上去勤快的同学最终的整体效率往往并没有比别人高,甚至还不如那些看起来“慢吞吞”的人。

之所以会这样,是因为不够重视前期的设计工作,也就是心里没有「软件工程」这个概念。

虽说「软件工程」是一个比较抽象的概念,很多名人给出过不同的定义。但是他们都一个共同点,就是眼里不能只有coding,coding应该只是最后的“临门一脚”而已。

只有前期规划到位,才能减少后续的返工,甚至是避免返工。如此,你的整体开发效率自然就上去了。


另外,在设计这件事上,除了比较宏观的架构设计思维外,熟练掌握23种设计模式也是很重要的,因为它们最容易用到,也最常用。在写代码的时候,有意识地考虑一下有什么设计模式可以套用,并且随时重构,保证代码的整洁。


02  专注

有些复杂的、有难度的任务往往需要耗费比较长的时间才能完成,这个时候如果你能保持专注,将会对提高效率非常有帮助。而且,有些棘手的问题,如果你不够专注,让自己进入到深度思考的状态,可能都无法想到解决方案。

让人专注的方法其实很简单,把手机丢到你眼睛看不到的地方就行。


/02  沟通/

关于沟通效率的问题,我在2018年有写过一篇文章《就简单聊聊沟通效率问题》阐述我的观点,在这里就不多说了,感兴趣的话可以点击文末的推荐阅读链接去看。

不过,有一点可以补充一下。文档对于提高沟通效率的作用被大多数人给忽略了。

互联网新贵字节跳动内部的协作,就是以文档为核心开展的。以共享文档为基准,人跟着共享文档走。就是以这样的机制,他们才得以在不到一个月的时间内,顺利补位拼多多放弃的春晚红包活动。


想把文档做好,其实很简单——多用。只要工作都是基于文档来开展,那么维护文档就是一个必须要做的事情。

很多文档之所以吃灰,就是因为后续的变更没有持续更新到文档里,导致文档逐渐与现实脱节,进一步导致文档不但起不到应有的效果,反而还会带来误导。慢慢地,文档这个东西就变成人人唾弃的东西。

但是如果有了一份靠谱的文档,可以大大降低对沟通的需求,因为大部分信息都可以从这份共享文档中获取。这样一来,做其他事情的时间不就多了么,整体的开发效率不就上去了么。


/03  修复bug/

01  重视单元测试

其实大家也都明白,bug越晚被发现,修复的代价越大。而能发现bug最早的环节莫过于单元测试了。

对于这点之前也写过一篇《聊聊单元测试》,这里就不赘述了。


02  会用搜索引擎

坦白说,目前我们国内还是很难成为新技术的风向标,所以当我们开始运用某项技术的时候,往往在老美那边已经用了一段时间了。因此,我们遇到的大多数与某个技术框架相关的问题,google一下,往往已经有解决方案了。不过,需要你有一些基础的英语知识,方便更准确地通过关键字找到需要的内容。(比如,万能的how to + ……)

如果是一些国内已经普及的技术框架,直接百度也能解决大多数的问题。


除了以上三个方面,还有一件能通过发挥我们程序员长处来提高效率的事情,就是将重复的事情尽可能的自动化。比如,自己写一个小工具,让它可以批量完成一些任务,或者是一个自动运行的服务,又或者是给你常用的工具写一个插件等等。

其实你会发现这些点都很普通,没什么奇技淫巧,但如果真能做好其中的每一点,恰恰是成就10x程序员的奥秘所在。


好了,总结一下。

这篇呢,Z哥与你分享了我对10x程序员这件事的看法,以及自己对提高开发效率的一些经验。主要分为三个部分。

  1. 功能迭代开发。在这个环节,主要要做好「设计」工作和保持「专注」。

  2. 沟通。在这个环节,主要是要把「文档」用起来。

  3. 修复bug。在这个环节,主要是「重视单元测试」和「会用搜索引擎」。


希望对你有所启发。



推荐阅读:


原创不易,如果你觉得这篇文章还不错,就「在看」或者「分享」一下吧。鼓励我的创作 :)


如果你有关于软件架构、分布式系统、产品、运营的困惑

可以试试点击「阅读原文

浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报