摘要

一句话总结 虽然 AI 能够辅助生成代码并提升专业开发者的效率,但由于软件工程包含需求分析、架构设计、调试等众多复杂环节,目前非专业程序员仍无法仅依赖 AI 胜任专业程序员的工作。

核心要点

  • 程序员角色定位:程序员本质是“软件工程师”,日常工作不仅是编码,还包括需求分析、架构设计、环境搭建、调试、部署和日志分析等,编码仅占一小部分时间。
  • AI 的现有能力:AI 能够根据截图和描述生成模块代码、自动补全代码、分析局部代码问题、提取数据、解释代码,并在恰当提示下辅助生成架构文档。
  • AI 的能力边界:AI 目前无法进行需求分析、无法独立完成大型项目(仅限几千行以内的小项目)、无法运行代码和独立 Debug,也无法对复杂项目进行架构设计和模块拆分。
  • 对专业人员的价值:合格的程序员可以利用 AI 大幅节省时间,提升工作效率。
  • 对非专业人员的局限:非专业人员难以将产品需求转化为 AI 可执行的指令,无法将整个项目代码交给 AI 排查 Bug,也缺乏定位和快速修复生产环境故障的能力。
  • 责任归属:当服务崩溃时,AI 无法承担责任(背锅)。

风险与不足

  • 安全隐患与重大损失:AI 生成的代码可能存在严重的安全隐患,非专业人员若缺乏鉴别能力而直接部署到服务器,将导致重大损失。

正文

“我很好奇现在招聘程序员,还需不需要代码能力非常强的?因为我现在确实代码都是gpt生成的。那我现在代码能力弱,背一背八股文应付面试,然后工作就一直打开gpt行不?”

这是个好问题,这也代表着大多数人对程序员这个职业的误解,程序员的日常工作并不只是写代码,也不是说代码能力强就厉害。

程序员这个职业,其实日常工作中编码占比没有那么高,开会、debug、需求分析、架构设计、搭环境脚手架、写文档、部署、线上日志分析……这些编码之外的事情要占一大半时间。所以专业的说法是“软件工程师”,表示不仅仅是写程序,而是参与了整个软件工程生命周期的工程师,也就是从需求开始,需求分析、架构设计、编码、测试、运维这一系列过程。

那么 AI 现在能替代的是哪一部分?

  • AI 可以根据截图和描述生成某个模块代码

  • AI 可以自动补全代码

  • AI 可以分析代码中的问题

  • AI 可以分析提取数据

  • 如果你描述得当能辅助生成一些架构设计文档

  • AI 可以给你解释代码

AI 还不能替代的有很多,比如说:

  • 不能帮你分析需求

  • 不能完成完整的项目(很小的几千行以内的可能可以)

  • 不能运行代码,不能帮你debug

  • 不能独立的根据需求做架构设计,也无法把复杂项目拆分成简单的模块

  • 服务崩溃,老板需要找个人背锅,AI 不能背锅

所以你想依赖 GPT 就能完成工作?如果你已经是个合格的程序员,那可以帮你省不少事情,效率可以提升不少。如果你不懂程序,有 AI 也很难!比如说:

  • 产品经理把需求交给你,你不知道该如何向 AI 描述清楚,把需求变成可以运行的代码

  • 测试报告一个 Bug 给你,你没办法把整个项目的代码扔给 AI 去帮你分析找出 Bug

  • 生产环境出现故障,你不知道如何去定位,更不知道如何快速修复

  • AI 生成的代码存在严重的安全隐患,而你看不出来,部署到服务器导致重大损失

所以专业程序员是可以靠 AI 提升效率的,非专业程序员想借助 AI 去干专业程序员的活,还是不太现实,至少现在还不行。

关联主题