在图灵社区活动「分享学习方法」中写了这篇文章,现在搬运过来,浅浅地普及下慕课这种学习新方式和目前所选用的时间管理工具。

MOOC

我以前有过看视频学编程的时光,视频里老师写一点代码,我就写一点代码。如今想起来这种方法虽然浪费时间,但是对小白而言是一个很好的入门方法,能够有效的让小白熟悉 IDE 和手把手入门编程。

MOOC 则是最近又让我眼前一亮的学习方式,其代表有:CourseraEdxUdacity等。同样是看视频学习,Coursera 使用了短视频+限时作业+考试的方法来让学生能轻松上课的同时,用 deadline 督促学生。其次付费证书和其课堂论坛也是亮点,你上完一个课程,可以付费购买课程的证书以彰显你的努力,论坛则是开放给全球各地上同样一节课的学生。Coursera 里有部分课程都是有中文字幕的,例如普林斯顿大学的「Algorithms」课。算法红宝书《算法(第4版)》的作者就是这门课的老师,Robert Sedgewick 老师在课程中给的图例和制作的动画都十分清晰精致,并且配合课件能循序渐进地分解算法。其中小课程一般一节讲一个算法或知识点,内容充实并且需要学生课下消化。这种方式和看《算法(第4版)》结合起来,学习效率事半功倍。PS:上课的同时也请完成红宝书中的课后练习。

我认为 MOOC 可贵的一个地方还是它的课程质量,因为国外 CS 课程的授课老师往往同时有很强的 academic 和 industry 的背景,所以课程通常会兼顾深度和实用性。美国大学一门课收费大约在五千刀左右,所以请努力争取白赚这些钱吧~

在这里随便列举几门课程:有被称为第一神课的「程序设计语言」、斯坦福密码学大牛 Dan Boneh 讲的「Cryptography I」、Coursera 创始人吴恩达讲的「机器学习」等等。

遗憾的是 Coursera 改版之后删除了很多经典神课,例如以 CSAPP 为教材的「The Hardware/Software Interface」,斯坦福大学的编译原理课「Compilers」、斯坦福的另外一门偏理论的算法课「Algorithms: Design and Analysis」等等,这些课程需要自己去学校官网上找,或者去 Youtube 看视频。同时科学上网会有更好的上课体验,另外英语的学习也是很有必要的,毕竟不是门门课都有志愿者翻译成中文。

PS: 斯坦福大学也有自己的 mooc 网站,Stanford Online

已经翻译了的公开课也有志愿者搬运到了 B 站(汗…)、网易公开课、学堂在线等平台。例如哈佛大学的计算机入门课「计算机科学 cs50」、麻省理工学院的「算法导论」课、线性代数神课「线性代数的本质」、用 Python 讲解的计算机科学入门课「计算机科学和Python编程导论」、B 站 UP 主翻译的斯坦福密码学课「密码学」、微软信仰中心翻译的「UWP 开发入门教程」等等。

更多课程及查看评分:
mooc 学院
Coursera课程下载和存档计划四:计算机科学基础公开课
三大 MOOC 网站:Coursera 与 Udacity 和 edX 比较,哪个更适合中国人?你有何经验分享?

番茄工作法

近年来时间管理话题变得十分火热,番茄工作法大家应该都耳熟能详了,我就不详细介绍了。很多番茄工作法的应用如雨后春笋般出现,由于受限于单平台,我没有坚持使用下来。今天推荐一款我在用一段时间的「番茄土豆」服务,番茄土豆拥有全平台应用,涵盖了我的苹果本、iPhone 和 iPad。另外一点就是能方便地回溯自己的番茄时间。

例如下面是在 Coursera 上算法课的统计,右下角统计了时间。

下面是最近看书学 Go 语言的记录。

查看自己花在阅读上的时间。

我认为每完成一个番茄就记录这段时间所做的事,这样能够培养主动记录的习惯,也方便自己对时间的统计分析。建议在记录任务的时候分配好标签,记录完整在做的事情,这样利用很短的时间就能代替追踪时间的效果。

一般免费版就足够用了,我购买了高级版是因为能够补充线下没有统计的番茄时间,高级版对于学生或教师有半价。

总结

学习方法太多了,我敢写在这的都是我感觉的确对我有帮助的方法。自己也是个菜鸟,还在探索自己的学习方法。现在越学习越清楚英语的重要性,希望大家学好英语,这样你可用的学习资源也会多出几十倍来,而不需要靠别人翻译拾人牙慧。