查看原文
其他

【老万脱口秀】程序员的核心技能

老万 老万故事会
2024-08-23

大家好,我是老万。我是一个谷歌公司的程序员。


大家知道程序员最核心的技能是什么吗?


我告诉你,就一条:取名字。


代码写得好不好,最关键的就看你会不会取名字。好的名字一定要能准确表达一个东西的作用。


有回我审查代码,一看就来气了:作者给这个文件取名字也忒省事儿了,居然就叫“文件(file.h)”。


我不知道这是一个文件吗?


然后人家告诉我:老万,这个就是处理文件的系统接口,所以叫 file.h。这个名字是我歌资深院士 Jeff Dean 当年取的。



现实生活中,很多程序员都和我一样,恨取名字的机会太少,空有一身本事,英雄无用武之地。


这就是为什么我朋友里面生孩子多的都是程序员:终于又可以取名字了啊!


找工作的时候投简历,大家都得填自己的名字、电话、个人信息。我觉得应该加上一条:孩子叫什么名字。


凡是孩子名字取得不好的,直接刷掉,可以节省一半的面试经费。



为了获得取名字的机会,某些程序员无不用其极。我以前的组有一个小哥,连生三胎,有两胎都是双胞胎。


你问我们组是干啥的?噢,我们是做大规模并行处理系统的。


程序员在公司干得好了,老板会提拔你做技术领导(tech lead)。我是当上了之后才发现,给这个岗位取名字的人太他妈黑了。


我想象的是,当了领导我就给大家派活:你干这个,嗯,你干那个。然后我就在后面拿个鞭子,看谁不好好干活,我就抽他一下。


后来我发现,其实就是一群驴在拉车,为了让驴自觉地拉,老板就在里头挑一个拉得比较好的,告诉它你就是领导了。


然后这头傻驴就兴高采烈地带着其它驴往前拉。要有别的驴不乐意拉的活儿,他自个儿都拉了,说这叫以身作则,lead by example。


Lead by example, my ass!


大家小时候有没有跟人打过群架?混战之中,谁要是抄起一块板砖往自己头上一砸,把自己拍得头破血流,那所有人都怕他了。


我觉得 tech lead 就是干这个的,上来先抽自己两鞭子,然后其他人都看傻了:兄弟,要不咱们还是好好干吧。


要是 tech lead 干好了,老板还会让你当 tech lead manager(技术领导经理),除了管技术,还得管人。


你想一想,“技术”和“经理”这两个词儿能放到一起吗?


绝大多数程序员都有社交恐惧症,绝大多数经理都有社交牛B症。你想在这两个病人集合中间找到交集,不说不可能吧,那也是个 NP 完全问题。


所以说公司的做法就是:你有恐惧症是吧?好吧,那我给你来个脱敏疗法,直接把你当社交牛B症治疗,以毒攻毒。能活下来算你造化。


我在中关村当程序员的时候,也有社交恐惧症。物理所旁边有一家小馆子,卖肉饼、家常菜。我总是一个人去那吃饭。


有次去,要了一斤肉饼,一份小菜,一碗粥。


上完菜我一看:粥里面有一只苍蝇。


我就跟服务员说:小姐(那时候服务员还叫小姐),你这软饭里有 bug 啊。她就说:噢对不起,对不起,我给你换一碗。


吃完一结账,肉饼 12 块,小菜 5 块,粥有苍蝇不要钱,收我 17 块。


我一看,不高兴了,把老板叫过来:老板,你这算法有问题啊!


你这是贪心算法(greedy algorithm)啊。


这得不到全局最优解的呀!


没想到,老板是软件所的退休职工。他说小伙子,你看得用什么算法呀?


我说:这个事情啊,你要考虑用户的后续反应,得用阿尔法贝塔剪枝算法。


老板说,可是这时间复杂度就大了呀!


然后我们就开始讨论各种状态空间搜索算法的优劣,从中午两点讲到下午五点,终于说服了老板,从 17 块里扣掉精神损失费 1 块,凑了个整数,16 块钱成交。


我们程序员就是这样,哪怕修理一个 bug 的时间成本远远超过了收益,这个成就感是金钱换不来的呀!


后来我离开中关村,进了一家美国软件公司。我一直在思考:我们程序员和公司到底是什么关系?


进公司的时候,合同写得一清二楚:任何一方愿意,随时可以解除雇佣关系。我觉得这就象是夫妻:结婚自由,离婚也自由,谁也别赖着谁,挺好。


要这么说呢,我们老员工面试新员工,就是大奶在考二奶:你这个小妖精,别看现在对我毕恭毕敬,进来之后谁知道会不会逮着机会就在老娘头上作威作福!


二奶也很委屈:唉,都是出来卖的,女人何苦难为女人!


说到女人啊,公司推行新文化,要求我们在写面试意见的时候不能把被面试的人叫他(he)或者是她(she),因为不知道这人的性取向。


哪怕 TA 胡子一大把,只要 TA 觉得自己是个女的,我们叫“他”就是冒犯。


为了保险起见,我们只能叫 TC(the candidate)。


有的 TC 进了公司后被发现业绩不达标,人力资源部就会建议,开除之前先把这人放进一个叫 PIP(performance improvement plan)的计划。


就是说:知道你们夫妻生活不和谐,但是呢,正式分手之前,还是试图挽救一下,看能不能治好,治不好再拜拜。


我明白了,这就是按 TCP IP 协议离婚啊!(注:TCP IP 是互联网通信的基本协议。你能看到老万这个帖子,靠的就是这个协议。)


上次我在朋友圈发这个段子,有人当场指出:老万你有 bug。把性取向(sexual orientation)和性别认同(gender identification)这两个概念搞混了啊!


我一听:嗯,你这取名字很精准,确实掌握了程序员的核心技能!我这里有个 tech lead 的职位你要不要考虑一下?


谢谢大家!


~~~~~~~~~~


猜你会喜欢:

~~~~~~~~~~


关注老万故事会公众号:

本公众号不开赞赏不放广告。如果喜欢这篇文章,点个在看,转发给朋友就是对老万的最大支持。谢谢大家🙏


继续滑动看下一个
老万故事会
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存