我相信我们天朝的孩子很多都会在中学时代养成背书的习惯,一直沿用到了大学的各种期末考试。上了大学,有幸接触了不以考试为目的的编程竞赛之后,渐渐懂得了其实最好的学习方法并不是记忆,而是理解,继而掌握,最后实践。今天google了几篇文章后简单结合自己的想法简单总结下。
传统的学习方法,坐在教室里听老师上课,看书,并非高效的方法,因为他们过于被动,你听完老师一堂课,或者看完一本书,如果你感觉什么都好对,一切都很合理,那么你其实什么都没学到。这就跟你看完一个算法的讲解,陷入作者给你设计的乌托邦里面,你感觉everything is perfect ,结果碰到了具体问题你还是解决不了,因为,虽然这是一把利剑,但是你没有与它磨合,挣扎的过程,你根本不知道怎么挥舞剑招
所以首先,你要做的是不断地寻找自己不会的事物去挑战。你应该经常提醒自己学到的实在太少(实际上这往往是事实),每当你感觉自己学到一些东西,去找些问题解决一下,去测试你的能力,你会发现你会的比你想象中要少的多。
如果你感到困惑,那说明你正在学到东西。It is by struggling that we learn.
1:寻找一些在你能力极限附近的难题来解决,这比你一页页的翻书要来的有意义的多,解决一个难题给你带来的成就感与理解度的提升也是你看书上课无法比拟的。
2:学完一个东西后,重新从无到有构思一遍,总结出你对这个东西的理解,这个过程你不能借助与任何的参考资料。你会发现在这个过程里,你的大脑会难受,会挣扎,这就是学习到东西了。
3:避免从一个地方学东西,寻找各种资源来学习,一叶障目不见泰山就是这个道理。
4:永远别尝试去记住一个东西,而是学完之后赶紧忘掉,然后自己发明之.上大学后我再也没有去背书了,偶尔为了期末还是妥协了一下,但是我可以自信的说绝大多数时间我都在做提高能力的事情而非提高成绩,想起来高中的时候背诵各种文言文,诗句之类的现在已经完全想不起来几句了,或许这也是背诵的特点,几乎都是短暂性的记忆,无法长久.
5:把你学到的东西跟一个完全不懂的人讲.(好比如你学完线段树后跟从来没接触过算法的人讲线段树,你就会发现自己是否真的已经掌握了这个idea)
6:别同时做很多件事情,那样只会分散你的注意力.
7:一旦你理解,掌握一样东西,你想忘掉基本不可能了,除非有人拿板砖拍你脑门.
交叉式的学习比长时间学一个点来得高效。
What researchers have found is that interleaved practice is far superior. In interleaved practice, you intentionally mix up topics. Want to become a better mathematician? Do not spend one month studying combinatorics, one month studying calculus and so on. Instead, work on various mathematical topics, mixing them randomly.
Interleaved practice feels much harder (e.g., “you feel confused”), and it feels discouraging because progress appears to be slow. However, this confusion you feel… that is your brain learning.
Interleaved practice is exactly what a real project forces you to do. This means that real-world experience where you get to solve hard problems is probably a much more efficient learning strategy than college.
下面是最赞同的一句话:
Given a choice between doing challenging real work, and taking classes, you should always take the challenging work instead.
给你一个选择,去教室上课还是去解决一个非常有挑战性的问题,你应该总是选择后者。
你大可不必盲从于世俗,你应该积极寻找自己的学习节奏,(该翘的课还是得翘),毕竟绝大多数人的选择往往是合理的,而非合适的.
现在看到学校里开始重视算法课了,这确实很让人欣喜,然而,学生从刚入学,还没有什么编程基础,就开始学算法,并非一件好事,因为学习的逻辑关系搞错了,这个世界肯定是先有各种各样的问题,才会有各种各样的解决方法。
从问题本身出发,不断地寻找一些适合自己的难题来挑战,着实是一种不错的学习方法,你无需理会学的东西是否成体系,以后自然会有时间让你去串联自己学到的一个又一个的点.
奥,还有一点,如果你还不会利用google搜索资源,那么就请先学会如何使用google吧,这是你迈向自由,快乐学习的第一步。