CS自学指南(借鉴)

我个人 思考DevOps从业者的出路(roadmap) 是转型成基础平台的开发者,需要有扎实的计算机系统知识:

  • 算法和数据结构

  • 计算机软硬件结合(组成原理)

  • Python/C/JS

在知乎上经常能够看到初学者询问如何学习计算机,能够看到过来人提供的一些经典的教材推荐以及学习方法。但是零散的信息和没有经过系统化训练,是很难达到 “计算机行业生存水平” 的。

开发入门

我在Twitter偶然看到 @Tisoga 的计算机课程学习经验:

真的想要入门编程并打下一个坚实的基础,好好学一下 UC Berkeley 的 3 门课就可以了。

- CS 61A:编程入门(用的 Python,之前用的是 Scheme)
- CS 61B:算法与数据结构(用的 Java)
- CS 61C:计算机体系结构(用的 C)

我觉得是有一定道理的: 实际上我们整个学习和职业生涯中,很少有人真正能够把经典教材认真仔细的学习完成并真正融汇贯通。在工作中,你也会常常遇到难以排查的问题,实际上仅仅是因为当年没有认真把基础打好。(不过,真的很难,需要非常广泛的技术组合)

CS自学指南 是北大信科的学生系统总结的计算机自学方法和教材的ebook,可以根据细分方向对经典教程进行专攻,可以说是前面我提到知乎计算机自学问答的集大成。

此外,类似 CS 61A ,哈佛也有 CS50 介绍Python编程。

探索不同的进阶道路

我个人感觉可以结合自己学习经典的Python入门书籍和上述CS课程入门编程开发,然后选择自己的技术道路,如:

Missing Semester(计算机教育中缺失的一课)

其实这也是我们国内教育缺失的一环,或者说工作小白缺失的一环: 如何使用工具来完成开发

对于我们日常工作,构建能够运行的开发环境往往是消耗极大精力的事,很多经过正规计算机课程培训的学生,却很少系统学习过开发工具。MIT为计算机学生开发了这个短期课程,也是我们IT从业者快速温故知新的良好开端,可以帮助我们节约大量时间:

参考