今天,我們來聊聊刷題。如果直接想看乾貨,就直接拉倒最後的結論就好,看看我們的建議。碼農麼,就是要任性、直接一點。
有不同意見,也要直接在公共號中提出來。我們好根據情況,實事求是的改啊。(我說改,你信麼?反正我是信了。)
如果覺得文章好,大爺們就把文章分享了吧。傳說中分享的次數越多,收割的Offer越多哦。 (。☉౪ ⊙。)
每一個想找程式設計師工作的應屆生,都躲不開兩個字「刷題」。計算機發展到現在,暫時的確沒有比「算法題」更好的方法,去檢驗校招生的能力。但是手寫算法的主要目的,不是你會不會這道題。而是要考察以下兩點:(建議每次面試前,都拿出來讀兩遍)
1. 考察面試者的計算機基礎知識、對程式語言的理解程度、代碼習慣等專業素質;
2. 討論題目的過程中,檢驗面試者的思維是否敏捷、溝通方式是否恰當、如何分析未知問題等;
面試的時候,千萬忌諱背題。寫算法題的過程主要展示的是,面試者如何思考,尤其是遇到未知問題如何解決。
最近,我還會寫一篇文章,詳細講述一下面試寫代碼時如何表現自己。
又給自己挖了個坑。 (⊙□⊙)
今天,還是給你們科普幾個刷題的網站。
鼎鼎大名的Leetcode,據不完全統計在上面被刷過的題可以圍繞地球三圈。(沒說赤道哈,就是這麼嚴謹。)總之,很多國內外的碼農在上面刷題。難度從easy到hard都有,而且覆蓋面極廣。現在還增加了資料庫和shell,相匹配的論壇也可以多看看。很鍛鍊和國外碼農溝通的能力,對於以後去混Github也有好處。
特點:各種語言支持很廣泛,題型覆蓋很廣,測試數據集較弱。
同樣一家著名的國外刷題網站。和Leetcode不同,它是專門幫各大軟體公司筆試用的,只是副業提供了一些面試題和挑戰。但即使是訓練模式都非常經典,很值得一做。而且測試數據集提供的非常完善,總能讓你有想不到的邊界情況。https://codility.com/programmers/lessons/
特點:很接近面試題的風格,訓練模式也基本夠用。
可以稱作中文版本的Leetcode,個人感覺最高難度比Leetcode高一些。這兩個類似的網站,可以配套來刷。每個刷一遍,也能保持新鮮感。
特點:中文支持很好,和Leetcode有一部分題類似,可以和九章算法課程配合使用。
來自於原北京大學POJ開發團隊,網站一直在進步。最早是微軟的在線筆試網站,現在網易也使用它進行在線筆試。題目側重於較難題目,風格很像ACM比賽,要自己注意數據集的輸入輸出。
特點:每周一道算法題極難又有趣,可以用來擴展面試題思路。而且是網易、微軟的在線筆試網站,有機會需要多練習。
這不是網站,這是一本書。全稱Cracking the coding interview,是國外找工作的神書,而且的確寫的很好。裡面除了算法題,還有計算機基礎知識等內容,很不錯。適合想去外企的人仔細閱讀,而且最新版已經比150題多了。總之,外企必備!
特點:外企必備!外企必備!外企必備!想去外企的人,多看看書的配套答案也是好的
最後,經過公眾號作者小分隊的討論,根據不同方向的工作,我們建議按照以下方式刷題:
Leetcode簡單、中等難度最好刷一遍,有時間再過一遍思路。
Leetcode全部難度上機刷一遍,然後把不會的題紙上在重新寫一下。
Leetcode全部難度上機刷一遍,紙上再寫一遍。同時儘量涉及難度較高的平臺(Codility),或者多去幾家公司面試,以賽代練。
Leetcode至少全難度刷一遍,CC150紙上寫一遍。想提高Microsoft/Google等在線筆試通過率的,多去玩玩Hihocoder等在線筆試平臺。
Leetcode困難程度爛熟於心,儘量達到ACM入門標準,甚至稍高一點比較有把握。
上面的Leetcode,也可全部替換為Lintcode。
(。◕ˇ∀ˇ◕)
Lintcode工作人員看到了,趕緊給我們廣告費!!!
讀者也可以根據我們上文的介紹,考慮各方面因素,選擇適合自己的刷題方式。或者直接調戲公眾號的幾位客服。
想看一群IT從業者碎碎念,請關注公眾號「程式設計師的下班生活」:
長按二維碼關注
程式設計師的下班生活
如果能把文章分享到朋友圈,那是最好的了。
封面圖來源:
Epic Coders@Dribble