一位读者近期致信作者探讨在大型语言模型(LLM)时代学习编程的问题,作者获准公开引信件作答但坦言回答不严谨。读者欲以史家方式知晓深懂软件者如何看人工智能时代的学习与能力。约一年前他迷上人工智能辅助编程,虽无计算机背景,借LLM建成含类型脚本(TypeScript)/JavaScript、应用程序接口(API)与PostgreSQL等的较大系统,初时如魔法,今转生产产品却遇困。
正文
一位读者最近给我写了一封长信,提出许多关于在LLM时代学习编程的问题。来回沟通后,我获准公开大段引用信件,尝试公开作答。我的回答都不算严谨;局势如此不确定,我只能尽己所能,但不声称这些答案包含任何不变的真理。
我想了解深谙软件的人如何思考AI时代的学与能。我近乎以史学家方式:直接问人如何在技术转型中理解当下。
约一年前我迷上AI辅助编程。虽无正式计算机背景,凭LLM我建成颇大的TypeScript/JavaScript系统,涉及API、PostgreSQL、LLM流水线、研究自动化和多模型工作流。起初如魔法:AI似抹平了想法与实现的距离。
但如今想把这系统变成真正生产产品,却举步维艰。用AI修好一个错,又冒出另一个,再有的部分行为我全然不解。数月重构后我不安地意识到:我可能建了超出自己理解水平的系统。一切正常时鸿沟几不可见,出问题时便赤裸裸。
有时我真不知下一步不问模型该怎么办。这让我怀疑这一年是在造产品,还是造了产品的表象:足够精巧能跑,我却未深解到真正掌控。
我绝不反AI。我着迷这些系统,想专业与之共事。但不确定该与它们保持何种正确关系。
我也无法确定,但继续前我愿透明亮明立场。我尚未决定对AI的态度,但倾向于反感它,尽管清楚其或不可阻挡。我确实用它实验,常惊叹,有时懊恼。往往最惊叹时憎恶最深。它差时令人挫败,但至少给我一丝温暖幻象:三十余年所学仍相关。它最佳时,我偶想:我该去哪报名 Butlerian Jihad?
我对LLM的立场仅部分基于自身经济社会地位。我够老且够成功,持平条件下可承受失业。却不确定任何知识社会能否承受。LLM或先于其他白领夺走程序员工作,毕竟编程验证或比保险理赔管理等更易。但若知识工作者大规模失业,我不信社会能存续。我通常不谈经济学背景,但此语境下觉得相关:作为经济学家,无法想象30-40%大规模失业不对经济重大影响。我痛感“此前亦如此”论调:技术致失业但创前所未见新职,如针织机、蒸汽机、内燃机、计算机等。这仅部分真:新职确生,但常非失业者所得,煤矿工不会一夜变程序员。中国入世时亦用此论,新职生却不在西方。基于经历与历史,我疑“一切安好”之说。然诚盼己错。我爱编程,愿再干十年。更重要的,我有成年子女,盼他们有世界。
我极想知道你怎么想。你可庆幸在LLM前学了编程基础?若今日从头,还会认真学语言、数据结构、数据库、网络、操作系统、调试与架构吗?你认为AI能让人构建快于理解吗?
我可庆幸学于LLM前?当然,这些技能惠我三十载。若今日起步,我会认真考虑学木工、金工、枪械制造或其他需手眼协调者,因脑力替代或更远。但答问题:我本人现正通过大学课程学数据结构、语言语义等,只为好奇,非图金钱回报。AI让人开发快于理解?待观。开发者数十载本就基于不解之抽象工作:Web开发者不懂编译,编译者不懂集成电路,电路工程者不懂上层抽象。好规矩是:懂你所用抽象之下一层与上一层,便能排大多数错。
你个人怎处理?AI即时解局时,何时用它何时自己扛?若居我位,有庞然大物AI项目却根基弱,你会退后系统学基础、边建边学、还是结合?
这是两个迥异问题,因我不再有弱基。即便遇陌生域,我能凭已知快速上手。假想派我维护纯 RISC-V 汇编应用,那对我最异类。适应虽难,仍不及编程新手难。信不信由你,我写过RISC-V练习程序及编译到RISC-V的练习编译器。若我几乎无软件背景?曾几何时我正是此态。职业生涯初,多年走钢丝:边干边学。1999起写 C++ COM 组件,多不知所为,竟也跑通,甚至消除明显内存泄漏。但我从不悦胡拼不解其理,故如问中所言退而系统学基础。这之于90年中起步的职业良效。今日亦然?我不确:达足以认旧自信属 Dunning-Kruger 曲线“无知而不觉”段之能,耗数十载。你今有此时?诚,有LLM可学更快,因问更精准。三十年前我买书冀含些许裨益,仍须啃大量无关材料。然我疑人类学习可大幅加速。瓶颈非师非材,乃人脑吸新知之速。
最后尤谢谈你怎学编程及今怎学新技术。早岁学新语言用何法?书、项目、读人码、练习、调试或其他?若今有AI在侧需学全新语言,你怎么学?
短答:慢,多试错,偶借书。除极早误触 COMAL 80,我首个编程项目为经济学硕士论文重算分岔图与 Lorenz 吸引子。手边唯有 QBasic,便用它,从随附样例及偶问友朋学。90至00年代多从例与文档学。虽买 C++ 书未竟读,各 Basic 方言与 C# 纯从文档例程撷取。然虽未读书学 C#,书却助我掌 F# 与 Haskell。多年倚书自修,如我的 Goodreads 主页所示,我泛爱书籍。今学全新语言?此经验对2026新手无用:我见多语言,遇新者通常览既有码并查不明处即可。但预设该语言“正常”。若重拾 APL,至少需找教程。你或注意到我少用LLM学东西。LLM不幻觉,它们放屁,我深疑其言。非不用,但倾向问可验证之答。如“这 Haskell 表达式能更简吗?”有用答为代码建议,成则成,短则短,易验。而“我该学什么下一步?”无可验答,我倾向不问。总之,我偏好问 LLM 可证伪问题。
评论
多数人强调夯实编程基础与批判性思维,视 LLM 为加速但易致能力退化的双刃剑;少数人则认为编程正蜕变为需求描述与管理,或嘲讽自称“构建”者的妄念。
认为年轻人仍须从底层无 LLM 学起,否则会陷入理解死循环
- 多位开发者指出,缺乏基础知识时,LLM 生成超出理解的项目,一旦需修改便无法诊断,如同向专家追问却不懂其术语(较多人)。 > 若没有基础,机器最终会要求你做不知后果的决策,澄清时便掉进无底洞(@lordnacho)
认为 LLM 是双刃剑:加速但易致能力退化
- 专家用作快速初级工有益,但新手易陷生成循环难成专家;运维依赖云 AI 反而拖慢,且宕机时无人懂代码(较多人)。 > 用得越多越像 oracle,自身能力越弱,初级者更难成长为专家(@duendefm)
认为编程正演变为管理、描述需求而非抠底层细节
- 类比做饭不需懂耕作,未来多数人的技能转向指挥 AI、关注产品迭代,不必纠结字符串指针等底层(少数人)。 > 就像没人因不会种地吃饭而内疚,编程将变成告知需求与迭代(@Razengan)
认为用 LLM 生成代码却自称“我构建”是妄称
- 花钱让外包写代码不会自称构建,如今用 LLM 输出却称自建,实为幻觉,现实会教训他们(少数人)。 > 花50刀让模型吐个克隆版就宣称“我建成了”,其实你啥也没建(@MichaelRo)
认为 AI 不会完全取代程序员,而是转向维护与架构
- 技术史表明先替代低效部分,人转向操作机器;LLM 缺产品大局观,稳定可维护系统仍需专业工程师;形式逻辑代码需人维护(较多人)。 > 自动化后人类转为维护、操作机器,程序员未来五十年仍必要(@0xbadcafebee)
认为 LLM 可作导师加速学习,但须正确使用
- 像计算器或辅导老师,用简化提示可懂复杂主题;有人反而因此爱上编程;但需主动假设调试而非直接要答案(较多人)。 > 让模型用初中生能懂的话解释,比视频更有助于自学各科(@jijji)
认为新工作会替代旧岗,但失业者多难转型
- 有人以中国入世说明岗位被替后失业率仍低;但对立意见指出失去工作的人多数没时间精力转新岗,仅少数过渡(分歧)。 > 新工作确实会被创造,但九成失去工作的人赶不上趟(@risyachka)
认为应继续推进 AI 直至可靠,而非暂停
- 当前 AI 刚好危险,只有发展到可信赖才安全(少数人)。 > 现在 AI 仅够格危险,所以应继续开发到能依赖为止(@mentos)
有价值的补充
- 从 Curry-Howard 同构看,编程语言是形式逻辑记号,自然语言维护差,故程序员读形式描述必要,编译器才是真自动化(@js8)。
- 教子编程新法:手作项目保底,AI 当编译器处理架构需求,先写假设再让模型验证,培养调试直觉(@aethertap)。
- 自写代码久置亦难懂,AI 若注入正确提示可助抽象,但过度抽象词不达意(@cortic)。