活久見!技術面試官竟然給我出了一個腦筋急轉彎,還問我王者榮耀什么段位?
應聘者
我叫小志,是一個畢業(yè)3年的Java后端開發(fā),在一家傳統(tǒng)銀行的研發(fā)中心負責主要的研發(fā)崗位。雖然這份工作并不是很忙,給我的薪水也算不錯,但是用到的技術都是比較落后的,而且銀行都比較保守,所以迭代速度也沒那么快。
身邊的同事大多數也都是比較安于現狀的,有一些新的技術也不樂于嘗試,甚至有些老員工就是每天摸魚,從早上混到晚上。
最近和一個前同事聊天,他之前和我水平差不多,后來跳去了國內的一家互聯網大廠,在他的慫恿下,我決定嘗試換一家公司。
于是我準備了一份簡歷,投遞了幾家我有意向的大廠。我還是比較有自信的,一方面我有幾年銀行的開發(fā)經驗,而且我那個前同事水平還不如我呢,都輕輕松松拿到了P6+的Offer。
很快我就接到了第一家面試邀約。打電話過來約我的是一個大廠的面試官,他問我什么時候有空,想要和我約一下電話面試的時間。我想都沒想,直接約了當天晚上。
我還挺佩服大廠的效率,這么快就約面試了。面試之前為了保證有一個好的心情,我出去看了一場電影,《半個喜劇》,演的還不錯。
到了晚上開始面試了,很久沒面試了,但是我絲毫不緊張,畢竟我并不是初出茅廬的學生了。
面試官一上來讓我做自我介紹,我也沒什么準備,就簡單說了一下自己的經歷以及最近做過的一些項目這樣的。
這時候我才知道,面試我的部門是一個互聯網金融相關的部門,面試官似乎對業(yè)務比較感興趣,可是這明明應該是一場技術面試啊,為什么上來就問我一些和信貸、支付相關的業(yè)務呢。
這些東西我接觸的并不多啊。雖然工作中都是做這些業(yè)務的開發(fā),但是我只負責其中一個模塊的功能實現,哪能對整個業(yè)務了解的那么清楚啊。
所以我簡單的應付了他一下,友善提醒他問我一些技術問題。
面試官還挺識趣的,接著問我一些和我做過的項目有關的問題,但是我感覺問的這些問題都太偏了,或者說有些問題根本不是我該考慮的呀,還有一些場景我根本沒遇到過讓我怎么回答。
比如都是這樣的問題:
你們?yōu)槭裁匆褂孟⒅虚g件,技術選擇是怎么做的?對其他消息中間件對比過嗎?
你們和上下游系統(tǒng)之間的交互,怎么解決數據一致性問題的?超時了怎么辦?
你們的數據量有多大,峰值QPS是多少?
這些問題我平時都不太關心的呀,所以我基本沒怎么回答。
可能是他也發(fā)現自己問的問題太偏門了,所以轉而問我
你對Java基礎知識掌握的怎么樣啊?
這種問題讓我怎么回答呢,我能說不好嗎?肯定是說還可以啊。
接著他開始問我一些和并發(fā)相關的問題,上來就是Java內存模型,我向來不愛背概念,所以這個我回答的不好。
他又追問我一些和鎖原理有關的知識,但是我平時工作的時候很少直接用到并發(fā)編程,所以和面試官說了下這個情況,讓他問一些其他方面的問題,畢竟并發(fā)在工作中直接用到機會確實不多,面試官也表示理解。
接著他開始問我的知識,都是我上大學時候一些知識,都是很基礎的東西,我現在基本都忘的差不多了。先問了JVM,又問了集合類,最后還問我和異常有關的東西。
但是這些知識很久沒有復習了,也不是太能想的起來的,但是我還是對于一些知識根據我自己的印象回答上一些關鍵字的,雖然不是很順暢,但是我覺得我回答的還可以的。
這段關于Java知識的問題問了挺久的,接著有大概4-5秒的沉默,接下來的事情我萬萬沒想到。
"我們討論一道概率的問題吧" "要不然我們輕松一下,腦筋急轉彎你怎么樣?" "你平時看書嗎?最近在看什么技術書籍啊?" "那你平時的時間都做什么呢?打王者榮耀嗎?那你什么段位啊?"
這個面試官問的東西越來越讓我摸不到頭腦,這都是什么鬼問題。后來他似乎聽出我言語中的不滿了。然后就又簡單的說了幾句就結束了這一場莫名其妙的面試。
面試官
我是Leo,在家時我是一個技術宅,在工作時我是個后端技術專家,業(yè)余時間我又是一個技術博主。
今天收到一份同事推薦的簡歷,看到候選人是某個985高校畢業(yè)的,并且在國內某大型國有銀行做過后端開發(fā),很適合我們部門,于是滿懷期待的想要約一下候選人的面試 。
電話打過去之后,很順利,約在了當天晚上的面試。這位候選人答應的如此爽快,看了最近應該也接到了很多其他公司的面試,一定是準備非常充分。晚上面試的時候一定要想辦法爭取下這位優(yōu)秀的候選人。
晚上面試的時候,候選人做自我介紹的時候好像有點緊張,有一點點不是很流暢,但是我還是聽懂了他是負責銀行信貸系統(tǒng)的業(yè)務開發(fā)的。
正好我們部門也有信貸相關的業(yè)務,于是我想著問他幾個業(yè)務上的問題,一方面看看他適不適合我們這個部門,另外也看下他是不是一個懂業(yè)務的技術開發(fā)。這一點我認為還是很重要的,我們本次要招的是一個高級Java開發(fā)的崗位,要求要懂業(yè)務。不懂業(yè)務的業(yè)務開發(fā)不是個好開發(fā)。
不過不知道是不是傳統(tǒng)企業(yè)內部體系的問題,候選人好像對自己負責的業(yè)務的上下游了解的并不是特別多。只是對自己負責的模塊還有一些了解。
我面試的時候,從來不會事先準備題庫,都是根據面試者回答的情況,從他的回答中摘選出我感興趣的點追問下去。
大多數情況都是從業(yè)務問到技術選型,問到技術架構,再問到如何解決遇到的技術難點,再過渡到一些技術細節(jié),進而問一下Java基礎知識。
所以,業(yè)務上問過了之后,我問了一些關于項目的內容,主要是想考察下這位候選人有沒有鉆研精神,我們不喜歡那種只會用,而不去考慮為什么用的人。
但是由于候選人回答的并不好,只能轉而問一些他可能比較擅長的就是工程開發(fā)內容,那就是Java基礎知識吧。
因為面試一個3年的,有豐富經驗的開發(fā),所以我會比較關注一些比較高級一點的知識,比如并發(fā)編程、JVM等。
什么是Java內存模型synchronized的原理JVM運行時區(qū)域有哪些?GC算法有了解嗎?如何判斷一個對象可回收?了解Java的類加載機制嗎?
但是候選人說這兩部分內容平時工作中接觸的不多。有些問題還能回答上一些,而有些問題好像面試者對于一些名詞都比較陌生,比如"雙親委派"。
雖然這些日常開發(fā)用到的不多,但是這些都是很基礎的知識,一旦線上出現故障,不了解這些知識只能是個無頭蒼蠅。好吧,沒用過的我不問了,那集合類一定用過咯。先來個開胃的吧:
你知道HasMap和concurrentHashMap的區(qū)別嗎?不知道啥是concurrentHashMap?那HasMap和hashtable的區(qū)別呢?平時只用了一些ArrayList。那說說ArrayList和LinkedList的區(qū)別呢?
額、額、、額額、、、我本來還準備問一些和并發(fā)包有關的,比如CAS、COW之類的,看來也用不到了。
氣氛越來越尷尬,作為一個面試官,我必須保持冷靜,保持微笑,保持禮貌!
試圖問一下面試者自己覺得自己對Java中哪部分了解最多吧。
異常有幾種類型?工作中遇到過哪些運行時異常異常應該如何處理?
額、還是回答的不是很好嗎?可是面試時間才過了20分鐘,我不能就草草的結束啊 ,那樣對他太不尊重了,我還是要盡力挖掘下他的潛力。
那我們討論一道概率學的問題吧。
假設有一個村子,所有夫妻約定如果生出一個女孩,就停止。如果生出一個男孩,就繼續(xù)生,直到生出女孩位置。那么估算下,很久很久以后,這個村子的男女比例
概率學的問題有一個好處,就是候選人可以多些時間思考,這樣又過了大概5分鐘。
作為一個面試官,我代表的是公司形象,我不能笑,更不能哭,我要堅強。怎么樣也得再堅持5分鐘,湊夠半小時的面試時間。不然會給候選人留下不好的印象,甚至陰影。要不然我們出一個腦筋急轉彎吧?
上課老師抽查背課文,小豬,小狗,小貓都舉手了,老師會叫誰?
…. ….
OK。時間差不多了,問下候選人有沒有什么問題要問我吧。
我都準備好要回答他我們的部門是做什么的,主要用哪些技術之類的了。
但是結果候選人說沒有了…
好吧,在對候選人表示感謝之后,在尷尬中結束了這次尷尬的面試。
本故事純屬虛構,如有雷同,純屬見鬼。不過呢,作為一個面試官,是想通過這樣的故事,有一些建議給到大家:
1、珍惜面試機會,一定要做好準備再參加面試。
2、不管是什么程度的技術人員,最基礎的技術知識還是要了解的。
3、不要只悶頭做業(yè)務,還要沒事兒回顧下自己的技術,千萬不能荒廢。
4、如果是業(yè)務開發(fā),要對自己負責的業(yè)務以及上下游相關業(yè)務非常了解。
5、別試圖蒙混過關,在我這,沒這可能。最后,祝大家都能拿到滿意的Offer。