首期算法训练营结束了,因个人原因未能参加线下结营仪式,深表遗憾!
但我不怕,只要能帮到人,我就非常开心!
过度准备
经历描述
第一次学习《数据结构》时,我做了如下几件事:
细心的你也许已经发现了,除了“学”其他的我都做了!
先别笑,也许在这件事上你与我不同,其他事呢?想想看,比如健身:
你是否除了“健身”,其他的也都做了?我们不一样?
后文不再做此种类比,请读者自行抽象、泛化思考
经验总结
个人建议
我不想一开始就丢给你一本TAOCP/CLRS,让你崇拜、羡慕,然后......你就没有然后,直接放弃了!
我相信当年丢给我TAOCP/CLRS的人他们的出发点是好的,但这真不适合当时的我!
下面给出学习《数据结构》时的“恰当准备”:
针对人群零基础小白下文均如此
别再问后续学什么?《XXX》《YYY》书要不要看呢?......
同理,请放下手机、离开电脑/Pad,舒展一下身体吧!
练练深蹲、踢腿、仰卧起坐、俯卧撑等徒手健身项目。
如果你觉得上述运动不能满足你,再考虑健身房等后续事宜吧!
忽视现实
理想很丰满,现实很骨感
第二次学习《数据结构》时,我做了如下几件事:
这一次我有了进步——开始真正“学”了,但其他问题又出现了。
你认为照着上面的描述来学邓公的《数据结构》你能坚持多久?
我现在倒是能理解当初自己的状态,毕竟碰到好老师、好书不容易!
无论从写字、课件、讲课再到讨论区答疑,能够做到如此细致、精致、严谨的真不多!
难免会产生“我也想像向他一样”的想法!
问题就是问题,我不喜欢逃避,我选择面对!
有很多成语能够形容出现的问题,比如好高骛远、急于求成、急功近利......
但我觉得这都是表象,其本质是忽视现实!
我认真地回顾了一下,发现自己忽视了如下现实情况:
你也可照此分析一下你自己!
当我认清自己的实际情况后,我反倒轻松多了,学习效率也高了!
《数据结构》的学习并非一蹴而就的,更像是一个迭代的过程,整理如下:
请根据上面的“经验总结”制定计划、目标及你自己的需求来选择进入哪次迭代。
完美主义
吾生也有涯,而知也无涯。以有涯随无涯,殆已!
有了良好的《数据结构》基础后,确实加快了我学习《算法设计》的脚步。
学习《数据结构》的经验教训,也让我在学习《算法设计》时少走了弯路。
即便如此我仍在不知不觉中落入了“完美主义”陷阱中:
深陷泥潭中甚至让我忘了学习《数据结构》时获得的经验。
好在读了一些心理读物,及时醒悟、吸取教训才回到正轨。
先给出学习《算法设计》的书籍列表:
请注意:
事倍功半
Learningbydoing做中学
我花了很大气力学习,但都事倍功半!
我想找到效率更高的学习方法,于是我开始浏览美国计算机四大名校的课程网站。
经过一番研究,自学几门课程后,我发现了他们的教学套路:
由此“套路”总结出另一种学习方法——“迭代学习”法:
即使现在回头看,我也不能说第一种学习方法有错,“迭代”学习法更好!
但这两种学习方法都是以同一个核心为基础的——动手做,做中学!
你可以都尝试一下,然后选取自己喜欢、又高效的学习方法!
学习《算法设计》在借鉴学习《数据结构》的经验的同时,
需要做适当调整——在每次大迭代中应用“迭代”学习法:
我可能给出了一个“馊主意”,这样做会引发一些问题:
尽管不完美但比起那些徘徊在门口、转身离开的人,你已进入“算法设计”的大门!
这难道不值得高兴吗?
感谢
欢迎转载、节选等,请保留如下字样:
————节选/转载自学堂在线首期清华算法训练营学员助教longyue0521