去年我在某外网浏览的时候,看到一个[新闻](http://www.independent.co.uk/news/world/europe/finland-schools-subjects-are-out-and-topics-are-in-as-country-reforms-its-education-system-10123911.html).欧洲教育最为发达的国家----芬兰,开始了一个新的教育改革,将原本的按学科教学改为了按项目教学.作为一个程序员,我对此表示十分赞同.程序员处于职业特点,大概是最强调学习效率的一个职业了.学习开发的一个快速的方法就是learn by projects,通过一个项目来学习某一项技术,可以迅速而深刻地对某一技术进行掌握.我通常看到很多人在学习开发的时候,拿起文档看,或者走几个小例子,到头来"学习"了很多技术,"了解"了很多.但其实时间一长,就全都忘掉了.
Learn by projects并不是按部就班学习的一个对立面,他仍然要求严谨而深入地学习,不同的地方在于,它是你学习的见证,项目的完成就相当于通过一个最终的考试.这种形式在设计类专业的学习中挺常见的.大体来说,它的好处有这些:
## 1.学习的成果,永久的记忆
无论过了多久,这个项目始终是你的成果,即使其中使用的具体知识忘记了,但是通过这个项目作为载体,也能很快回忆起里面的知识点.一个项目就像是自己养大的孩子,经常会去关心一下,这样一来,艾宾浩斯曲线会让我们对这些知识的记忆更加持久.
## 2.高效学习,系统完整
我们在上大学学某个专业的时候,经常会觉得好几个学期上的课程,都几乎是在讲同一个东西,侧重点略有不同而已,如果把他们放在一起来讲,畅快多了.当我们按项目来学习的时候,就不会有这种烦恼了,按项目学习之后,知识都是系统完整的,并且相应地会缩短很多时间.