AI时代,工程师如何避免成为Forever Junior?
Forever Junior: The Skills AI Can't Develop for You

在AI主导的软件开发时代,我担心真正的危机并非工程师消失,而是Senior工程师的消失。当AI代理能完成大部分编码工作,Junior工程师若过度依赖工具,可能永远无法掌握核心技能,沦为只会审查AI代码的Forever Junior。我在Criteo的经历告诉我,要打破这一困境,必须主动培养好奇心、深度审查能力和自主性。通过向AI提问、模仿团队代码模式,甚至偶尔‘禁用’AI亲手写代码,我试图在AI辅助下重建自己的专业深度。这不仅是技术成长,更是对工程师身份的重塑。
我真正害怕的灭绝不是软件工程师消失,而是Senior工程师消失——因为我们所有人都可能变成Forever Junior,永远只能借助另一个AI来审查一个AI的工作。
HN 评论区
55- alexpotato
很多年前,我在一家公司工作,负责调查 Yahoo Finance 论坛上股票“拉高出货”(pump and dump)的骗局。
我们需要爬取这些论坛,然后分析帖子内容,看能否识别出幕后操盘者的身份。
那是 2002 年,我当时甚至不知道 Perl 里有 LWP::Simple 这个库(相当于 Python 里的 requests 库)。
最后我不得不使用基础的 TCP socket 库连接到 80 端口来发送 HTTP 请求。毫不夸张地说,这简直让人痛苦不堪。
话虽如此,我因此对 HTTP、TCP、HTML 等协议如何协同工作有了极深的理解。二十多年后的今天,我在工作中分析网络协议时,依然用得上这些知识。
我提到这一点是因为,现在没有任何东西能阻止人们去做类似的项目。例如 Linux from scratch [0] 就是一个学习基础知识的绝佳例子,尽管我们现在已经有“一键启动 Linux VPS”的选项了。
Joel Spolsky 也强调过这一点。即使你用的是 Java,理解 CPU 如何与缓存交互依然很有帮助,因为最高的性能来自于对整个技术栈的优化。
- t0duf0du
不想抢了这位老兄的风头,但天哪,看到像 `As a Junior fresh out of school, “still learning what I’m doing” isn’t a caveat — it’s the job description` 这样的句子时,我的大脑就停止接收信息了。
- bironran
我完全同意。即便在 AI 应用的“早期”阶段(才过去短短几年!),我也看到了这种现象。我坚信“必须对整个技术栈一清二楚,直到最底层”。也许我是个极端分子,我认为每个开发者至少都应该懂一点汇编语言,甚至可以去玩一下 NAND 游戏(用 NAND 门搭建一台电脑 - https://nandgame.com/)。但基础技能能带来对技术栈中各个要素更深刻的理解。比如 TCP 到底是如何工作的?BGP 是什么?为什么“永远都是 DNS 的问题”?中断机制、虚拟化技术、PSI 到底是什么?为什么内核空间不等于用户空间?JVM 的内存分配压力、字符串驻留(String interning)、并发与线程同步,以及“为什么我的代码多线程跑不起来”或者“我干脆通过数据库来同步好了”。
我不知道如何解决这些问题。我尝试过在公司内部举办关于 Java 底层技术的分享会,但大多数开发者根本不感兴趣。我也尝试过随机组织一些开发者会议,但很少能引起大家的共鸣。
人才输送管道正在崩塌。五年后,下一批资深开发者会是谁?我手头的候选人寥寥无几,而且完全没有新人涌现。
- tech-historian
这篇博客文章在我的 Chrome 浏览器上显示得一塌糊涂。后来我才意识到是因为 Ghostery 拦截了太多内容。在无痕模式下看起来就正常了。
如果你的网站因为把基本 UI 元素标记为广告而无法加载,那你肯定是做错了。
- pitched
让 AI 配合工作所需的技能,与编程这门手艺本身并不相同。你自己把 AI 生成的代码敲一遍,永远无法达到那种境界。
这就像因为你把车开到修理店付钱让人换了机油,就自称是机械师一样。