离殇
后端开发
·今天 00:55
AI 时代下初级程序员还有未来吗? 结合鱼友们的文章以及自己工作经历(练习一坤年)有感而发(声明:个人观点,仅供参考)。 大家已经多久没有正经写过代码了呢?不是指给 AI 描述需求,让 AI 帮你生成代码,而是所谓的“古法编程”——打开编辑器,自己敲代码、查文档、调 Bug,一点一点把东西做出来。现在回头想想,大多数时候我们可能已经习惯了描述需求,而不是亲自动手实现需求。AI 编程正在成为越来越主流的开发方式,甚至可以说,大家已经习惯了“懒”:能让 AI 写的,就绝不自己写;能让 AI 查的,就懒得自己翻文档。问题来了:在 AI 已经如此强大的今天,还有必要学这些计算机基础知识吗?初级程序员还有存在的必要吗? 说实话,我自己现在也已经很少手写代码了。大多数时候就是把需求描述清楚,让 AI 去实现,然后自己再负责确认、测试和修改。因为大部分时候,就算我自己亲自动手写,也未必能比 AI 写得更好。更关键的是,AI 写代码实在太省事了。需求描述清楚,确认一下结果,剩下的时间完全可以去干别的事情。更有意思的是,人一旦习惯了“懒”,真的很难再回到以前那种勤快的状态。以前公司断网的时候,我虽然查不了文档,但至少还能先自己写,等网络恢复以后再补一下不确定的地方;现在断网了,我第一反应往往是等网络恢复。以前觉得这是工作效率,现在回头看,其实也是能力和习惯正在悄悄发生变化。 在 AI 编程的背景下,基础到底重不重要?如果只看“写代码”,你可能认为基础没那么重要了,因为你自己根本不动手写,又何谈基础?现在很多项目,架构可能是你参与设计的,需求是你负责沟通的,代码则交给 AI 实现,测试让 AI 帮你补,文档让 AI 帮你写,甚至连重构都可以继续交给 AI。说得难听一点,有些时候程序员更像需求的沟通器、AI 的翻译机。以前是人把需求翻译成代码,现在越来越像是人把需求翻译成 AI 能理解的机器语言描述。 但如果因此觉得“基础不重要”,那就真的大错特错了,基础是很重要的,只不过它的重要性已经发生了变化。以前基础决定了你能不能把代码写出来,现在基础更多决定了你能不能判断 AI 写出来的东西到底对不对。 AI 最让人难受的地方,并不是它不会写代码,而是它经常能够在大部分时间里表现得非常正确,然后突然在一个极不起眼的地方埋下一根针。99.99% 的代码看起来都没问题,剩下的 0.01% 却可能刚好是线上最要命的那个边界条件。等这根针真正扎出来的时候,可能炸掉的不只是一个方法,而是一大片业务,然后你再花几倍甚至几十倍的时间和 token 去让 AI 修这个问题,修完以后又可能在另一个地方埋下一根新的针。 我自己遇到过很多类似的情况:出了 Bug,让 AI 修改,它给你 A 方案;测试以后告诉它不对,它再给你 B 方案;B 还是不对,它继续给你 C 方案。到了这个时候,AI 要么开始在几个方案之间来回循环,要么开始一本正经地胡说八道,陷入一个怪圈(至今没找到好的解决方案)。更糟糕的是,AI 每次说得都特别像那么回事。如果你没有基础,根本不知道它说的是不是对的,只能继续相信它,然后不断试错。可如果你有基本的编程基础,至少可以把它生成的代码看懂,可以沿着调用链、数据流和业务逻辑一点一点分析,最终找到真正的问题在哪里。 基础的价值,从“我能不能写出来”,逐渐变成了“我有没有能力判断它写得对不对”。AI 是一把非常好用的剑,但剑再锋利,也要看执剑的人是谁。你至少得知道这把剑砍下去会发生什么,否则你不是在使用 AI,而是在把决策权交给 AI。 尤其是现在很多项目都在用所谓的 Vibe Coding,最大的风险并不是代码跑不起来,而是代码跑起来以后,写代码的人自己都不知道它为什么能跑。能运行和能上线,完全是两回事;能上线和能长期维护,又是另外一回事。一个程序能不能称得上“好”,绝不是看它能不能把功能跑通,还要看它的可维护性、稳定性、性能、安全性、异常处理、日志、边界条件,以及未来出了问题以后有没有人能接得住。你觉得 AI 写得“挺好”,不代表它真的好,因为你自己的判断标准可能已经被“能跑”这件事情降低了。 AI 不是黑魔法,它的输出质量很大程度上取决于输入、上下文、约束和验证。你给它一个模糊的需求,它当然可能给你一个看起来很完整、实际上漏洞百出的答案。更麻烦的是,AI 会非常自信地犯错,会把错误信息、错误逻辑甚至不存在的东西包装成一个完整答案。以前我们查资料,会下意识地交叉验证,会去看官方文档,会确认不同来源是不是一致;现在很多人因为 AI 太方便了,慢慢把这个习惯丢掉了。AI 说什么就是什么,最后出了问题,人反而成了 AI 错误的背锅侠。 这也是为什么我越来越觉得,AI 时代真正稀缺的可能不是“会不会写代码”,而是判断力。尤其是在 Coding 领域,这件事情会被无限放大。因为 AI 可以极大降低写代码的门槛,却不能自动替你建立一套可靠的审美和判断标准。没有判断力的人,AI 给他的是生产力;有判断力的人,AI 给他的是生产力放大器。两个人都在用 AI,但最终做出来的东西可能完全不是一个水平。 甚至从长期来看,过度依赖 AI 还可能带来另一个问题:独立思考和逻辑构建能力退化。以前我们写一个功能,需要自己拆需求、设计数据结构、推演流程、处理异常、不断试错,这些过程本身就是思考和学习。现在 AI 可以直接把一条完整的逻辑链摆到你面前,人很容易跳过中间那些最费脑子的推敲过程。短期来看,这当然非常高效;但如果一个人长期只负责提出问题和验收答案,而很少亲自经历问题拆解和解决过程,那么他的能力到底是在增长,还是只是在越来越熟练地使用工具,这其实值得我们认真想一想。 还有一个很现实的问题:AI 现在生成代码的速度已经远远超过人类,但它在工程化上仍然存在不少问题。主链路往往没什么问题,真正麻烦的反而是那些边缘情况。它特别喜欢在一些小方法里直接吞掉异常,又经常不愿意打足够的日志;注释可能写得很多,但真正出问题的时候,你会发现线上没有足够的信息帮助你定位。边界条件更是一个高频问题,同样的提示词、同样的逻辑,有时候它会考虑某个特殊条件,有时候又直接跳过去。AI 还很容易过度设计,尤其是在库表结构、抽象层和工程架构上,经常会把一个本来很简单的问题搞得异常复杂。 更痛苦的是,AI Agent 正在从“帮你写代码”走向“直接替你操作环境”。这意味着它的能力越强,错误的代价也越高。过去一个人想做大规模破坏性的操作,往往需要大量时间和步骤;现在一个 Agent 如果拥有足够权限,可能几条指令就能完成一个人类几乎不可能在短时间内完成的操作。所以未来真正需要解决的,不只是“AI 能不能把代码写出来”,而是权限、审计、回滚、测试、隔离和责任边界这些工程问题。AI 能力越强,兜底机制反而越重要。 这也解释了为什么高级程序员依然有价值。绝大多数 AI 生成的代码,本质上是在寻找从 A 到 B 最快、最直接的路径。但最快的路并不一定是最好的路。真实的生产环境从来不是一个理想环境:网络可能很差,设备可能很旧,数据可能异常,流量可能突然暴涨,数据库可能抖一下,甚至还可能遇到那些你以为已经不存在的 IE。真正复杂的工程问题,往往不是“正常情况下怎么跑”,而是“所有不正常的情况下怎么办”。调优、极端情况、系统稳定性、故障恢复、安全性以及长期维护,这些东西目前仍然需要大量工程经验。 而且没有哪个高级程序员是凭空出现的。所有所谓的高级,都是从基础、中级一点一点成长起来的。如果行业因为 AI 强大,就认为初级程序员已经没有培养的价值,那么短期看,企业确实省下了培养成本;但几年以后,当这一代高级工程师逐渐离开一线,又从哪里补充新的人才呢?没有人愿意培养初级工程师,人才断层迟早是会出现的。AI 可以帮助一个初级程序员快速获得接近中级程序员的生产力,却不能凭空替他积累十年的工程经验。 初级程序员还会不会存在?我认为会,但数量一定会缩水,而且岗位要求会越来越高。以前一个企业愿意招一个刚毕业的人,从基础工作开始慢慢培养;现在相当一部分基础工作已经可以由“中级程序员 + AI”完成了。高级程序员更多去解决项目中的复杂问题,中级程序员借助 AI 承担大量开发工作,而原本属于初级程序员的那些简单、重复性的工作,正在被一点一点压缩。岗位少了,要求自然就高了,甚至可能出现一种很现实的情况:一个刚毕业的学生,企业嘴上招的是初级,实际上要求的已经接近过去中级程序员的能力。学历、项目经历、实习经历、基础能力,能对上就来,对不上就算了。因为企业是挣钱的地方,不是职业培训机构,不会迁就一个完全没有生产力的人。 所以现在的初级程序员,处境确实尴尬了很多。干吧,要忍受各种不合理;不干吧,也未必有更好的去处。尤其对于普通专科、二本毕业生来说,这个变化可能会更加明显(为了生活的苟且,为了碎银几两,接收社畜、压榨)。以前你还有机会靠时间慢慢熬出经验,现在这个过程正在被 AI 压缩。你不能再把“我会写代码”当成核心竞争力,因为 AI 写得不仅比你快、比你多,还比你写的更好;你真正需要建立的是理解代码、判断代码、设计系统、具备审美、解决问题和承担结果的能力。 说到底,AI 并没有让程序员变得没有价值,它只是把程序员的价值从“生产代码”逐渐往“判断、设计、验证和兜底”上推。以前一个程序员一天写几万行代码可能是值得骄傲的事,现在 AI 一分钟就能给你生成几十万行代码,代码本身已经越来越不值钱了,真正值钱的是,你能不能知道哪些代码根本不应该写,能不能判断 AI 的方案是不是靠谱,能不能在它陷入死循环的时候找到真正的问题,能不能在系统出事故的时候把它救回来。 未来的程序员可能越来越像一个工程师、架构师、AI 协作者和一个具备审美能力的人的结合体,而不再只是一个“写代码的人”。AI 在不断变强,甚至AI 现在的架构已经开始走向预测编码的方向了。但只要 AI 还会犯错,只要现实世界还存在复杂的边界条件,只要项目还需要对业务、用户和生产环境负责,那么“判断力”就不会过时。 基础到底要不要学?我的答案是:要学,而且基础还很重要,不是因为你以后还要每天手写几千行代码,而是因为你总得知道 AI 给你的东西到底是什么,你可以不用像以前那样知之甚深,但至少要能看懂简单的代码知道一些原理,否则没有一点基础终究是空中楼阁。能力不是权限,AI 能做到什么,不代表它可以做什么,把“能做到”误当成“可以做”迟早会出大问题的,你可以不再亲自挥剑,但至少得有能力判断这一剑应该往哪里挥。 AI 时代,未来是超级个体和领域专家的世界,真正危险的从来不是不会写代码的人,而是一个人拥有了极强的代码生成能力,却失去了判断这些代码对不对的能力。剑越来越锋利了,真正需要担心的,是执剑人的手,我们要成为执棋者,不是棋子,AI 是我们的工具,而不是 AI 的工具。
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP