說(shuō)下前提,15年本科畢業(yè),工作兩年多。由于個(gè)人原因,需要找工作,一月期間面了五家企業(yè),都拿了offer,最后選擇去了螞蟻金服,級(jí)別P6。朋友在問(wèn)面經(jīng)。所以寫(xiě)下總結(jié),說(shuō)下這一月份找工作的感受。
幾場(chǎng)面試下來(lái),覺(jué)得心態(tài)很重要,我把每一次面試都當(dāng)做一次同事之間的技術(shù)交流,而不是單向輸出,背標(biāo)準(zhǔn)答案。面試的時(shí)候要都是自己一個(gè)人在說(shuō),沒(méi)有回應(yīng)那也是蠻累的,回答問(wèn)題時(shí),先要弄清面試官提問(wèn)的本質(zhì),而不要盲目去做答。基于正確的理解再去作答是最基本的前提。我要是不清楚問(wèn)題,會(huì)把問(wèn)題按照我的思路復(fù)述一遍然后再去確認(rèn),得到回應(yīng)再去作答。我回答問(wèn)題時(shí),一般都會(huì)用自己的理解去回答問(wèn)題,如果在工作當(dāng)中剛好用到,則會(huì)結(jié)合實(shí)際案例來(lái)說(shuō)。比如問(wèn)我責(zé)任鏈模式,我在面試的時(shí)候不記得這個(gè)設(shè)計(jì)模式的標(biāo)準(zhǔn)定義了,我回答說(shuō),責(zé)任鏈模式常用于攔截器的設(shè)計(jì)中,比如發(fā)出一個(gè)web請(qǐng)求時(shí),需要做權(quán)限控制,如果沒(méi)有登錄,則不允許登錄,這個(gè)時(shí)候就是使用責(zé)任鏈模式進(jìn)行設(shè)計(jì)的,請(qǐng)求通過(guò)所有鏈上的處理器進(jìn)行處理,處理通過(guò)交給下一個(gè)處理器,不通過(guò),直接返回。我知道這個(gè)設(shè)計(jì)模式常用的應(yīng)用場(chǎng)景,但標(biāo)準(zhǔn)定義現(xiàn)在確實(shí)想不起來(lái)。
個(gè)人覺(jué)得面試需要考察的東西,一般都是看你掌握技術(shù)的深度,或者你掌握技術(shù)的廣度。因?yàn)槊嬖嚨臅r(shí)間就那么多,我記得最長(zhǎng)的一次電話面試是一個(gè)半小時(shí),前面一個(gè)小時(shí),聊了些技術(shù)加業(yè)務(wù),后面半個(gè)小時(shí)基本聊聊其他話題了,比如平時(shí)怎么學(xué)習(xí)的,對(duì)于以后的職業(yè)規(guī)劃有啥計(jì)劃嗎,覺(jué)得自己目前最有優(yōu)勢(shì)的地方在哪里之類的。當(dāng)然要問(wèn)的技術(shù)基本都是按照你簡(jiǎn)歷上來(lái)的,比如你寫(xiě)精通數(shù)據(jù)庫(kù),那么你就要做好被問(wèn)的很底層的準(zhǔn)備,所以如果不是在某一方面特別有把握,切記不要亂用精通。
面試都會(huì)基礎(chǔ)技能的掌握情況,這個(gè)一般放在一面用于篩選。還有對(duì)自己所做業(yè)務(wù)的熟悉程度,從業(yè)務(wù)講解考量你的思維能力和設(shè)計(jì)能力。在幾次面試中,一般問(wèn)題都是從淺到深。都會(huì)碰到的是并發(fā)相關(guān)的問(wèn)題,如從Hashmap開(kāi)始問(wèn)起,問(wèn)你是否了解hashmap,是否看過(guò)源碼,源碼的細(xì)節(jié),然后延伸到并發(fā),比如線程安全的map有哪些。一般都會(huì)逐步問(wèn)下去,或者覺(jué)得你掌握的程度可以,或者是你回答不出來(lái)了。能聊的多聊點(diǎn),不能的趕緊結(jié)束,不要強(qiáng)行裝懂,不然結(jié)果很坑爹的。
通過(guò)基礎(chǔ)面試后,會(huì)考驗(yàn)?zāi)銟I(yè)務(wù)的理解及通過(guò)業(yè)務(wù)了解你架構(gòu)設(shè)計(jì)能力,基本都是叫你挑出個(gè)項(xiàng)目,叫你講解項(xiàng)目,講解項(xiàng)目時(shí),一般都是從大到小去介紹,為什么要有這個(gè)系統(tǒng),這個(gè)系統(tǒng)解決了什么問(wèn)題,是怎么解決的,你負(fù)責(zé)的東西承擔(dān)什么角色。然后在板子上把整個(gè)架構(gòu)畫(huà)出來(lái),邊畫(huà)邊講解,我沒(méi)有整體負(fù)責(zé)過(guò)一個(gè)項(xiàng)目,相信很多人都沒(méi)有這個(gè)機(jī)會(huì),但是平時(shí)我會(huì)根據(jù)我自己模塊來(lái)慢慢拓展邊界,來(lái)達(dá)到了解系統(tǒng)的目的。會(huì)根據(jù)你畫(huà)的架構(gòu)圖來(lái)提問(wèn),比如這個(gè)模塊為什么這么設(shè)計(jì),好處是什么,有什么可以改進(jìn)的地方,有什么地方可以繼續(xù)優(yōu)化的,這些問(wèn)題如果對(duì)自己做過(guò)的項(xiàng)目有了解的話,基本都能解答,解答思路碰到的坑是哪些,是怎么解決的,解決后有什么感想。每個(gè)人在做項(xiàng)目的時(shí)候總會(huì)碰到各種坑,如果沒(méi)坑,那要不說(shuō)明你很牛逼,要不說(shuō)明你很傻逼,作為普通同學(xué),還是好好積累自己碰到的坑,及時(shí)深入總結(jié),這樣就有東西可講了。
在面螞蟻金服時(shí),有次發(fā)給我個(gè)題目,叫我在規(guī)定的時(shí)間內(nèi),寫(xiě)好代碼,然后回傳評(píng)審。題目大意是叫我設(shè)計(jì)一個(gè)高可用的轉(zhuǎn)賬接口,我理解是考察我對(duì)需求的理解和代碼落地能力,及編寫(xiě)代碼的規(guī)范。因?yàn)槠綍r(shí)寫(xiě)接口就有對(duì)接口進(jìn)行編寫(xiě)注釋的習(xí)慣,所有在編寫(xiě)代碼時(shí),規(guī)范性沒(méi)問(wèn)題。我把把自己的架構(gòu)設(shè)計(jì)體現(xiàn)了出來(lái),然后落地只完成部分,沒(méi)時(shí)間全部完成,但是對(duì)應(yīng)的部分都會(huì)加上注釋。做這種在線編程時(shí),其實(shí)也就相當(dāng)于接一個(gè)需求,然后分析落地,首先要保證自己對(duì)需求理解的正確性,然后再是提現(xiàn)自己的設(shè)計(jì)能力,編碼能力及規(guī)范意識(shí)等。
至于HR面,每個(gè)公司都有些不一樣,主要是考察你綜合素質(zhì),比如你為啥離職,抗壓能力如何,接觸一個(gè)新團(tuán)隊(duì)新項(xiàng)目時(shí),怎么去熟悉融入,自己未來(lái)的職業(yè)規(guī)劃等等,這些可以提前去準(zhǔn)備,沒(méi)準(zhǔn)備到的看臨場(chǎng)發(fā)揮,不要過(guò)大的吹牛就好。還有會(huì)問(wèn)到你期望薪資,這個(gè),我也不知道怎么去說(shuō),所以不寫(xiě)了。
找到能讓自己發(fā)揮最好的心態(tài)很重要,我把每一場(chǎng)面試當(dāng)做是和面試官的交流,像和同事間的相互交流,交流能在一個(gè)頻道上的,能聊的來(lái),一般都能表現(xiàn)不錯(cuò)。面試是相互選擇的過(guò)程,聊不來(lái)的,那也是沒(méi)辦法,再去找咯。以上的東西都是個(gè)人的一些感悟,每個(gè)人面對(duì)的場(chǎng)景不同,僅供參考。
最后打下廣告,螞蟻金服-金融核心部門(mén)長(zhǎng)期招聘,P6-P8崗位都有,親們簡(jiǎn)歷的投過(guò)來(lái)吧,wusan.wyb@antfin.com。
附上一些學(xué)習(xí)資料:
并發(fā)與基礎(chǔ)相關(guān)
并發(fā)基本會(huì)是面試的重點(diǎn)
java并發(fā)編程的藝術(shù) -- 補(bǔ)并發(fā)相關(guān)的概念不錯(cuò),后面分析的源碼有點(diǎn)老了,用的是JDK1.6,可以自己結(jié)合實(shí)際來(lái)查看
《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐》-- 內(nèi)存模型,垃圾回收,jvm常用調(diào)優(yōu)方式也常問(wèn)到,自己可以結(jié)合實(shí)際碰到的問(wèn)題進(jìn)行講解,效果會(huì)更好
高并發(fā)量網(wǎng)站解決方案
Java多線程共享變量控制
JAVA多線程和并發(fā)基礎(chǔ)面試問(wèn)答
分布式系統(tǒng)事務(wù)一致性解決方案
探討Java中static synchronized和synchronized
漫說(shuō)系列--可用來(lái)了解關(guān)鍵基礎(chǔ)概念,然后再進(jìn)一步進(jìn)行學(xué)習(xí)
框架相關(guān)
spring-基本會(huì)問(wèn)到AOP和IOC,還有加載過(guò)程,這個(gè)自己平時(shí)注意下積累;以下貼出一些博主,可根據(jù)需要進(jìn)行觀看學(xué)習(xí),但是最好自己也跟進(jìn)源碼進(jìn)行驗(yàn)證,不然沒(méi)啥效果的.
spring源碼相關(guān)分析
《深入理解mybatis原理》 Mybatis初始化機(jī)制詳解
spirngMVC源碼分析
redis技術(shù)學(xué)習(xí)系列--根據(jù)你項(xiàng)目過(guò)程當(dāng)中用到的nosql進(jìn)行查找學(xué)習(xí)
面試題目相關(guān)
面試感悟----一名3年工作經(jīng)驗(yàn)的程序員應(yīng)該具備的技能
你應(yīng)該知道的JAVA面試題