不要关闭你的大脑
不要关闭你的大脑
(视频)
编写给AI时代的程序员与学习者的5条逆直觉思考
在AI编码工具(如Claude Code、Copilot)日益普及的今天,程序员的未来将走向何方?学习编程的本质是否正在改变?这些问题困扰着每一个身处技术浪潮中的人。我们不再仅仅是代码的创作者,更像是与一个强大但仍需引导的智能伙伴共事。本文将深入挖掘编程语言巨擘Chris Lattner和顶尖计算机科学教育家们的深刻见解,为您揭示5个关于AI与编程未来的、出人意料却至关重要的真相。这些逆直觉的思考,将帮助您在AI时代重新定位自己的核心价值。
--------------------------------------------------------------------------------
1. AI需要“成人监护”:顶尖工程师的首要准则
尽管AI工具的生产力提升效果显著,但盲目信任是危险的。Swift语言之父Chris Lattner鼓励他的团队使用AI编码工具来提高效率、减少乏味工作,但他同时强调了一个核心前提:程序员必须时刻保持大脑活跃,对AI的产出进行审慎的评估和监督。
他用一句精辟的话概括了这一原则,这句话值得所有开发者铭记:
“The tools are amazing, but they still need adult supervision.”
这句名言的背后,是深刻的工程责任感。将“人类置于环路中”(keeping humans in the loop)对于确保系统的安全性、性能和长期可维护性至关重要。AI可能会让代码变得“疯狂”,例如在不同地方复制粘贴同样的代码,这会制造出可怕的**“维护噩梦”——当你需要更新逻辑时,不得不修改多个实例,并极易引入新的bug。Lattner将这种让AI全权处理的危险行为称为“氛围编程”(Vibe coding)**,并对此提出警示。这不仅是一个技术选择,更是保障软件质量的职业底线。
2. 让代码对AI友好的秘诀:首先让它对人友好
如何编写能让大型语言模型(LLM)更好地理解和协助的代码?一个反直觉的答案是:不要刻意去“优化”给AI看,而应该首先专注于让代码对人类友好。
Chris Lattner的建议直截了当:“Make it human-friendly first”。其背后的逻辑十分清晰:为人类同事编写的清晰注释、有意义的变量命名、简洁的函数以及合理的架构,恰好为AI提供了最丰富、最准确的上下文。当代码的意图和结构对人来说一目了然时,AI也就能更准确地理解其逻辑,从而生成更高质量的建议、重构和补充。这一观点提醒我们,编程的核心始终是清晰的沟通,而这一原则更深层次地触及了编程语言设计的根本权衡:即在**“表达力”(向硬件表达的能力)与“可读性”**(向人类表达的能力)之间寻求完美的平衡点。
3. “刻意挣扎”:在AI时代不可缺的深度学习方式
在可以轻易获得答案的时代,“挣扎”与“试错”的价值反而变得前所未有地重要。教育家Kirupa指出,在过去,学习资源相对匮乏,学习者被迫通过“挣扎”(struggling)来解决问题——例如,从基础的HTML开始,然后是内联颜色,再到理解十六进制颜色代码,这个过程虽然缓慢,却能建立起对底层原理的深刻理解。
如今,AI工具可以在几秒钟内提供一个“90-99%准确的答案”,让学习者可以轻易跳过这个充满挑战的探索过程。这虽然提高了效率,却可能阻碍了真正的认知形成。分解问题、尝试不同方案、独立寻找答案的“挣扎”过程,恰恰是建立深刻知识记忆和培养批判性思维能力的关键。教育家Elisa Cundiff将这种轻易获得答案而产生的满足感称为“学习的幻觉”(illusion of learning)。她观察到,有学生用AI完成论文后,虽然承认作品并非出自自己之手,感觉**“太容易了”,但最终用“交总比不交好”**来说服自己。这种幻觉很危险,因为它让我们误以为自己掌握了知识,而实际上,我们可能只是知识的搬运工,并未将其内化为真正的能力。
4. 新的核心技能:从“编写代码”到“审查代码”
随着AI越来越多地参与到代码编写中,软件工程师的角色正在发生根本性的转变。我们正从纯粹的代码创作者,转变为AI代理的“监督者”(supervisors)。
正如学者Michael在其《纽约时报》的文章中所指出的那样:“The essential skill is no longer simply writing programs but learning to read, understand, critique and improve them.” 这意味着,未来的工程师需要具备更强的代码审查能力、系统架构理解力和批判性思维。我们的工作重心将更多地放在评估AI生成的代码是否满足质量、安全、性能和可维护性标准上。这一转变也预示着计算机科学教育的未来:教学的重点必须转向培养学生掌握这种不可或缺的监督技能。这要求我们具备更高层次的抽象思维和系统性思考能力,确保我们是AI工具的主人,而非其被动的执行者。
5. 一个隐藏的风险:AI可能正在减缓初级开发者的成长
一个值得警惕的行业动态正在浮现。正如学者Juho Leinonen所指出的,一些资深工程师已经观察到,他们开始使用AI来处理那些过去通常会分配给初级工程师的任务。这些任务,如编写单元测试、实现简单的功能模块或进行代码重构,是初学者积累经验、熟悉代码库和成长为成熟开发者的重要途径。
这种转变可能会无意中减少初级工程师的实践机会,从而减缓他们的成长速度。从长远来看,这甚至可能对科技行业的人才梯队建设和劳动力多样性构成潜在威胁。当然,这只是一个观察中的挑战,就连信息源的作者本人也表示**“并非100%确信其真实性——但听起来合乎逻辑”**。然而,它深刻地揭示了技术变革背后复杂的社会与组织影响。我们必须开始思考,如何在一个AI辅助的未来中,确保下一代开发者依然能获得足够的高质量成长机会。
--------------------------------------------------------------------------------
结论
AI的浪潮并非要取代人类的思考,恰恰相反,它要求我们进行更高层次的思考。我们正在从代码的执行者,转变为系统的监督者、批判者和架构师。在AI时代,真正拉开开发者之间差距的,将不再是编写代码的速度,而是我们深度思考、保持好奇心和进行批判性思维的能力。当AI成为我们无处不在的合作伙伴时,我们该如何确保自己建立的是真正的智慧,而不仅仅是借用它的智能?

共有 0 条评论