為啥跳槽?
每次說(shuō)因?yàn)樯畛杀镜臅r(shí)候面試官都會(huì)很驚奇,難道有我們這里貴?好想直接給出下面這張圖,廈門(mén)的房?jī)r(jià)真的好貴好貴好貴。。。
面試過(guò)程:上半場(chǎng)
曹操專車(chē)
這是吉利集團(tuán)下屬子公司,已經(jīng)是一家獨(dú)角獸。一面中規(guī)中矩,沒(méi)啥特別的。二面好像是個(gè)主管,隔了好幾天,基本沒(méi)問(wèn)技術(shù)問(wèn)題,反而是問(wèn)職業(yè)規(guī)劃,對(duì)加班有啥看法,有點(diǎn)措手不及,感覺(jué)回答的不好。但是過(guò)幾天還是收到HR的現(xiàn)場(chǎng)面試通知?,F(xiàn)場(chǎng)是技術(shù)面加HR面,技術(shù)面被問(wèn)了幾個(gè)問(wèn)題有點(diǎn)懵逼:
a. zookeeper的watcher樂(lè)觀鎖怎么實(shí)現(xiàn)
b. 一個(gè)項(xiàng)目的整個(gè)流程
c. 說(shuō)出一個(gè)空間換時(shí)間的場(chǎng)景
d. centos7的內(nèi)存分配方式和6有啥不同
e. 你對(duì)公司有什么價(jià)值。
HR跟我說(shuō)節(jié)后(那會(huì)再過(guò)兩天就是清明)會(huì)給我消息,結(jié)果過(guò)了半個(gè)月突然接到他們的電話,說(shuō)我通過(guò)了,給我講了他們的薪資方案,沒(méi)太大吸引力,再加上這種莫名其妙的時(shí)間等待,直接拒了。
美亞柏科
估計(jì)很多人沒(méi)聽(tīng)說(shuō)過(guò)這家公司,這是一家廈門(mén)本土公司,做政府安防項(xiàng)目的,在廈門(mén)也還是小有名氣。但是面試完直接顛覆了我對(duì)這家公司的認(rèn)知。進(jìn)門(mén)最顯眼的地方是黨活動(dòng)室,在等面試官的一小段時(shí)間里有好幾撥人到里面參觀。面試前做了一份筆試題,基本都是web/數(shù)據(jù)庫(kù)方面的。第一面簡(jiǎn)單問(wèn)了幾個(gè)redis的問(wèn)題之后面試官介紹了他們的項(xiàng)目,他們都是做C和C++的,想找一個(gè)人搭一套大數(shù)據(jù)集群,處理他們每天幾百G的數(shù)據(jù),然后服務(wù)器全部是windows!二面是另一個(gè)部門(mén)的,印象中就問(wèn)了kafka為什么性能這么好,然后就開(kāi)始問(wèn)買(mǎi)房了沒(méi)有,結(jié)婚了沒(méi)有,他對(duì)我現(xiàn)在的公司比較了解,又扯了挺久。三面應(yīng)該是個(gè)部門(mén)老大了,沒(méi)有問(wèn)技術(shù)問(wèn)題,也是問(wèn)買(mǎi)房了沒(méi),結(jié)婚沒(méi),問(wèn)各種生活問(wèn)題,有點(diǎn)像人口普查。我有點(diǎn)好奇,問(wèn)他們?yōu)樯哆@么關(guān)心這些問(wèn)題,他直接說(shuō)他們更強(qiáng)調(diào)員工的穩(wěn)定性,項(xiàng)目比較簡(jiǎn)單,能力不用要求太高,不要太差就行。汗,直接拒了。
有贊
絕對(duì)推薦的一家公司,效率超高。中午找了一個(gè)網(wǎng)友幫忙內(nèi)推,晚上就開(kāi)始一面,第二天早上二面,第三天HR就約現(xiàn)場(chǎng)面試時(shí)間,快的超乎想象。現(xiàn)場(chǎng)面也是先一個(gè)技術(shù)面,最后才HR面。面試的整體難度中等?,F(xiàn)在就記得幾個(gè)問(wèn)題:G1和CMS的區(qū)別,G1有啥劣勢(shì);Kafka的整體架構(gòu);Netty的一次請(qǐng)求過(guò)程;自旋鎖/偏向鎖/輕量級(jí)鎖(這個(gè)問(wèn)題在頭條的面試?yán)镆渤霈F(xiàn)了一次)、hbase線上問(wèn)題排查(剛好遇到過(guò)NUMA架構(gòu)下的一個(gè)問(wèn)題,借此把hbase的內(nèi)核介紹了下)。 這里不得不說(shuō)下有贊的人,真的很贊。終面的面試官是一個(gè)研發(fā)團(tuán)隊(duì)的負(fù)責(zé)人,全程一直微笑,中間電話響了一次,一直跟我道歉。面完之后還提供了團(tuán)隊(duì)的三個(gè)研發(fā)方向讓我自己選擇。后面看他的朋友圈狀態(tài),他那天高燒,面完我就去打點(diǎn)滴了,但是整個(gè)過(guò)程完全看不出來(lái)。幫我內(nèi)推的網(wǎng)友是在微信群里找到的,知道我過(guò)了之后主動(dòng)找我,讓我過(guò)去杭州有啥問(wèn)題隨時(shí)找他。雖然最終沒(méi)有去,但還是可以明顯感受到他們的熱情。
字節(jié)跳動(dòng)(今日頭條)
HR美眉打電話過(guò)來(lái)說(shuō)是字節(jié)跳動(dòng)公司,想約下視頻面試時(shí)間。那會(huì)是有點(diǎn)懵的,我只知道今日頭條和抖音。后面想到北京的號(hào)碼才想起來(lái)。頭條可以說(shuō)是這次所有面試?yán)锪鞒套钜?guī)范的,收到簡(jiǎn)歷后有郵件通知,預(yù)約面試時(shí)間后郵件短信通知,面試完后不超過(guò)一天通知面試結(jié)果,每次面試有面試反饋。還有一個(gè)比較特別的,大部分公司的電話或者視頻面試基本是下班后,頭條都是上班時(shí)間,還不給約下班時(shí)間(難道他們不加班?)。
一面
面試官剛上來(lái)就說(shuō)他們是做go的,問(wèn)我有沒(méi)有興趣,他自己也是Java轉(zhuǎn)的。我說(shuō)沒(méi)問(wèn)題,他先問(wèn)了一些Java基礎(chǔ)問(wèn)題,然后有一道編程題,求一棵樹(shù)兩個(gè)節(jié)點(diǎn)的最近的公共父節(jié)點(diǎn)。思路基本是對(duì)的,但是有些細(xì)節(jié)有問(wèn)題,面試官人很好,邊看邊跟我討論,我邊改進(jìn),前前后后估計(jì)用來(lái)快半小時(shí)。然后又繼續(xù)問(wèn)問(wèn)題,HTTP 301 302有啥區(qū)別?設(shè)計(jì)一個(gè)短鏈接算法;md5長(zhǎng)度是多少?整個(gè)面試過(guò)程一個(gè)多小時(shí),自我感覺(jué)不是很好,我以為這次應(yīng)該掛了,結(jié)果晚上收到面試通過(guò)的通知。
二面
在一個(gè)上午進(jìn)行的,我以為zoom視頻系統(tǒng)會(huì)自動(dòng)連上(一面就是自動(dòng)連上),就在那邊等,過(guò)了5分鐘還是不行,我就聯(lián)系HR,原來(lái)要改id,終于連上后面試官的表情不是很好看,有點(diǎn)不耐煩的樣子,不懂是不是因?yàn)槲业⒄`了幾分鐘,這種表情延續(xù)了整個(gè)面試過(guò)程,全程有點(diǎn)壓抑。問(wèn)的問(wèn)題大部分忘了,只記得問(wèn)了一個(gè)線程安全的問(wèn)題,ThreadLocal如果引用一個(gè)static變量是不是線程安全的?問(wèn)著問(wèn)著突然說(shuō)今天面試到此為止,一看時(shí)間才過(guò)去二十幾分鐘。第二天就收到面試沒(méi)過(guò)的通知,感覺(jué)自己二面答的比一面好多了,實(shí)在想不通。
下半場(chǎng)
一直感覺(jué)自己太水了,代碼量不大,三年半的IT經(jīng)驗(yàn)還有一年去做了產(chǎn)品,都不敢投大廠。上半場(chǎng)的技術(shù)面基本過(guò)了之后自信心大大提升,開(kāi)始挑戰(zhàn)更高難度的。
美團(tuán)
這個(gè)是廈門(mén)美團(tuán),他們?cè)谶@邊做了一個(gè)叫榛果民宿的APP,辦公地點(diǎn)在JFC高檔寫(xiě)字樓,休息區(qū)可以面朝大海,環(huán)境是很不錯(cuò),面試就有點(diǎn)虐心了。 兩點(diǎn)半進(jìn)去。
一面
我的簡(jiǎn)歷大部分是大數(shù)據(jù)相關(guān)的,他不是很了解,問(wèn)了一些基礎(chǔ)問(wèn)題和netty的寫(xiě)流程,還問(wèn)了一個(gè)redis數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn),結(jié)構(gòu)他問(wèn)了里面字符串是怎么實(shí)現(xiàn)的,有什么優(yōu)勢(shì)。一直感覺(jué)這個(gè)太簡(jiǎn)單,沒(méi)好好看,只記得有標(biāo)記長(zhǎng)度,可以直接取。然后就來(lái)兩道編程題。第一題是求一棵樹(shù)所有左葉子節(jié)點(diǎn)的和,比較簡(jiǎn)單,一個(gè)深度優(yōu)先就可以搞定。第二題是給定一個(gè)值K,一個(gè)數(shù)列,求數(shù)列中兩個(gè)值a和b,使得a+b=k。我想到了一個(gè)使用數(shù)組下標(biāo)的方法(感覺(jué)是在哪里有見(jiàn)過(guò),不然估計(jì)是想不出來(lái)),這種可是達(dá)到O(n)的復(fù)雜度;他又加了個(gè)限制條件,不能使用更多內(nèi)存,我想到了快排+遍歷,他問(wèn)有沒(méi)有更優(yōu)的,實(shí)在想不出來(lái),他提了一個(gè)可以兩端逼近,感覺(jué)很巧妙。
二面
面試官高高瘦瘦的,我對(duì)這種人的印象都是肯定很牛逼,可能是源于大學(xué)時(shí)代那些大牛都長(zhǎng)這樣。先讓我講下kafka的結(jié)構(gòu),然后怎么防止訂單重復(fù)提交,然后開(kāi)始圍繞緩存同步問(wèn)題展開(kāi)了長(zhǎng)達(dá)半小時(shí)的討論:先寫(xiě)數(shù)據(jù)庫(kù),再寫(xiě)緩存有什么問(wèn)題?先寫(xiě)緩存再寫(xiě)數(shù)據(jù)庫(kù)有什么問(wèn)題?寫(xiě)庫(kù)成功緩存更新失敗怎么辦?緩存更新成功寫(xiě)庫(kù)失敗怎么辦?他和我一起在一張紙上各種畫(huà),感覺(jué)不是面試,而是在設(shè)計(jì)方案。
三面
這是后端團(tuán)隊(duì)負(fù)責(zé)人了,很和藹,一直笑呵呵。問(wèn)了我一些微服務(wù)的問(wèn)題,我提到了istio,介紹了設(shè)計(jì)理念,感覺(jué)他有點(diǎn)意外。然后他問(wèn)java8的新特性,問(wèn)我知不知道lambda表達(dá)式怎么來(lái)的,我從lambda演算說(shuō)到lisp說(shuō)到scala,感覺(jué)他更意外。此處有點(diǎn)吹牛了。我問(wèn)了一些團(tuán)隊(duì)的問(wèn)題,項(xiàng)目未來(lái)規(guī)劃等,感覺(jué)榛果還是挺不錯(cuò)的。 四面。這個(gè)應(yīng)該是榛果廈門(mén)的負(fù)責(zé)人了,技術(shù)問(wèn)題問(wèn)的不多,更多是一些職業(yè)規(guī)劃,對(duì)業(yè)務(wù)的看法等。面試結(jié)束的時(shí)候他先出去,我收拾下東西,出去的時(shí)候發(fā)現(xiàn)他在電梯旁幫我開(kāi)電梯,對(duì)待面試者的這種態(tài)度實(shí)在讓人很有好感。 出來(lái)的時(shí)候已經(jīng)是六點(diǎn)半。
網(wǎng)易
面的是網(wǎng)易云音樂(lè),平時(shí)經(jīng)常用,感覺(jué)如果可以參與研發(fā)應(yīng)該是種挺美妙的感覺(jué)。
一面
下午打過(guò)來(lái)的,問(wèn)我有沒(méi)有空,我說(shuō)有,他說(shuō)你不用上班嗎?有態(tài)度真的可以為所欲為(苦笑)。然后問(wèn)了為什么離職,聊了會(huì)房?jī)r(jià),問(wèn)了幾個(gè)netty的問(wèn)題,gc的問(wèn)題,最后問(wèn)下對(duì)業(yè)務(wù)的看法。 然后約了個(gè)二面的時(shí)間,結(jié)果時(shí)間到了沒(méi)人聯(lián)系我,第二天打電話跟我道歉重新約了時(shí)間,不得不說(shuō)態(tài)度還是很好的。
二面問(wèn)的反而很基礎(chǔ),沒(méi)太多特別的。讓我提問(wèn)的時(shí)候我把美團(tuán)二面里的緩存問(wèn)題拿出來(lái)問(wèn)他,很耐心的給我解答了好幾分鐘,人很好。
阿里
這個(gè)其實(shí)不是最后面試的,但是是最后結(jié)束的,不得不說(shuō)阿里人真的好忙,周三跟我預(yù)約時(shí)間,然后已經(jīng)排到下一周的周一??傮w上感覺(jué)阿里的面試風(fēng)格是喜歡在某個(gè)點(diǎn)上不斷深入,直到你說(shuō)不知道。
一面
自我介紹,然后介紹現(xiàn)在的項(xiàng)目架構(gòu),第一部分就是日志上傳和接收,然后就如何保證日志上傳的冪等性開(kāi)始不斷深入,先讓我設(shè)計(jì)一個(gè)方案,然后問(wèn)有沒(méi)有什么改進(jìn)的,然后如何在保證冪等的前提下提高性能,中間穿插分布式鎖、redis、mq、數(shù)據(jù)庫(kù)鎖等各種問(wèn)題。這個(gè)問(wèn)題討論了差不多半小時(shí)。然后就問(wèn)我有沒(méi)有什么要了解的,花了十幾分鐘介紹他們現(xiàn)在做的事情、技術(shù)棧、未來(lái)的一些計(jì)劃,非常耐心。
二面
也是從介紹項(xiàng)目開(kāi)始,然后抓住一個(gè)點(diǎn),結(jié)合秒殺的場(chǎng)景深入,如何實(shí)現(xiàn)分布式鎖、如何保證冪等性、分布式事務(wù)的解決方案。問(wèn)我分布式鎖的缺點(diǎn),我說(shuō)性能會(huì)出現(xiàn)瓶頸,他問(wèn)怎么解決,我想了比較久,他提示說(shuō)發(fā)散下思維,我最后想了個(gè)簡(jiǎn)單的方案,直接不使用分布式鎖,他好像挺滿意。感覺(jué)他們更看重思考的過(guò)程,而不是具體方案。還問(wèn)了一致性hash如何保證負(fù)載均衡,kafka和rocketmq各自的優(yōu)缺點(diǎn),dubbo的一個(gè)請(qǐng)求過(guò)程、序列化方式,序列化框架、PB的缺點(diǎn)、如何從數(shù)據(jù)庫(kù)大批量導(dǎo)入數(shù)據(jù)到hbase。
三面
是HR和主管的聯(lián)合視頻面試。這種面試還第一次遇到,有點(diǎn)緊張。主管先面,也是讓我先介紹項(xiàng)目,問(wèn)我有沒(méi)有用過(guò)mq,如何保證消息冪等性。我就把kafka0.11版本的冪等性方案說(shuō)了下,就沒(méi)再問(wèn)技術(shù)問(wèn)題了。后面又問(wèn)了為啥離職,對(duì)業(yè)務(wù)的看法之類的。然后就交給HR,只問(wèn)了幾個(gè)問(wèn)題,然后就結(jié)束了,全程不到半小時(shí)。 不懂是不是跟面試的部門(mén)有關(guān),阿里對(duì)冪等性這個(gè)問(wèn)題很執(zhí)著,三次都問(wèn)到,而且還是從不同角度。
總結(jié)
從面試的難易程度看阿里 > 美團(tuán) > 頭條 > 有贊 > 網(wǎng)易 > 曹操專車(chē) > 美亞柏科。整個(gè)過(guò)程的體會(huì)是基礎(chǔ)真的很重要,基礎(chǔ)好了很多問(wèn)題即使沒(méi)遇到過(guò)也可以舉一反三。另外對(duì)一樣技術(shù)一定要懂原理,而不僅僅是怎么使用,尤其是缺點(diǎn),對(duì)選型很關(guān)鍵,可以很好的用來(lái)回答為什么不選xxx。另外對(duì)一些比較新的技術(shù)有所了解也是一個(gè)加分項(xiàng)。