Hacker News 中文摘要

RSS订阅

我用3个月时间以传统方式编程 -- I'm spending 3 months coding the old way

文章摘要

作者从巴塞罗那回到纽约布鲁克林进行为期六周的编程静修,刻意不使用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)