极客大学算法训练营体验课学习心得
在计算机领域中算法和数据结构是最核心的知识,也是各大IT公司招聘工程师时必考的内容。我之前虽然学过算法和数据结构,但学得不够扎实,很多面试常考的算法题看了以后都没有思路。还有几个月就要参加秋招了,在此之前必须要将数据结构拿下。因此这段时间一直在复习数据结构和算法的知识,同时在Leetcode上刷题。
刷了一段时间,发现效率比较低。我以为一开始就是这样,刷多了就会比较快了。后来才发现原来是我的刷题方法有问题。刚好前段时间看到了极客大学的算法训练营课程,主讲人是CMU信息专业硕士、前FaceBook工程师和面试官覃超。而且有体验课,时长一周,有视频课程和微信群服务,才9.9元。抱着试试的心态就购买了。一周的算法体验课一下子就过去了,体验课虽然短暂,但是全部听完还有很多收获。
首先,最大的收获就是我知道了该如何正确地刷题。之前我刷题时,都是自己先想,然后尝试实现。有时觉得有思路,但是提交的代码一直通不过,就一直反复尝试,直到最终通过。有些题实在通不过,只能看别人的题解时,心情就很沮丧,尤其是觉得自己已经花了那么多时间在这道题上,实在可惜。一些题一点思路都没有,就很快去看题解,但心里总有种罪恶感。听了算法训练营中覃超老师的介绍后,我才知道我的刷题方式非常典型。但很可惜是错误的!
覃超老师推荐的刷题方式是:拿到一道新题,先自己思考5分钟;5分钟内如果有思路,则自己尝试实现,如果没有思路则立即去看题解!如果自己实现不出来,也不要一直死磕,赶紧去看题解!看题解可以先看官方题解,然后看其他精选题解,要习惯于学习别人的优秀代码。如果使用的是Leetcode国内版,那之后还要去国际版看看那些高票题解!看到那些高票的优秀题解后,要照着自己敲一遍!
这样刷完一道题之后,其实还没有完。之后我们应该不看题解,自己将刚刚学到的优秀题解马上再实现一遍。然后明天再实现第三遍!一周后再将同一道题刷第四遍。最后,在去参加面试的一周前要将刷过的题再做一遍!总共一道题至少要刷5遍,覃超老师将这种方法称为“五毒神掌”!如果基础比较薄弱,5遍下来还是记不住,那就刷5遍以上!总之一定要多刷遍数,遍数才是王道!覃超老师认为刷题最大的误区是只刷一遍。
为什么要这样做呢?第一,这是因为我们的记忆是如此地不靠谱,唯有多刷遍数才能将那些巧妙、精简的代码真正记住。很多题,你当时以为自己理解了,能够实现了,但过一段时间很快就忘了。究其原因,就是因为我们还不够熟练,记忆不够深刻。因此需要通过多刷几遍这样的笨方法来巩固自己的记忆。第二,面试时能够用于解决一道算法题的时间是有限的,而且面试时我们往往会紧张。因此我们必须要在面试前多加练习,将常见算法的解法练得非常熟练,这样才能在有限的时间内快速地写出高效、正确的代码。
其次,参加算法训练营学习了一些新的数据结构。比如说覃超老师课上介绍的跳表和 Tries 字典树都是我之前没有学习过的数据结构。学习了这些新的数据结构,缩小了我的知识盲区,而且能跟之前学过的数据结构建立联系,整个数据结构的知识体系更加完善、牢固了。
再者,课程中推荐的 LeetCode 题很有针对性。这些题有简单有难,但都是针对知识点的经典题。学完数据结构和算法之后,马上拿相应的题目练手,这样才能真正消化那些理论知识,同时还能验证自己是否真正理解理论知识,帮助发现自己的薄弱环节。以前我学习数据结构和算法时,最大的误区就是疏于练习,代码敲得太少!从此以后,学习数据结构和算法一定要配合习题多加练习!
最后,体验课多次的分享也很有料。虽然体验课只有一周的时间,但是安排了多次高质量的分享。有前辈的经验分享:如何学习算法和数据结构、如何准备面试,也有针对具体算法题的深入讲解,这些内容都很有价值,让人获益匪浅。
总的来说,我认为这是一门非常有价值的算法体验课,而且性价比超高。感谢极客时间!体验课程结束后我购买了课程,决定跟随覃超老师和一群志同道合的人一起将算法和数据结构拿下。
如果有兴趣了解算法课程,可以看极客大学的相关介绍。此外,覃超老师在bilibili上有一些视频课,包括如何刷题、具体算法题的讲解以及一些科技评论,感兴趣的直接在bilubili搜索“覃超大魔王”就能找到。