如何學好算法

有人問我如何能夠成為學好算法。作為一個從事IT行業20年的老兵,我覺得有三個層面的建議:首先要熱愛算法方面的工作,真正有興趣。什麼是真正有興趣呢,就是不給你錢,你自己也有興趣投入去做研究,do what you lik!人在職業發展進入中高級階段的時候是需要興趣作為支撐的,如果僅僅當成一份謀生的工作或者以賺錢為目標,很難到頂級,因為再遇到真正困難的時候,只有真正的熱愛和興趣才能支撐你繼續前行。

第二,建立對算法正確認知框架。我認為算法有廣義和狹義之分,狹義的算法就是我們看到的用於計算的各種程序,而廣義的算法一種通用的問題求解方法,需要有全方位的知識作為支撐的,更貼近哲學層面。所以我們看到很多計算領域的大科學家同時也是哲學家,所以哲學是科學的高級形態我是有體會的,從狹義到廣義是一個過程,是不同的階段。大部分人關注的技巧、工具、理論是屬於狹義的算法範疇的,要在這個層面做好需要有紮實的理論基礎、熟練的應用工具和掌握各種技巧,理論就是算法相關的一些理論知識,工具最簡單的就是各種編程和仿真工具,技巧就是一些實用的算法設計和分析技術。這個階段需要花費大量的時間和經歷,要耐得住寂寞才能走向深入。是否能到哲學層面需要看各人的悟性了,向香濃、馮諾依曼、圖靈這些人我覺得還是需要一些天賦,也是我努力的目標和方向;第

第三,就是要大量的編程實踐(當然工具是必不可少的,初學入門可以python),很多東西看會了是沒有用的,需要自己多動手才能進步快,同時如果有條件可以找個把學過的東西分享出來會效果更好,這就是大物理學家的費曼學習法,我覺得是非常有用的方法。


如何學好算法


分享到:


相關文章: