前言
現(xiàn)在由于互聯(lián)網(wǎng)時(shí)代的到來(lái),越來(lái)越多的人去學(xué)習(xí)互聯(lián)網(wǎng)開發(fā),成為程序員大軍中的一員。也正是因?yàn)槌绦騿T大軍中人數(shù)眾多,導(dǎo)致了現(xiàn)在對(duì)于技術(shù)人員的要求也越來(lái)越高了。技術(shù)不斷的更新變化,因此技術(shù)人員也每年都在跟著時(shí)代不斷的學(xué)習(xí)。今天移動(dòng)開發(fā)火熱,一群人去學(xué)習(xí)Android、iOS開發(fā),明天人工智能火熱又一群人去學(xué)習(xí)Python、人工智能技術(shù)。但是很多時(shí)候,我們?cè)趯W(xué)習(xí)完成了一門技術(shù)之后去面試找工作,一些公司在面試的時(shí)候往往需要考察算法知識(shí)。但是很多技術(shù)人員都知道,其實(shí)在工作中算法知識(shí)用的其實(shí)很少很少,那么就產(chǎn)生了一個(gè)疑問(wèn),作為一名程序員,數(shù)據(jù)結(jié)構(gòu)和算法知識(shí)到底有沒(méi)有必要去學(xué)習(xí)?
首先回答你,如果是一般崗位其實(shí)不用;如果是進(jìn)BAT這種大公司,是需要會(huì)但是不用特別精通,如果是去國(guó)外加入Google、Facebook這種公司或者想拿高薪作為一名算法工程師拿就必須精通。下面我對(duì)這三種說(shuō)法結(jié)合自身來(lái)分別說(shuō)下。
一般型中小公司
對(duì)于小公司或者一般的公司來(lái)說(shuō),其實(shí)按照我的說(shuō)法是不僅不需要精通,甚至可以說(shuō)你完全無(wú)知也沒(méi)關(guān)系。因?yàn)樾」净蛘咭话愕墓救腴T門檻低,不要說(shuō)算法了,就算是面試官可能都不太懂技術(shù),他主要面試的是人,也就是看人,覺(jué)得你合適就來(lái),而且真正牛逼的人根本就不是靠小公司走招聘市場(chǎng)招來(lái)的,大牛一般都是靠挖來(lái)的。而且在一般的小公司都是專注去寫業(yè)務(wù)邏輯代碼,很多公司只需要你實(shí)現(xiàn)了這個(gè)功能就OK,對(duì)于代碼編寫規(guī)范或者時(shí)間空間復(fù)雜度等最優(yōu)實(shí)現(xiàn)根本就不會(huì)去管你。所以你在這里面其實(shí)會(huì)不會(huì)算法都沒(méi)有任何必要,會(huì)算法不會(huì)為你加分,不會(huì)算法也不會(huì)為你減分。
BAT
如果你是一個(gè)有追求的程序員,不甘心滿足天天在小公司待著,而是想去BAT或者TMD這種大型公司或者超級(jí)獨(dú)角獸公司的話,那算法是絕對(duì)繞不開的一個(gè)話題。就拿本人還有周圍去面試過(guò)大公司的朋友來(lái)舉例子。BAT面試全都要涉及到算法。騰訊我去面試過(guò),在二面掛了,一面和二面其實(shí)都有算法題目,一面相對(duì)而言簡(jiǎn)單一些,二面的算法就有難度了。而我有一個(gè)朋友,拿到了騰訊和阿里的offer,他回來(lái)說(shuō)騰訊五輪面試中有一輪面試是專門考察算法,總共六道算法題目給了你兩個(gè)小時(shí)時(shí)間作答。阿里的電話面試?yán)锩嬉灿幸惠?a href="http://www.nxhydt.com/v/" target="_blank">視頻面試專門考察算法,也是當(dāng)著他們的面手寫算法。光講思路在騰訊行不通的。本人曾面對(duì)騰訊的題目跟面試官說(shuō)我談?wù)勊悸钒桑嬖嚬僦苯討换貋?lái)說(shuō)不要談什么思路,直接寫出來(lái)給我看,平時(shí)怎么敲代碼現(xiàn)在就怎么寫出來(lái)。可見(jiàn)對(duì)待算法完全沒(méi)有任何商量的余地。至于頭條公司那就更是如此了,因?yàn)轭^條就是一家以算法驅(qū)動(dòng)的公司,對(duì)算法要求也比較高。但是即便如此,BAT對(duì)待算法還遠(yuǎn)達(dá)不到稱之為精通的地步。
硅谷形公司——Google、Facebook
其實(shí)最兇殘的公司是硅谷這些公司,例如Google和Facebook這類的公司。他們面試你問(wèn)的全是算法,從來(lái)不會(huì)去問(wèn)你專業(yè)知識(shí),而且他們的算法問(wèn)的是超級(jí)難得地步。只要你通過(guò)了Google、Facebook公司的算法面試,那么你進(jìn)入公司想做什么技術(shù)崗位都可以。比如,你一個(gè)從來(lái)沒(méi)學(xué)過(guò)Android的人,只要通過(guò)了他們面試,進(jìn)去做Android也完全沒(méi)問(wèn)題。因?yàn)樵诶贤庋劾铮惴ㄊ欠浅ky得東西,你連這么難的東西還能通過(guò)他們的面試,那么其他的編程知識(shí)進(jìn)去給你時(shí)間學(xué)也能夠馬上學(xué)會(huì)。所以你想通過(guò)他們Google和Facebook的面試,那么算法確實(shí)要達(dá)到精通的地步,如果只是初級(jí)水平可能只有進(jìn)去參觀的份了。而不管時(shí)代如何變,算法工程師永遠(yuǎn)是市面上的稀缺物種,稀缺就代表值錢,所以學(xué)好編程不如學(xué)好算法,語(yǔ)言只是編程工具,算法才是編程之魂!
如果需要去面試考察算法的,這里可以推薦一般本書《劍指offer》,這本書基本上涵蓋了國(guó)內(nèi)所有公司面試考察的算法題目,只要把這本書上的代碼敲一遍,相信在算法領(lǐng)域面試基本應(yīng)該沒(méi)啥問(wèn)題。或者想要?jiǎng)邮植僮鞯脑捯部梢匀eetCode上刷刷題目,在練習(xí)當(dāng)中才能有所提高和進(jìn)步!
-
程序員
+關(guān)注
關(guān)注
4文章
949瀏覽量
29761
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論