标签: 编程技能 2026-04-15 次
在AI和各种编码助手满天飞的今天,我反而越来越觉得这句话是真理。
当然,现在我们更多是在写提示词,而不是敲代码。
但说实话,这不就是极速版复制粘贴吗?
大家对程序员的想象,总是很戏剧化。
最浪漫的版本:帅气黑客,和安吉丽娜·朱莉一起待在满是电脑的地下室,黑进银行、入侵五角大楼。
稍微现实一点,但依旧很酷的画面:开发者疯狂敲键盘,代码像《黑客帝国》一样在屏幕上刷屏。

平心而论,刚学编程那会儿,这种想象也不算完全错——除了安吉丽娜·朱莉。
你确实会写大量代码。
我之前写过一篇《你的GitHub贡献图毫无意义》,下面有条评论说得特别对:
贡献图最绿的,往往是有野心的初学者。
他们边做边学,每天写代码、试新东西、做实验,再正常不过。
我经常和初、中级开发者聊天,很多人对工作的理解就是:
你的任务,就是交付功能、提交代码。
老实说,这完全没错。
但随着职业往前走,会发生一件很有意思的事:
你资历越深、对系统责任越大,真正写代码的时间反而越少。
取而代之的,是越来越多时间花在:
调试、排查诡异问题、解决别人搞不定的烂摊子上。
你可能会反驳:可有些资深程序员还是写很多代码啊!
没错,如果你在小初创公司,经验再丰富也可能天天写代码——尤其现在AI工具能把效率拉满。
但项目越大、越成功,复杂度就越高。
伴随复杂度而来的,是另一套完全不同的工作:
少写代码,多理解系统。
因为线上一出问题,总得有人去查。
支持团队瞬间需要答案!
于是你花一整天啃日志。
哦,这里有竞态条件!你是资深,你得上。
配置炸了?你得搞明白。
初级开发者永远会抛出那个经典问题:
“这为什么是空值?”
等等,编程不还有架构吗?
你肯定会说:编程不止调试,还要选架构、框架、技术栈。
这绝对正确。
但在这行待得越久,我越意识到:
在绝大多数领域,几乎所有东西都已经被发明过了。
有设计模式、成熟架构、各类问题的标准答案。
做系统设计时,你很少从零发明一切。
更多是复用之前有效的模式,修改别人验证过的方案,站在社区的肩膀上搭东西。
从这个角度看:
架构本身,往往也是更高维度的复制粘贴。
无视这些积累,要么是天才,要么是鲁莽。
我当初级开发者的时候
那会儿我就是一个功能接一个功能地堆。
写过的代码,估计能拉好几公里长。
东西跑不起来,就查、试错、Google报错。
实在搞不定,直接甩给资深开发者。
就这么简单。
不管问题多烦、多耗时,资深都得解决——那本来就是他的工作。
我至今记得一次:
本地突然跑不起来项目,我卡了好几个小时。
一位资深同事看了几眼,平静地说:
“你Node版本错了。”
谜团瞬间解开。
那时候我甚至有点“同情”他们:
总在接电话、被打断,几乎写不了正经代码。
而我快乐地实现一个又一个功能。
基础设施?流水线?AWS?我几乎完全不关心。
现在
我也成了别人口中的资深,甚至要协调多个团队。
我还写代码吗?当然写。
但还像初级那样,疯狂输出新功能吗?
并没有。
我现在大量的工作是:
升级框架,然后研究为什么一切突然崩了;
检查依赖更新有没有引入回归;
排查只在某些环境才出现的诡异bug。
还记得前段时间那些闹得人心惶惶的前端CVE漏洞吗?
到处恐慌,到处排查。
我们项目受影响吗?幸好没有。
我剩下的唯一工作,就是花一周时间回邮件,
一遍遍解释:“我们甚至没用React”😉
真正的核心技能
写代码,可能像复制粘贴。
架构,是更高阶的复制粘贴。
但调试,是纯粹的问题解决能力。
它逼你吃透系统、追踪数据流、分析日志、验证假设。
有时候StackOverflow没用,AI助手也不灵。
你只能靠自己思考。
几小时排查下来,根因往往小得离谱:
少个属性、配错参数、一行烂代码。
调试,有时候真的像侦探工作。
责任
这让我想起一个轮回。
当年那个无论如何都要帮我的资深开发者。
现在,我成了队友眼里的那个人。
前不久,一个初级开发者找我:
做复杂表单时,验证逻辑莫名失效,卡了很久,deadline快到了。
我先试着引导他,指了几处可能的问题,没用。
最后只能自己坐下来,啃那段代码。
截止日前一天,我凌晨1点才搞定。
压力大吗?有点。
他该早点说吗?当然。
但工作里,很多时候就是这样。
那我会因此不满吗?
会因为不再像初级那样疯狂交付功能而失落吗?
完全不会。
毕竟——
谁小时候没梦想过当一名侦探呢?
资深开发者,本质上就是软件世界里的侦探。🕵️♀️