Ask HN:给有经验的程序员的编程课程?

有经验的开发者想超越入门教程,往往很难找到高水平的编程课程,尤其是像 Elixir 这样的语言。参与者转而推荐深入项目(编译器、解释器、数据库、模拟器)、高级书籍和大学式资源、小众课程(如性能、Raft、软件设计),以及阅读真实框架代码,作为更有效的路径。一个反复出现的主题是:真正高级的材料很少、很分散,而且往往价格昂贵,因为它面向更小的受众,也更难教好。

高级编程教育中的感知缺口

  • 许多人认为“中级/高级”编程材料很稀缺,尤其是与体育训练或安全培训相比。
  • 批评点包括:大多数内容都面向初学者,“高级”更多只是营销标签,或者信息密度太低。
  • 也有人认为高级材料确实存在(书籍、演讲、论文),但更难、更小众,而且往往与典型工作并不相关。

有经验的程序员如何学习的策略

  • 构建非平凡系统:编译器/解释器、数据库、操作系统组件、模拟器、文件系统、git、区块链、Web 服务器。
  • 将现有个人项目移植到一门新语言,并使其符合该语言的惯用写法。
  • 深入研究现有的大型代码库或框架,借助调试器逐步执行。
  • 使用竞赛编程 / 解谜网站(Advent of Code、LeetCode)来强化算法和信心。
  • 广泛阅读书籍和代码;培养对简洁性的“品味”,并积极重构。

面向 Elixir 的推荐

  • 有几门课程和书籍面向已经掌握另一门语言的程序员:Elixir/OTP 指南、LiveView 和 Phoenix 课程、以 OTP 为重点的材料、基于性质的测试资源,以及一个交易机器人项目课程。
  • 建议直接研究 BEAM 虚拟机,并使用社区论坛以及类似 Learn-X-in-Y-Minutes 的速查参考资料。
  • 建议审视 Phoenix 和 BEAM 的内部机制,以理解 Elixir 在真实世界中的用法和并发。

通用的高级资源与课程

  • 关于解释器/编译器、操作系统、数据库、系统编程、CPU 模拟、性能、内存和测试的系统与编程书籍。
  • 关于 Raft、编译器、SICP、性能感知编程、解释器和高级软件设计的课程与工作坊。
  • CS 基础指南、性能和 HPC 参考资料、体系结构书籍,以及会议演讲(例如 Strange Loop、InfoQ)。
  • 以练习为中心的平台:Codecrafters、Exercism、Execute Program、computerenhance。

关于辅导、指导、经济因素与 AI 工具

  • 指导和辅导受到称赞,但被认为昂贵且稀缺;有人提议建立更结构化的辅导关系。
  • 讨论还涉及为什么很少有专家撰写深入材料:时间有限、市场小、难度高,以及高级受众挑剔。
  • 据称,AI 工具适合探索和快速原型,但由于幻觉 API 和推理能力限制,其可靠性不足。