文章摘要
作者从巴塞罗那回到纽约布鲁克林进行为期六周的编程静修,刻意不使用AI辅助,专注于传统手工编码。此前他曾在Aily实验室参与开发AI代理,早于行业巨头发布类似技术。这一选择与当前"编程已被AI解决"的主流观点形成鲜明对比,体现了他对编程本质的思考与回归。
文章总结
手写代码的修行:一位程序员在AI时代的返璞之旅
背景与动机
2026年3月,作者从巴塞罗那回到美国布鲁克林,开启了一场为期六周的“编程静修”。尽管他曾在Aily Labs参与开发AI智能体(如内部搜索引擎、知识图谱等),并深度研究开源大模型(如DeepSeek R1、Llama 3),但他发现过度依赖AI编码工具导致自己对代码库的理解变浅。受计算机科学教授Cal Newport关于“深度思考如同健身”的启发,他决定暂别AI辅助,回归手写代码的原始方式,以夯实编程基础。
静修目标
在布鲁克林的Recurse Center(一个免费的自导向编程社区),他设定了三个核心目标:
1. 从零训练大语言模型:包括编写Transformer架构、调参及后训练,而非直接复用现有代码。
2. 提升Python手写能力:减少对文档和AI的依赖,培养对项目架构的直觉。
3. 深入理解计算机原理:通过实践弥补非科班出身的短板,构建对计算机抽象层的认知。
实践与进展
- 大模型训练:与同伴合作完成了斯坦福课程CS336的首个作业——用Python和PyTorch实现GPT-2风格的模型,并在Tiny Stories和OpenWebText数据集上优化分词器与超参数(如学习率调优)。
- 编程技巧提升:通过结对编程向资深开发者学习,例如通过终端快速验证语法(而非依赖搜索引擎或AI),并在Vim中手写单层感知机以强化编辑效率。
- 计算机原理探索:
- 用1983年的Apple IIe编写BASIC版FizzBuzz,体验早期计算机的手动编码流程。
- 参与终端安全挑战赛“Bandit”,提升Unix技能。
- 加入Clojure函数式编程工作坊,体验集体“ mob编程”模式。
反思与收获
作者发现,手写代码不仅能加深对技术的理解,还能在协作中快速成长(如通过每周5分钟技术分享接触GPU优化、Rust等主题)。尽管六周时间不足以完成所有计划,但这段经历让他重新认识到编程的本质:思考的深度比工具的效率更重要。
附注
- 文中提到,他仅在调试遇阻时短暂求助AI工具Claude,其余均坚持手动完成。
- 他对AI的态度并非排斥,而是主张“先掌握基础,再善用工具”——正如他在Aily Labs的同事,既是优秀程序员,也是AI的高效使用者。
(配图说明:文中包含三张图片,分别为布鲁克林静修环境、手写模型的参数调优曲线,以及操作Apple IIe的实拍图。)
评论总结
评论总结
1. 支持传统编程方式
- 观点:传统手写代码有助于深入理解代码库,提升编程能力,避免过度依赖AI工具。
- 论据:
- "If you have never written and maintained a complex project by hand, you should not be allowed to be involved in the development of production bound code." (lrvick)
- "They started thinking about their code before writing it. Planning. Discussing things in advance." (apricot)
2. 支持AI辅助编程
- 观点:AI工具(如LLM)可以提高效率,减少重复性工作,尤其在商业项目中。
- 论据:
- "LLMs let me produce the same quality I always have with a lot less typing... I review and own every line I commit." (lrvick)
- "I create a lot of stuff using AI to the max, but I also spend the necessary time on reviewing... It’s a form of teamwork." (phaser)
3. 平衡使用AI与传统方式
- 观点:根据场景选择使用AI或传统方式,工作项目注重效率,个人项目注重学习。
- 论据:
- "I’ve settled into a pattern of using agents for work... and doing things the hard way for personal or learning projects." (ludr)
- "I use LLMs as rubber ducks... but when it comes to the final act I still write the code myself." (abcde666777)
4. 对AI依赖的担忧
- 观点:过度依赖AI可能导致开发者失去解决问题的能力或对代码的理解。
- 论据:
- "Twenty whole minutes... He should have spent more like 6 hours before reaching for the LLM." (LeCompteSftware)
- "New CS grads... let LLMs push straight to main for everything... like hiring accountants who never did math on paper." (lrvick)
5. 编程的乐趣与意义
- 观点:手写代码能带来成就感和乐趣,而AI生成代码可能削弱这种体验。
- 论据:
- "I can’t say I feel any sense of enjoyment... at the end of a work day" with LLM-generated code. (birdfood)
- "The enjoyment would be gone if I leaned that far into LLMs." (abcde666777)
6. 技术发展的反思
- 观点:技术变迁是必然的,但需保留对底层原理的掌握。
- 论据:
- "The period of hand writing code... may be viewed as a footnote in history." (birdfood)
- "It’s good for students to experience old tools to learn planning and thinking." (apricot)