为了防止AI编程助手的普及导致开发者基础技能退化,一位资深开发者推出了一款应用间隔重复学习原理的训练App,从而凸显了保持基础知识的重要性。
想象一下。每天早晨在上班的路上,你总是习惯性地打开智能手机导航。因为导航会避开拥堵路段,贴心地为你指出最快的路线。就这样过了三年。然而有一天,智能手机突然没电了。在屏幕黑掉的那一瞬间,你突然意识到:“哎?下一个路口是该左转还是右转来着?”明明是每天都在走的熟悉路线,但由于完全将找路这件事交给了机器,脑海里的“地图”已经变得一片空白。
这种在日常生活中常见的令人眩晕的经历,现在正同样发生在全球顶尖精英软件开发者的显示器前。他们失去的不仅是上班路线的地图,而是正在逐渐遗忘编写代码的基础方法。
随着人工智能(AI)代劳编程时代的开启,开发者大脑中的编程肌肉逐渐流失,这种被称为“技能退化(Skill Rot)”的现象成为了IT行业炙手可热的话题。得益于AI助手,开发速度虽然突飞猛进,但人类处理代码和解决问题的基础体力却在变弱,这是一个充满矛盾的境况。简而言之,就像过度依赖计算器后,连乘法口诀都会变得模糊不清一样。
最近,拥有20年经验的资深开发者Djoumé亲身体验了这一可怕的现象。他震惊地发现,由于自己最近过度依赖AI智能体,竟然连基本的编程知识都很难回忆起来 Fata利用间隔重复来对抗AI引发的技能退化…。并非初学者,连资深程序员在AI压倒性的便利面前也丧失了基本功。
因此,为了正面突破这一问题,他向世界推出了一款独特、能够重新训练人类大脑的编程训练App——“Fata”。这不仅仅是硅谷天才开发者们的烦恼,更是关乎在AI时代每天都需要与机器协作的我们所有人未来的重要问题。
这为什么重要?
“反正AI都会自动帮我们写代码,开发者还有必要强行去记忆那种老式的编程语法吗?”
在不懂编程的普通人看来,这是一个完全合理的疑问。正如前面所说,自从计算器发明以来,我们就不再需要心算复杂的七位数乘法了,这两者有什么区别呢?然而,软件的世界与简单的数字计算相比,其复杂性和危险性根本不在一个层面上。
我们每天理所当然地使用的智能手机银行App、机票预订系统、医院患者诊疗记录数据库等,都是由某人编写的数百万行代码交织在一起运行的。如果这些代码中出现哪怕极小的漏洞,就可能发生银行账户资金离奇消失、医院急救系统瘫痪等惨剧。
随着AI深深介入编程领域,开发速度变得前所未有地快。但专家们强烈警告,长期且广泛地使用AI编程工具,会损害开发者的学习能力和解决问题的能力,并最终导致他们完全丧失安全维护和修复现有庞大软件系统的能力 技能以机器速度退化?AI正在改变开发者学习和思考的方式… - Forbes。
即使编程过程变得越来越自动化,工作速度有了质的飞跃,最终在关键时刻需要承担责任的仍然是“人类”。人类必须在如暴风雪般涌现的代码中揪出致命错误,并为AI指明方向,让其产出正确的结果。尤其是在关乎人类生命或巨额资本的极其重要的环境(high-stakes environments)中投入使用AI时,我们必须保持能够完美控制和监督AI的能力 AI辅助如何影响编程技能的形成。
请再次想象一下。在高速公路上行驶的自动驾驶汽车系统发生了致命错误。需要紧急修复此问题的首席开发者打开代码一看,却慌张地表示:“呃……这是去年AI帮我写的代码,我忘了基础语法,不知道该怎么改。”如果发生这种情况会怎样?开发者的“技能退化”不仅仅是IT行业内部的一个小小插曲,更是直接关系到生活在数字社会的我们日常安全的重大威胁。
通俗易懂:Fata与“间隔重复”的魔法
Djoumé开发的Fata应用软件,正是为了紧紧抓住开发者脑海中犹如晨雾般渐渐消散的知识而诞生的。
这款App涵盖了Python(广泛应用于人工智能和数据分析的流行编程语言)、React(便于制作网站页面和用户界面的工具)、TypeScript(能减少错误的稳定语言)、Rust(运行速度极快且安全的绝对高性能语言)等必备编程语言的基础。进一步延伸到软件架构(设计整个系统结构和骨架的方法),集中训练那些绝不能忘记的核心基本功 Fata利用间隔重复来对抗AI引发的技能退化…。
Fata训练人类大脑的核心武器,正是一项名为“间隔重复(Spaced Repetition)”的科学学习法。结合与他人共同学习的社交学习功能,以及像游戏一样充满乐趣的挑战任务(Gamification),它能帮助开发者快速有效地掌握技术知识 fata - Google Play上的应用。
打个比方,AI编程助手就像最高级的“电动自行车”。只需轻轻踩下踏板,就能毫不费力地冲上陡峭的山坡,实现惊人的工作速度。而且一滴汗都不用流。但是,如果每天都只舒舒服服地骑电动自行车,我们腿部的肌肉就会越来越细。相反,Fata应用软件就像一位严苛的“私人健身教练(PT)”,硬是把肌肉流失的开发者拖进健身房。
那么,“间隔重复”究竟是什么呢?试想一下夏天在阳台花盆里种植物的场景。给花盆浇透水后,几天内土壤都会保持湿润。这时如果为了让植物快点长大而每天浇水,结果会怎样?反而会导致根部腐烂。最健康的植物培育方法,是在土壤即将完全干透之前,在那个绝佳的时机浇水。感到口渴的植物为了生存,会将根系扎得更深、更结实。
我们大脑的记忆机制也与此相同。人类在学到某种知识后,随着时间的推移会慢慢遗忘。心理学将此称为“遗忘曲线”。间隔重复就是通过数学计算,在大脑处于对特定编程知识“即将遗忘的瞬间”,拉响警报抛出测验的技术。“你差不多快忘掉React的这个语法了吧?来,填空题的正确答案是什么?”通过这种方式提问。在这个绝佳的时机再次刺激大脑,这些知识就能从容易流失的短期记忆,转变为深深扎根、永远不会忘记的强大长期记忆。
现状:赞赏与怀疑的激烈博弈
Fata App的问世在科技界引起了巨大反响。许多隐约感到自己正在变得迟钝而感到不安的开发者欣喜若狂地表示:“这正是我需要的、像救生衣一样的工具”。
但与此同时,尖锐的批评和激烈的讨论也接踵而至。在全球最大的科技专家社区Hacker News上,也出现了对其学习方式提出根本性疑问的声音。
一位开发者犀利地指出:“我认为在学习编程时,这种间隔重复学习是‘绝对不该做’的方法。间隔重复或许非常适合机械地背诵随机事实或英语单词,但编程的本质是激烈思考如何解决问题的过程。只要完美掌握了方法论和核心思想,即使不把它当成单词本一样背下来,也应该能在现场用逻辑推导出现确切答案” Show HN:我制作了一个用于精通编程的间隔重复工具…。
也就是说,编程并不是机械地背诵数学公式或英语单词,而是解开复杂逻辑谜题的高级思维游戏。因此存在着强烈的怀疑论:像Fata这样通过闪卡(单词本)方式灌输知识,是否真的能培养出实际的开发能力?
尽管如此,专家们对一个事实深表认同:我们现在正站在一条非常危险的边界线上。AI如今正以人类开发团队根本无法在物理时间内阅读和审查完毕的惊人速度,输出着海量的代码。这导致堆积如山、几乎无人能完全理解的所谓“失控代码”不断增加,迫切需要采取对策来阻止这一现象。
正因为如此,开发者必须尽快摆脱仅凭氛围或直觉向AI下达粗略指令并复制粘贴结果的所谓“氛围编程(Vibe Coding)”阶段。取而代之的是,越来越多的人呼吁我们必须步入基于完美理解、在严密控制下编写和管理代码的“受控编程(Controlled Coding)”世界 从氛围编程到受控编程:如何防止AI…。因为无论AI呈现在眼前的代码多么冠冕堂皇、华丽夺目,只有人类大脑中准确掌握了作为基础的骨架知识,才能安全地掌控正在暴走的机器系统。
未来会怎样?
在过去,敲击键盘最快、挥洒汗水亲手输入一行行代码的人被认为是优秀的开发者。然而,未来的开发者与其说是亲手打字的“作家”,倒不如说更像是苛刻的“主编”,他们需要准确洞察AI在1秒钟内瞬间吐出的数千行庞大代码,并敏锐地找出其中的逻辑漏洞。
想要成为一名能干的主编,应该怎么做呢?必须比一般作家更完美、更深刻地理解基础语法、空格规则和构建文章骨架的原理,才能修改别人(或机器)的文章。同样,对于未来的开发者来说,矛盾的是,“扎实的基本功和对原理不可动摇的记忆”将变得比现在重要得多。
尖端技术发展得越是耀眼,越是容易取代人类的身心劳动,人类反而越需要默默回归最基础的知识和原理,才能成为不被机器牵着鼻子走的真正主人。一位在险恶一线坚守了20年的百战老将开发者,非但没有对AI的惊人速度盲目欢呼,反而因为害怕自己的记忆力衰退而默默制作了“代码单词本App” Fata利用间隔重复来对抗AI引发的技能退化…。这为我们未来抛出的沉重信息,绝不容轻视。
AI的视角
尽管AI正在以惊人的速度发展以帮助我们的日常和工作,但Fata的案例向我们提出了一个非常重要的问题。我们正面临一种矛盾的境地:为了辅助人类能力而精心打造的AI,反而正在一点一点蚕食我们长期磨炼出来的认知能力。随着机器变得越来越聪明,我们或许正在逐渐丧失提问和记忆的方法。
现在,我们迫切需要的不仅是“如何更熟练地驾驭AI”这类技术性的使用方法。就像智能手机代替我们记忆电话号码,导致我们连最爱的家人的号码都忘记了一样,为了防止大脑肌肉退化,每天坚持锻炼的“数字精神体操”已成为这个时代的必需品。归根结底,主宰AI时代最强大的武器,将是那些不被机器的压倒性速度所裹挟,坚持到底的“人类本源的坚韧思考能力”。
参考资料
- 为了亲自训练AI模型
- 因为他感觉到自己过度依赖AI工具导致编程记忆力下降
- 为了建立一所教授初学者编程的学校
- 在大脑即将遗忘信息的边缘时机再次进行复习,从而将其转化为长期记忆的方法
- 每当遇到不懂的问题就立刻向AI提问以获取正确答案的方法
- 每天连续10个小时不停地解答编程问题的训练法
- 间隔重复App会消耗过多的智能手机电量
- AI编写的代码对于人类来说过于复杂,反正也没必要去背
- 编程不是单纯的死记硬背,而是思考解决问题的过程,因此单词本式的背诵可能不适合编程学习