程序员困境插图

最近,我招聘一个内核程序员的岗位,几十个人过来面试。这些应聘者都来自优秀的大公司,不是开发芯片的,就是开发内生的操作系统的。其中有些人声称自己在内核上开发的时间至少 10 年!他们的简历美轮美奂,各种完成的项目,各种获得的褒奖。

但是绝大多数人都无法回答一个最基本的问题:当我们调用一个标准内存分配函数时,在内核中会发生什么?

别惊讶。当我请其中一位应聘者写一个简单的,基于在 glib 库中 hash 函数上搭建的 LRU 缓冲框架时,他表示压根没用过 glib。这也正是我想要的答案。我给他看了 glib hash 的 api 页面,同时非常详细的给他介绍了 API。之后一个小时过去了,他所能给我的,仅仅是寥寥草草的几行乱七八糟的代码而已。

我不知道这种情况是不是适用于其他国家,但是在中国,或者准确点儿来说在北京,这就是现实。所谓的“高级”程序员,那些多年在大型的,有名气的外国公司供职的程序员,甚至无法在最简单、基础的问题上证明自己的能力。

为什么会这样?

我越想,越觉得原因并非简单归咎于他们自身,还和他们供职的公司有关。这些公司经常备好了一套代码,好几年没有重大调整。与这套代码相关的技术已经形成了框架,人们的技术就在这框架中,遵循既有的路径走就好了,而创新精神就在这个过程中消失殆尽。如果你在很长时间内就跟这一种代码打交道,并没有将触角伸向外面的世界,很快你就会发现自己置于悲惨境地。在公司或者团队里,你被尊称为“专家”,但是很不幸的,在这个市场上你将无法找到一份胜任的工作。

这就是所谓的“专家陷阱”。日复一日,我们程序员都梦想成为公司或者团队里的行家里手。但是,等这一天真的来到时,我们自陷囹圄,固步自封。逐渐的,我们无法从无到有的凭借自己的能力,开发出一套完整的项目。因为摆在眼前的代码实在太稳定了(不仅全面而且还带来真金白银)。更糟糕的是,如果我们的主要工作仅仅是保证现有的代码更好的存在下去,没有任何大的变动,那么过上一段时间,不管我们研究阅读了多少的代码,最终我们没办法写代码了,即使问题像学生作业一样简单。这就是程序员困境,我们以写代码赖以为生,但是到最后,我们所供职的公司却让我们丢了谋生的手段。

如何逃离困境?

对于个人来说——


首先,做你自己的项目,你必须持续不断的打磨自己的能力。如果工作本身无法帮你做到这点,那么就在业余时间选择你想要攻克的难题。这样做很快你能学到新的东西。如果你发布了个人的作品,比如在 github,很有可能你能遇到一些人,他们能把你从现如今的泥潭中拔出来。

另外,不要在同样一个团队待超过 2 年时间。即便还是待在一个公司,逼着自己不断的调岗,你会遇见新的挑战,学习到新的技术。每 18 个月走出去面试一次,你其实不需要跳槽,只是看看你与这个市场的结合能力是否如以往那样紧密。

对于团队和公司来说——

给你的雇员以挑战和压力。让内部职位不断调换,让所谓的“专家们”有机会丰富自己的技能,开发新的项目,让“武士”在“实战”中强大起来。定期举行“编程马拉松”,这有助于培养创新的氛围。人们将相互你追我赶,那时候肯定有人在心里说:“我靠,那个混蛋竟然在 24 小时内写出如此漂亮的代码,我必须努力了!”

账号推荐:比特币行业播报【BitCoinMedia】

虚拟币、数字币、余额宝、互联网金融…从去年到现在这些高大上的词已经融入了你我的生活!比特币行业播报不仅仅局限于当下最火爆的的比特币资讯,每天还会为关注互联网金融,注重投资理财的朋友带来业内最新的消息,最专业的解读,最权威的数据。

关注比特币行业播报,让财富更有价值!

阅读原文
举报

分享到