聊聊 AI 阴影下的程序员生存技能

发布时间:2024-12-21 19:05

  近日,英伟达 CEO 黄仁勋在世界政府峰会访谈中表示,不应再让孩子们学习编程。此言一出,引发了广泛的讨论。那么,在 AI 能够编写代码的今天,程序员是否还有存在的必要呢?

  以一个简单的编程案例来探讨这个问题。我使用剪映软件制作了一个字幕跟随效果的视频。为了实现这一效果,我需要将每个字幕的动画时长调整为与字幕时长相同。手动调整显然效率低下,因此我尝试利用 AI 编写代码来自动化这一过程。

  我将剪映的项目文件提供给 Claude,并要求其编写代码将动画时长修改为与字幕时长一致。Claude 很快找到了动画与字幕的对应关系,并生成了代码。然而,代码运行后并未达到预期效果。经过一番调试,我发现 Claude 找错了对应关系,并在修正后成功实现了字幕跟随效果。
 

  这个过程可以划分为三个阶段:首先,需要构思出可能的解决方案;其次,需要具备熟练运用编程语言编写代码的能力;最后,需要具备分析问题和解决问题的能力。许多初级程序员仅停留在第二阶段,即熟练运用编程语言编写代码以完成指定功能。对于这部分程序员而言,他们很可能被 AI 取代,而且这一过程已经开始。Claude 在整个任务中表现最好的部分就是代码编写,当需求、指令和方案明确时,Claude 能够快速而精准地生成代码。

  因此,如果一个程序员的能力仅限于熟练运用编程语言,那么即使在当前的 AI 面前也已不具备优势。AI 已经彻底抹平了编程语言的技术鸿沟。实际上,不仅仅是初级程序员,所有处于初级阶段的白领职位都将面临被 AI 取代的风险,尤其是那些具有明确标准和可遵循流程的职位,例如数据分析、初级会计师、律师助理等。

  那么,中级程序员是否也会受到 AI 的冲击呢?答案是肯定的。虽然 AI 目前主要解决了语言问题,使得人们无需学习特定的编程语言,只需通过自然语言即可让 AI 编写程序,但这并不意味着任何人都能成为合格的软件开发人员。学习计算机科学的意义在于培养人们明确需求、指令和方案的能力,而这些是短期内 AI 无法替代的。计算机科学的重点从来都不是教授某种编程语言的熟练运用,大学教育的重点也从来不是知识的学习,而是学习能力的培养。

  那么,什么是 AI 应用的核心能力呢?我认为是 Prompt engineering 以及 AI 与自动化的结合。许多人认为 Prompt engineering 的重要性源于 AI 的不成熟,未来随着 AI 理解能力的增强,Prompt engineering 将不再重要。这种观点至少忽略了三点:首先,即使五年后 AI 发展到无需 Prompt engineering 的程度,你是否愿意等待?其次,除非 AI 能够读心,否则 Prompt engineering 将始终是一项重要技能。最后,AI 优化 Prompt 的过程会代替人做出许多决定,从而导致失控。

  回到开头提到的三个阶段能力的第一项:构思可能的解决方案。这需要广泛的领域知识、跨领域的思维模式、好奇心和探索精神,以及对核心能力的关注。例如,在 AI 爆发的初期,我利用 ChatGPT 的推理能力建立了一套自动化工作流,对 AI 相关信息进行重要性评级,作为信息筛选的第一步。

  如何训练这项能力呢?首先,需要积累广泛的领域知识,建立跨领域的思维模式。其次,要保持好奇心和探索精神,尝试以多种方式解决问题,质疑现有的解决方案并探寻其背后的逻辑。最后,要关注核心能力,避免陷入虚假的学习状态。

  对于中级程序员来说,他们将很快感受到来自初级程序员甚至小白的冲击,因为 AI 降低了行业的进入门槛。普通程序员的黄金时代已经结束,AI 要么奴役人类,要么成为人类的工具,而谁能更有效地操控这个工具,谁就能占据领先地位。

  黄仁勋所强调的,是普通人不再需要专门学习编程语言,但计算机科学的基础知识以及多领域的知识融合依然重要。

  总结一下,计算机科学仍然有必要学习,因为其更重要的意义在于培养人们解决问题的能力,这项能力短期内 AI 无法替代。同时,要提升自身的学习能力,致力于学习驾驭 AI 的技术。程序员会被 AI 替代吗?答案是不再学习的人会被快速淘汰,这在任何年代都成立,只是 AI 让这个淘汰来得更加迅速而猝不及防。


更新时间:2024-12-21 19:16