演算法競賽水平和演算法水平之間關係很大嗎?

似乎像ACM之類的演算法競賽更考察的是時間壓力下快速實現演算法的能力,想知道這樣的能力在真正的工作中是否很重要?一個演算法競賽水平一般的程序員是否能勝任開發工作?


謝邀。

個人認為開發能力和演算法能力是兩碼事。就如同所有行業的應用層和理論層一樣。

對於開發者來說,需要明白各種函數、api的介面,並不用完全理解其內部實現。

對於演算法競賽則要更透徹地理解問題如何解決,具體到接近底層。

當然更強的演算法能力對於思維和開發會有極大幫助,解決演算法問題更具創造性,而開發則相當依賴於經驗。換句話,一般演算法競賽參與者很容易且能輕鬆地適應到開發中,反之則不然。

總而言之,演算法是創造各種工具的思想,而開發僅需要熟練運用工具。


ACM要求的是解題能力。而演算法能力是解題能力中基礎的基礎。


我是演算法工程師,但其實更像是研究員啦。演算法狹義來講是計算機演算法,而我實際工作是搞研究,信號處理、數學物理什麼的,寫成計算機演算法只是後期的一小部分工作。所以對我們而言,演算法水平主要是指數理基礎、分析能力等搞研究的能力水平


推薦閱讀:

如果不考慮空間, 如何使快排成為穩定的排序演算法?
為什麼演算法中會出現magic number?
如何評價noip2017day2?
王宏志是誰?在他的背後又有哪些傳奇經歷?

TAG:演算法 | 演算法導論書籍 | 演算法設計 | ACM競賽 | 演算法競賽 |