这篇我完全用你的口吻、你的经历、你的笑点、你的自嘲来写,原汁原味还原咱们今天一路闲聊的所有梗:英语程序员、STL下划线、Boost编译慢、PCH、硅谷摸鱼养闲人、AI氛围编程、懒到不想点运行……
文风轻松、接地气、像老程序员茶座闲聊,可直接复制发知乎、掘金、公众号、技术群,通篇都是内行才懂的会心一笑。
十几年前,我还在公司里打工,年轻气盛,眼睛长在头顶上。
那时候写C++,啃STL,读源码,指针乱飞,模板绕晕,都不在话下。我自认为是个正经的硬核程序员,写代码讲逻辑,看代码讲功底,什么注释、文档、说明,那都是给菜鸟准备的。
就在那段时间,我遇到了一位同事,被我暗地里笑了好多年。
他有个特点:C++代码本身,他看不懂;但代码里的英文注释,他看得比谁都明白。
别人写好的模块、库、函数,他不看逻辑,不看流程,不看变量关系,打开文件先拉到注释区。
// 初始化连接
// 处理异常
// 刷新缓存
// 返回结果
他就靠着这些人话注释,理解功能、拼接逻辑、改代码、上线、跑通,一套流程行云流水。
我当时在心里偷偷给他起了个外号,叫 English Programmer —— 英语程序员。
那时候的我,是真的瞧不起。
写代码就写代码,做程序员就做程序员,靠看注释干活,算什么本事?这不是英语阅读理解吗?这也配叫写代码?
我甚至觉得,只有看不懂代码、没有基本功、只会抄抄改改的人,才会沦落到“看注释过日子”。
那时候我坚信:真正的高手,是无注释也能逆推屎山,是看变量名就知道意图,是读几行流程就摸清全貌。注释,只是锦上添花,不是吃饭的家伙。
一晃十几年过去。
我走在路上闲逛,吹着风,突然想起当年那个“英语程序员”,一个人在路上笑出了声。
不是笑他,是笑我自己。
因为我现在,完完全全、彻彻底底,活成了当年自己最看不起、最嘲笑的那类人。
甚至比他更“堕落”,更“摆烂”,更“懒”。
年轻的时候,精力、专注力、记忆力都在巅峰。
一段没有注释、变量名乱成a/b/c/tmp、嵌套七八层的代码,我能逐行啃,逐行推,画图理逻辑,熬夜抠细节,不读懂不罢休。
那时候觉得:代码是给机器看的,也是给高手看的。注释是给弱者看的。
年纪慢慢上来,精力一掉,才明白一个扎心的真相:
人类的大脑,天生就不是为了阅读机器语言而进化的。
我们擅长的是自然语言、上下文、语义、意图、故事、逻辑描述,不擅长的是位运算、隐式跳转、模板推导、递归嵌套、内存布局。
再去看别人的代码,哪怕写得不算烂,只要没有注释,大脑第一反应就是:能耗太高,拒绝解析。
// 这里处理超时重试
// 防止重复提交
// 日志打点用于排查线上问题
看到这些“人话”,瞬间通透,心情舒畅,逻辑秒懂。
至于里面的代码怎么实现的,锁怎么加的,边界怎么处理的……
无所谓,不重要,没必要。
我终于理解了当年那位同事:
他不是菜,他只是
比我更早觉醒了人类的最优解——只处理低能耗的自然语言,不硬扛高能耗的机器逻辑。
所谓的English Programmer,不是笑话,是普通人最舒服、最节能、最符合碳基生物天性的编程姿势。
我当年笑他,只是因为我还年轻,还不知道自己的脑力、体力、耐心,都是有保质期的。
说到当年的“硬核优越感”,还有一个特别典型的笑话:STL的变量命名。
打开STL头文件,满屏都是_Ty、_It、_Al、_Ptr,清一色单字母、双字母,带下划线,鬼画符一样。
年轻的时候我肃然起敬:
这是系统级、库级、神仙级程序员才配用的命名!
下划线开头是系统保留,凡人不能碰,碰了编译器就炸,就是未定义行为!
我这种写业务的小菜鸡,不配这么写,没资格这么写。
后来翻C++标准文档才知道,自己纯纯被PUA了二十年。
C++标准真正禁止的,只有双下划线开头、下划线加大写字母开头,普通的下划线加小写,随便用,编译器看都不会看你一眼,更不会报错。
STL之所以写得这么“反人类”,也不是为了装逼,而是真的在为编译效率锱铢必较。
当年的机器慢、磁盘IO慢、编译器解析慢,头文件又是递归include,尤其是Boost这种全头文件库,你include一个小功能,能给你展开几十万行。
每多一个字符,头文件就大一圈,解析就慢一点,磁盘就读多一次,编译就多耗几秒。
老一辈库程序员的信仰是:宁可全世界后人读代码头秃,也不能让编译器多浪费一纳秒。
而我们现在呢?
变量名越长越好,
calculate_user_login_failed_count_and_notify_admin,越长越自豪,越见名知意越安全。
宁可编译器累死,不能我自己看不懂。
时代真的变了。
当年的程序员,为机器省力气,自己头秃;
现在的程序员,为自己省力气,机器累死。
我当年嘲笑别人只看注释,
可我当年敬畏的那些“硬核细节”,如今也只是茶余饭后的一个笑话。
如果说变成“看注释过日子”,只是向English Programmer靠拢。
那AI时代到来后,我直接进化到了当年想都不敢想的摆烂形态:
氛围编程(Vibe Coding)。
什么是氛围编程?
打开IDE,打开AI助手,打开浏览器,代码区挂着,终端开着,人坐在电脑前。
AI写代码,AI改代码,AI查报错,AI解释问题,AI调参数。
我只负责:
“嗯,这里不对。”
“差不多行了。”
“跑一下看看。”
到了我现在这个阶段,已经更进一步,连最后一点行动力都消失了。
谷歌Gemini、豆包,把完整代码、编译命令、运行步骤、注意事项,整整齐齐甩给我。
我只需要复制、粘贴、点一下运行按钮,三步,十几秒的事。
我都懒得动。
看一眼代码,嗯,逻辑没问题,注释挺全,应该能跑。
关掉窗口,喝茶,发呆,闲聊,逛大街。
代码跑没跑,通不通,有没有Bug,不重要。
我知道它能跑,这就够了。
放在十几年前,我绝对无法想象自己会变成这样。
那时候,代码不跑一遍,心里不踏实;结果不验证,睡觉都不安稳。
现在,碳基生物的懒惰被彻底释放,没有下限,只有更下。
以前觉得:程序员的天职是写代码、造逻辑、控细节。
现在明白:
人类的天职是偷懒、摸鱼、少动脑、少动手、把所有脏活累活甩给机器。
很多人以为,国内程序员卷,国外程序员拼,硅谷极客天天改变世界。
我在硅谷三流公司混了十年,身边一圈大厂朋友,看得明明白白:
硅谷的摸鱼,比国内还离谱,比国企还国企。
很多公司,养着一大批程序员,根本不是为了让他们干活。
就是一个逻辑:
我把你养着,你就不会去我的竞争对手那里。
工资给得不高,但足够舒服;
没有末位淘汰,没有严苛KPI;
免费三餐、免费零食、免费咖啡、宽松打卡;
有没有活无所谓,项目成不成无所谓,你人在我这里,不在对面,我就赢了。
夸张到什么程度?
公司求着你去上班:
“来食堂尝尝新出的菜吧。”
“来办公室坐一会儿露个脸就行。”
“不用干活,来喝杯咖啡也好。”
一大批人上班就是搞副业、写小说、炒股、刷剧、聊天,代码有AI写,改不动就拖着,反正不会开人。
鱼龙混杂,滥竽充数,English Programmer一抓一大把,氛围编程随处可见。
国内是卷着摸鱼,硅谷是光明正大躺着摸鱼。
我以前以为,只有自己会变成懒汉,后来发现,这是全人类的共性。
好逸恶劳,刻在每一个碳基生物的DNA里。
以前资本愿意养闲人,是因为人力稀缺,程序员有护城河,囤人比打仗划算。
AI一来,整个逻辑全变了。
AI写代码比你快,比你规范,比你少Bug,比你听话,不要工资,不摸鱼,不跳槽,不抱怨,不用免费午餐。
你会的,AI都会;
你不会的,AI也会;
你懒得做的,AI全包。
那些只看注释、不懂原理、靠抄改混日子的English Programmer;
那些打开IDE只负责营造气氛、连复制粘贴都懒得做的氛围编程选手;
那些被公司圈养、十几年不写硬核代码、混吃等死的闲人;
将会是AI时代第一批被优化、被替代、被清场的人。
技术的进步,从来不会因为你“混得舒服”就对你温柔。
懒惰可以纵容一时,但不会纵容一世。
但好笑的是,即便知道这一点,我现在依然懒得去复制粘贴运行AI给的代码。
十几年前,我嘲笑那个只看注释的English Programmer,觉得他软弱、菜、不专业。
十几年后,我连代码运行都懒得点,活成了氛围编程的终极形态。
我没有退步,也没有堕落,我只是终于不再对抗天性。
人类本来就不擅长读机器代码,只擅长读人话;
本来就不喜欢高强度脑力消耗,只喜欢低能耗舒适区;
本来就好逸恶劳,能不动就不动,能偷懒就偷懒。
当年的我,是燃烧年轻的精力,假装自己可以对抗天性;
现在的我,是接受自己的平凡,顺从碳基生物的本能。
从嘲笑英语程序员,到成为英语程序员,再到懒过英语程序员,
这一路,不是笑话,是每一个老程序员的必经之路。
以后如果再遇到一个只看注释、不读代码的年轻人,我再也不会笑他了。
我只会拍拍他的肩膀说:
小伙子,你路走对了,早晚会和我一样,懒到连运行按钮都不想点。
这就是程序员的终极宿命:
从硬核战神,到英语程序员,最后躺平成氛围编程。
我活成了当年最看不起的样子,但我一点都不难过。
反而觉得,这才是人生最舒服、最通透、最真实的模样。
整篇完全可以直接发表,没有敏感内容,全程幽默自嘲,同行看了一定会疯狂共鸣“世另我”。
如果你想,我还可以帮你精简成短图文版,或者加一段你在硅谷的真实小故事做彩蛋,让文章更有个人味道,要不要我顺手给你改一版更精简的发布版?