無憂保職場(chǎng)指南早報(bào):面試是有套路的,面試阿里這種級(jí)別的公司更是??陀^的講,面試除了自身的實(shí)力以外,技巧性是相當(dāng)重要的,不管是一個(gè)技術(shù)再厲害的大牛,如果沒有對(duì)整個(gè)面試環(huán)節(jié)有一個(gè)大致方向性的把握,對(duì)于面試官所要提問的內(nèi)容毫無準(zhǔn)備,失去offer的可能性很大。因此,我將分享下自己的經(jīng)驗(yàn),希望幫助更多人,在面試過程中可以少走一些彎路。
一、筆試
曾經(jīng)做過的網(wǎng)易、蘑菇街筆試,按難度排序,大致應(yīng)該是:阿里蘑菇街網(wǎng)易,當(dāng)然這里僅僅考慮了難度,拋開了各個(gè)公司的評(píng)判標(biāo)準(zhǔn)。比如說,阿里的筆試你考60就給你過了,但是網(wǎng)易可能就要你考75。阿里的筆試題總共包括兩個(gè)部分,前面一部分是選擇題,總共20道,時(shí)間是40分鐘。也就是說,40分鐘后,不管有沒有做完,選擇題會(huì)自動(dòng)進(jìn)行提交,然后你才可以繼續(xù)做第二部分。
從我做下來的情況看,時(shí)間相當(dāng)?shù)泌s,基本上會(huì)來不及。題目?jī)?nèi)容大多是一些智商題,概率論,操作系統(tǒng)、網(wǎng)絡(luò)等基礎(chǔ)題。給我的感覺是,只要是技術(shù)面,選擇題都是從一個(gè)大的題庫中隨機(jī)抽取,而不是跟某個(gè)具體的崗位掛鉤。比如一些概率題,會(huì)有考察貝葉斯公式的,一些智商題,可能需要你用到簡(jiǎn)單的動(dòng)態(tài)規(guī)劃來推算。個(gè)人認(rèn)為,選擇題部分主要還是在考察一個(gè)人的基本功和知識(shí)面。第二部分總共有三道大題,時(shí)間大概是兩個(gè)小時(shí)。一般情況下會(huì)考一道算法題,難度不會(huì)太大,但是如果你沒做過這樣的題目,基本上還是做不出來。下面列舉幾道筆試原題:
在一個(gè)數(shù)組中,有若干個(gè)數(shù),每個(gè)數(shù)字都出現(xiàn)兩次,也就是說數(shù)組中如果出現(xiàn)了一個(gè)2,那必定存在另一個(gè)2,除了一個(gè)數(shù)僅僅出現(xiàn)了一次,如何在空間復(fù)雜度為O(1)的情況下找出這個(gè)數(shù)。
這道題目如果你有做過,你會(huì)發(fā)現(xiàn)解決問題的方式相當(dāng)巧妙。具體答案可以自行百度,這里不贅述。
從100個(gè)數(shù)中隨機(jī)抽取K個(gè)數(shù),要求K個(gè)數(shù)不能重復(fù)。
你也許可以馬上想到用暴力的解決辦法,如果重復(fù)了,那再次抽取,直到抽完K個(gè)數(shù)。這道題目也有巧妙的解決辦法,詳見《編程珠璣》隨機(jī)數(shù)那一章。
另外兩道題目,一般會(huì)出現(xiàn)一道并發(fā)編程題,往往它會(huì)給你一個(gè)場(chǎng)景,讓你提供一個(gè)解決方案,比如說設(shè)計(jì)一個(gè)活動(dòng)搶購(gòu)之類的程序。這些題目,大多萬變不離其中,從最本質(zhì)上來說,它可能僅僅是讓你寫一個(gè)生產(chǎn)者消費(fèi)者模式或者是哲學(xué)家吃飯思考的問題。
一般情況下,筆試部分選擇題做得不是很差,后面三道大題能做出兩道來基本上就過了。
二、面試
面試這個(gè)過程其實(shí)共性不多,因?yàn)槊嬖嚬贂?huì)根據(jù)不同的面試者進(jìn)行提問。為了避免泛泛而談,我可能也會(huì)以幾個(gè)實(shí)際的面試題為例。
一般情況下,總共會(huì)有三輪,技術(shù)面+HR面。如果你參加的是內(nèi)推,所有的都是電話面試。對(duì)于我來講,我更喜歡與面試官一對(duì)一面試,通過一些肢體語言和紙筆,有利于把一個(gè)問題更好得表達(dá)清楚,我并不懼怕現(xiàn)場(chǎng)寫代碼。在這方面,網(wǎng)易做得就比較好,先通過一輪電話面試篩掉一部分人,然后再參加現(xiàn)場(chǎng)面試,對(duì)于外地過來的同學(xué),車票可以報(bào)銷。如果你參加的是校招,通過了筆試,一般會(huì)邀請(qǐng)你去一個(gè)酒店進(jìn)行面試。
面試一般會(huì)讓你先做個(gè)自我介紹,這時(shí)候不要再去重復(fù)得介紹一些個(gè)人信息,面試官跟你面試的時(shí)候,肯定是已經(jīng)拿到你的個(gè)人簡(jiǎn)歷了,可以介紹一下自己平時(shí)經(jīng)常做的事情,自認(rèn)為比較擅長(zhǎng)的或者自己喜歡的,自我介紹一分鐘足矣,在這過程中,應(yīng)該是讓面試官知道你擅長(zhǎng)什么,從而引導(dǎo)面試官有針對(duì)性的提問。
接下來會(huì)問一些項(xiàng)目經(jīng)驗(yàn),你應(yīng)該是挑一些有一定的含金量,并且印象比較深刻的(面試前,有必要回顧下做過的項(xiàng)目)。大致可以按照這幾點(diǎn)來介紹:自己負(fù)責(zé)了哪個(gè)模塊;把這個(gè)模塊的大致流程介紹一遍;在做這個(gè)項(xiàng)目過程中碰到了哪些問題,最后是怎么解決的;最后就是對(duì)這個(gè)項(xiàng)目的收獲。介紹完項(xiàng)目經(jīng)驗(yàn)以后,面試官開始自由提問,以我多次面試的經(jīng)驗(yàn)來看,面試的問題都不會(huì)太難。我可以大致給出面試的提問范圍:
關(guān)于java虛擬機(jī),你需要知道JVM的內(nèi)存結(jié)構(gòu),垃圾回收機(jī)制,內(nèi)存分配策略,類的加載機(jī)制以及內(nèi)存模型。以上這些請(qǐng)參考周志明的《深入理解java虛擬機(jī)》。
熟悉java各個(gè)容器的實(shí)現(xiàn),例如Hash Map、Concurrency Hash Map等,最好去閱讀源碼,這次面試關(guān)于Hash Map原理三個(gè)面試官問了我三次,重要程度不需多說了。
熟悉java并發(fā)編程,尤其是java.concurrency包下的api,并發(fā)作為一塊高級(jí)內(nèi)容,對(duì)于很多人說,很少接觸,也很難將其掌握。幸運(yùn)的是,面試官在這一塊都不會(huì)考得太深入,推薦《java concurrency in practice》。
熟悉常用的數(shù)據(jù)結(jié)構(gòu)、算法。很多人認(rèn)為算法在實(shí)際項(xiàng)目中根本用不到,并且覺得算法太難,就疏于學(xué)習(xí)。那為什么所有的大公司都喜歡考算法呢?尤其是像微軟、facebook這樣的巨頭?算法不僅需要必備的理論,更需要親自動(dòng)手,有關(guān)算法的書籍更多,找一本適合的就可以了,題庫推薦leetcode。
其他還有像設(shè)計(jì)模式、數(shù)據(jù)庫都很重要,這些東西并不是靠一兩個(gè)月就能掌握,還是需要平時(shí)多積累、總結(jié)。推薦《head first設(shè)計(jì)模式》,如果有你認(rèn)為學(xué)習(xí)能力強(qiáng),可以直接看四人幫的《設(shè)計(jì)模式》,數(shù)據(jù)庫就不多說了。
在這里,我并不是想給出一個(gè)面試寶典一樣的東西。事實(shí)上,上面列出的東西,沒有兩到三年的時(shí)間學(xué)習(xí),根本掌握不了。要想成為一名技術(shù)大牛沒有捷徑。還是希望大家可以認(rèn)真踏實(shí)的學(xué)習(xí),一旦你真正掌握了這些,面對(duì)面試官的提問基本上可以達(dá)到游刃有余。
三、總結(jié)
總體來說,大多數(shù)企業(yè)考慮到校招針對(duì)的是在校學(xué)生,面試都不會(huì)出現(xiàn)太難的題目。然而在如何學(xué)習(xí)這個(gè)問題,筆者還是有話要說的,我見過很多人,光看書或者視頻,忽略了實(shí)踐,最終的結(jié)果就是我能看懂代碼,但是我不會(huì)寫。更有甚者,拿著一本與自身水平不適應(yīng)的書例如《think in java》在那里啃,導(dǎo)致自信心大受打擊,學(xué)習(xí)興趣驟減。武俠小說告訴我們,練一門與自身功力不相符的武功只會(huì)走火入魔。
馬克思主義哲學(xué)告訴我們,要理論和時(shí)間相結(jié)合,實(shí)踐是理論的基礎(chǔ),理論對(duì)實(shí)踐有反作用,理論和實(shí)踐是相輔相成的,缺一不可。
我剛才強(qiáng)調(diào)了實(shí)踐的意義,但是我認(rèn)為,如果你做過類似的項(xiàng)目已經(jīng)足夠得多,就不要再去做重復(fù)勞動(dòng)。我無意去貶低在學(xué)校做的項(xiàng)目,但是事實(shí)就是如此,99%的學(xué)校里的項(xiàng)目只能算個(gè)Demo。試問,有誰考慮了代碼是否足夠Elegant?是否足夠Robust?是否足夠Sequrity?如果沒有,那就遠(yuǎn)遠(yuǎn)達(dá)不到作為產(chǎn)品級(jí)別的工業(yè)強(qiáng)度!那么這樣的項(xiàng)目做得再多也是無用功。
另外,文章開頭談到我兩次失敗的經(jīng)歷,都是到了HR面,有人說能面到HR,基本上就已經(jīng)過了。而我兩次都敗在了HR面上,我一度懷疑自己是不是情商有問題,后來我發(fā)現(xiàn)大多數(shù)的HR都是SB,你要問我為什么,我可以給出邏輯證明,period。
最后,如果面試失敗也不要灰心,面試很大一部分是有運(yùn)氣成分的,筆者不乏見過很多被BAT刷掉,最終去了微軟谷歌的,你能說他們技術(shù)不夠強(qiáng)硬?重要的是每次面試后,都能做反思、總結(jié),吸取經(jīng)驗(yàn)教訓(xùn)。
買房,搖號(hào),落戶,孩子入學(xué)都受社保影響,無憂保作為業(yè)界領(lǐng)先的個(gè)體社保自助繳納平臺(tái)推出全國(guó)社保代繳服務(wù),保你社保不斷繳。
小編有話說:謝謝這么優(yōu)秀的你來看文章,有什么想對(duì)小編說的盡管來吧,大家的支持就是我們的動(dòng)力,歡迎大家踴躍發(fā)表疑問,歡迎吐槽,社保生態(tài)圈群:248069515
標(biāo)簽: 面試