極客大學(xué)算法訓(xùn)練營(yíng)體驗(yàn)課學(xué)習(xí)心得

在計(jì)算機(jī)領(lǐng)域中算法和數(shù)據(jù)結(jié)構(gòu)是最核心的知識(shí),也是各大IT公司招聘工程師時(shí)必考的內(nèi)容。我之前雖然學(xué)過(guò)算法和數(shù)據(jù)結(jié)構(gòu),但學(xué)得不夠扎實(shí),很多面試??嫉乃惴}看了以后都沒(méi)有思路。還有幾個(gè)月就要參加秋招了,在此之前必須要將數(shù)據(jù)結(jié)構(gòu)拿下。因此這段時(shí)間一直在復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法的知識(shí),同時(shí)在Leetcode上刷題。

刷了一段時(shí)間,發(fā)現(xiàn)效率比較低。我以為一開(kāi)始就是這樣,刷多了就會(huì)比較快了。后來(lái)才發(fā)現(xiàn)原來(lái)是我的刷題方法有問(wèn)題。剛好前段時(shí)間看到了極客大學(xué)的算法訓(xùn)練營(yíng)課程,主講人是CMU信息專業(yè)碩士、前FaceBook工程師和面試官覃超。而且有體驗(yàn)課,時(shí)長(zhǎng)一周,有視頻課程和微信群服務(wù),才9.9元。抱著試試的心態(tài)就購(gòu)買了。一周的算法體驗(yàn)課一下子就過(guò)去了,體驗(yàn)課雖然短暫,但是全部聽(tīng)完還有很多收獲。

首先,最大的收獲就是我知道了該如何正確地刷題。之前我刷題時(shí),都是自己先想,然后嘗試實(shí)現(xiàn)。有時(shí)覺(jué)得有思路,但是提交的代碼一直通不過(guò),就一直反復(fù)嘗試,直到最終通過(guò)。有些題實(shí)在通不過(guò),只能看別人的題解時(shí),心情就很沮喪,尤其是覺(jué)得自己已經(jīng)花了那么多時(shí)間在這道題上,實(shí)在可惜。一些題一點(diǎn)思路都沒(méi)有,就很快去看題解,但心里總有種罪惡感。聽(tīng)了算法訓(xùn)練營(yíng)中覃超老師的介紹后,我才知道我的刷題方式非常典型。但很可惜是錯(cuò)誤的!

覃超老師推薦的刷題方式是:拿到一道新題,先自己思考5分鐘;5分鐘內(nèi)如果有思路,則自己嘗試實(shí)現(xiàn),如果沒(méi)有思路則立即去看題解!如果自己實(shí)現(xiàn)不出來(lái),也不要一直死磕,趕緊去看題解!看題解可以先看官方題解,然后看其他精選題解,要習(xí)慣于學(xué)習(xí)別人的優(yōu)秀代碼。如果使用的是Leetcode國(guó)內(nèi)版,那之后還要去國(guó)際版看看那些高票題解!看到那些高票的優(yōu)秀題解后,要照著自己敲一遍!

這樣刷完一道題之后,其實(shí)還沒(méi)有完。之后我們應(yīng)該不看題解,自己將剛剛學(xué)到的優(yōu)秀題解馬上再實(shí)現(xiàn)一遍。然后明天再實(shí)現(xiàn)第三遍!一周后再將同一道題刷第四遍。最后,在去參加面試的一周前要將刷過(guò)的題再做一遍!總共一道題至少要刷5遍,覃超老師將這種方法稱為“五毒神掌”!如果基礎(chǔ)比較薄弱,5遍下來(lái)還是記不住,那就刷5遍以上!總之一定要多刷遍數(shù),遍數(shù)才是王道!覃超老師認(rèn)為刷題最大的誤區(qū)是只刷一遍。

為什么要這樣做呢?第一,這是因?yàn)槲覀兊挠洃浭侨绱说夭豢孔V,唯有多刷遍數(shù)才能將那些巧妙、精簡(jiǎn)的代碼真正記住。很多題,你當(dāng)時(shí)以為自己理解了,能夠?qū)崿F(xiàn)了,但過(guò)一段時(shí)間很快就忘了。究其原因,就是因?yàn)槲覀冞€不夠熟練,記憶不夠深刻。因此需要通過(guò)多刷幾遍這樣的笨方法來(lái)鞏固自己的記憶。第二,面試時(shí)能夠用于解決一道算法題的時(shí)間是有限的,而且面試時(shí)我們往往會(huì)緊張。因此我們必須要在面試前多加練習(xí),將常見(jiàn)算法的解法練得非常熟練,這樣才能在有限的時(shí)間內(nèi)快速地寫出高效、正確的代碼。

其次,參加算法訓(xùn)練營(yíng)學(xué)習(xí)了一些新的數(shù)據(jù)結(jié)構(gòu)。比如說(shuō)覃超老師課上介紹的跳表和 Tries 字典樹(shù)都是我之前沒(méi)有學(xué)習(xí)過(guò)的數(shù)據(jù)結(jié)構(gòu)。學(xué)習(xí)了這些新的數(shù)據(jù)結(jié)構(gòu),縮小了我的知識(shí)盲區(qū),而且能跟之前學(xué)過(guò)的數(shù)據(jù)結(jié)構(gòu)建立聯(lián)系,整個(gè)數(shù)據(jù)結(jié)構(gòu)的知識(shí)體系更加完善、牢固了。

再者,課程中推薦的 LeetCode 題很有針對(duì)性。這些題有簡(jiǎn)單有難,但都是針對(duì)知識(shí)點(diǎn)的經(jīng)典題。學(xué)完數(shù)據(jù)結(jié)構(gòu)和算法之后,馬上拿相應(yīng)的題目練手,這樣才能真正消化那些理論知識(shí),同時(shí)還能驗(yàn)證自己是否真正理解理論知識(shí),幫助發(fā)現(xiàn)自己的薄弱環(huán)節(jié)。以前我學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法時(shí),最大的誤區(qū)就是疏于練習(xí),代碼敲得太少!從此以后,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法一定要配合習(xí)題多加練習(xí)!

最后,體驗(yàn)課多次的分享也很有料。雖然體驗(yàn)課只有一周的時(shí)間,但是安排了多次高質(zhì)量的分享。有前輩的經(jīng)驗(yàn)分享:如何學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)、如何準(zhǔn)備面試,也有針對(duì)具體算法題的深入講解,這些內(nèi)容都很有價(jià)值,讓人獲益匪淺。

總的來(lái)說(shuō),我認(rèn)為這是一門非常有價(jià)值的算法體驗(yàn)課,而且性價(jià)比超高。感謝極客時(shí)間!體驗(yàn)課程結(jié)束后我購(gòu)買了課程,決定跟隨覃超老師和一群志同道合的人一起將算法和數(shù)據(jù)結(jié)構(gòu)拿下。

如果有興趣了解算法課程,可以看極客大學(xué)的相關(guān)介紹。此外,覃超老師在bilibili上有一些視頻課,包括如何刷題、具體算法題的講解以及一些科技評(píng)論,感興趣的直接在bilubili搜索“覃超大魔王”就能找到。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容