前几天我面试一个程序员,连续几个专业问题他都没答上来。
尴尬之余,我问他:「你没有什么理想吗?你现在最渴望的事情是什么?」
他转悠着大眼睛,不假思索道:「用Python写个牛逼的工具!」
真没想到在面试中居然还有这种操作。
我问为什么这能成为现阶段最渴望的事情,他反问「你就没有过这种想法吗?写个牛逼的工具,开源出去,让大家都用上?」
好有道理我竟无法反驳。
这么能说会道的程序员,一定是个不可多得的人才!
于是,我决定:不录取他。
这几年,在公司没日没夜写代码,原本浮躁的我,做事也逐渐变得内敛冷静,在高强度快节奏下像个工作机器,不带一丝情感的执行工作计划。
无论是互联网圈,学术圈,这两圈子的优秀程序员个个都能独当一面,在这两圈子混久了,我就认识了太多优秀的程序员,然后,我发现一个残酷的共同点——
他们都不用高级语言。
C++?从来不用,乱糟糟的,搞出一堆内存问题。
Python?过于简单,初级程序员总是写出屎一样的代码。
Java?为蠢人设计的。
我问过其中一个程序员,问:你渴望用高级语言吗?
他说:废话,肯定渴望。
我问:为什么不用?看不上?
他叹气:不,太忙。
他意味深长道:优秀的程序员都不用高级语言的。
跟我聊天的这个程序员,从小学起就开始编程,高中之前一直都是用C++的。
他初中时,曾在一次算法比赛中拿到亚军,原因是他用C++写出了O(1/n)时间复杂度的算法,当时编译没有通过,他一怒之下警告编译器,编译器被吓得链接错误,导致他只能现场用机器语言写一个编译器来编译算法,最后比冠军晚提交了5秒,只获得亚军。
本科毕业了他去美国读研,在美国工作了几年,回国后,去MSRA面试,面试官问了他非对称加密的原理,他也没说啥就离开了。后来业界都说非对称加密也不安全,因为在他面前,知道公钥就可以算出私钥,非对称加密和对称加密没有区别。
那一年比特币有一个微小的贬值,业界传言是因为这位朋友打算用心算挖比特币。
之后创业失败,一穷二白,有一天突发奇想,买了一张空的光盘,拿着激光笔和凸透镜聚焦到光盘上雕刻,据说这就是后来的Windows 10。
这样的程序员,恐怕大多数人一辈子追不上。
我还认识一个非常牛逼的架构师。
在2000年底, 他优化了一个公司的人事结构,最终这个公司市值20亿,但只有他一个人。
我问他为什么不用高级语言,他总是说:“在你和机器之间隔着编译器,总是不能感受到机器的灵魂。”
所以,不用高级语言,能让你更接近机器,更能感受的机器的情绪与温度。
这位架构师用机器码写完系统后,会用他大脑内的人工神经网络生成一份用高级语言的代码,目的是为了留存一份文档供他人阅读,顺便检查下神经网络是否收敛。
他们公司的的数据库越来越大,有一次数据中心搬家,要做数据迁移,其他程序员们说线上的平滑迁移需要很久,有人建议:“用卡车把硬盘运过去就行了,永远别低估一辆满载硬盘的卡车的带宽。”这时一个小伙子跳出来说:“让架构师把数据库背下来,自己坐飞机去就行了。”之后其他程序员再也没说话。
有一次公司的服务器崩溃,连夜都没修复过来,但用户依然正常访问,一点感觉都没有,后来机房的运维说:“当时这个架构师疯了一样冲进机房,扯下网线接到一个发报机上,就开始狂按0和1,我当时也不知道他在干什么,就出去了。”
像他这样仿佛超神的程序员,对于高级语言,自然不会有着太多的期待,他知道他会再哪些场合下去用他们,所以,他不着急。
我希望你明白,优秀程序员的价值从来都是由自己体现,而非由用的语言体现。
上周跟朋友吃饭,他说他认识的一些国企的程序员,总会认为程序员没必要太累去拼搏,找份安安稳稳的工作差不多就得了。
他跟我说,「可你不一样,你会一直提醒我,要我远离舒适区,要我不能安于现状,要我有危机意识,不能被这些工具束缚,你好像特别看重程序员的思想。」
程序员都是需要与工具独立的。
仍是要永远年轻,永远热泪盈眶。
仍是要时时刻刻对美好满怀期待,对未来充满渴望,对经典心怀敬畏。
要记住啊,知世故而不世故,处江湖而远江湖,才是最善良的成熟。