为什么在人工智能时代编程仍然是一项可行的职业

是的——核心编程技能依然具有价值

回答: 即使有了强大的人工智能代码生成器,利用计算机解决问题和管理复杂性的能力仍然至关重要,这使得编程成为一项长期可行的职业。

  • 利用计算机解决问题是一项永恒的技能;人工智能可以提供辅助,但无法取代人类在提出正确问题时所需的洞察力。
  • 控制复杂性——即设计、重构和维护系统——需要一种人工智能所不具备的思维模型。
  • Carson Gross(2026年2月27日)的文章认为这些基础知识将保持其价值,许多评论者也对此表示赞同,并强调了理解代码的重要性。

编写代码——为什么手写代码对初级开发者仍然至关重要

回答: 初级开发者必须亲自编写代码,以培养阅读和维护人工智能生成代码所需的直观理解力。

  • 如果不编写代码,学生将错过通过调试、测试和迭代所带来的深度学习机会。
  • 阅读代码的价值日益凸显;人工智能可以生成看起来正确但隐藏了偶然复杂性的代码。

    “如果他们不编写代码,他们将无法有效地阅读代码。” – Carson Gross

评论者指出,阅读和编写是两种独立的技能,但两者都需要通过实践来掌握。一个只依赖提示词(prompt)来使用大语言模型(LLM)的初级开发者,面临着陷入“魔法师的学徒”陷阱的风险——即构建出他们无法掌控的系统。


提示词工程不等同于高级编程

回答: 将人工智能提示词与从汇编语言转向高级语言进行类比是具有误导性的,因为编译器是确定性的,而大语言模型则不然。

  • 编译器提供从源代码到机器代码的可预测映射;而大语言模型的输出会随着提示词的微小改动而发生不可预测的变化。

    “源代码的变更具有可预测且合理的后果。你通常不需要编译代码并进行测试,就能确切地知道变更将如何影响编译后程序的行为。” – layer8

  • 人工智能生成的代码往往会引入偶然的复杂性,使得人们更难判断其正确性。

人工智能是助教,而非代码生成器

回答: 当人工智能被用作概念学习的伙伴时,它可以在不取代编写代码需求的情况下加速学习过程。

  • 人工智能通过解释概念、建议API和生成小段代码(例如 regex, CSS)来帮助学生克服“卡壳”时刻。
  • Gross 提供了一个 AGENTS.md 配置,引导人工智能转向辅导行为,而不是生成完整的解决方案。

    “如果使用得当,人工智能是一个非常有效的助教。” – Carson Gross


技能优先级的转变——沟通、商业洞察与架构

回答: 随着纯粹的编码变得不再那么独特,清晰的沟通、领域知识和系统架构等技能将变得更加重要。

  • 沟通: 向大语言模型和人类清晰阐述问题的能力将使开发者脱颖而出。
  • 商业理解: 了解现实世界的问题领域,让程序员能够创造出超越代码生成本身的价值。
  • 架构: 组织大型系统和控制复杂性仍将是以人为中心的活动;构建较小组件的经验依然是必要的。

    “随着时间的推移,软件架构将成为一项更重要的技能。” – Carson Gross


人工智能的使用效果因经验水平而异

回答: 高级开发者可以利用人工智能进行分析、小规模生成和组织思路,而初级开发者必须抵制过度依赖,专注于编写代码。

  • 高级开发者使用人工智能来审查代码、建议测试并生成他们随后会进行核查的样板代码。
  • 初级开发者面临“氛围编程”(vibe coding)的风险——即快速、浅层的解决方案,这会增加偶然的复杂性。

    “你必须编写代码。致公司:你们必须让初级开发者至少编写部分代码。” – Carson Gross


就业市场现实与人脉策略

回答: 目前的程序员就业市场疲软,但个人人脉(家人、朋友、熟人)比通用的招聘网站更有效。

  • “四个F”(家人、朋友、朋友的家人)提供了竞争优势。
  • 即使是非技术岗位(分析师、会计师),在结合编程能力后也会变得更有价值。

    “在这些岗位之上具备编程能力将非常有价值,并很可能为你开启一段伟大的职业生涯。” – 评论者 Baguette5242


社区观点——共识与分歧

回答: 大多数评论者同意基础知识很重要,但也有人认为人工智能最终将取代许多开发者的任务。

  • 共识: 许多人强调理解代码的必要性、偶然复杂性的风险以及架构的重要性。
  • 怀疑: 一些人(例如 @johsole, @Kuyawa)预测开发者人数将大幅减少,并建议转向创业。
  • 细微差别: 另一些人(例如 @riantogo)声称他们可以在不写一行代码的情况下交付复杂的产品,这凸显了实践中日益扩大的鸿沟。

总结

回答: 编程将继续是一项相关的职业,因为问题构建、复杂性管理和沟通这些核心人类能力无法被完全自动化;然而,这一职业将向更高层次的思维、战略架构和有效的人工智能协作方向演进。

开发者应继续编写代码以建立思维模型,将人工智能作为学习辅助而非替代品,并培养诸如清晰沟通、商业领域知识和系统设计等互补技能。

Sources

相关