编程入门指南学习路线

知乎上萧井陌和Badger共同署名的一篇文章——编程入门指南——提及了很多编程入门阶段所需要学习的内容以及相关参考资料,本文做了一个简单的整理,并提供了相关资源的链接。

本人打算从2016年开始,用3-5年的时间完成入门阶段所有学习的内容,也将用此博客记录自己的学习过程。

启蒙阶段


1. Learn Python the Hard Way

2. MIT: 计算机导论

  • 支线任务:完成《Python核心编程》

3. Harvard CS50

  • 阅读《编码的奥秘》
  • 完成《C语言编程》

入门


1. SICP:Structure and Interpretation of Computer Programs

这本书很难,因此这里提供更多的参考材料:

  • SICP 解题集:对于书后的习题,作为初学者应尽力量力完成
  • Udacity CS212: Design of Computer Programs
  • How to Design Programs:低起点,更容易的SICP,如果觉得SICP困难,可以尝试这本HtDP

或者可以先跳过此书,以后再慢慢研读。

2. The Element of Computing Systems

  • 教会你从最基本的 Nand 门开始构建计算机,直到俄罗斯方块在你的计算机上顺利运行
  • 这本书会贯穿你的整个编程入门阶段,你入门阶段的目标就是坚持完成这本书的所有项目(包括一个最简的编译器与操作系统)

3. 计算机系统基础

  • Computer Systems: A Programmer’s Perspective
  • The C Programming Language
  • 接触Unix系统
    • 阅读《UNIX编程环境》
    • 阅读《UNIX编程艺术》
    • 折腾你的Unix系统

4. 数据结构与算法基础

  • 算法导论或者数据结构与算法分析
  • Algorithms: Design and Analysis (MOOC) [part1] & [part2]
  • 注意培养使用常规算法解决小规模问题的能力: 《编程珠玑》和《程序设计实践》

5. 编程语言基础

  • C++入门: C++ Primer
  • [可选]进阶:
    • 高效使用:Effective C++
    • 深入了解:深度探索C++对象模型, C++ Templates
    • 研究反思:The Design and Evolution of C++
  • 其它参考教材:
    • Udacity CS262: Programming Language
    • 程序设计语言——实践之路

你可能感兴趣的:(综合)