在中國,只要你能在阿里工作,基本就算是拿到了互聯(lián)網(wǎng)行業(yè)的Pass卡,各家公司都會給你機(jī)會。
不全是因?yàn)榘⒗锱谱哟螅且驗(yàn)榘⒗镞@種段位的公司,一定有自己完善的用人系統(tǒng),能被選中就是優(yōu)秀的證明,在這個(gè)體系中生存就是鍛煉。
這就跟肯德基、麥當(dāng)勞肯定要在有對方的地方開店一樣,前期市場調(diào)查對面都做過了,我跟著走就好,還特立獨(dú)行個(gè)什么勁?
如果能混到阿里P7、M2這個(gè)段位,國內(nèi)互聯(lián)網(wǎng)公司完全可以橫著走,只有工作找你,沒有你找工作。稍微透露一點(diǎn)想跳槽的欲望,第二天你的電話就會被獵頭打爆。
阿里P7是業(yè)內(nèi)的硬通貨。
如果是電商和云計(jì)算領(lǐng)域,不用問,不開出雙倍工資那都是誠意不夠,因?yàn)閲鴥?nèi)經(jīng)歷過如此大規(guī)模從0到1的電商和云計(jì)算的公司,只有阿里。
你嫌貴,拼多多和華為可不嫌貴。
當(dāng)然,雙倍工資也有大量的阿里員工不肯走,“阿里的員工最難挖”這是獵頭的共識。
這種堪稱硬通貨的聲名甚至遠(yuǎn)播海外?!肮韫茸鲈频?、做底層架構(gòu)的華人工程師,如果要考慮加入國內(nèi)公司,首選阿里”。
年初入選全球頂級開源社區(qū)CNCF技術(shù)監(jiān)督委員會的李響,從卡納基大學(xué)碩士畢業(yè)后曾一度進(jìn)入硅谷公司CoreOS,但阿里的崛起震動了硅谷,這讓他看到了另一種選擇,他回到國內(nèi),入職阿里云。
加入阿里云后,李響負(fù)責(zé)大規(guī)模集群調(diào)度與管理系統(tǒng),利用云原生技術(shù)升級阿里巴巴的基礎(chǔ)架構(gòu),提升硬件利用率與開發(fā)、部署效率。成為阿里最年輕的幾個(gè)P9之一。
對了,他是90后。
而且阿里有個(gè)特點(diǎn),就是COO天下無敵,國內(nèi)500家互聯(lián)網(wǎng)企業(yè),阿里出身的高管要占三分之一。
比如滴滴創(chuàng)始人兼CEO程維、美團(tuán)的前COO干嘉偉、前大眾點(diǎn)評COO呂廣渝、前趕集網(wǎng)COO陳國環(huán)、去哪兒網(wǎng)COO張強(qiáng)。全都是阿里出身。
一畢業(yè)就進(jìn)阿里,這樣的人,你們可能不明白這是什么概念,我們一般會用兩個(gè)字形容這種人:學(xué)怪!
知道學(xué)怪和學(xué)神什么區(qū)別么?面對學(xué)神,你會感覺無能為力,面對學(xué)怪,你只會大罵這個(gè)人一定開掛了。
當(dāng)然,掛也有大掛、小掛、定制掛之分,而說到定制掛就不能不提道哥 :“刺總”吳翰清。但刺總這樣的大佬只是少數(shù),但也可以看出阿里的人才儲備多么恐怖。
每年源源不斷的優(yōu)秀應(yīng)屆生是阿里“良將如云”的保障。今年阿里放寬了限制,增加了30%的基礎(chǔ)技術(shù)研發(fā)崗,還開放了量子計(jì)算、人工智能、芯片研發(fā)、數(shù)據(jù)庫研究等高端職位。但這些崗位對于龐大的畢業(yè)生隊(duì)伍來說還是狼多肉少。
想進(jìn)阿里,就得靠實(shí)力來拼。
阿里是最尊重實(shí)力的,而這種尊重也會為阿里帶來好結(jié)果。
當(dāng)年有一個(gè)名叫程立的年輕人,讀博的時(shí)候偶爾給淘寶做些兼職。
在兼職過程中,支付寶的技術(shù)大牛苗人鳳發(fā)現(xiàn)這個(gè)年輕人有非同一般的潛力,于是向他發(fā)出邀請,程立放棄博士學(xué)位,決定加入阿里,崗位級別是P4——阿里最低級的技術(shù)崗。
但是這個(gè)P4非同凡響,剛剛?cè)肼?,程立就被指定?fù)責(zé)支付寶第一代交易系統(tǒng)的自主設(shè)計(jì)開發(fā)。支付寶內(nèi)部對此有句評語:“支付寶有多心大,P4就有多大”。
萬萬沒想到,四年后,程立“單騎救主”,在支付寶最危險(xiǎn)的17個(gè)小時(shí)里拯救了世界。
2008年,在一次關(guān)鍵的技術(shù)升級“賬務(wù)三期”中,支付寶數(shù)據(jù)出現(xiàn)了錯(cuò)誤。
對一個(gè)和錢有關(guān)的軟件來說,數(shù)據(jù)上的錯(cuò)誤足夠徹底抹殺支付寶在中國剛剛打下的家底。
預(yù)計(jì)的停機(jī)時(shí)間8小時(shí)過去了,沒能解決問題,不得不再延長7小時(shí)。
網(wǎng)上開始出現(xiàn)流言,說支付寶團(tuán)隊(duì)已經(jīng)卷款跑路了,嚇得公關(guān)部門急忙澄清。
就在這時(shí),程立出手了。
從下午3點(diǎn)到下午5點(diǎn),兩個(gè)小時(shí)里,他安靜的敲擊鍵盤,并最終找到了數(shù)據(jù)無法配平的原因。
這一戰(zhàn)奠定了程立的地位,也向世界證明,尊重實(shí)力,真的會有回報(bào)。
哦,程立就是魯肅,螞蟻金服CTO。
和很多喜歡大量招應(yīng)屆生的公司不一樣,阿里對于校招的態(tài)度講究的是寧缺毋濫。
這個(gè)寧缺毋濫還不僅僅是指能力,能力只是阿里考量的一部分,更重要的是潛力和價(jià)值觀。
別家招聘像是吃東西,不管有沒有用先吃下去,有用的消化了,沒用的排出去。
阿里的招聘像是輸血,從第一次見面就要你型號能對上,型號不對,不管是多優(yōu)質(zhì)的人才都只能講拜拜。
要知道阿里的校招少,就是因?yàn)榘⒗镏匾曅U?,每一個(gè)阿里自己培養(yǎng)起來的人,都是未來高管的苗子。
把你招進(jìn)來都是小事,但是十年二十年后,企業(yè)文化能不能傳承,企業(yè)運(yùn)作會不會僵化,員工能不能獨(dú)當(dāng)一面,內(nèi)部會不會出現(xiàn)小團(tuán)體……這都要看你的思路和性格來決定。
至于技術(shù),阿里大神那么多,只要你悟性夠,后面都可以慢慢學(xué)。
在阿里有一項(xiàng)傳統(tǒng)制度叫“師兄制”,這是一項(xiàng)幫助新人快速落地和融入文化的制度,每一個(gè)新入職的員工都將有一對一的師兄作為導(dǎo)師。
阿里巴巴CTO行癲曾這么跟工程師交流:“如果是下一個(gè)技術(shù)突破點(diǎn),不做的話會給我們帶來什么樣的影響;如果去做了,可能對我們現(xiàn)有或后續(xù)的業(yè)務(wù)帶來怎樣的幫助?!斑@些技術(shù)大牛鼓勵工程師自我思考,每個(gè)人理性的思考和規(guī)劃就是對公司的未來負(fù)責(zé)。
對校招的重視還體現(xiàn)在“阿里星”計(jì)劃上。
“阿里星”是阿里巴巴從2011年開始施行的技術(shù)人才校招策略。業(yè)內(nèi)講,能拿到阿里星的offer,就能去全世界的任何一家科技公司。
但阿里星的要求極其嚴(yán)苛,面試要經(jīng)過層層篩選,據(jù)說曾有人面試了13輪。每年的阿里星都會篩掉一大批高學(xué)歷者,有位拿過7次ACM亞洲獎項(xiàng)的面試者都被阿里星打了槍,只能拿到稍次一點(diǎn)的offer。
相比厚厚的論文成果,阿里更看重在校期間學(xué)術(shù)研究和商業(yè)化之間的技術(shù)聯(lián)系。
2018年阿里星陳謙,27歲中科大博士畢業(yè),個(gè)人研發(fā)的AI技術(shù),在國際大賽中擊敗IBM等公司,連拿兩個(gè)世界第一,更是把人機(jī)對話準(zhǔn)確率的世界紀(jì)錄提升到94.1%。
聯(lián)立是2019年的阿里星,博士期間研究的是可回收火箭發(fā)射技術(shù)。現(xiàn)在人在菜鳥。阿里巴巴的野心,你懂。
23歲的胡晉,14歲考上北京交大,19歲浙大免試讀博,現(xiàn)在在阿里研究無人車。
所以雖然阿里星有各種各樣的好處:上不封頂?shù)哪晷健㈨敿獯笈SH自帶技術(shù)、最高管理親自教格局。卻不是一般人可以奢望的,只有應(yīng)屆生中的最強(qiáng)者才有這樣的資格。
阿里不存在放置實(shí)習(xí)生,讓實(shí)習(xí)生習(xí)慣工作流程的過程。當(dāng)年炎軒進(jìn)阿里實(shí)習(xí),還沒喘過氣,直接被扔進(jìn)了618活動的小組。哪有什么習(xí)慣環(huán)境,哪有什么適應(yīng)期,上來就是最重要的工作。
炎軒能夠突破這近乎不可能的實(shí)習(xí)期,才能在后面擔(dān)負(fù)起雙十一晚會“盧靖姍到你家”項(xiàng)目的策劃,展示自己在AR技術(shù)上的統(tǒng)治力。
撐得起這樣的責(zé)任,才能留在阿里。阿里作為中國頭目的公司,給的是最頭目的待遇,用的自然是最頭目的人。
我勸現(xiàn)在的大學(xué)生好好做點(diǎn)事,別把大把時(shí)間浪費(fèi)在游戲和泡妞上,不要辜負(fù)了自己考上名校的智商,也別辜負(fù)了自己未來的人生。多參加一些社會活動,多嘗試一些創(chuàng)業(yè)、試錯(cuò),為以后積累一點(diǎn)資本。人生的競爭不止一次,但總有一次機(jī)會你不小心落后了,就再也追不上去。
正好前段時(shí)間阿里校招,采訪了幾位在校招中拿到阿里offer的童鞋。給親做個(gè)參考:
第一位:技術(shù)體驗(yàn)部前端工程師 源介
“在真正面試前,我已經(jīng)準(zhǔn)備很久了”
進(jìn)入頂級的技術(shù)團(tuán)隊(duì)工作,是我最大的夢想。
從研一開始,我閱讀了各類前端書籍,犀牛書、紅寶書、蝴蝶書、CSS權(quán)威指南,一方面在實(shí)驗(yàn)室的項(xiàng)目中嘗試前沿的前端技術(shù),比如當(dāng)時(shí)還處于0.12版本的Vue,node。
研二時(shí),自己開始完成一些開源項(xiàng)目,自己給自己提需求,在實(shí)踐中挖掘可以深入的點(diǎn)。
應(yīng)聘前,有目的地準(zhǔn)備前端面試:前端基礎(chǔ)、前端框架、網(wǎng)絡(luò)、安全、前端性能、瀏覽器原理、工程化、node相關(guān)、數(shù)據(jù)庫、操作系統(tǒng)等,并以周為維度逐一復(fù)習(xí)和總結(jié)。算法對于前端同學(xué)也非常重要,我在leetcode上刷了200多題,學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)。
實(shí)習(xí)生面試則較看重編程語言及相關(guān)工具的掌握,對數(shù)據(jù)結(jié)構(gòu)、算法等計(jì)算機(jī)學(xué)科要點(diǎn)的理解要扎實(shí)。
往屆同學(xué)的面試經(jīng)驗(yàn)是很重要的信息來源,同學(xué)們在面試前一定要多查閱,并參照著進(jìn)行個(gè)人知識的完善。學(xué)弟學(xué)妹們還要注意知識面覆蓋的完備性,盡量避免有知識空白的出現(xiàn),比如一些前端同學(xué)在網(wǎng)絡(luò)(比如http/https/http2/tcp/udp等)和安全等領(lǐng)域知識的缺失就會影響自己的面試表現(xiàn)。
面試時(shí)一定要調(diào)整好心態(tài),即使被面到不會的問題,也要保持冷靜、快速思考,嘗試逐步分解問題,并一步步建立自己的思考邏輯,吐露自己的每一個(gè)想法,保持一種努力解決問題的姿態(tài),而不是簡單的“我不會”就放棄,這樣即使給出的方案不好、甚至有錯(cuò)誤,面試官也能了解你的構(gòu)思過程和考慮邊界。
面試后一定要立即做認(rèn)真的記錄,記下自己認(rèn)為沒有答好的點(diǎn),然后做全面的查閱、理解,確保后續(xù)再問到類似問題時(shí),能給到面試官最全面、準(zhǔn)確的回答。
第二位 技術(shù)風(fēng)險(xiǎn)部高級開發(fā)工程師 孝泰
“第一份工作期待一個(gè)更高的平臺”
在校招中拿到螞蟻金服的offer非常有成就感,需要也值得為之付出大量努力。
對于校招的新人,扎實(shí)的基本功一定是面試官首要關(guān)心的,這方面的準(zhǔn)備尤為重要。
關(guān)于知識點(diǎn)的準(zhǔn)備可分為三層:第一層是能解釋概念,第二層是能說明原理,第三層是了解實(shí)際應(yīng)用的場景。
例如在面試中問到了Java的volatile關(guān)鍵詞的問題,能說出是保證多線程訪問變量的可見性,并解釋什么是可見性可以得1分;如果能更進(jìn)一步從CPU緩存角度講清楚volatile關(guān)鍵字的實(shí)現(xiàn)原理,可以再得1分;由于這個(gè)關(guān)鍵詞平時(shí)用得比較少,可能沒有什么直接使用過的經(jīng)驗(yàn),但如果能答到Java的AtomicInteger類中為什么會用到volatile,解決什么實(shí)際的問題,又可以再得1分。
個(gè)人覺得能從這三個(gè)方面解釋清楚一個(gè)知識點(diǎn),就算是對這個(gè)知識點(diǎn)掌握得比較扎實(shí)了。
還有比較重要的是要有一個(gè)比較清晰的職業(yè)規(guī)劃,目標(biāo)越明確就越能有針對性地提高。
面試心態(tài)一定要自信。應(yīng)屆生在項(xiàng)目經(jīng)驗(yàn)上可能相對較少,所以有時(shí)候會感覺說話沒底氣,甚至有遇到過同學(xué)在面試一開始就說覺得自己技術(shù)不太行。雖然感覺上是挺坦誠的,但其實(shí)已經(jīng)給面試官留下了很不自信的印象了。其實(shí)你行不行,項(xiàng)目有沒有挑戰(zhàn)是面試官需要去判斷的,你需要的只是清晰的有條理的把自己的理解說出來就可以了。
在面試策略上,無論你準(zhǔn)備得多么充分,一開始也一定會緊張,所以要多參加一些面試,不要只準(zhǔn)備想去公司的面試。很多企業(yè)都會把最優(yōu)秀的員工投入到招聘中,參加面試對自己沒什么損失,和優(yōu)秀的面試官交流,面試能力也會大大提高。
如果能在面試你心儀的公司前就收割大量offer,也有助于公司認(rèn)同你的價(jià)值。
總之無論現(xiàn)實(shí)如何,內(nèi)心始終要堅(jiān)信付出一定會有收獲,你現(xiàn)在的付出將來一定會以各種形式回饋到你身上。
第三位 平臺數(shù)據(jù)技術(shù)事業(yè)群中間件開發(fā)工程師 無暮
“想要變強(qiáng),首先要站在強(qiáng)者中間”
【復(fù)習(xí)】復(fù)習(xí)大學(xué)課程學(xué)到的計(jì)算機(jī)基礎(chǔ)知識,包括數(shù)據(jù)結(jié)構(gòu)、算法、操作系統(tǒng)和網(wǎng)絡(luò)相關(guān)知識。復(fù)習(xí)不僅是為了面試,也能讓自己整理歸納所學(xué),達(dá)到連點(diǎn)成線、織線成網(wǎng)的效果。
很喜歡左耳朵耗子的一句話“基礎(chǔ)技術(shù)總是枯燥和有價(jià)值的。數(shù)學(xué)、算法、網(wǎng)絡(luò)、存儲等基礎(chǔ)技術(shù)吃得越透,越容易服務(wù)上層的各種衍生技術(shù)或產(chǎn)品\”。等實(shí)踐多了,就會發(fā)現(xiàn)很多項(xiàng)目中用到的技術(shù)和基礎(chǔ)技術(shù)里面的思路很相似。學(xué)好基礎(chǔ)技術(shù)走遍天下都不怕。
【應(yīng)試】對于應(yīng)屆生來說,其實(shí)考點(diǎn)還挺清晰的,網(wǎng)上已經(jīng)有很多總結(jié),也有很多面經(jīng):
- 數(shù)據(jù)結(jié)構(gòu):常見數(shù)據(jù)結(jié)構(gòu)List、Map和Set的實(shí)現(xiàn)原理和應(yīng)用場景,稍微上升一點(diǎn),java.util.*里面數(shù)據(jù)結(jié)構(gòu)的源碼分析;
- 算法:幾種排序算法的實(shí)現(xiàn)、復(fù)雜度和應(yīng)用場景,稍微上升一點(diǎn),當(dāng)處理內(nèi)存放不下的海量數(shù)據(jù)的TOP K問題、排序問題等等;
- 操作系統(tǒng):內(nèi)存分配尋址、線程調(diào)度和磁盤訪問;
- 網(wǎng)絡(luò):七層四層協(xié)議、TCP/IP握手揮手和擁塞控制;
- 數(shù)據(jù)庫:基本的SQL、數(shù)據(jù)庫引擎的區(qū)別和索引的類型和原理。
掌握了上述的這些,個(gè)人覺得作為應(yīng)屆畢業(yè)生已經(jīng)合格了。前提是真正的掌握,要“由表及里,知其所以然”。最好是自己模擬問自己,能經(jīng)受得住3輪以上的提問。
【成長】成長主要來自于書籍的閱讀和探索。建議讀《Thinking In Java》、《Effective Java》、《Java Concurrency in Practice》、《深入理解Java虛擬機(jī)》和《Netty In Action》等書籍。養(yǎng)成習(xí)慣采取三步法去了解一項(xiàng)技術(shù):外在行為/表現(xiàn)是怎么樣的;怎么實(shí)現(xiàn)/原理是什么;為什么要選擇這樣做,目的是什么,優(yōu)劣是什么??磿粌H能讓自己系統(tǒng)掌握一項(xiàng)技術(shù),技術(shù)書籍中還會留下一些進(jìn)階知識的引子。
下方云棲君再給大家分享一些阿里面試寶典,技術(shù)類的資深終面官永叔給大家送上實(shí)用的面試秘籍,希望對各位想進(jìn)阿里工作的童鞋有所幫助:
Q:面試官看簡歷,最關(guān)注哪些部分?
A:導(dǎo)師和實(shí)驗(yàn)室、研究方向都會關(guān)注,還有他的論文,我們都會提前去下載來看,并提前準(zhǔn)備問題。其他信息我們會也看看有沒有加分項(xiàng)。細(xì)節(jié)上,郵箱的名字能看出來有些同學(xué)很重視細(xì)節(jié)。TIPS:簡歷第一頁一定要把最關(guān)鍵的信息寫上,簡歷篇幅不要太長。
Q:面試過這么多同學(xué),您對同學(xué)們有什么面試忠告?
A:面試的基本要點(diǎn)很多,很多同學(xué)容易犯的一些小問題,我總結(jié)幾個(gè)點(diǎn)分享給大家:
1、一定不要遲到,這是起碼的尊重。對面試官也是這樣的要求。
2、對簡歷內(nèi)容要有準(zhǔn)備。對自己的優(yōu)點(diǎn),包括技術(shù)/個(gè)性上的亮點(diǎn),要練習(xí)表達(dá),避免臨時(shí)組織語言。
3、尊重事實(shí),如實(shí)回答。每個(gè)同學(xué)擅長點(diǎn)不同,面試官風(fēng)格也不同,問到自己不清楚的地方,請不要試圖去強(qiáng)掰,實(shí)事求是回答就好。
4、心態(tài)放平。碰到壓力面試的時(shí)候,不要試圖去挑起PK的氛圍。在面試過程中,面試官的最終目標(biāo)是希望幫助面試同學(xué),找到問題最優(yōu)解。做好自己,平時(shí)多加練習(xí)。
Q:面試到底面哪些維度?同學(xué)們需要怎么準(zhǔn)備?
A:阿里的用人理念是非凡人、平常心、做非凡事。我們期待的人員特質(zhì)是聰明、樂觀、皮實(shí)、自省。下面用技術(shù)類的同學(xué)舉個(gè)例子:
計(jì)算機(jī)類的同學(xué),我們更關(guān)注基礎(chǔ)。公司有一套完整的流程體系去培養(yǎng)一個(gè)工程師,面試更多是基礎(chǔ)素質(zhì)的考察,比如概率、矩陣等。不用特意準(zhǔn)備,但基礎(chǔ)的知識還是需要去復(fù)習(xí)的。
此外,我們更多看的是你思考的路徑,思考的工具和方法,你應(yīng)對問題的反應(yīng)如何,過程中融入一些軟技能的考察。當(dāng)然,我們還會考察學(xué)生的潛力。自己的項(xiàng)目經(jīng)歷,論文等,這一塊的考察我們首先會確認(rèn)真實(shí)性,更多的會關(guān)注細(xì)節(jié)。千萬不要把別人的項(xiàng)目寫到自己的項(xiàng)目里面,一旦發(fā)現(xiàn)后果很嚴(yán)重。
另外,Coding能力是必須的,建議一定要練習(xí),并且我們有速度要求。面試官面試過程中會要求在線寫代碼,實(shí)時(shí)同步過程。主要考察編碼風(fēng)格、準(zhǔn)確性、熟練程度。畢竟沒有哪個(gè)面試官會用一個(gè)在工作技能上無法和團(tuán)隊(duì)合作開展工作的人。
Q:學(xué)歷是不是招聘的門檻?
A: 我們只以能力論英雄,不唯學(xué)歷論。這幾年的面試過程中,我們發(fā)現(xiàn)一個(gè)現(xiàn)象:很多優(yōu)秀的同學(xué),在日常學(xué)習(xí)中會主動去了解、重視企業(yè)需要的能力項(xiàng),并不斷通過自學(xué)習(xí)去拉近自己與目標(biāo)值的距離。這個(gè)是非常好的趨勢。
Q:哪些因素會導(dǎo)致同學(xué)面試不通過?
A: 我們不會因?yàn)閷W(xué)生某個(gè)能力不足就PASS掉。面試是一個(gè)逐步肯定的過程,不是一個(gè)否定的過程。
一般面試官最后都會問,你有什么問題要問我的嗎?其實(shí)面試官希望知道的是同學(xué)對職位/部門/公司是否有了解,基于你了解的信息你有什么樣的問題,如何在這個(gè)環(huán)節(jié)提出高質(zhì)量的問題,也反映出來你對這個(gè)面試是否重視。但很遺憾,這個(gè)環(huán)節(jié)能回答好的同學(xué)并不多。最后這個(gè)提問機(jī)會是給到他展示自己綜合能力的機(jī)會,但很多人卻把這當(dāng)做面試結(jié)果“comfirm”的環(huán)節(jié)。還有同學(xué)拿問題去考面試官,或者糾結(jié)于某個(gè)問題應(yīng)該怎么去回答,完全忘記了面試是展示自己,不是學(xué)習(xí)交流,也不是PK。
Q:如果碰到特殊情況,同學(xué)該怎么做?
A:整個(gè)面試的節(jié)奏是面試官和同學(xué)共同營造的。如果自己對面試官提出的某個(gè)問題確實(shí)沒有想法,或者覺得題意不清晰,你可以表明自己的態(tài)度,或者請面試官更加清晰地描述下問題?,F(xiàn)場狀態(tài)不OK的情況下,一定要說NO,不用去迎合面試官。我們要的是展示自己,面試官做的是協(xié)助同學(xué)展示最好的自己。
Q:說說您面試過哪個(gè)同學(xué),讓您印象最深刻?
A:2018年,我面試過一個(gè)同學(xué),目前他已經(jīng)入職我的團(tuán)隊(duì),面試的時(shí)候他提到自己的生活習(xí)慣,對管理自己的時(shí)間還是很有想法的,自律程度讓人吃驚。入職之后,這個(gè)同學(xué)他也是這么做的,每天早上6-9點(diǎn)是他的學(xué)習(xí)時(shí)間。每天早上6點(diǎn)鐘-8點(diǎn)在家看書,8點(diǎn)到公司后,繼續(xù)再看1個(gè)小時(shí)的書,風(fēng)雨無阻。他學(xué)習(xí)結(jié)束,其他人才剛到公司。工作之余,他還投入在工作論文的發(fā)表上,剛投出去2篇。業(yè)務(wù)上,他現(xiàn)在是我們團(tuán)隊(duì)的骨干力量。從對他的觀察里面,不難發(fā)現(xiàn),優(yōu)秀的同學(xué)基本都來自于高度的自律。
Q:如何避免面試中的“雷區(qū)”?
A:我曾經(jīng)面試過一類候選人,2分鐘的自我介紹候選人滔滔不絕,沒有重點(diǎn),所有問題都會發(fā)散,整個(gè)面試的過程一直在show off自己,但沒有g(shù)et到問題的關(guān)鍵點(diǎn)。這樣的面試體驗(yàn)是不好的。
Q:很多學(xué)生困惑于該怎么選擇崗位,您有什么建議呢?
A:盡可能了解這個(gè)崗位未來的職業(yè)發(fā)展是什么樣的,是否具備崗位的敲門磚。阿里不同部門內(nèi)推信息網(wǎng)上有很多,可以找相關(guān)的師兄去問。同時(shí),可以去做一些測評,看看自己是否對自我有足夠的認(rèn)知。
不論你的學(xué)歷好還是不好,看看這篇經(jīng)驗(yàn),對你拿到互聯(lián)網(wǎng)一線公司的offer絕對有幫助,不論你是想深入學(xué)習(xí),還是想快速突擊拿到面試offer,那么本篇對你絕對有幫助.
0. 寫在之前
首先呢牛人的面試經(jīng)歷和一些面霸和收割機(jī)的大神相比絕不算豐富,但牛人的經(jīng)歷應(yīng)該能代表很大一部分人的心路歷程:
從無憂無慮也無知的狀態(tài),然后遭遇挫敗,跌入低谷,連續(xù)數(shù)天的黑暗,慢慢調(diào)整,逼著自己不能松懈,看到改變,收獲肯定,分享經(jīng)歷。
最直觀的感受:
offer = 心態(tài) * (實(shí)力 面試技巧) 緣分運(yùn)氣
就從左到右說起吧。
對了,以下經(jīng)驗(yàn)是長期積淀的過程,如果你想快速突擊,那么這個(gè)github可以看看,github.com/gzc426/Java-Interview這個(gè)github倉庫,內(nèi)容很豐富,面試的時(shí)候幫助很大,很用心很有幫助了。
1. 心態(tài)
其實(shí)每個(gè)階段的改變,也都是心態(tài)轉(zhuǎn)變的過程,所以首先要說的一點(diǎn),就是心態(tài)。在上面這種公式里,心態(tài)作為一個(gè)因子存在。沒錯(cuò),心態(tài)可以影響你面試的準(zhǔn)備,筆試的狀態(tài),實(shí)力的發(fā)揮,可以影響一個(gè)面試過程的方方面面。心態(tài)崩了,就只剩運(yùn)氣了,offer估計(jì)也就走遠(yuǎn)了。
那怎么調(diào)整自己的心態(tài)呢?
- 首先是要正視自己的能力。不輕視,不高估。
不輕視指的是我們都要對自己有信心,畢竟選了這個(gè)行業(yè)和方向,說句不好聽的話,機(jī)會那么多,就算你不怎么努力也會有個(gè)差不多的offer不是么?千千萬萬的初中創(chuàng)公司,各種擁有垂直領(lǐng)域穩(wěn)定份額的二三線公司甚至有些已經(jīng)上市,除此之外還有銀行,投資,金融的IT崗,還有各行各業(yè)為了互聯(lián)網(wǎng) 的策略而擴(kuò)展的互聯(lián)網(wǎng)分支(當(dāng)然像鏈家這種已經(jīng)算互聯(lián)網(wǎng) 傳統(tǒng)行業(yè)的典范了,我前些天還瞅到了像萬達(dá)德勤一類的各行業(yè)巨頭也在招程序開發(fā)…)所以啊,要對自己有信心,在這個(gè)行業(yè)十分缺人的年代里(當(dāng)然各個(gè)層次的公司缺人的標(biāo)準(zhǔn)是不一樣的),總不至于會失業(yè)吧。
不高估就是要清楚自己的能力范圍,不是說期望過高不好,但過高的期望會讓你的心理變得脆弱,稍有不順心態(tài)就有崩掉的趨勢。因?yàn)槊嬖嚠吘褂刑蟮呐既恍?,就算你達(dá)到了一定的水平,相應(yīng)水平的崗位也不是百發(fā)百中的,更不要說身邊有那么多大神和收割機(jī),天天拿offer拒offer,對心理都是不小的沖擊。
- 不要總給自己消極的暗示,心態(tài)差了積極調(diào)整。
大多數(shù)的人,總暗示自己說什么時(shí)間不多了,怎么每天過這么快效率怎么這么低。到筆試了,跟自己說這個(gè)算法太難了,肯定做不出來;臨到面試了,跟自己說千萬別問我linux內(nèi)核,別問我分布式,問我肯定完;面試過之后,沒有結(jié)果,就天天想肯定又掛了,唉我怎么這么菜。
如果這一系列的表現(xiàn)形成習(xí)慣,那心態(tài)這個(gè)系數(shù)最多0.5,能發(fā)揮出來的東西也都打了一半的折扣。凡事都不要太悲觀,一個(gè)offer沒拿到,正常情況是這個(gè)失敗的經(jīng)歷產(chǎn)生的經(jīng)驗(yàn)和總結(jié)是會讓下一次的成功率提高的,千萬別因?yàn)檫@些消極的暗示,反而讓該有的提高都沒有了。
心態(tài)差的時(shí)候反而要停下你重復(fù)而沒有效率的工作,去調(diào)整一下,可以出去玩一玩,吃吃喝喝,不要把這幾個(gè)月看得有多么不一樣,好像耽擱兩小時(shí)就要來生再見一樣。
- 對于身邊的同學(xué),多交流,不比較。
有一些一起準(zhǔn)備的好伙伴是件非常好的事情,不僅可以互相督促,而且可以在交流和分享的過程中取長補(bǔ)短。(哪怕是偶爾一起吐吐槽發(fā)泄一下也比一個(gè)人崩潰要好得多)。但對于每一次面試,只跟自己比就行了,面試的整個(gè)過程都是最怕比較的,偶然性大,而且每個(gè)人適合的方向和技術(shù)棧都不一樣,結(jié)果不能說明一切問題。如果身邊有些收割機(jī),那更不要太在意這些天天拿offer的(尤其是拿一個(gè)就跑過來講一句的,他們也許沒有惡意,但他們可能真的想不到這種方式會對別人產(chǎn)生怎樣的沖擊)。
對自己的水平有個(gè)很清楚的認(rèn)識,并選擇自己合適的公司,好好準(zhǔn)備自己的筆試、面試,不怕失敗,但保證每次面試都有收獲和提高,那滿意的offer早晚會來。
2. 實(shí)力
這里說的實(shí)力指的是硬實(shí)力,也就是技術(shù)上的真實(shí)積累(當(dāng)然產(chǎn)品崗的就是對于產(chǎn)品相關(guān)知識的積累),而其實(shí)呢軟實(shí)力在面試過程中也尤為重要(有時(shí)候真的要更重要),主要是指和面試官的溝通,對一個(gè)問題的闡述方式和表達(dá)方式,邏輯思維能力以及的價(jià)值觀和為人等。
然后關(guān)于這個(gè)軟實(shí)力我想放到下面的技巧中去說。
如果你平時(shí)有些項(xiàng)目積累,不擅長也從來沒有怎么系統(tǒng)地總結(jié)過;如果你學(xué)習(xí)呢不算那么認(rèn)真刻苦,研究搞得也不算出眾,但是你該努力的時(shí)候也會努力,可以為了一個(gè)好的工作逼自己一把。
那也許下面說的實(shí)力和技巧都可以在一定程度上幫到你。(因?yàn)槲揖褪沁@樣的情況)
- 實(shí)力怎么能體現(xiàn)出來
這么說是因?yàn)楹芏嗳似鋵?shí)在這些年的項(xiàng)目或是學(xué)習(xí)中有一些積累,但是在剛開始面試的時(shí)候完全感覺使不出力,就是有種你問的我都能講上一點(diǎn),但根本說不清楚的感覺。(往深了問自然是完蛋)
知識面或者或者說技術(shù)棧都是有寬度和深度的,我們要做的就是在短時(shí)間內(nèi)提升寬度,抓住以往本身就熟悉或是感興趣的幾個(gè)點(diǎn)去深入。
我是認(rèn)為知識的寬度可以很大程度上決定你能不能通過面試(這里說的寬度并不是簡歷上了解、知道或者你都沒往簡歷上寫,僅僅是聽說過的層面修飾的方面,而是寫熟悉的那種,通俗地說是可以講清原理,不涉及橫向?qū)Ρ群蛢?yōu)化的方面)
一兩個(gè)點(diǎn)的深度呢在保證你能通過面試的同時(shí)(尤其是你的點(diǎn)正好cover了對方部門的技術(shù)棧),并且還是影響offer等級的關(guān)鍵因素。(達(dá)到足夠的深度,不只能說出原理,還能進(jìn)行橫向技術(shù)對比,縱向的延伸技術(shù),優(yōu)劣點(diǎn)及優(yōu)化,或者在這個(gè)點(diǎn)寫了幾篇很透徹的博文,更厲害的同學(xué)甚至有相關(guān)的開源項(xiàng)目的參與與貢獻(xiàn))
關(guān)于怎么提升寬度和深度可以看下面的積累(其實(shí)說真的短期內(nèi)寬度是好補(bǔ)的,深度確實(shí)要看個(gè)人,是代價(jià)較高,性價(jià)比不一定高的一方面,看自己的決定吧)
所以我的建議是,先把寬度提上來,把你能cover的知識點(diǎn)及原理搞懂是第一步。建議對自己之前的項(xiàng)目和技術(shù)積累做一個(gè)總結(jié)和分類(可以參考下面的技術(shù)路線),然后對已經(jīng)了解的方面盡可能延伸,對盲區(qū)或是薄弱的地方進(jìn)行針對性的學(xué)習(xí)和練習(xí)。
當(dāng)你的知識面覆蓋到一定程度的時(shí)候,你自然會把他們的聯(lián)系搞明白,慢慢理解這整個(gè)技術(shù)體系,在面試的過程中結(jié)合表達(dá)技巧可以關(guān)聯(lián)起來說各個(gè)方面,也就可以很大程度上展現(xiàn)自己的真實(shí)實(shí)力.
- 實(shí)力包含哪些方面
- 基礎(chǔ)知識:
- 算法和數(shù)據(jù)結(jié)構(gòu)
- 數(shù)組、鏈表、二叉樹、隊(duì)列、棧的各種操作(性能,場景)
- 二分查找和各種變種的二分查找
- 各類排序算法以及復(fù)雜度分析(快排、歸并、堆)
- 各類算法題(手寫)
- 理解并可以分析時(shí)間和空間復(fù)雜度。
- 動態(tài)規(guī)劃(筆試回回有。。)、貪心。
- 紅黑樹、AVL樹、hash樹、Tire樹、B樹、B 樹。
- 圖算法(比較少,也就兩個(gè)最短路徑算法理解吧)
- 計(jì)算機(jī)網(wǎng)絡(luò)
- OSI7層模型(TCP4層)
- 每層的協(xié)議
- url到頁面的過程
- HTTP
- http/https 1.0、1.1、2.0
- get/post 以及冪等性
- http 協(xié)議頭相關(guān)
- 網(wǎng)絡(luò)攻擊(CSRF、XSS)
- TCP/IP
- 三次握手、四次揮手
- 擁塞控制(過程、閾值)
- 流量控制與滑動窗口
- TCP與UDP比較
- 子網(wǎng)劃分(一般只有筆試有)
- DDos攻擊
- (B)IO/NIO/AIO
- 三者原理,各個(gè)語言是怎么實(shí)現(xiàn)的
- Netty
- Linux內(nèi)核select poll epoll
- 數(shù)據(jù)庫(最多的還是mysql,Nosql有redis)
- 索引(包括分類及優(yōu)化方式,失效條件,底層結(jié)構(gòu))
- sql語法(join,union,子查詢,having,group by)
- 引擎對比(InnoDB,MyISAM)
- 數(shù)據(jù)庫的鎖(行鎖,表鎖,頁級鎖,意向鎖,讀鎖,寫鎖,悲觀鎖,樂觀鎖,以及加鎖的select sql方式)
- 隔離級別,依次解決的問題(臟讀、不可重復(fù)讀、幻讀)
- 事務(wù)的ACID
- B樹、B 樹
- 優(yōu)化(explain,慢查詢,show profile)
- 數(shù)據(jù)庫的范式。
- 分庫分表,主從復(fù)制,讀寫分離。
- Nosql相關(guān)(redis和memcached區(qū)別之類的,如果你熟悉redis,redis還有一堆要問的)
- 操作系統(tǒng):
- 進(jìn)程通信IPC(幾種方式),與線程區(qū)別
- OS的幾種策略(頁面置換,進(jìn)程調(diào)度等,每個(gè)里面有幾種算法)
- 互斥與死鎖相關(guān)的
- linux常用命令(問的時(shí)候都會給具體某一個(gè)場景)
- Linux內(nèi)核相關(guān)(select、poll、epoll)
- 編程語言(這里只說Java):
- 把我之后的面經(jīng)過一遍,Java感覺覆蓋的就差不多了,不過下面還是分個(gè)類。
- Java基礎(chǔ)(面向?qū)ο蟆⑺膫€(gè)特性、重載重寫、static和final等等很多東西)
- 集合(HashMap、ConcurrentHashMap、各種List,最好結(jié)合源碼看)
- 并發(fā)和多線程(線程池、SYNC和Lock鎖機(jī)制、線程通信、volatile、ThreadLocal、CyclicBarrier、Atom包、CountDownLatch、AQS、CAS原理等等)
- JVM(內(nèi)存模型、GC垃圾回收,包括分代,GC算法,收集器、類加載和雙親委派、JVM調(diào)優(yōu),內(nèi)存泄漏和內(nèi)存溢出)
- IO/NIO相關(guān)
- 反射和代理、異常、Java8相關(guān)、序列化
- 設(shè)計(jì)模式(常用的,jdk中有的)
- Web相關(guān)(servlet、cookie/session、Spring<AOP、IOC、MVC、事務(wù)、動態(tài)代理>、Mybatis、Tomcat、Hibernate等)
- 看jdk源碼
- 如果你對以上的知識點(diǎn)想要一份知識點(diǎn)的詳細(xì)總結(jié)和常見面試題和答案,那么這里剛好有一份Java面試突擊手冊,有常見面試題和答案。
1.數(shù)據(jù)結(jié)構(gòu)與算法篇
你是java開發(fā)你就用java代碼去實(shí)現(xiàn),是C 開發(fā)就用C 去實(shí)現(xiàn)。
書籍參考:
(0)《圖解算法》入門
(1)《劍指offer》 劍指Offer_編程題_??途W(wǎng)
(2)《程序員代碼面試指南 IT名企算法與數(shù)據(jù)結(jié)構(gòu)題目最優(yōu)解》參考左神視頻
(3)leetcode LeetCode – The World’s Leading Online Programming Learning Platform
leedcode注意去英文官網(wǎng),別去中國區(qū),中國區(qū)討論區(qū)討論的少。
leedcode 注意一個(gè)tag一個(gè)tag的刷,例如動態(tài)規(guī)劃,就把動態(tài)規(guī)劃下的題目都刷了,基本刷個(gè)10多道,其它也基本有思路了,而且動態(tài)規(guī)劃的題目筆試面試也常出。其次就是二叉樹,鏈表,數(shù)組,回溯的題目。
(4)數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏)/大話數(shù)據(jù)結(jié)構(gòu) //如果覺得教材無聊就可以看大話系列
需要掌握的知識點(diǎn):
數(shù)組、鏈表、二叉樹、隊(duì)列、棧的各種操作(性能,場景)
二分查找和各種變種的二分查找(循環(huán)有序數(shù)組找最大值最小值找n,有序數(shù)組找最左下標(biāo),最右下標(biāo))
各類排序算法以及復(fù)雜度分析(快排、歸并、堆、冒泡、直接選擇、插入排序)
各類算法題(手寫)
理解并可以分析時(shí)間和空間復(fù)雜度。
動態(tài)規(guī)劃(筆試回回有。。)、貪心。
紅黑樹、AVL樹、Hash樹、Tire樹、B樹、B 樹(除了紅黑樹,其它要會插入刪除查找,紅黑樹如果會更好,也算一個(gè)亮點(diǎn))。
圖算法(克魯斯卡爾算法、普林母算法、迪克拉斯算法)
樹的前序后序中序遍歷的遞歸非遞歸實(shí)現(xiàn),層次遍歷,深度優(yōu)先遍歷,廣度優(yōu)先遍歷遞歸與非遞歸實(shí)現(xiàn)
2.海量數(shù)據(jù)篇
教你如何迅速秒殺掉:99%的海量數(shù)據(jù)處理面試題 – WantFlyDaCheng的博客 – CSDN博客?
blog.csdn.net
3.計(jì)算機(jī)網(wǎng)絡(luò)篇
參考書籍:《圖解http》《圖解TCP/IP》《TCP/IP詳解卷1》《計(jì)算機(jī)網(wǎng)絡(luò)(謝希仁)》
知識點(diǎn):
4.數(shù)據(jù)庫篇
參考書籍:《高性能MySQL》 《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎(第2版)》
5.操作系統(tǒng)篇
參考書籍:
知識點(diǎn):《操作系統(tǒng)精髓與設(shè)計(jì)原理(原書第6版)》
LRU會手寫一個(gè)LRU的set與get的時(shí)間復(fù)雜度是o(1)的代碼
6.Linux命令篇
參考書籍:《linux 鳥哥的私房菜》
7.安全加密
8.重頭戲java篇
基礎(chǔ)篇:
推薦書籍:《Java程序員面試筆試寶典-何昊》突擊java面試的好書?。。?!
《寫給大忙人看的JavaSE8》 《深入理解Java虛擬機(jī):JVM高級特性與最佳實(shí)踐》
《JAVA并發(fā)編程實(shí)戰(zhàn)》《Java多線程編程核心技術(shù)》《java核心技術(shù)卷1》
1.基礎(chǔ)篇:
2.集合篇:
3.鎖
4.多線程
多看看《Java多線程編程核心技術(shù)》這塊就沒問題
5.jdk中的concurrent 俗稱juc包
都要搞懂底層原理!?。?/p>
都要搞懂底層原理?。?!
都要搞懂底層原理?。?!
6.java虛擬機(jī)
主要看《深入理解java虛擬機(jī)》
7.設(shè)計(jì)模式
參考書籍:《大話設(shè)計(jì)模式》
知道每種設(shè)計(jì)模式是啥意思,可以手寫一個(gè)單例模式,手寫適配器模式,工廠模式,觀察者模式,裝飾器模式
知識點(diǎn):
———————
8??蚣苤R
- 項(xiàng)目經(jīng)歷
- 這個(gè)每個(gè)人的項(xiàng)目不同,覆蓋的技術(shù)也不一樣,所以不能統(tǒng)一去說。
- 這里的技巧呢,在下面也會詳細(xì)說明。
- 無非是找到自己項(xiàng)目中的亮點(diǎn),簡歷上敘述的簡練并且吸引眼球,同時(shí)自己要很熟悉這個(gè)點(diǎn)(畢竟可以提前準(zhǔn)備)
- 最好自己多練,就像有個(gè)劇本或者稿子一樣,保證面試中可以很熟練通俗地講出,并且讓人聽著很舒服。
- 實(shí)習(xí)經(jīng)歷
- 這個(gè)很抱歉,因?yàn)槲沂钦覍?shí)習(xí)的經(jīng)歷,所以也沒有實(shí)習(xí)經(jīng)歷的講述經(jīng)驗(yàn)。
- 但我想如果你有實(shí)習(xí)經(jīng)歷,那面試過程的重點(diǎn)也會在實(shí)習(xí)做了什么上面,所以大家最好對實(shí)習(xí)所做的工作做一個(gè)總結(jié),并且同樣抓出亮點(diǎn),搞懂內(nèi)部原理,提前鍛煉講述的過程。
- 其他擴(kuò)展技能(這個(gè)方方面面太多了,全部掌握基本上不可能,只是作為大家其他時(shí)間擴(kuò)充技能的參考)
- 分布式架構(gòu):(了解原理就行,如果真的有實(shí)踐經(jīng)驗(yàn)更好)
- CAP原理和BASE理論。
- Nosql與KV存儲(redis,hbase,mongodb,memcached等)
- 服務(wù)化理論(包括服務(wù)發(fā)現(xiàn)、治理等,zookeeper、etcd、springcloud微服務(wù)、)
- 負(fù)載均衡(原理、cdn、一致性hash)
- RPC框架(包括整體的一些框架理論,通信的netty,序列化協(xié)議thrift,protobuff等)
- 消息隊(duì)列(原理、kafka,activeMQ,rocketMQ)
- 分布式存儲系統(tǒng)(GFS、HDFS、fastDFS)、存儲模型(skipList、LSM等)
- 分布式事務(wù)、分布式鎖等
- 腳本語言:(只是作為橫向擴(kuò)充,一般問到linux也會問問shell腳本)
- python
- php
- shell
- golang
- …
- 大數(shù)據(jù)與數(shù)據(jù)分析:
- hadoop生態(tài)圈(hive、hbase、hdfs、zookeeper、storm、kafka)
- spark體系
- 語言:python、R、scala
- 搜索引擎與技術(shù)
- 機(jī)器學(xué)習(xí)算法:
- 模型和算法很多。不細(xì)說了,如果很熟練就去投算法,國內(nèi)很多公司都算法崗都很稀缺,其他崗可以大概了解下理論。
- 其他工具的理論和使用:
- 這個(gè)更多了,問的多的比如git、docker、maven/gradle、Jenkins等等,自己需要的話選擇性地去學(xué)。
- 實(shí)力要怎么積累
積累實(shí)力最好的方式就是平時(shí)在項(xiàng)目中或是學(xué)習(xí)中,多學(xué)多問,多思考多鉆研。這里就說說短期內(nèi)學(xué)習(xí)的一些方法和路徑:
總結(jié)下來,一方面是通過看書、看視頻、看面經(jīng)來不斷擴(kuò)展自己的知識面,一方面是通過不斷的面試積累經(jīng)驗(yàn)和知識盲區(qū),在每次總結(jié)的過程中積累實(shí)力。
- 先說說看書學(xué)習(xí)這一點(diǎn)
這里應(yīng)該是有個(gè)推薦書籍的環(huán)節(jié),這幾個(gè)月確實(shí)看了不少書,但是并不是所有都有很高的性價(jià)比,在這邊大概列一下,前后順序也一定程度上代表了我認(rèn)為的重要度先后,\’/\’做分割的是一類的書籍,一般來說看一個(gè)就夠了:
書單: 算法與數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏)/大話數(shù)據(jù)結(jié)構(gòu) //如果覺得教材無聊就可以看大話系列,印象中里面還有很多詩 劍指Offer/程序員面試金典/編程珠璣/編程之美/??途W(wǎng) leetcode 程序員筆試面試最優(yōu)解(左程云)/不如直接看左神的筆試面試指南視頻 Java的版本(不是很推薦): 數(shù)據(jù)結(jié)構(gòu)與算法經(jīng)典問題解析(Java語言描述) 圖解數(shù)據(jù)結(jié)構(gòu)(使用Java) 計(jì)算機(jī)網(wǎng)絡(luò): 計(jì)算機(jī)網(wǎng)絡(luò)(謝希仁) TCP/IP 詳解 HTTP權(quán)威指南 圖解TCP/IP 圖解HTTP 數(shù)據(jù)庫://數(shù)據(jù)庫主要是多用,書上主要看索引和性能的部分 高性能MySQL/深入淺出MySQL 操作系統(tǒng): OS原理:操作系統(tǒng)(課本,黑色的那個(gè)) Linux: Linux私房菜 //鳥哥寫的,很全,包括bash部分 跟阿銘學(xué)Linux //主要偏重于命令和操作,比較淺顯 java: Java瘋狂講義/Java編程思想/Java核心技術(shù) 卷1 深入理解Java虛擬機(jī) 并發(fā)編程的藝術(shù)/多線程編程核心技術(shù) Effective Java Java程序員面試筆試寶典 //何昊的那本,個(gè)人感覺是突擊知識點(diǎn)的神器 Java程序性能優(yōu)化 實(shí)戰(zhàn)Java高并發(fā)程序設(shè)計(jì) Java Web: Spring實(shí)戰(zhàn)/輕量級JavaEE 企業(yè)應(yīng)用(紅皮,講SSH的) //主要看最后一部分Spring的就可以 深入JavaWeb技術(shù)內(nèi)幕(阿里 許令波)//這個(gè)講的還是比較深的 SpringBoot實(shí)戰(zhàn)/深入實(shí)踐SpringBoot 設(shè)計(jì)模式: 大話設(shè)計(jì)模式 //通俗易懂 各類博客的總結(jié) 分布式與大數(shù)據(jù): 分布式服務(wù)框架原理與實(shí)踐 大型網(wǎng)站技術(shù)架構(gòu) Hadoop實(shí)戰(zhàn)(hadoop體系包括得很全) //還有一本我暫時(shí)想不起來名字了 其他: Git: Git權(quán)威指南 Git官方講解視頻(??途W(wǎng)有帶字幕的) Redis: Redis實(shí)戰(zhàn) 還買了docker、springCloud等等一些工具書,因?yàn)樘”娋筒涣信e了
除了上面說的書和視頻,最有用的還是大家分享的各種面經(jīng)。
我當(dāng)時(shí)是每天晚上在床上看幾篇面經(jīng),然后把存疑的問題copy到記事本中,第二天找個(gè)固定的時(shí)間短查詢解決和總結(jié)。長期下來會養(yǎng)成一個(gè)很好的習(xí)慣,你的知識點(diǎn)會不斷地?cái)U(kuò)充。
- 在一次次面試中提高
這一點(diǎn)其實(shí)跟剛剛看面經(jīng)的那個(gè)很類似(那個(gè)我不是叫做模擬面試了嗎),每次面試完,一定要把自己不會的東西盡快記下來(當(dāng)然你如果有記面經(jīng)的習(xí)慣就更好了,還能再分享出去),然后找時(shí)間弄懂和總結(jié)。
除了知識點(diǎn),每次面試(跟模擬面試不同的地方)還要總結(jié)的是哪里發(fā)揮得不好,哪里有可以提升的地方,下次一定要注意之類的。(就是有關(guān)面試技巧的東西,比如這次語速太快,導(dǎo)致面試官反饋了,又比如這次發(fā)現(xiàn)對方讓你在紙上畫個(gè)項(xiàng)目邏輯圖突然一時(shí)腦梗,那回去就好好在本上畫一遍)
3. 技巧
- 一些自身的軟實(shí)力
軟實(shí)力這個(gè)東西與面試的準(zhǔn)備關(guān)系不大,基本上是長期形成的。
包括和面試官的溝通(有的時(shí)候也會成為聊天瞎扯的能力);對一個(gè)問題的表達(dá)方式,邏輯思維(像有些人的發(fā)言就讓人聽上去很有層次感,很舒服,這方面欠缺的可以推薦玩玩狼人殺);除此之外對方也會很在意你的價(jià)值觀和為人(這個(gè)是我進(jìn)了公司發(fā)現(xiàn)的,很多公司在內(nèi)部的面試細(xì)則上面都會注明這一點(diǎn),如果價(jià)值觀或是人品問題會直接否決。)想想也是有道理的,因?yàn)檫@個(gè)是入職之后能不能好好相處的關(guān)鍵,設(shè)想如果你是一個(gè)面試官,面對一個(gè)有實(shí)力但是說話太有棱角聊不太來的和一個(gè)不算出眾但基礎(chǔ)不錯(cuò)很聽話可以培養(yǎng)的,你會選哪一個(gè)?(如果你因?yàn)樯钐降讼脒x第一個(gè),那這一條當(dāng)我沒說。。)
這些軟實(shí)力其實(shí)要在生活中慢慢鍛煉,比如多參加些活動,多和別人溝通,發(fā)表意見前好好組織自己的語言等等。(每個(gè)人都有每個(gè)人的性格,這些都因人而異,但有一點(diǎn)我們要記住的是在面試中,不論什么情況,都要保持冷靜和清晰的頭腦,和一個(gè)謙卑的態(tài)度,交流要坦誠<尤其作為應(yīng)屆生>,這樣起碼印象會好很多,要知道雖然面試有各種各樣花式的打分項(xiàng),但是印象好往往是隱藏的決定性因素)
- 關(guān)于面試的準(zhǔn)備和技巧
面試的技巧首先就是剛剛說到的態(tài)度。 一個(gè)謙卑(注意不是自卑,也不是把自己放的很低的樣子)和禮貌的態(tài)度和表達(dá)方式往往可以讓面試官的印象分提高很多,印象分很像之后要考察的實(shí)力分的系數(shù)。留個(gè)好印象,面試就成功了一半。(當(dāng)然你一定也聽過那種聊得很嗨,或者偶遇校友之類的,毛都沒問就聊通過了的場景。這種情況還是不算在技巧中了吧,應(yīng)該屬于運(yùn)氣和緣分的范疇。而大多時(shí)候聊得開心和舒服會讓你感覺到通過率會比較高,這一點(diǎn)很多人還是深有體會的)
- 然后說一下面試之前可以做足的準(zhǔn)備。
首先從簡歷開始說,簡歷怎么調(diào)格式,做幾頁,排版啥的就不想多說了,感覺很多文章都分享過。我只說說技術(shù)方面的內(nèi)容怎么寫。
專業(yè)技能的描述謂詞無非就那么幾種:精通、熟練、熟悉、了解。(還有一級叫聽說過,這個(gè)級別的可千萬別往上寫啊兄弟)
精通感覺一般還是不要寫,除非你在某個(gè)技術(shù)點(diǎn)上真的有足夠的把握,比如源碼看的很透徹的同時(shí)還能深刻理解原理并能靈活處理各種case場景,如果還有相關(guān)的開源貢獻(xiàn),那就自信地寫精通吧。
我們把自己掌握的大多數(shù)技術(shù)點(diǎn)叫做熟練掌握,這個(gè)需要我們在之前對各個(gè)技術(shù)點(diǎn)進(jìn)行橫向縱向的復(fù)習(xí)和總結(jié),并不只是用的多有經(jīng)驗(yàn)就行,有的時(shí)候我們覺得熟,但真讓你說的時(shí)候卻不知道從何說起。
至于熟悉和了解,可以寫一些自己理解原理但是不常用的技術(shù)點(diǎn),尤其是比較流行的,各大公司都在用的技術(shù)(比如MQ,分布式緩存等等),這些你在學(xué)校不一定用過,但是你可以通過看博客,寫demo去理解他的設(shè)計(jì)和原理,面試的時(shí)候可以講得清楚。
這里還有個(gè)技巧,更細(xì)心的同學(xué)可以針對每個(gè)公司崗位的job detail不同,熟悉和了解這塊就針對jd中cover的技術(shù)點(diǎn)去寫。這個(gè)做法是很聰明的,畢竟熟悉和了解這個(gè)層面是可以提前學(xué)習(xí)和準(zhǔn)備的,有針對性的去寫對方需要的,是提升通過率很好的一種方式。(如果嫌麻煩就算了,比如我就是)
下面再說說項(xiàng)目經(jīng)歷這塊:敘述一定要精煉到位,細(xì)化到每一個(gè)亮點(diǎn)上。我現(xiàn)在再看我二三月份的簡歷簡直是有種想撕了的沖動,當(dāng)時(shí)就是項(xiàng)目描述兩三行,然后概括下我大概做了哪幾個(gè)模塊。完了。
事實(shí)上,不能講得這么泛泛,就從中找2-3個(gè)亮點(diǎn),一句話高度概括,突出亮點(diǎn)。
比如后來我就把我一個(gè)普通的web項(xiàng)目挖出來三個(gè)點(diǎn)(爬蟲,通信控制方面,安全加密方面),分別用一句話敘述,這一句話最好包括這個(gè)技術(shù)點(diǎn)的思路,解決了什么,有沒有做什么優(yōu)化。比如一個(gè)爬蟲工具可以寫成這樣:
我負(fù)責(zé)這個(gè)系統(tǒng)中爬蟲的開發(fā),終端控制管理,店鋪管理。。。。
是的,上面這個(gè)爬蟲就占用了五個(gè)字,等于沒說,面試官看到壓根不知道怎么去問。這里還可以這樣寫:
負(fù)責(zé)系統(tǒng)中爬蟲模塊的開發(fā),用于爬取影片的各種信息,包括年份,介紹,主演信息等。
這個(gè)起碼告訴面試官爬蟲做了什么,但是你并不能保證他會問,因?yàn)槟愕臄⑹霾灰欢芤鹚呐d趣。那還可以這么寫:
獨(dú)立開發(fā)多線程影片信息爬蟲工具, 并針對線程池性能、網(wǎng)絡(luò)異常以及反爬蟲措施進(jìn)行多次優(yōu)化,容錯(cuò)性良好并達(dá)到并發(fā)請求30 的QPS。
你覺得面試官看到這句話,他不想問點(diǎn)什么嗎(除非他真的就不想要你)。
所以說,其實(shí)面試官呢都是希望在面試的過程中發(fā)現(xiàn)我們的亮點(diǎn)和優(yōu)勢,從而展開更深層次的交流,但是往往在簡歷中沒有一個(gè)讓他詢問的入口,這樣就可能導(dǎo)致他會隨意問(比如你了解什么什么嗎?一般情況下都不太樂觀),或者就說那你來講講吧(這種問法其實(shí)已經(jīng)表達(dá)出他不知道怎么問的情況了,你在講的時(shí)候一定要突出重點(diǎn),否則會讓人感覺沒什么亮點(diǎn),普普通通的項(xiàng)目而已(當(dāng)然就算是普通的項(xiàng)目,我們也要挖掘它的價(jià)值和自己的價(jià)值不是))
我們在面試的過程中最重要的是自己掌握主動權(quán),如果面試官問的都是我們熟悉的范圍和準(zhǔn)備過的領(lǐng)域那我們答起來也會更加得心應(yīng)手。而讓面試官隨著我們簡歷中埋下的這些亮點(diǎn)(他就算知道你有意想說這一點(diǎn),往往也會去問,因?yàn)樗褪窍朐诙虝r(shí)間的面試中了解你處理問題的能力),去進(jìn)行更深層次的交流,而這個(gè)更深層次的交流,還需要我們針對簡歷上的每一句話,都準(zhǔn)備多個(gè)層次和維度的擴(kuò)展。
比如還是這個(gè)爬蟲,你可以充分?jǐn)U展線程池的相關(guān)優(yōu)化(有可能項(xiàng)目中沒有怎么優(yōu)化甚至就是個(gè)單線程,但是在準(zhǔn)備面試的過程中還是可以專門去做一些code重構(gòu)的),優(yōu)化網(wǎng)絡(luò)的NIO相關(guān)擴(kuò)展,以及反爬蟲的各種各樣的措施,以及爬蟲方分別如何應(yīng)對。這里只要你去想,能準(zhǔn)備的東西太多了,面試多了自然也就越來越熟,好像項(xiàng)目就是做得這么完美一樣。
這里我就不怎么擴(kuò)展去說了,再講下去這篇文章就寫不完了。。。
最后是面試中的技巧和經(jīng)驗(yàn)。
- 好好對著自己寫的簡歷一行一行看一遍,這都是你挖的坑,是準(zhǔn)備給面試官作為切入點(diǎn)交流的,并不是自己往里跳的。(對每一行都要有足夠了解和把握)
- 面試過程不要緊張,尤其是前幾次,建議先從小公司入手鍛煉下面試經(jīng)驗(yàn)(參考我之后自身的反面教材
- 面試方式不同,側(cè)重點(diǎn)不同(無非是電話、視頻、現(xiàn)場三種)。
- 電話面試建議找個(gè)人少安靜的地方坐著回答,并且建議拿紙筆多做記錄多畫多寫。(當(dāng)然如果你覺得身邊很多朋友可以讓你越聊越嗨那也可以,坐著是讓你整個(gè)節(jié)奏慢下來,說話明顯更加沉穩(wěn),親身體會過站著走來走去和坐著的區(qū)別)
- 視頻面試其實(shí)和電話類似,只是可以實(shí)時(shí)寫代碼,面試官能看到你的表情。這里還是要放松,如果你比較緊張,可以不直視鏡頭,好好想問題就是了,因?yàn)楹芏嗝嬖嚬倌愦鸬煤靡矔鏌o表情(因?yàn)樗麄円膊怀R曨l,表情都很尷尬),然后你看到他們沒表情的表情肯定會受影響。
- 現(xiàn)場面呢,最重要的是和面試官互動了,說幾個(gè)點(diǎn):語氣要輕松點(diǎn),多點(diǎn)肢體動作有助表達(dá),多笑;不太好說清的就用筆在紙上畫,一遍畫一邊講,面試官也會更容易和你交流;如果你可以時(shí)不時(shí)幽默一下開開玩笑是更好了;見面和離開記得禮貌地握個(gè)手說聲謝謝。
- 學(xué)會平等交流,別把自己身段放的太低。其實(shí)有一點(diǎn)你要清楚,面試是個(gè)雙選的過程,他可以拒絕你,你也可以拒絕他。千萬不要太上趕著,反而會影響自己正常的表達(dá)和邏輯。(就跟你見了喜歡的姑娘就不會說話了一個(gè)道理)
- 回答問題的時(shí)候不要一口氣把知道的全部說完,然后還毫無條理。學(xué)會一個(gè)知識點(diǎn)由淺入深講解給面試官,并且留有余地給他進(jìn)一步去問。
- 舉個(gè)例子:
- 就說最簡單和普遍的HashMap,讓你講講,你就可以先說說hashMap的設(shè)計(jì)原理,底層結(jié)構(gòu)(鏈表 數(shù)組)擴(kuò)容方式等,從這你就可以說說這種設(shè)計(jì)好在哪里(比如講一講put是如何做hash的),這時(shí)候你可以說這種hash可能會有沖突,hashMap也是做了相應(yīng)設(shè)計(jì)的。
- 然后面試官會問題你怎么解決沖突?你可以再給他講講解決hash沖突的三種通常方式,而hashMap用的是鏈?zhǔn)椒?,然后可以說到這樣會有隱患就是hash鏈過長。
- 面試官再問,你會給他講解決復(fù)雜度高的長鏈用了紅黑樹的結(jié)構(gòu),這里還可以延伸到紅黑樹的特點(diǎn)或者jdk7和jdk8的不同實(shí)現(xiàn),這時(shí)候你可以說解決hash沖突,但hashMap還會有并發(fā)和同步的問題。
- 面試官會讓你再講講,你可以說說hashtable是線程安全的,怎么實(shí)現(xiàn)的(sync函數(shù)),并不好,從而引出更好的juc包,說說concurrentHashMap,之后又可以說道鎖分段原理,弱一致性迭代器,concurrentHashMap的鎖粒度(java7和java8不同),同包的CopyOnWriteArray等等。
- 你還可以延伸說到鎖(重量、輕量、悲觀樂觀各自實(shí)現(xiàn)、底層源碼等等)、緩存(因?yàn)楹芏鄷r(shí)候Map的結(jié)構(gòu)可以作為緩存,從而可以說到緩存系統(tǒng)的設(shè)計(jì),kv原理,分布式緩存redis、memcashed等等)
- 舉這個(gè)例子就是想說,一個(gè)簡單的基礎(chǔ)問題可以一步一步有條理有層次的回答,每一層表達(dá)完拋個(gè)引子,讓面試官可以繼續(xù)問下去,從而讓面試官真正了解你的掌握的深度。
- 如果真的不巧聊到不擅長的地方,學(xué)會轉(zhuǎn)移話題,從一個(gè)點(diǎn)中聊自己感興趣或是有把握的方面(比如你對消息隊(duì)列不太熟但是redis用的熟,你就可以在問到消息隊(duì)列的時(shí)候說,因?yàn)橹岸际亲约鹤龅捻?xiàng)目嘛,性能方面沒有考慮到最優(yōu),一些異步的方式還是靠redis list去實(shí)現(xiàn)的,雖然redis的消息機(jī)制并不常見,但當(dāng)時(shí)還是滿足了需求,之后可以考慮性能方面的提升和技術(shù)評估;又比如問你http請求細(xì)節(jié),rest的設(shè)計(jì)實(shí)現(xiàn)細(xì)節(jié),你可以說http restapi服務(wù)接口性能的一些不足,后來使用了rpc的方式,當(dāng)然你這么說一定是要對rpc很了解)其實(shí)有的時(shí)候面試官是知道你是有意轉(zhuǎn)移的,但是往往他們也不會抓著你不會的去問,非讓你自己承認(rèn)自己的盲區(qū),他們也許根本不在意這些。
- 如果真的被問到不會的,就直接說你不會(說你不會、說你不會,我再補(bǔ)充兩遍),或者禮貌地說這方面可能我還要多學(xué)習(xí)。(對一個(gè)拿不準(zhǔn)的問題千萬不要猜,即使是二選一的那種問題,猜錯(cuò)了直接完蛋,猜對了被人看出來,再往深問還是完蛋)另外,像可能,大概是,我覺得這種表達(dá)最好不要,一聽就是對一個(gè)點(diǎn)沒把握,有可能會讓面試官覺得學(xué)習(xí)太浮躁不喜歡尋求原理。
- 那對于自己知道原理(確實(shí)是理解了的)但是沒用過的東西,就講講原理,并承認(rèn)自己實(shí)踐不足,表現(xiàn)出好學(xué)的態(tài)度。面試一定要真誠。
- 問到有什么offer就直接說,不要藏著掖著,也不要把更好的offer(比如bat的)講的非常誘人,一副bat我都拿到了的樣子(面試官會心想,那你還來面試我們干什么)。再強(qiáng)調(diào)面試過程一定要真誠。除了直接說,誠實(shí)點(diǎn)之外,也要真的做些思考:對方公司跟之前的offer比優(yōu)勢在哪,比如平臺更大?專業(yè)技能棧更match?工作更有挑戰(zhàn)力?地點(diǎn)更合適?有機(jī)會留用?隨便一條符合的都可以講出來,起碼讓對方覺得你想來面是有原因的并且真的有可能加入。(如果你還提前了解對方公司的文化,可以講出這個(gè)文化自己很認(rèn)同那就更可以了)
4. 緣分和運(yùn)氣
關(guān)于這一點(diǎn)只有一句:平時(shí)多做好事,熱愛生活。
其實(shí)都知道面試要講緣分,講運(yùn)氣,但人往往可以在很順利地通過面試之后說句運(yùn)氣好運(yùn)氣好,卻很難在努力準(zhǔn)備卻失敗的經(jīng)歷之后保持平靜。
但不管能不能轉(zhuǎn)運(yùn)是不是本命年有沒有緣分,努力和收獲的關(guān)系總是多年不變的真理。
所以,講心態(tài),講實(shí)力,講方法。足矣。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。