.. _csdiy: ================= CS自学指南(借鉴) ================= 我个人 :ref:`think_devopser` 是转型成基础平台的开发者,需要有扎实的计算机系统知识: - 算法和数据结构 - 计算机软硬件结合(组成原理) - 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课程入门编程开发,然后选择自己的技术道路,如: - :ref:`distributed_system` - :ref:`big_data` - :ref:`machine_learning` Missing Semester(计算机教育中缺失的一课) ========================================== 其实这也是我们国内教育缺失的一环,或者说工作小白缺失的一环: 如何使用工具来完成开发 对于我们日常工作,构建能够运行的开发环境往往是消耗极大精力的事,很多经过正规计算机课程培训的学生,却很少系统学习过开发工具。MIT为计算机学生开发了这个短期课程,也是我们IT从业者快速温故知新的良好开端,可以帮助我们节约大量时间: - `The Missing Semester of Your CS Education 中文版 `_ 是 `Missing Semester IAP 2020 `_ 课程视频的文字翻译,方便对照学习。 参考 ===== - `CS自学指南 `_