使用Java到如今大概有一年多的時間,以前一直作硬件,因此Java算不上很好。投遞的時候,實習剛辭職,也沒準備筆試面試,不少東西都忘記了。瞭解到內推掛了不影響秋招纔敢投的,就是想着刷刷經驗而已,從沒敢奢望什麼。在投遞前的半個月,剛剛用10天左右通讀了《Java併發編程實戰》,認真作了筆記,算是有點心得,面試的時候幫了很大忙。java
6次面試分別是:程序員
4次技術面+1次HR面+一次瞭解狀況的嘮嗑(勉強算一次面試吧)面試
自我介紹docker
聊聊項目,我主要說了實習時候的項目,順帶聊起了數據庫、緩存相關的問題。數據庫
在自我介紹的時候,我有說本身多線程方面掌握的還能夠。面試官後面問有沒有讀過什麼源碼,很天然的就回答讀過Spring、JDK、以及java concurrent包下面的相關類等。因而順帶就問了些常見的併發問題:編程
關於JVM緩存
你有什麼問題要問嗎?安全
自我介紹數據結構
有沒有參加過ACM,有沒有參加過其餘競賽,有沒有拿過什麼獎?研究生期間,作過什麼項目,發過論文嗎?有什麼成果?多線程
個人回答是,沒參加過ACM,本科參加過數學建模競賽,名次並很差,沒拿過什麼獎。(面試官開始有點失望的樣子了)可是,我說研一作了一個軍工項目已經投入使用,項目數據是保密的,可是內容不保密,能夠講講,面試官比較有興趣了。
你以爲你有什麼優勢、缺點?你以爲你身邊比你優秀的人,他們有什麼特質是你沒有的?
作java有幾年了?實習期間作過什麼項目,你能挑一個給我講一講嗎?
作過不少項目,可是此次想說個複雜點的,也是第一次講這個項目,描述有點亂,方向帶偏了,致使後來面試官沒聽明白我說的是什麼,我也沒聽明白他問的是什麼,致使氣氛十分尷尬。
多是爲了緩解尷尬氣氛,面試官問了個簡單的問題,冒泡排序和快速排序有什麼區別。
你有什麼問題要問嗎?
應該還有其餘問題吧,答得還能夠,可是具體問的啥我忘記了。
總結:以前一直覺得,我投的是軟件開發崗,面試官對硬件項目不感興趣,就一句話帶過,不多提。可是通過二面,意識到,其實面試官更多關注的是應試者的學習能力、態度、經歷、思考等,就算沒有太多軟件開發相關的項目經驗、成果,把你的體如今其餘方面綜合實力展示給面試官就好。因此後面給面試官自我介紹的時候,不單聊實習項目,還會說說研一作的硬件項目,並強調已經投入生產環境使用。
感受此次面崩了,以爲沒戲了,就沒再準備。後來四五天的樣子,內推人說,你居然面到交叉面了,好厲害。基本上沒收到拒信或者進度表上不是顯示「已回絕」就表示還有戲
8月12號,應該就是交叉面
從三面開始,感受就差很少清楚套路了,自我介紹怎麼說,怎麼引導面試官去問我想讓他問的問題等等,都有本身的想法了。面試官提出一個問題,是想考察什麼,我也基本清楚,有時候不肯定面試官的意思的時候,我會反問一句,您是想考察XXX方面的知識嗎?我有一些理解,能夠給您講講。
按套路來,仍是自我介紹。
因爲我強調了本身作的硬件項目,不出意外的,面試官問的比較詳細,因爲都是本身作的,理解的很清楚。可是這裏有個重要一點是,你是清楚這個項目,你也研究過這個領域,你怎麼把你作的項目,講的通俗易懂,其實不容易。我一般會用面試官可能熟悉的知識去對比着講硬件項目的東西,因此就很容易講明白。不過阿里的程序員,說徹底不懂硬件,不可能。
依託於項目問了TCP和UDP的區別。
在實習的時候,作過什麼項目沒有,哪些是技術性比較強的?能夠講一講嗎?
講了一下項目、說了說消息訂閱發佈,提了K8S、docker等。
Redis有了解嗎?有什麼特色?分佈式有了解嗎?(瞭解都很少,可是能夠聊聊想法)
有讀過什麼源碼嗎?
考察一些java基礎知識
最後一題:一個3升的桶和一個5升的桶,怎麼獲得4升的水。
上面的問題基本都答出來了,多數聊的比較細緻,面試官挺滿意的,直接就給我說:好,能夠,後面等通知吧!
三面面完當天,晚上9點接到四面電話。感受像是總監面。
此次面試和前面感受明顯不同,問題不拘小節,注重思路,重點聊了實驗室的硬件項目,還有在網易實習的時候的一個簡單的任務,而後聊了實習那個項目的一些問題。
後面又問了一些簡單的問題:
還問了其餘一些問題,我就記不太清了,不是很難,可是自認爲回答的都比較具體,講的比較清楚。
8月17號
HR面就比較常規了,可是阿里的HR面也要讓我給她講項目,也是很神奇。
面試完,HR說8月25號以前,實習轉正會答辯結束,把全部面試狀況盤點,後面一到兩週會給出結果,發出意向書,若是下次我再給你打電話,會討論薪資。
8月24號,中午在午休,忽然接到阿里的電話,一聽聲音比較像二面的面試官,二面面崩了,因而內心也是很緊張。跟面試官說我等我5分鐘,整理一下衣服,找個安靜的地方面試。期間調整了一下情緒。
5分鐘後面試官打來電話
這裏,我問了面試官,要勝任阿里的工做,我有哪些方面是比較欠缺的,是要努力補足的?
面試官,想了想,說基礎知識、態度都挺不錯,作事情很積極,也有本身的思考,好比你提到解決問題要總結更深層次的問題緣由,這很好!之後能夠在Java和分佈式方面進行更深刻的學習……你能夠加我釘釘,說後面方便聯繫。
後面諮詢了一下內推個人朋友,若是我能進去,6面面試官應該就是個人直接主管了,6面面試官說你沒問題,那就沒問題了,能夠放心了。
能夠看到,其實面試官問個人問題都是比較常規的,沒有特別難。並且有些問題面試官幾乎每次都問。常見的問題,不論是哪一個公司的哪一個面試官,暫時沒想好問你啥的時候,脫口出來的就是最常問的問題,必定要深刻的去準備,別回答的太皮毛。在網上刷刷面試題,就想應付這些常見問題是不行的。你要去看源碼,去摳細節,回答的比別人詳細具體,這樣才能突出你的認真和努力。
好比說:TCP和UDP的差異,我的認爲若是隻答出來:
TCP面向鏈接,是可靠的,UDP不可靠。這樣的回答徹底不夠。
回答應該全面、詳細,個人回答中還包括:
- 對比了TCP、UDP的內部數據結構。
- TCP基於數據流傳輸,UDP基於包傳輸。
- TCP創建鏈接須要三次握手,講了一下三次握手具體過程,有什麼做用。
- 提到了TCP擁塞控制,以及相關問題。
- ......
面試官看我回答很詳細,還沒回答完,就很滿意的切換問題了。
前面有提到,若是你投的互聯網,作軟件開發,你的項目經驗少,能夠用硬件項目來補。向面試官強調解決問題的思路,你的收穫,以及延伸出來的一些思考,這樣能夠向面試官展示的的綜合能力。也許你如今你項目經驗少,基礎不夠好,可是你要有優秀的特質充分展示給面試官。
語言表達和溝通能力很重要,很重要,很重要!若是這方面不是很強, 面試必定要多演練、準備。引導面試官去問你熟悉的內容。
面試完之後,會經歷度日如年的等待,真的很熬人,感受此次運氣仍是很不錯的!