清华学生总结的算法学习方法
来源 | Python与算法社区 公众号
今天查资料时看到一个比较好的算法学习方法总结,来自清华大学算法训练营 longyue0521 ,提出的 “做中学” 方法,个人也是比较认同的,大家不妨看看下面的详细介绍。
一、事半功倍
Learning by doing 做中学
二、经历描述
在我初学编程时,因没有掌握计算机相关专业的学习方法,走了不少弯路。
我总是想先“打好基础”,再走下一步,但这需要时间、毅力与坚持。
我花了很大气力学习,但都事倍功半!
我想找到效率更高的学习方法,于是我开始浏览美国计算机四大名校的课程网站。
经过一番研究,自学几门课程后,我发现了他们的教学套路:
教授理论知识(一),小作业,用于巩固理论知识(一)
教授理论知识(二),小作业,用于巩固理论知识(二)
大作业,编程实践,需要用到理论知识(一)与(二)
教授理论知识(三),小作业,用于巩固理论知识(三)
教授理论知识(四),小作业,用于巩固理论知识(四)
大作业,编程实践,需要用到理论知识(三)与(四)
项目作业,编程实践,多人协作,需要用到理论知识(一)~(四)+ hits
重复上述过程,一般重复4~6次,中间穿插期中考试,最后期末考试
由此“套路”总结出另一种学习方法——“迭代学习”法:
理解待解决的问题
学习部分理论知识
动手实践尝试解决,无法解决,回到1或2
成功解决抓紧总结
即使现在回头看,我也不能说第一种学习方法有错,“迭代”学习法更好!但这两种学习方法都是以同一个核心为基础的——动手做,做中学!
你可以都尝试一下,然后选取自己喜欢、又高效的学习方法!
当然也欢迎分享你的学习方法!
三、经验总结
越早适应“迭代”学习法对你越有利。
大多数时候你没有足够的时间来“学完再做”。
若你在“迭代”学习过程产生的焦虑、沮丧、挫败感,请及时排解
排解后记得回来,坚持才能胜利!
四、个人建议
学习《算法设计》在借鉴学习《数据结构》的经验的同时,需要做适当调整——在每次大迭代中应用“迭代”学习法:
第一次迭代,熟悉常用的算法设计策略,掌握策略的使用方法及适用的场景
其实学习《数据结构》时你已经学了不少经典算法
带着学到的算法设计策略回头总结、归纳经典算法
可以在纸上画画设计策略与经典算法的关系图,是一对一,一对多,还是多对多
这个阶段的重点,在脑中建立常用算法设计策略与经典算法的对应关系
如果个人能力不错,可考虑与《数据结构》第三次迭代同时进行
第二次迭代,灵活运用算法设计策略,解决实际问题
大量的解决问题,在此过程中总结出你个人解决问题的流程
可以针对某项设计策略进行专项训练,但要考虑实际需求——工作、面试、竞赛
此阶段的重点就是解决《数据结构》第三次迭代中的隐藏关卡,同时培养解决问题的感觉、自觉
别忘了“迭代”学习方法
大量训练、多与他人探讨、扩展自己的思路并及时总结
第三次迭代,对给定问题能运用数学证明你的算法设计策略是正确的、可行的、高效的
这个阶段要做的事本应该融入到前两次迭代中的,甚至更早比如在离散数学课上
之所以单抽出来是因为有太多的人因这个“拦路虎”而徘徊在“算法设计”的大门前迟迟不敢踏入半步,更有甚者转身离开了就再也没回来......
如果你不擅长数学,或不打算从事科研及对数学要求较高的工作,可以跳过
对于打算从事科研及对数学要求较高的工作的人来说,这也可以算迂回策略
可以先从教材对经典算法的证明学习,然后重走第二次迭代实践(这才是看CLRS的时机)
这个阶段的重点,有意识地运用数学来决定设计策略的选取
五、追求目标
你在学习《算法设计》的初期没能养成良好的推理、证明习惯,后期改正要费些功夫信心/底气不足,有强大的数学理论作为支撑你敲代码、测试或和别人辩论也底气十足尽管不完美但比起那些徘徊在门口、转身离开的人,你已进入“算法设计”的大门!
这难道不值得高兴吗?
- 下一篇:车身材料腐蚀试验相关性研究
- 上一篇:卷积神经网络的数学原理
-
汽车测试网V课堂
-
微信公众号
-
汽车测试网手机站
编辑推荐
最新资讯
-
NVIDIA 发布 2025 财年第三季度财务报告
2024-11-21 13:30
-
Mack卡车为买家推出创新的虚拟现场探索体验
2024-11-21 13:29
-
氢燃料电池卡车从1到100要多长时间?戴姆勒
2024-11-21 13:28
-
聚焦消费者用车极限环境,2024中国汽研汽车
2024-11-21 13:21
-
新能源汽车高寒环境可靠性行驶试验研究
2024-11-21 13:19