前言
現在由于互聯網時代的到來,越來越多的人去學習互聯網開發,成為程序員大軍中的一員。也正是因為程序員大軍中人數眾多,導致了現在對于技術人員的要求也越來越高了。技術不斷的更新變化,因此技術人員也每年都在跟著時代不斷的學習。今天移動開發火熱,一群人去學習Android、iOS開發,明天人工智能火熱又一群人去學習Python、人工智能技術。但是很多時候,我們在學習完成了一門技術之后去面試找工作,一些公司在面試的時候往往需要考察算法知識。但是很多技術人員都知道,其實在工作中算法知識用的其實很少很少,那么就產生了一個疑問,作為一名程序員,數據結構和算法知識到底有沒有必要去學習?
首先回答你,如果是一般崗位其實不用;如果是進BAT這種大公司,是需要會但是不用特別精通,如果是去國外加入Google、Facebook這種公司或者想拿高薪作為一名算法工程師拿就必須精通。下面我對這三種說法結合自身來分別說下。
一般型中小公司
對于小公司或者一般的公司來說,其實按照我的說法是不僅不需要精通,甚至可以說你完全無知也沒關系。因為小公司或者一般的公司入門門檻低,不要說算法了,就算是面試官可能都不太懂技術,他主要面試的是人,也就是看人,覺得你合適就來,而且真正牛逼的人根本就不是靠小公司走招聘市場招來的,大牛一般都是靠挖來的。而且在一般的小公司都是專注去寫業務邏輯代碼,很多公司只需要你實現了這個功能就OK,對于代碼編寫規范或者時間空間復雜度等最優實現根本就不會去管你。所以你在這里面其實會不會算法都沒有任何必要,會算法不會為你加分,不會算法也不會為你減分。
BAT
如果你是一個有追求的程序員,不甘心滿足天天在小公司待著,而是想去BAT或者TMD這種大型公司或者超級獨角獸公司的話,那算法是絕對繞不開的一個話題。就拿本人還有周圍去面試過大公司的朋友來舉例子。BAT面試全都要涉及到算法。騰訊我去面試過,在二面掛了,一面和二面其實都有算法題目,一面相對而言簡單一些,二面的算法就有難度了。而我有一個朋友,拿到了騰訊和阿里的offer,他回來說騰訊五輪面試中有一輪面試是專門考察算法,總共六道算法題目給了你兩個小時時間作答。阿里的電話面試里面也有一輪視頻面試專門考察算法,也是當著他們的面手寫算法。光講思路在騰訊行不通的。本人曾面對騰訊的題目跟面試官說我談談思路吧,面試官直接懟回來說不要談什么思路,直接寫出來給我看,平時怎么敲代碼現在就怎么寫出來。可見對待算法完全沒有任何商量的余地。至于頭條公司那就更是如此了,因為頭條就是一家以算法驅動的公司,對算法要求也比較高。但是即便如此,BAT對待算法還遠達不到稱之為精通的地步。
硅谷形公司——Google、Facebook
其實最兇殘的公司是硅谷這些公司,例如Google和Facebook這類的公司。他們面試你問的全是算法,從來不會去問你專業知識,而且他們的算法問的是超級難得地步。只要你通過了Google、Facebook公司的算法面試,那么你進入公司想做什么技術崗位都可以。比如,你一個從來沒學過Android的人,只要通過了他們面試,進去做Android也完全沒問題。因為在老外眼里,算法是非常難得東西,你連這么難的東西還能通過他們的面試,那么其他的編程知識進去給你時間學也能夠馬上學會。所以你想通過他們Google和Facebook的面試,那么算法確實要達到精通的地步,如果只是初級水平可能只有進去參觀的份了。而不管時代如何變,算法工程師永遠是市面上的稀缺物種,稀缺就代表值錢,所以學好編程不如學好算法,語言只是編程工具,算法才是編程之魂!
如果需要去面試考察算法的,這里可以推薦一般本書《劍指offer》,這本書基本上涵蓋了國內所有公司面試考察的算法題目,只要把這本書上的代碼敲一遍,相信在算法領域面試基本應該沒啥問題。或者想要動手操作的話也可以去LeetCode上刷刷題目,在練習當中才能有所提高和進步!
-
程序員
+關注
關注
4文章
954瀏覽量
30328
發布評論請先 登錄
程序設計與數據結構
如何在 樹莓派 上編寫和運行 C 語言程序?

阿里云升級通義靈碼AI程序員,全面上線
學習硬件的第一節課:學習讀懂原理圖

機械革命發布CODE AI程序員本
AI編程工具會不會搶程序員飯碗
第五屆長沙·中國1024程序員節開幕
京東上萬程序員都AI用它!

程序員節視頻創意大賽,用串口屏贏取千元大獎

程序員節視頻創意盛宴,邀您共襄盛舉!

助力程序員告別困擾已久的夢魘-Bug

評論