演算法競賽水平和演算法水平之間關係很大嗎?
01-08
似乎像ACM之類的演算法競賽更考察的是時間壓力下快速實現演算法的能力,想知道這樣的能力在真正的工作中是否很重要?一個演算法競賽水平一般的程序員是否能勝任開發工作?
謝邀。個人認為開發能力和演算法能力是兩碼事。就如同所有行業的應用層和理論層一樣。
對於開發者來說,需要明白各種函數、api的介面,並不用完全理解其內部實現。
對於演算法競賽則要更透徹地理解問題如何解決,具體到接近底層。當然更強的演算法能力對於思維和開發會有極大幫助,解決演算法問題更具創造性,而開發則相當依賴於經驗。換句話,一般演算法競賽參與者很容易且能輕鬆地適應到開發中,反之則不然。總而言之,演算法是創造各種工具的思想,而開發僅需要熟練運用工具。ACM要求的是解題能力。而演算法能力是解題能力中基礎的基礎。
我是演算法工程師,但其實更像是研究員啦。演算法狹義來講是計算機演算法,而我實際工作是搞研究,信號處理、數學物理什麼的,寫成計算機演算法只是後期的一小部分工作。所以對我們而言,演算法水平主要是指數理基礎、分析能力等搞研究的能力水平
推薦閱讀:
※如果不考慮空間, 如何使快排成為穩定的排序演算法?
※為什麼演算法中會出現magic number?
※如何評價noip2017day2?
※王宏志是誰?在他的背後又有哪些傳奇經歷?