像 ChatGPT 这样的生成式 AI 工具蓬勃发展,专业 AI 软件工程师即将出现。与此同时,裁员和招聘冻结使找到一份稳定的工作变得困难。
最近,一位读者写信给我,提出了一个问题,这个问题困扰着许多新程序员。
“世界会不再需要初级开发人员吗?”

许多开发人员担心人工智能会威胁到他们的工作安全,但新入行难的开发人员最容易受到这种担忧的影响。
人工智能取代初级开发人员的可能性具有巨大的影响。出于这个原因,许多有抱负的程序员想知道是否仍然值得学习编码。他们还担心,当初级开发人员的供不应求时,他们如何在人工智能驱动的世界中竞争。
今天,我将讨论为什么世界仍然需要新的程序员,以及为什么我们应该拥抱生成式人工智能而不是害怕它:
如果人工智能不是终点,那它是什么?为什么我们仍然需要初级开发人员?在人工智能时代,初级开发人员需要哪些技能?如何在就业市场中脱颖而出?如果人工智能不是终点,那它是什么?纵观编程历史,我们使用的技术发生了巨大的变化,而且越来越好。在 1970 年代之前,大多数计算机程序员使用穿孔卡来编写和存储计算机程序。然后他们转向汇编语言,最终转向现代编程语言,如C++,Python,Java等。
每一次技术进步都有助于减少乏味,提高软件工程师的工作效率。因此,我们能够解决更大的问题,并构建更复杂、更强大的解决方案。打孔卡和汇编语言等早期技术很难使用,我们当然不可能用它们构建像Facebook这样的现代应用程序。
这些技术进步并没有使程序员过时。事实上,他们让更多的人可以学习编程。
同样,人工智能工具也不会阻止对开发人员的需求,它们只是编程技术发展的下一步。
随着人工智能集成到更多的产品和服务中,它将为开发人员创造更多的就业机会。随着高级开发人员进入高级角色或 AI 角色,我们仍然需要入门级开发人员来执行更通用的任务。在此过程中,我们将不得不解决新问题。例如,生成式人工智能工具需要密切关注隐私和数据完整性问题。
可以选择使用生成式人工智能工具是我们应该庆祝的奢侈。但是,就像电钻不能取代对勤杂工的需求一样,人工智能工具也不会取代对开发人员的需求——它们只会帮助你更有效、更高效。
为什么我们仍然需要初级开发人员?虽然生成式人工智能工具将继续流行,但它们并不能取代对人类开发人员的需求。这是因为这些工具有几个限制。
人工智能缺乏细致入微的人类判断力入门级工程任务(如集成 API 和 UI 组件)可能看起来很简单。然而,创造一种令人愉快的体验,为用户解决问题,需要人情味。如果没有人类智能,我们就无法编写优化、可维护、可扩展的代码。
编写软件是一项复杂的任务,需要上下文。顺便说一句,人工智能最大的局限性之一是它缺乏上下文。给定问题的上下文决定了什么是功能解决方案,并影响编写和运行的代码。没有它,我们只能编写一小段代码。这种必要的上下文无法在代码库本身中找到,而是在人类的头脑中。
例如,如果我们正在开发一个健康监测应用程序,它的成功不仅取决于监测健康指标的算法,还取决于对医疗保健专业知识、用户多样性、文化饮食规范和隐私法的理解。这些都是 AI 无法从代码库本身中提取的必要细节。
虽然人工智能工具减少了繁重的工作,但它们无法完全理解问题或评估解决方案。开发人员(包括初级开发人员)的真正价值在于他们能够辨别在情境中解决方案的最佳应用。
AI 只执行开发人员核心流程的一部分在编程语法和算法之下,开发人员的核心任务在于解决问题。
我们可以将解决问题分解为 3 个步骤:
了解问题和用户需求思考解决问题的方法将问题翻译成计算机可读的形式(编写代码)在这个过程中,人工智能只能帮助编写代码的最后一步。事实上,在最新的 Stack Overflow 开发者调查中,82.55% 的开发者表示使用生成式 AI 编写代码。但是,开发人员的工作包含的任务比编写代码要多得多,从调试到代码文档等。
如果没有人类的监督和指导,生成式人工智能工具无法帮助我们解决问题。他们可以接受提示并生成代码(这对于简化您的工作非常有用)。但是他们没有可靠的执行之前步骤所需的完整上下文和人类判断。即使是 AI 生成的代码也需要仔细审查和编辑。
人工智能是一个闭环解决问题的关键是创造力,为此,我们需要人类的想象力。如果没有人类的创新和创造力,你的代码将停留在它已经看到的模式中。
事实证明,生成式人工智能和为它们提供支持的大型语言模型 (LLM) 只能生成反映他们以前见过的内容的代码。它们的功能是根据它们所训练的数据预测下一个单词或序列。例如,如果用户输入“打开文件”,则模型会根据从其训练数据得出的概率来预测下一个单词,其中可能包括“打开文件”后面跟着特定命令或短语的几个实例。
这种跳出框框思考的能力是生成式人工智能根本无法与人类竞争的另一项技能。他们的基本模型在现有知识的“闭环”中运作。另一方面,人类的创造力不受模式的束缚。在思考解决问题的新方法时,我们可以从现有代码库和文档之外的各种来源中汲取灵感。
人类的想象力与伟大的文学作品不会仅仅因为人工智能而消亡的原因相同。即使你把所有的文学书籍都喂给人工智能,它也不会产生任何新的东西。这将有点公式化。
在人工智能时代,初级开发人员需要哪些技能?如今,每个开发人员最终都需要学习 AI 技能。初学者应该学习提示工程,这样他们就可以学习如何为 ChatGPT 等生成式 AI 工具编写有效的提示来帮助编写代码。但他们也应该能够编辑 AI 生成的代码。
也就是说,如果你还没有掌握编程基础知识,就不要跳到人工智能技能。毕竟,如果你自己没有相关经验,你就无法正确地建议人工智能工具如何解决问题。此外,您还需要具备正确的专业知识来编辑 AI 生成的代码。
另外,我们还需要学习数学。学习数学的基本原理并没有因为我们能够使用计算器而改变。因此,初级开发人员技能的其余部分保持不变。
最后,新的程序员仍然需要坚实的编程基础知识。您仍然需要知道如何编写代码,在特定方案中使用哪些数据结构和算法,以及如何实现它们。
如何在就业市场中脱颖而出?生成式人工智能工具是一项巨大的进步,它们可以帮助我们完成繁琐的任务,我们将能够将更多的时间集中在以新的有效方式解决问题上。
初学者应该专注于快速工程开始,而更有经验的开发人员可以继续学习机器学习和 LLM 以利用 LangChain 等其他工具。
如果你正在寻找你的第一份开发工作,你不能在当今市场上懈怠工作准备。你需要通过建立一个强大的多样化项目组合和打击面试准备来为你的求职做准备。尽可能多地参与展示您的作品和结识新朋友的机会——从开源协作到编码竞赛再到社交活动。
最后,祝你好运。记住,人工智能是一种可以帮助你的工具,而不是取代你。