计算机科学一直是近年来高考报考的热门专业,是一门研究计算机相关规律的学科。近年来,随着开源社区的蓬勃发展,以及人工智能对各行各业的影响,很多人希望能够通过系统全面地学习计算机科学领域的知识。最近,在 Github 上有一个自学计算机科学的教程,总结了从零开始成为计算机大牛的学习之路。
项目地址:https://github.com/ossu/computer-science
这是什么样的计算机科学课程
这个计算机科学课程是来自一个名为 OSSU 组织整理的课程,所有的内容都是网络课程,基本上是免费的。课程面向的是大学本科生(计算机专业或计算机辅修),或从大学非计算机科学专业毕业的人们。当然,学习者只需要有高中数学基础即可开始。
考虑到计算机科学本身的难度,项目作者提到,参与学习的人需要每周拿出 18 到 22 小时的时间,花大约两年完成这项课程。
当然,有一些课程因为需要为作业项目打分而收取费用(基本上是后期高级课程),项目作者也强调说学习者可以通过申请补助或选择性跳过的方式来自主决定。
本项目的课程主要分为两部分,即 CS 核心知识与 CS 进阶知识。CS 核心知识需要我们具备高中水平的理科知识,包括几何、代数、简要微积分等等。当然,如果我们还记得大学学过的高数,那么背景知识就已经非常充足了。对于 CS 进阶知识,我们应该首先掌握整个 CS 的核心知识体系,从而进一步选择想要进修的子领域。
当然,在进入核心知识体系前,我们可以通过一个课程先看看计算机科学与编程到底是什么。
CS 核心知识
掌握 CS 核心知识需要学习以下所有课程。
核心编程
核心数学
核心系统
核心理论
核心应用
CS 进阶
完成 CS 各种必修课后,我们应该从进阶课程中选择一些。虽然并不是每个子领域的课程都需要学习,但我们应该特别关注某个子领域的所有课程。进阶课程最终应该以某个特定领域的高级应用为结束,我们最终需要通过一个 Final Project 来实战所学到的知识。
进阶编程
进阶数学
进阶系统
进阶理论
进阶应用
这些专业课程最终要落实到机器人、数据挖掘、大数据、物联网、云计算、全栈 web 开发、数据科学和 Scala 函数式编程等实际应用中,并且有的需要提前掌握线性代数、编程、机器学习、数据库等相关预备课程。
完成上面这些课程,差不多我们就有最坚实的 CS 本科知识了。最后,该项目还提供了一些关于 Final Project、专项课程和社区的建议与资源,它们可以帮助我们快速融入 CS 这个大家庭,并持续提升相关知识水平。
参考链接:https://github.com/ossu/computer-science