原址

译者注:本文译自Scott H. Young的博客,Scott拥有超强的学习能力,曾在12个月内自学完成麻省理工学院计算机科学的33门课程。本文就是他个人对于这次MIT挑战的介绍和总结。

版权声明:本次翻译已经得到Scott本人授权,禁止任何形式的转载。

在接下来的12个月里,我将在不去上课的情况下,学完整个MIT四年分的计算机课程。

更新:MIT挑战现在已经结束了。我在2012年9月26日完成了挑战,距离开始时间2011年10月1日刚好12个月。下面将列出我所有课程的考试、官方解法以及我写的代码的链接。

回答一些普遍的问题:

  • 我花了多少功夫来完成这次挑战?一开始差不多每周60个小时,到后来就是35小时左右。
  • 你拿到MIT的学位了吗?没有。看上面的视频就知道我完成这次无学分学习的动机。
  • 你是否做了所有MIT学生做的事情?没有。我考试和编程项目的总课程很类似MIT列出的课程,有些实验课和人文学科我不得不改成了其他科目,但是总学时是一样的。这是MIT计算机科学的课程表,可以跟我下面列出的课程做对照。(提示:这个链接已经更新过了,旧的链接挂了。我并没有检查课表有哪些修改。)
  • 你在学习过程中用了课本或者教学视频吗?所有的资料都在下面列出来了,如果你不确定,可以到下面的列表查看。
  • 你是按什么顺序来上这些课的?就是下面列出来的顺序,除了一些同时上的课程。当然,如果你按照这个顺序来上课,你就不用担心某些被依赖课程会被安排到后面。
  • 你是不是自己给考试评分的?是的。诚然,没有教授评分在一定程度上会有误差,但是大多数考试都是量化的问题,这些问题的答案都是有规律的,因此误差没那么大。我建议每个人都去检查一下我真正的考试回答,并跟官方提供的答案作对比。
  • 你是否相信人们应该不去上大学,而是做这个项目?当然不是。我上过大学,我并不后悔。我做这个项目的是想看看获得一次教育的时长、代价和常规性的预期能被压缩到多低。

计算机总是令我神魂颠倒。从金融到社交,算法是构成人们生活大部分方面的隐藏语言。当今世界最大的变化就是由代码编写而成的人工智能事业的发展让我们能够通过计算机了解作为人类的意义。
除了机器的诗意,计算机科学也是非常实践性的。财富被积累了,变革的火星在行行代码中闪耀。
我总想掌握计算机语言,但是我并不想投入4年以及数十万没金来学习。
我开启这项实验是因为我想告诉大家,完成一门学业,并不像有些人认为的那样,需要通过录取委员会和SAT考试,背负数千美元的债务,甚至耗费四年来慢慢学习。
我会失败吗?当然有可能,这个世上许多比我聪明的人仍在类似MIT的地方挣扎于巨大的工作量之中。我还企图在没有人指导的情况下按四倍速来学习同样的内容。
我会跟大家分享我在这一过程中的收获,这是我唯一能保证的。下面列出了我将学习的33门课程,每门课我都会做期终考试,诸位可以拿我的回答跟MIT官方的答案做对比。我也会把我的错误发布出来,大家不用怀疑我会把我的错误答案删除。

MIT挑战之后的更新

由于我已经完成了这次挑战,我会在这里更新我上过的计算机科学相关的课程或者编写的相关程序。

  • WordSmith 这是我写的开源免费的拼字游戏的AI。

    学习进度

    Part 01

    Part 02

    Part 03

    MIT挑战的常问问题

  • 你遵守了哪些规则?

因为我不是MIT的学生(也不隶属于MIT),所以我自己制定了一套公平可行的规则。规则很简单:

  1. 我完成一门课的标准是通过期末考试(一般高于50分就可以了,虽然我想拿更高的分数。)
  2. 考试的限制是一样的,不能提前看题目,不能带课程相关的材料,一样的时长限制(默认是三小时)。
  3. 我根据MIT的官方答案给自己打分,我把回答和答案都发布到这里,任何人都可以再次检查我的评分手段。

记住,这只是我这次挑战的最低要求。对于含有重要的编程部分的课程,我尽可能完成代表性的编程作业。

  • 你完成了所有的作业、论文和项目吗?

