最近自習室裡又興起了一陣刷題潮,大家相約刷題~
今天和大家系統分享下我去年轉行時的乙個刷題過程和方法,希望對你有所幫助。
首先介紹下我的程式設計基礎,我學的是金融工程專業,碩士時學過 c++ 的課,這也是我的程式設計入門課(但我個人非常不推薦用 c++ 入門)。這門課的重點是 c++ 在金融領域的應用,比如給 option 定價,基本不涉及演算法和資料結構。
所以我是有一定程式設計基礎的,但是對演算法和資料結構是小白,也不懂空間複雜度和時間複雜度為何物。
另外說明一下我的時間,我是在工作後才開始刷題,所以是晚上和週末來刷,時間比較緊張,如果是學生的話在我的基礎上要多刷一些喲。
下面上乾貨。
我把我的刷題過程分為 3 階段。
時間是 3 個月,做了 128 道題,平均每天 1-2 題。
這一階段刷題對我來說,是乙個學習資料結構和演算法的過程。
所以如果是科班的同學這一步就可以跳過了。
經常有同學問這個刷題順序問題:
我認為在不同階段是不一樣的,那麼第一階段我是按照演算法型別來刷,每個型別大概花 1-2 周的時間。
那到底先刷哪個型別呢?
刷 dp?
這不是勸退麼?
這裡對於小白來說,合理的學習曲線是非常重要的,否則一上來資料結構都不清楚去做難的演算法題容易受打擊。
那麼怎樣才是合理的學習曲線呢?
我說的不算,其他人的也只是他個人經驗,而應該是看名校的口碑課程是怎麼安排的,看教授為你制定的學習計畫。
比如第一周,我們去刷排序演算法。
那在這個具體的分類下,題目按什麼順序來做呢?
把題目按照頻率從高到低的順序來做,也就是出現頻率高,常考的我們先做。
那對於每一道題應該怎麼做呢?
首先我會先自己思考 5 分鐘,那如果過了 5 分鐘還沒有任何思路,就不必強求了,看答案吧。
leetcode 有乙個討論區,裡面有非常多的大神給的解答,重點不是看他的**,而是看他怎麼想的,怎麼分析的這個問題。
對於在北美求職的同學,這小哥的英文對面試也會非常有幫助。
這樣就把乙個刷題計畫落實到了第乙個分類、第一周、第一天該做什麼。
但是做完題不是就萬事大吉了,最重要的一步是需要吸收、內化成自己的。
我喜歡的是寫「解題報告」:
<<< 左右滑動見更多 >>>
把這道題考查了哪些知識點,正確的思路是怎樣的,別人是怎麼想到的,**是怎麼寫的,**有什麼小技巧,都記錄下來。
這個是跟我當時一起刷題的小夥伴學的,並且我們互相講題,這樣效果更好。所以這裡強烈建議大家組隊刷題,互相監督提高。
那麼週末的時候複習和總結,我一般會做:
重新做一遍本週做過的題目,不是背答案,而是自己再去想一遍;
再做幾道新題;
看書,建立更系統的知識體系。
這裡看書不是指把書從頭看到尾,而是抓住重點章節,比如排序演算法,那就參考 mit 教授給你畫的重點,只看《演算法導論》的這些章節,這才是偷懶的正確開啟方式啊。
不過,如果你的時間很充足,當然是系統的看書、上課更好了,會有更加平緩的學習曲線。
這樣 3 個月後我把基本的演算法型別都刷過了,資料結構也都深入理解了,剛開始做的題目也差不多都忘了,那麼開始第二階段。
這一階段我花了 1 個半月的時間,複習了第一階段的題目,並做了 100 道新題。
這一階段我是記錄在 excel 裡:
第二階段做的差不多的時候,就把 linkedin 設定為 「open to market「,就會有獵頭找我了,那一旦拿到面試,就到了第三階段。
這一階段的重點是找到面試的狀態和感覺,並且快速寫出**。
那麼我的方法是
這一階段的刷題順序我會按公司分類來刷,leetcode 上有 company tag,如果是國內的小夥伴可以參考這個 github:,列舉了國內幾大網際網路公司常考的面試題,那麼就會更有針對性的準備面試。
這一階段又陸陸續續做了 100 題,同時面完了所有的面試,就收工啦。
最後呢,再送個大家 3 個很好用的 github 資料:
按國內公司分類:
按照演算法型別分類:
leetcode 1-919 題的解析:
redis從小白到大佬
簡單的說redis是一種在記憶體中儲存資料的資料庫,其內部採用 key value的形式進行儲存。redis的讀取速度非常快。因為它與mysql等常規資料庫不同,不用與硬碟互動來讀取資料。另外,redis 也經常用來做分布式鎖。redis 提供了多種資料型別來支援不同的業務場景。除此之外,redis...
python從小白到入門 2
1 判斷語句 if elif else 後面不要忘記加 下面是 塊,必須要進行 縮排,判斷時一般用肯定句。weather sunny if weather rainy print 在家學習 elif weather sunny print 去釣魚 else print 逛街 2 if後面結果是tru...
總結 從小白到機器學習入門
2017年是進步比較快的一年,學到了很多東西,找到了自己喜歡的方向,朝著方向不斷努力 第一次接觸到人工智慧,機器學習領域,有導師帶著做專案,參賽,實習,繼續自我提公升。第一次接觸到人工智慧領域是在3月份,選了人工智慧這門課,算是半個科班生吧,教材比較枯燥,老師講得也比較單調,上到後面基本上就只有幾個...