对话 Scott Hanselman:AI会写代码,但软件工程仍需要人负责
从 GitHub Copilot 到初级开发者培养,一位 Microsoft/GitHub 技术负责人如何看待 2026 年的软件工程师
在 Jean Lee 的访谈中,Scott Hanselman 认为 AI 正在改变开发工作流,但软件工程的核心仍是架构、验证、责任和培养新人。
30秒导读
面对“AI 是否会终结程序员”的行业焦虑,Microsoft/GitHub 技术负责人 Scott Hanselman 给出了一个冷静且充满人性的回答。作为一名自 1984 年就开始编程、见证了多次技术范式转移的行业老兵,他认为我们现在正处于“第四个十年的恐慌”中。AI 确实正在重塑开发工作流,但软件工程的“手艺”(Craft)从未改变。在他的判断里,AI 可以显著提高编码产出,但架构判断、验收标准和最终责任仍然属于人。
历史交替中的“四代恐慌”
Scott Hanselman 回顾了自己的编程生涯,指出每一次技术飞跃都会伴随着行业大恐慌:在 1989 或 1990 年左右,有人告诉他不用汇编语言(Assembler)就不是“真正的程序员”;90 年代末语法高亮(Syntax Highlighting)出现时,有人嘲讽这会让大脑腐烂、让人变弱;2000 年代中期 Stack Overflow 兴起时,大家又惊呼“编程终结了,大家只会复制粘贴”。如今,AI 只是又一个强大的“动力工具”(Power Tool)。正如有了现代电动工具并不意味着手艺人无法再制作精美的定制家具一样,AI 的出现也不会消灭软件开发的工匠精神。工具在变,但手艺本身才是终极目标。
如何避免成为 AI 时代的“烂代码大炮”
在日常工作中,Scott 表示大约 70% 的代码是 AI 辅助生成的。但他强调,AI 极易表现出“奉迎性”(Sycophant),倾向于直接迎合用户,却无法生成优秀的软件架构,甚至可能制造出庞大而混乱的“上帝对象”(God Objects)。为了避免沦为疯狂输出垃圾代码的“烂代码大炮”(Slop Cannon),Scott 坚持将所有 AI 生成的代码引入相同的软件开发生命周期(SDLC)中,包括代码签名、测试和 GitHub Actions 验证。他将 AI 生成的代码视为一份需要审查的外部贡献,强调“信任但验证”的原则,确保代码经过必要的测试和审查。
人机协作的真实工作流与情绪化管理
在访谈中,Scott 展示了他如何使用 GitHub Copilot 应用程序进行基于任务的多任务处理。他提到自己通常会同时处理 3 到 5 个任务会话,例如修复由双重编码引起的表情符号损坏问题(Emoji Bake),并会重点阅读和审查 AI 编写的测试代码。他还分享了自己开发的个人项目管理工具“Hansel projects today”。该工具结合了他的情绪状态和精力水平,从待办事项和拉取请求(PRs)中筛选出最适合当天状态的任务,以避免被海量任务压垮,从而扮演一个懂你的“私人助手”的角色。
行业隐忧:不雇佣初级开发者,行业将会崩溃
针对行业内“有了 AI 就不再需要初级程序员”的论调,Scott 表达了担忧,并提到他曾在 ACM 相关论文中讨论过,如果行业停止雇佣和培养职业早期开发者,未来的资深工程师供给也会被切断。他提出,企业应该借鉴护理行业的“Preceptor”(临床带教/导师)模式,将资深员工明确命名为“带教导师”,从而打破资深与初级员工之间的权力不对等,鼓励年轻开发者敢于提问。
给未来开发者的行动建议
对于在 2026 年及以后立志成为软件工程师的人,Scott 给出的建议是:回到基础。去制作一些有趣、好玩、真实且你真正热爱的东西。AI 可以帮你写代码,但它无法代替你思考,更无法代替你对产品的关切。拥抱工具,但永远不要放弃作为手艺人的思考与责任。
想要字幕整理稿?
这篇文章基于完整英文字幕整理。如果你想要这场访谈的字幕整理稿和中文要点版,可以关注公众号后私信我:Scott字幕 + 你的邮箱。后续我会统一发送整理稿,方便你自己检索、摘录或二次阅读。邮箱仅用于发送本次资料。
参考来源
1. Jean Lee / YouTube:Should You Still Become a Software Engineer in 2026? GitHub VP
夜雨聆风