為何很多有不少編程經(jīng)驗(yàn),技術(shù)能力不錯(cuò)的程序員,去心儀公司面試找工作時(shí)卻總是失敗?至于失敗的原因,可能很多人都沒意識(shí)到過。下面就來簡(jiǎn)單為程序員們分析下原因所在。
01 想要通關(guān)面試,千萬別讓數(shù)據(jù)結(jié)構(gòu)拖了后腿
很多公司,比如 BAT、Google、Facebook,甚至以技術(shù)作為支撐的中小型互聯(lián)網(wǎng)公司,面試的時(shí)候都喜歡考數(shù)據(jù)結(jié)構(gòu)、算法,讓人現(xiàn)場(chǎng)寫代碼。
有些人雖然技術(shù)不錯(cuò),但每次去面試都會(huì)“跪”在算法上,很是可惜。那你有沒有想過,為什么這些大公司都喜歡考算法呢?
校招的時(shí)候,參加面試的學(xué)生通常沒有實(shí)際項(xiàng)目經(jīng)驗(yàn),公司只能考察他們的基礎(chǔ)知識(shí)是否牢固。社招就更不用說了,越是厲害的公司,越是注重考察數(shù)據(jù)結(jié)構(gòu)與算法這類基礎(chǔ)知識(shí)。相比短期能力,他們更看中你的長期潛力。
02 穩(wěn)固的基礎(chǔ)知識(shí),決定了你的高度
你是不是覺得數(shù)據(jù)結(jié)構(gòu)和算法,跟操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)一樣,是脫離實(shí)際工作的知識(shí)?可能除了面試,這輩子也用不著?
可是你聽說過技術(shù)過時(shí),什么時(shí)候聽說過算法過時(shí),不僅沒有過時(shí),因?yàn)闄C(jī)器學(xué)習(xí)、大數(shù)據(jù)的要求,算法變得越來越重要了。
當(dāng)然,也有很多人說,自己實(shí)際工作中根本用不到數(shù)據(jù)結(jié)構(gòu)和算法。所以,就算不懂這塊知識(shí),只要 Java API、開發(fā)框架用得熟練,照樣可以把代碼寫得“飛”起來。
你別忘了,我們學(xué)任何知識(shí)都是為了“用”的,是為了解決實(shí)際工作問題的,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法自然也不例外。
03 業(yè)務(wù)開發(fā)工程師,你真的愿意做一輩子 CRUD boy 嗎?
如果你是一名業(yè)務(wù)開發(fā)工程師,你可能要說,我整天就是做數(shù)據(jù)庫 CRUD(增刪改查),哪里用得到數(shù)據(jù)結(jié)構(gòu)和算法啊?
是的,對(duì)于大部分業(yè)務(wù)開發(fā)來說,我們平時(shí)可能更多的是利用已經(jīng)封裝好的現(xiàn)成的接口、類庫來堆砌、翻譯業(yè)務(wù)邏輯,很少需要自己實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和算法。
但是,不需要自己實(shí)現(xiàn),并不代表什么都不需要了解。
小編來舉一個(gè)你非常熟悉的例子:如何實(shí)時(shí)地統(tǒng)計(jì)業(yè)務(wù)接口的 99% 響應(yīng)時(shí)間?
你可能最先想到,每次查詢時(shí),從小到大排序所有的響應(yīng)時(shí)間,如果總共有 1200 個(gè)數(shù)據(jù),那第 1188 個(gè)數(shù)據(jù)就是 99% 的響應(yīng)時(shí)間。很顯然,每次用這個(gè)方法查詢的話。
都要排序,效率是非常低的。但是,如果你知道“堆”這個(gè)數(shù)據(jù)結(jié)構(gòu),用兩個(gè)堆可以非常高效地解決這個(gè)問題。
04 不僅要關(guān)注功能的實(shí)現(xiàn),還有關(guān)注代碼質(zhì)量
對(duì)編程還有追求?不想被行業(yè)淘汰?那就不要只會(huì)寫湊合能用的代碼!
小編覺得,面試時(shí)的競(jìng)爭(zhēng)其實(shí)就在細(xì)節(jié)。
這些細(xì)節(jié)包括:你用的算法是不是夠優(yōu)化,數(shù)據(jù)存取的效率是不是夠高,內(nèi)存是不是夠節(jié)省等等。這些累積起來,決定了一個(gè)框架是不是優(yōu)秀。所以,如果你還不懂?dāng)?shù)據(jù)結(jié)構(gòu)和算法,不懂得如何提高代碼的質(zhì)量,還是抓緊時(shí)間補(bǔ)一補(bǔ)吧。
服務(wù)熱線
0356-3043986