程序員如何快速準備面試中的算法【轉】

原文地址:http://mp.weixin.qq.com/s?__biz=MjM5NzA1MTcyMA==&mid=200166063&idx=1&sn=952d91eeec9831590ed99b950b08175d#rdnginx

 

前言git

 

我決定寫篇短文,即爲此文。之因此要寫這篇文章,緣於微博上常有朋友詢問,要畢業找工做了,如何備戰算法。程序員

 

儘管在微博上簡單梳理過,但因字數限制,許多問題沒法一次性說清楚,故特撰此文着重闡述下:程序員如何快速準備面試中的算法,順便推薦一些相關的書籍或資料。github

 

備戰面試中算法的五個步驟

 

整體來講,備戰面試中的算法,分爲五個步驟,以下:面試

 

一、掌握一門編程語言redis

 

首先你得確保你已掌握好一門編程語言:算法

 

● C的話,推薦Dennis M. Ritchie & Brian W. Kernighan合著的《C程序設計語言》,和《C和指針》;編程

 

● C++ 則推薦《C++ Primer》,《深度探索C++對象模型》,《Effective C++》 。網絡

 

掌握一門語言並不容易,不是翻完一兩本書便可了事,語言的細枝末節須要在平日不斷的編程練習中加以熟練。

數據結構

二、過一遍微軟面試100題系列

 

我從2010年起開始整理微軟面試100題系列,見過的題目不可謂很少,但無論題目怎般變化,依然是那些常見的題型和考察點,固然,不考察任何知識點,純粹考察編程能力的題目也家常便飯。故無論變幻無窮,始終不離兩點:①看你基本知識點的掌握狀況;②編程基本功。

 

而當你看了一遍微軟面試100題以後(不要求作完),你自會意識到:數據結構和算法在筆試面試中的重要性。


三、苦補數據結構基礎

 

若是學數據結構,能夠看咱們在大學裏學的任一本數據結構教材都行,若是你以爲實在不夠上檔次,那麼能夠再看看《STL源碼剖析》。


四、看算法導論

 

《算法導論》上的前大部分的章節都在闡述一些經典經常使用的數據結構和典型算法(如紅黑樹、B樹),若是你已經學完了一本數據結構教材,那麼建議你着重看貪心、動態規劃、圖論等內容,這3個議題每個議題都大有題目可出。

 

五、刷leetcode或cc150或編程藝術系列

 

●如主要在國外找工做,推薦兩個面試編程網站:一個是http://leetcode.com/,leetcode是國外一網站,它上面有很多編程題;另一個是http://www.careercup.com/,然後這個網站的創始人寫了本書,叫《careercup cracking coding interview》,最終這本英文書被圖靈教育翻譯出版爲《程序員面試金典》。

 

●如果國內找工做,則鄭重推薦我編寫的《程序員編程藝術》,有編程藝術博客版,以及在博客版本基礎上精簡優化的編程藝術github版。除此以外,還可看看《編程之美》,與《劍指offer》。

 

而不管是準備國內仍是國外的海量數據處理面試題,此文必看:教你如何迅速秒殺掉:99%的海量數據處理面試題。

 

此外,多看看優秀的開源代碼,如nginx或redis,多作幾個項目加以實踐之。

 

後記

 

學習最忌心浮氣躁,急功近利,即使練習了算法,也不必定表明能萬無一失經過筆試面試關,由於整體說來,在通常的筆試面試中,70%基礎+ 30%coding能力(含算法),故若是作到了上文中的5個步驟,還遠遠不夠,最後,我推薦一份書單,以此爲你們查漏補缺(沒必要所有看完,歡迎你們補充):

 

一、《深刻理解計算機系統》

 

二、W.Richard Stevens著的《TCP/IP詳解三卷》,《UNIX網絡編程二卷》,《UNIX環境高級編程:第2版》,詳見此豆瓣頁面;

 

三、你若是要面機器學習一類的崗位,建議看看相關的算法(如支持向量機通俗導論(理解SVM的三層境界)),及老老實實補補數學基礎,包括微積分、線性代數、機率論與數理統計(除了教材,推薦一本《數理統計學簡史》)、矩陣論(推薦《矩陣分析與應用》)等..

 

綜上:上述所有過程短則半年,長則三年。最後一句:急功近利者必敗,越想快速越要按部就班,踏實前進。

 

本文來自:結構之法 算法之道 - CSDN博客頻道

做者:@研究者July

相關文章
相關標籤/搜索