在软件开发领域,二八定律同样适用。头部 20%的研发人员或许就是许多人眼中的“alpha”程序员,甚至是领导者、开拓者、潮流引领者等,比如发明 B 语言的 Thompson、发明 C 语言的丹尼斯·里奇、以及发明万维网的伯纳斯李,这些是谷歌、阿里巴巴、腾讯、百度和华为更喜欢的求职者。
反之,80%的程序员构成了软件开发行业的大部分,这些程序员大多毕业于一所还可以的学校,专业是计算机相关方向,掌握了足够的 JavaScript、Java、C ++ 和 Python 等基础知识,然后去了银行、国企、小型互联网公司等编写内部应用程序,这些人可能做了一辈子研发,但其他人可能从没见过他们所开发的产品(很多软件可能只供公司内部使用)。
事实上,大部分公司都由这类 80%的程序员组成,头部 20% 的研发人员依旧是少数,并且还有不少留在了研究院。对于 80% 程序员遇到的年龄太大、晋升困难等问题基本不会出现在头部 20% 的程序员身上。
顶级程序员与普通程序员的差距
头部 20% 的研发人员或许 90 年代就尝试在家中安装 Linux 系统,编写过 lisp 编译器并在周末“单纯为了好玩”去学习 Haskell,或许是某个开源项目最活跃的维护者。这类程序员的共同点是总能意识到编程工具中最新、最酷的趋势。
其余 80% 程序员中的大部分人热衷使用微软提供的大礼包工具或者比较成熟的开源工具,会借鉴和听取其他程序员的想法,但不善于表达,也不喜欢冒险选择新兴工具或者语言。他们可能很少甚至没用过 Linux,也或者是根本不感兴趣。如果不是公司规定,许多人甚至都不会使用版本控制工具。如果有,可能也是微软套件中的某个工具。
大多数顶尖程序员都有定期查看开源项目和逛开源社区的习惯,并热衷参与讨论和对新项目进行维护,时刻关注最新的 Linux 发行版,甚至花费整个周末为其写博客,并因为无法让剩余的 80% 程序员使用新版本而感到苦恼。
如果成为那20%的顶级程序员呢?
对普通程序员而言,当成长到一定级别很容易到达天花板,比如技术瓶颈、家庭压力、晋升困难等,这些对于头部程序员而言往往不是问题。那么,如何成为头部 20% 的程序员呢?
大部分程序员会认为写技术博客是浪费时间,并且也很少阅读技术博客。相反,20% 的头部程序员往往有阅读和写技术博客的习惯,博客可以让你及时了解头部程序员的动态和推荐的技术趋势,并形成有效沟通路径。最重要的是,很多圈内比较出名的大牛起初都是通过技术博客或者论坛被人关注,渐渐形成自己在圈内的影响力,减少对公司的依赖性。
看清自己的优劣。有些人可能是天生的代码狂热者,技术能力非常强悍,那就一门心思扑技术,最好可以有大厂研发的工作背景,并勤于通过博客分享自己的想法,形成个人影响力,这就好比出各种技术书籍的人未必技术实力就是该领域顶尖的,只是书面表达能力更强。
写代码这事多少还要靠点天赋,有些人可能代码能力一般,但没准是天生的管理者,那应该想办法系统化学习管理,通过此在工作中达成一个目标,形成错位竞争。如果当前所在的公司晋升困难,可以考虑换一个创始人比较靠谱的小型创业公司,毕竟,创业公司现在说倒就倒,但如果创始人背景不错,没准可以抱个大腿,留条后路。
原文地址:https://blog.51cto.com/14318113/2401768