1.如何入門算法?需要學習哪些基礎知識,請分享你的經驗與建議。
入門算法其實很簡單,拿生活中的很多現實問題來解決就可以了。比如商場打折問題(是打折划算還是滿減划算),百錢買百雞、猴子分桃、雞兔同籠等有趣的問題。如果這些問題能夠結合具體的編程語言實現就更好了。入門算法階段主要是鍛煉邏輯思維能力和思考問題、分析問題、解決問題的能力,不一定要去先把計算機專業課程《數據結構》上一遍或者枯燥的數學知識學習一遍,再去學算法。算法其實離我們並不遙遠,它就在我們每個人的身邊。
2.如何成為一名優秀算法工程師?需要系統掌握哪些技能?請分享你的經驗與心得。
要成為優秀的算法工程師(注意這里是優秀),首先要熟練的掌握數學知識,比如大學里面學習高等數學、線性代數、概率統計、離散數學、組合數學、矩陣論等課程,就為我們成為算法工程師打下了堅實的數學基礎。其次要學好《數據結構》這門課程,比如里面的鏈表、矩陣、樹、圖等各種典型的數據結構以及常用的查找和排序算法(比如二分查找、冒泡排序、快速排序、希爾排序等,並熟悉各自算法的時間復雜度)。對於通用型的算法思想,比如遞歸、遞推、貪心、分治、動態規划等算法策略要熟記於心並能靈活運用。總之成為一名優秀的算法工程師,離不開深厚的數學功底。要能靈活的使用上述各種知識,解決實際生活中的問題。有個簡單的途徑就是參加ACM競賽。通過簡化生活中的實際問題,使用算法去實現,這種成就感非常強。 此外就是熟練掌握各種開發工具和開源框架(比如Caffe、TensorFlow等),能夠使用編程語言(比如python或c++等)實現和驗證自己的算法。
3.算法工程師有哪些分類?不同的算法工程師有什么特殊要求?請分享你的觀點與看法。
算法工程師有哪些分類,這個可以根據具體的應用領域來划分。 比如: 1)圖像識別 2)語音識別 3)自然語言處理 4)推薦系統 5)...
4.算法工程師的前景如何,程序員要不要精通算法?
計算機的終極應用是人工智能,人工智能的核心是機器學習,而機器學習的核心就是算法。而且隨着IT信息技術的快速發展,算法不會像那些具體的IT技術一樣迅速的過時(算法思想永恆),所以算法工程師的前景非常好。對於應用型程序員來說,它關注的是怎么利用各種工具、技術實現功能,快速的完成產品的開發,核心的算法並不需要去了解(比如圖像識別直接調用某廠商、公司的封裝好的SDK就可以了)。但要成為高級程序員如果懂點算法、知道實現的原理,就有價值的多。所以我們程序員在人工智能時代,並不一定要求精通算法,但一定要懂點算法,這樣才能夠跟上這個時代的步伐,不被迅速淘汰掉。
5.算法是否真的能夠像科幻電影中那樣預知未來?請分享你的想法。
這個未來太籠統了,如果具體化些則可行性更高一點。比如我們現在的天氣預報就是根據算法來預測未來幾天的天氣情況的,比如AlphaGo就能夠根據當前棋盤的情況,計算出最終的勝負,從而確定下一步的最佳落子方案。所以我的觀點是,算法會在越來越多的領域逐漸的深入應用,從而達到“智能”的效果,但還是在人類的控制之下。
本文最初發表於異步社區:https://www.epubit.com/selfpublish/article/1077