如今知识付费的概念已被大家广泛接受,人们乐于为了自身的成长、兴趣和职业规划付费接受培训和专业课程。然而,在线课程浩如烟海,如何找到符合自己需求并且质量高的在线课程并没有那么容易。
就拿编程入门课程的 Python 来说,以之作为关键字可以搜索到 242 条课程记录。即便一门课只要 20 小时,那么也得学习 201 天才能全部学完。但是我相信没有人会把某个 topic 的所有课程全都上一遍,所以如何从这么多的课程中选出最好的课程是非常的重要。
本文在此推荐一个给力的课程挑选平台,被我称为MOOC界的大众点评:Class Central。还有我个人上过的高质量编程课推荐,让你一次学个够!
Class Central 是什么
Class Central 是在线课程的搜索引擎和点评网站,按照课程主题分类、学校分类、课程平台分类,网罗了包括 edX、Coursera、Udacity、Stanford、MIT、Google 等 500+ 教育平台和机构的上千门课程的信息。
由于是国外的网站,浏览时需要一些英语基础,但是毕竟是点评性质的网站,所用词汇不会过于艰深或生僻。同时大部分用户都是学生,所以这也是一个熟悉和学习英语的好地方,相信难不倒聪明的你 :D
Class Central 为每门在线课程都提供了详细的介绍页面,以 Coursera 上很火的 Learning How to Learn 为例,页面头部是课程的总体评分和学员人数。左侧是课程的概述和导读,左侧下方有 Tags 可以快速地找到具备相关话题的其他课程。页面右上方是课程的提供方、价格、开课时间、证书、课业量等信息,右下方则是精选的学员评价。

通过这详情页面,可以快速地获取到这门课程的相关信息,看到学员对其的评价,并且能很容易地跳转到课程本身所在的平台页面。
当说起课程挑选,其实我在挑选什么
虽然我们一直说要挑选最好的课程,但这里「最好」其实换成「最合适」比较能接近问题的本质。弄清楚自己的需求和期望,规划好自己能投入的时间和精力,是挑选课程时要做的第一件事。
目的 1:为了入门某个未知领域
近两年科技圈最为火热的话题是人工智能和区块链,创投圈的火热也带动了相关话题在线课程的制作。如果有心想要系统学习这些全新的领域,甚至在入门之后投身相关领域,那么选择名牌大学或者知名学者提供的课程是最完美不过。
我之前在 Coursera 上完成了吴恩达深度学习的系列课程和普林斯顿大学的比特币及加密货币课程,虽然这些系列课程只有几周或者几个月的学习长度,但是其知识体系的深度和完整度,是网络博客或微信公众号科普文无法相提并论的。
目的 2:为了深入学习某个领域
在线课程的丰富,为我们的学习带来了极大的便利:热门的话题往往能够找到适合初学者(beginner)、中度水平(intermediate)和高级水平(advanced)三个层次的大量课程。
当通过了入门课程后还有强烈的学习欲望,那么就应该进一步深入学习中级或高级课程。以我自己为例,在 Coursera 上完 Duke 大学的 Java Programming and Software Engineering Fundamentals 系列课程之后,感觉对系统层面的知识有所欠缺。于是又修了一门 Alberta 大学的 Software Design and Architecture 系列课程。
除了满足自身的学习热情和填充自己的技能树,这些课程更给我带来了很多的项目经历和数不尽的回报。我曾在学校招聘会上通过和面试官聊我在 Coursera 上完成的一个电影推荐系统的项目,而获得了 Facebook 的实习生面试机会并飞去 Facebook 的加州总部参观。
目的 3:没有什么特别目的,就是爱学习
有时候学习并不是出于什么功利目的,仅仅是因为自己渴望对世界了解更多。在这些平台上,有非常多关于行为心理学、个人财务管理、语言学习、艺术创作等题材的丰富课程资源。
如果你还是个学生,可以考虑在出国旅游之前学习一门新的语音。如果你是个上班族,可以利用上下班通勤的碎片时间学习个人财务规划。如果你已经为人父母,可以听一系列关于饮食健康的讲座。只要有求知和好奇,没有什么能够阻止你的提升。
编程开发类高质量课程推荐