对于数学或者理论课程来说,期末考试是很重要的评分手段。我仍然会做一部分作业和测验来为期末考试做准备。不过由于在这次挑战中我没法维持一个统一的标准(许多课程要么不可用,要么没法评分),我没有很认真地去做它们。
对于含有大量编程或实际设计的课程,我尽量去完成最多的作业。但是它们很难做评分,我还是依赖于期末考试。

  • 你的课程表和MIT的是否不一样?

我花了差不多一个月的时间来拼凑一个MIT计算机科学实际课表的镜像。很可惜我没法完美地完成,因为有些课程(包括实验和研究课)很难评分,另外一些网上没有资源。
这次挑战,我课程表的总学时跟MIT的学位学时是一样的,所以当我没法上某一门课的时候,我就换成一门近似的课程。就学习的知识而言,我的课程表跟MIT的课程表很像了。
唯一的区别就是MIT的选修课。我也上了不少非计算机科学的课程,来模仿MIT的人文、艺术、社科的要求。因为MIT的线上艺术课程的资料比社科的课程差远了,所以我选的课程跟MIT的课程并不完全匹配。
这是MIT计算机科学的课表

  • 如果你挂科了,你会怎么做?

鉴于我正在做一次尝试,所以我觉得挂科是无法避免的。我的主要要求是通过期末考试,所以如果我挂了,我允许自己过段时间再试一次。
对于有多次考试的课程,我的对策就是先挂一次,这样我在后续的课程上会更高效。这跟在大学里很不一样,不及格不再是一种挫折。这就是自学的优势之一。

  • 你为什么做这个挑战?你只是爱学习吗?

没有人喜欢学习,但是每个人都想变得更聪明。学习,得到更强的洞察力,对于某些主题变得更睿智,这是很有价值的。很遗憾,很多人在经历过很多年惩罚式的教育后,都已经忘记了这一点。
我承认,想在12个月内学完四年的内容有些疯狂,或者说傲慢。但是我真正的动机就是希望告诉大家,快速的学习是有可能的,与此同时还能获得更多的快乐。

  • 这样做你能获得毕业文凭吗?

不能,这就是问题所在。我们社会错误地把知识和文凭等同起来。
得到一纸文凭很不错,对于许多工作来说,这是完全必要的。但是这种强烈的等价使得人们忘记了两者之间是有区别的。
作为一个作家和生意人,我已经有了自己的事业。我从来没想过去大公司工作,那里的HR可能会审议我匮乏的文凭。对我来说,我学习计算机科学就是想为以后开展新事业或者创业时做准备。
我不反对大学。对我来说,大学经历很美好,很有价值,对每个人来说都是这样。我只是希望我给出这样一种选择,那些觉得当下的政策不适合自己的人可以有新路可走。

  • 这仅仅是为了通过考试吗?

不是,但区别很细微。许多课程基于之前学过的概念,所以我的目标是尽可能地去理解每门课。临时抱佛脚只是一种为了考试死记硬背然后很快遗忘的方法。理解更难,却并不会耗费更多时间(如果每门课都为后一门做好铺垫)。
更新:最初的四节课,我同时学三到四门。虽然这导致我在回顾知识上的时间比正常的少很多(一个月而不是一学期),这却提升了重复的好处。
最终,因为最初的课程大部分都是在为后续更难的课程打基础,我的理解能力和考试表现都上了一个台阶,这些就是我通过考试的工具。

  • 关于计算机科学,你以前有哪些经验?

我在高中的时候写了挺多代码的,大多数是创造电脑游戏。另外,我在曼尼托巴大学商学院上学的时候,也上了四年学制的计算机科学课程。所以确实,我之前有编程的经验,在这次挑战中占了优势。话虽如此,我的技能水平可能跟那些去MIT上学的计算机科学的学生相距不远。
还有一点就是我在2011年七月就上了第一门课,8.01经典力学,作为预测试课程。因此我在这12个月内实际学习的课程数是32门课。

  • 我是博客主/记者,如何跟你联系,分享故事?

通过邮箱challenge@scotthyoung.com,或者通过这里的表格。接下来我会变得很忙(显而易见),所以很抱歉我在短期内不能很迅速地查看邮件。我在学习一门课程时通常不在线。