算法基础类
- 作为计算机科学专业的学生,算法是基础中的基础。如果之前没有任何算法基础,加州大学圣地亚哥分校(UCSD,University of California San Diego)的 Data Structure and Algorithms 系列课程是数据结构与算法课的入门首选。
- 当具备一定的数据结构与算法基础,想要系统地学习算法,那么普林斯顿大学(Princeton University)的 Algorithms 课程 是经典中的经典。这门课有上下两门,覆盖了算法设计和分析的方方面面,并且教材 PDF 可以在网上找到。
- 如果你还想在算法上更进一步,那么斯坦福(Stanford University)大学的 Algorithms 系列课程 绝对应该在你的听课清单中,这门课难度略大。如果从头跟到尾且全部掌握,相信面试中的算法题一定难不倒你。
- 如果没有那么多时间,但是想要突击面试算法,可以选择UCSD的 Algorithmic Toolbox。这门课把几个面试中的热门算法 topic 做了讲解,而且作业题目难度贴近算法面试中,很适合拿来复习算法。
编程开发类
- 首先要介绍的是杜克大学(Duke University)的 Java Programming and Software Engineering Fundamentals 专项课程。该专项课程的第一门课是关于 JavaScript,HTML 和 CSS(可以忽略,并不影响后续课程),其后课程介绍了 Java 实现各自数据结构以及一些 OOD 设计方面的内容。课程最后需要用 Java 实现一个电影评分推荐系统。适合需要充实简历项目的同学。
- 其次很推荐的是阿尔伯塔大学(Alberta University)的 Software Design and Architecture 专项课程。这门课专注于四个话题:面向对象设计(Object-Oriented Design),设计模式,软件架构和面向服务架构(Service-Oriented Architecture)。课程内容略微偏理论,但是这些都是一个合格的软件工程应当具备的职业素质,而且大学课程中很少会有关于这些实用理论的课程。所以非常推荐这门课,我自己听课做了密密麻麻的笔记。
- 最后推荐莱斯大学(Rice University)的 Parallel, Concurrent, and Distributed Programming in Java Specialization 专项课程。如课程标题所言,这门课就讲 Java 语言的并行、并发和分布式编程。不过这门课更多是索引性质,当你知道在开发多线程的某一个功能时,可以找到对应的框架或范式来实现。

业界趋势类
- 首先要推荐的是吴恩达的 机器学习 及 深度学习 课程,相信知名度已经很高了。这也是我在 Coursera 上听到的为数不多的质量和完成度超过线下课程体验的优质课程。吴恩达老师讲解流畅条例清晰,每周的作业都能让你从0到1完成一个小项目。即便不做人工智能相关的工作,也非常抽时间了解一下基本的原理。
- 其次是普林斯顿大学的 Bitcoin and Cryptocurrency Technologies。这是现今为数不多地能将比特币和区块链原理概念讲解清楚的优质好课。配套教材pdf可以从网上找到,课程内容包括加密和加密货币、如何实现去中心化、比特币运作的机制、如何挖矿(哇)、如何做到匿名和存储比特币。
关于选课的几个的小建议
挑选课程需要结合自身兴趣和需求,我个人的选课建议是:
1. 珍惜自己的时间:在线课程浩如烟海,而且常常只能在自身主业之余进行,珍惜和管理好自己的时间是要做的第一件事。上到一半觉得课程内容不是自己想要的则应该及时停止,如果英语听力好,可以把播放速度调到 1.5x 或 2x,比别人少花一半时间(前提是不影响理解课程内容)。
2. 清楚自己的学习目标:选课之前问自己几个问题,我想学的是什么?想要学到什么程度?这门课程能不能让我达到这个目标?如果不能,我是否应该在完成这门课之后再学习哪些相关课程?
3. 除了知识,还要有更多野心:知识本身很重要,但是如果能从课程中获取更多东西则更好。例如完成一门计算机课程之后手上多了几个小项目,完成财务类的课程后制作出了自己的财务状况表,完成行为心理学课程之后对世界观人生观有了新的体悟。
结语