前言
很高興遇見你~
先說一下筆者春招實習的情況:從三月初到四月半,經歷了近20場面試,一共面試了五家企業,通過了騰訊、字節、螞蟻、美團的面試,虎牙在一面之后拒了二面邀請。
金三銀四,筆者不是在面試中,就是在面試的路上,踩了很多坑,吃了很多虧,也學了很多的東西。這篇文章,就想要把筆者的這些收獲分享給你們,希望對你們有幫助。
文章的內容總體上可以分為兩個部分:吹水、干貨。吹水部分主要是分析筆者的面試過程,有興趣的讀者可以看一下;干貨部分主要是分享筆者的面試經驗,從技術到非技術到面試表現,可以根據標題按需閱讀。同時需要注意的是:文章內容均為筆者的個人經驗之談,請不要奉為圭臬,辯證看待,同時歡迎各位評論區交流。
那我們開始吧~
面試經歷
這部分主要是跟大家分享一下筆者的整個實習面試過程,屬于純吹水內容,且內容稍長。有興趣的讀者可以看一下,或者直接跳轉到知識總結看干貨。
三四月幾乎各路大廠開始瘋狂招聘實習生。但其實有一些大廠,如騰訊、字節,在三月前甚至年前,就已經開始接收簡歷了。這個時候的崗位幾乎應有盡有,難度也會相對三四月低一些,是一個非常好的機會。但筆者,比較慫,感覺沒有準備好,到了三月才開始投遞簡歷。
三月初投遞的第一家企業就是,騰訊。
經過工作室師兄的內推投遞簡歷,很快就收到了面試邀請,這里得非常感謝師兄的幫忙啊。在三月六號開始了騰訊的第一輪面試,也是整個金三銀四的第一輪面試。面試形式是電話面,難度不高,也有適當拓展。結束后通過官網查詢已經進入復試狀態。當時是真的是非常高興,之后詢問了師兄,說簡歷已經拿給了總監,總監面試一過,就只剩下HR面試了。距離鵝廠就差臨門一腳。
隨后騰訊二面等待了一個多星期,非常久。等待期間經過其他師兄的內推,投遞了字節跳動。
字節跳動的面試流程速度相對穩定,每一面結束后隔一兩天就會打電話約下一面。3.11進行了字節一面,3.15進行了字節二面。字節跳動面試自我感覺表現挺一般,有很多的點都沒答上來。當時面完我都覺得自己掛了,直接癱坐在椅子上喘氣,心想著完了,與字節無緣了。但隔了兩天之后,字節HR打電話來約三面時間,很驚喜,有點失而復得的那種感覺,雖然這個比喻不太準確,但確實是我意料之外的。
隔了一個多星期,在3.16進行了騰訊二面。二面的內容主要是一些軟技能問題。心想著沒有技術問題,應該差不多穩了。這時候,再一次出乎我的意外:在3.18號騰訊預約了我24號初試。當時驚呆了:啊?怎么從復試退到初試?后來了解后發現是,我上一輪總監面試掛了,被騰訊其他的部門撈了,重新回到一面。這是我三月份的第一次面試掛,當時心里還是蠻難受的,畢竟距離鵝廠offer就差那么一步。但我并沒有多少的悲傷時間,因為馬不停蹄,字節三面來了。
3.22,字節三面。三面的面試官是c++開發工程師,對于android和Java似乎不太熟練,問的問題主要是c語言和算法。但我準備的內容是android和Java居多,c語言部分我回答得比較一般。總體上,整個字節跳動的三輪面試我的表現都比較一般,但當時面試完還是很期待能過的。這次沒有奇跡,過了兩天,字節的另一個部門HR打電話給我,給我重新安排面試。好家伙,我又又又回到了一面!!!
到這里其實心態是有點崩的。騰訊與字節都面了一趟,但是都掛了,從一面重新開始。那會的時間已經來到了三月下旬,騰訊和字節都在一面,相當于剛剛起步。而我身邊的同學很多已經拿到 BAT offer了。心里有點難受,同時還有點怕,怕最終找不到實習。經過這兩輪的打擊,心里其實也沒有什么底氣了。
此時騰訊和字節的面試流程先告一段落,三月下旬,其他的企業也開始面試了。
在三月初那會,我投的不只是字節、騰訊,還有美團、螞蟻、虎牙。但他們的流程比較慢,遲遲沒開始面試。美團在三月中筆試之后,終于在3.23開始了第一場面試。
美團前面的技術面流程比騰訊和字節快很多,3.23下午進行了一面,晚上就約了3.25的二面。但是在之后的HR面試隔得比較久,到了4.1,進行了HR面試。
美團總體的面試過程是比較順利的,一面和二面的面試題目都回答得七七八八。而且有了前面的面試經驗,此時表達更加清晰、語速也沒有那么快了。在4.8號美團HR打電話通知面試通過了。但是到了此時,面試情況已經和三月20號那會不一樣了。至于為什么,這還要從也是在三月下旬開始面試的螞蟻開始講起。
在三月初我經過內推投遞了螞蟻的一個部門。螞蟻的簡歷篩選階段非常久,篩選了半個多月。我一直以為我跟螞蟻無緣了,簡歷沒過去。直到23號,面試官打電話過來詢問了一些我的情況,項目、學習情況等等。然后25號跟我約了26號的一面。對于螞蟻這個部門,我是真的沒有抱希望能過的。前面經過了字節與騰訊的打擊,這會已經信心大折。我想著:去體驗一下卷中卷的部門,感受被刷的快樂。給你們看看我當時的聊天記錄:
之后在26號進行了螞蟻的一面,總體難度還是比較高,問到了比較多的一些優化、緩存的內容。而這一部分我接觸得不多,大多是靠推理、猜測來回答的,也回答得不是很好。后面還跟面試官聊了一些博客相關的內容。面試完之后我覺得懸了,就也沒抱著活的希望。接著就在31號上午收到了螞蟻的電話,約了下午的面試。[oh my god, amazing]
螞蟻二面是比較特殊的,一共有兩個面試官:一個是技術面試官,另一個是HR。技術面試官先提問了一會,大概15分鐘吧;之后是HR跟我聊,也是聊了15分鐘。主要問的內容都是在了解我的情況,例如工作室如何、成績如何、怎么學習、怎么管理時間、博客等等。給我印象比較深刻的是這個HR姐姐。和其他企業的HR不同的是,面試過程中就像在和一個朋友聊天,了解我的學習以及周邊環境的情況,還會給我反饋表達她對我的印象。
然后在4月2號,面試官加了我微信,給我補了筆試的內容,就是做算法題。過了兩天,收到了螞蟻的錄用喜報!!!當時掐了一下大腿,沒在做夢。。。
再拐回來說一下騰訊和字節跳動的后續。騰訊在3.24進行了一面、3.29進行了二面、4.2進行了三面、4.13進行了HR面試。前面的速度是比較快的,只是HR可能比較忙,所以一直沒約上,隔了比較久。字節跳動在4.1一面、4.6二面、4.9三面、4.14HR面,半個月完成了4個面試,速度比之前的也快了很多。
前面還講到了三月初投遞的虎牙,但虎牙的速度是真的慢,我甚至以為我的簡歷被篩選掉了。直到四月份才開始約面試。
虎牙在4月6號進行了一面,隔了幾天約了線下二面,也是終面。但此時我已經有意向的企業,就拒絕了面試。
整個面試流程,給我最大的感觸是:不嘗試,永遠是0;嘗試了,概率再小,都有可能是1。
故事到這里就講完了。誒,怎么沒說去哪個公司了?哈哈,你猜我去哪了?
知識總結
面試中會被考察的具體問題有三個影響因素:部門需求、簡歷、面試中提到的知識點。因此不同的部門不同的面試者遇到的面試題很可能是完全不一樣的,這也是我為什么不直接把面試題放出來的原因,沒有多大的參考價值。
這一部分主要總結在面試中被考察到的知識點,多為高頻面試問題,讀者可以自行考察是否這些知識都掌握了。需要特別注意的是這并不是全部的知識體系,僅僅是筆者遇到的面試題,讀者可以按照大體的方向去學習,但切不可認為這樣就足夠了,這里提到的知識點是遠遠不夠的。
面試的過程中更多的時候不會單純地考察知識點,而是會結合一些需求或者業務場景來多方面考察對知識點的理解。因此筆者建議,對于知識點要以理解為首要任務,而不是背誦答案。
Android
總體來說,本次春招問的android內容其實不多,主要還是看著我的簡歷問,簡歷寫得不多,問得也就比較少。但android的基礎內容如handler、view機制等還是要會的,其他的有更加深入的研究可以寫在簡歷加分,如Binder、系統服務、優化等。
Activity
Activity啟動流程。其中考察最多的類似問題是:【從桌面點擊一個圖標之后,到界面顯示,這個過程發生了什么?】。很多時候面試官會結合activity生命周期來考問:在啟動流程的哪些階段哪些生命周期被回調,此時Activity狀態如何。
啟動模式。也就是常見的四種啟動模式,但面試官更喜歡問何時使用他們,也就是使用場景。
生命周期。這個很少單獨問,一般和啟動流程或者具體的業務場景結合考問。
context。主要是內存泄露的考察以及application和activity兩種context如何選擇。
Handler
內部原理。Handler必會的啊,android的消息機制,可以稱為android程序的引擎來的。
同步屏障。涉及到繪制優化、屏幕刷新機制等。
阻塞喚醒原理。這里一般是會問為何loop()方法是死循環卻不會占用cpu時間片 or 為何next()方法阻塞卻不會卡死。更深一點會問到Linux的IO多路復用epoll原理。
卡頓與內存優化。整個主線程的所有任務都必須經過Looper,是排查卡頓和ANR的關鍵點,以及消息太多會造成的后果等。
消息復用。
圖片
計算一張圖片大小。分辨率x像素點大小,考察得很多次。
加載優化。如LaunchActivity同時加載的圖片太多如何優化、view的大小比圖片小如何優化等。
緩存優化。內存緩存、硬盤緩存。
Glide框架。重點就是Glide對上面的優化的實現原理,因此需要著重看Glide的緩存原理。
drawable。對比使用圖片和drawable的好處,以及drawable的原理。
SharePreference
內部原理
commit和apply的區別
這部分考察得不多,但建議讀者可以深入理解sp的缺點,如導致ANR原理,以及新框架MMKV、Data Store的優點。
window
考察得非常少,主要window的類型、以及window的真正定義理解即可。
view
事件分發流程。考察得最多,基本把整個分發流程講清楚就好了;其次還會考察如何解決具體的沖突場景。
應用界面的view層級。
繪制流程與時機。activity啟動時到onResume方法被調用,view依舊還未被繪制。
IPC
常見IPC類型以及優缺點。
Binder機制。優點、缺點、特點、和傳統IPC比較。Binder涉及到的很多是偏底層,更多的時候考察的是上層的應用,如和socket比較等。
socket。這個會重點問,涉及優缺點、使用場景、和binder相比等。
序列化
serializable和parcelable的原理,以及各自的優缺點、應用場景。
jetpack
使用jetpack的好處與壞處。
框架原理。這部分如果寫在簡歷也很少問,看面試官;但如果問的話,一般會問原理。
okHttp
攔截器以及責任鏈思想。這個是問的最多的。
內部調度器對線程、任務數的并發控制。
優點缺點,和URLConnection相比的好處,誕生的背景等。
優化
性能優化。問得很多,主要看自己平時有沒有做過優化。
卡頓優化。一般詢問如何定位和解決卡頓問題。
內存優化。一般是內存泄露、或者減少內存占用等。
ANR。一般會考察原理以及如何解決。
工具:leakcanary、profiler。優化涉及的內容太多,這個屬于比較深的內容,還是得看自己平時的項目積累。
Java
Java的考察是一個非常考驗功底的地方,很多的知識點都是基礎中的基礎,同時又都可以延伸到底層的邏輯。這些知識點在實際的運用中,也有很多的情況需要考慮,考察我們對于知識點的運用。例如線程池,可以從參數作用、到線程池原理、到阻塞喚醒機制、到實際項目的參數配置,有非常多的知識點可以考察。因而這一塊就看各位的造詣了。
當然,一些基礎或者常考的知識點還是得會的。
集合框架
HashMap。幾乎每家公司都問,主要是內部原理如hash算法、沖突解決方案、擴容方案、紅黑樹的優缺點等。必會的內容,不會就直接當場去世了。
HashSet。內部使用HashMap來實現,value設置為object。記住這個就好了。
ConcurrentHashMap。必問。他的并發原理以及好處,同時有些面試官也會問缺點等問題。
Hashtable、SychronizeMap。一般和ConcurrentHashMap一起問,進行對比。
CopyOnWriteArrayList。一般會作為線程安全方法來進行比較優缺點。
集合框架重點還是在Map,但是其他的框架List和queue的原理也是要了解的。
訪問限制符
public protect default private 四個要懂,基礎知識了。(筆者就是忽略了這些當時回答錯了)特別注意protect是可以跨包訪問的。
類
4種內部類,特別注意每個class編譯后都會產生一個class文件,不管靜態或非靜態。面試踩坑了
lambda的本質。就是匿名內部類。
抽象類和接口的區別。這個很看理解,如果有開發過具體項目的會回答得更加深刻,這是背八股文體現不出來的。
異常
異常體系、分類、機制。
與error的區別。
IO
主要還是問NIO的原理以及優缺點。建議把緩沖流的原理也得學一學并進行比較。
線程池
內部原理。必會的啊。
關鍵參數作用及如何配置。重點在如何配置,需要結合具體的機器情況、任務情況等等考量。
線程池的作用。不僅僅只是線程復用,更重要的是管理線程、控制線程數量。這個也比較考察具體的項目運用理解。
常見的四種線程池。
并發
sychronize。必問,java的鎖機制。特別是jdk6之后的鎖優化以及運用場景。為什么是重量級的、JVM層如何實現如果了解可以加分。
Lock。必問,AQS的原理最好懂。一般會拿來和synchronize比較。
volatile。必問,會拿來和鎖比較,他的兩個重要作用。更深點會問到cpu緩存一致性協議、以及指令重排的類型與原理。
CAS。必問,問原理以及ABA問題。
死鎖。一般詢問如何解決或者產生的條件。
Object的wait和notify。阻塞喚醒,一般會用一個代碼或者具體的場景來詢問如何保證多線程同步。
ThreadLocal。原理、內存泄露等
這一塊問的還是比較多,而且大都可以深入去問,看自己的學習程度了。
JVM
GC機制。必問。
類加載機制。必問,同時還會問雙親委托機制。
方法調用過程。這個也問的挺多,也看對JVM的學習程度了。
線程與進程的內存關系。如一個線程占多少內存、一個進程可以開多少線程、一個進程占用多少內存等。
內存分布。JMM、運行時數據區、native內存分布。很看對JVM的理解程度。
Kotlin
kotlin其實問的很少,現在大部分的項目還是使用Java開發的。一些有kotlin業務的公司會問,但是問的內容也不多。這一塊如果還沒學習其實不急的,把Java學好才是王道,kotlin和java在原理上,都是互通的。
協程
問的是最多的,主要是理解線程和協程的關系、協程的優缺點。這個也看個人的學習程度了。
run、let、also、with、apply
注意返回值以及作用域
特性的具體實現
如默認參數的具體實現。有了解過最好了,沒有的話就聯想Java是如何實現的,如默認參數可以聯想方法重載。
計算機網絡
計網這一部分主要還是HTTP和TCP的內容了,經典中的經典。需要注意的是鏈路層、網絡層的一些協議要了解,也是計算機基礎了,被問到不會的話會比較尷尬。其次是一些新的協議如QUIC、http3.0等可以了解一下,面試會很加分,同時也可以進一步去理解TCP的優缺點。
HTTP
http在android上的體現并不多,因為大部分的工作都給框架解決了,問的問題其實很少。
歷代http的優化以及原因
請求方法、響應碼
HTTPS
必問。一定要會了
原理以及和http的區別。加密算法、hash摘要、ca證書驗證都要了解
建立連接過程
破解:中間人攻擊等
數據鏈路層、IP層
ARP和RARP協議
NAT協議
DNS
這部分主要問一些常見的協議,考察計網功底,這里列出來的是筆者考察過的,讀者需要比價系統地去學習這一塊。
TCP
握手揮手
擁塞控制
可靠傳輸原理
缺點以及如何改進。這個是比較重要的,對應http3.0的優化就是針對TCP的缺點來入手的。
TCP的連接數目上限
TCP非常重要,必問的內容,不會的讀者一定要去好好學習一下。
UDP
優缺點
和TCP比較
應用場景
一般和TCP一起出現,詢問他們的區別,以及如何通過UDP來優化TCP的缺點。
數據格式
json的優缺點,為什么要使用json而不是XML。熟記就可以了。
設計模式
設計模式這一塊問的不是很多,原因是設計模式需要實際的編碼才能去真正理解他的好處。所以大部分情況下面試官都是詢問在項目中用了哪些設計模式、或者哪些開源框架用了什么設計模式。其次問的最多的就是三大架構模式了,必會的。
常見的設計模式
一般面試官會讓我們講自己認識的設計模式,按照自己的理解講出來就好了。
在項目和源碼中的體現
問的最多的就是:你看過的框架源碼都使用了哪些設計模式。不僅考察了設計模式、還考察了源碼。另外也會問在項目中運用了哪些設計模式。
MVC\MVP\MVVM
基本必問了。結合具體的項目實現以及自己的思考,分析他們的優缺點、適用場景等。
計算機基礎
計算機基礎這里包括了c語言、操作系統、數據庫庫、以及前面的計網等等。這部分直接問的內容不多,但卻是非常重要的,也是考驗我們基礎扎不扎實的地方。其次,面試官也會用一些業務場景來考驗我們的理解程度,如聊到java并發時,問具體為何線程切換代價高;又如聊到JVM內存分布時,問在native層是怎樣的內存分布以及邏輯內存物理內存等;再如聊到volatile,會問到cpu緩存一致性的問題等等。這些都是非常考驗功底的內容。因而,這些基礎內容要學好,不僅是為了面試,更是為了讓我們自己可以更好地學習理解知識。
C語言
問的很少,偶爾會問到。筆者只被問到:同構結構體的內存占用、指針相關問題。
C語言作為語言鼻祖,一些基礎還是要會的。
操作系統
中斷原理、作用。
死鎖原理以及如何解決。
操作系統這一塊確實問的不多,同樣也是考察基礎功底了。可以不問,但是問到一定要會。
項目
項目是非常重要的,一個擁有亮點的項目可為面試加分不少。面試前需要把自己的項目總結一下,提煉出項目的亮點難點。假如有優秀的項目,一定要把他寫在簡歷上,并把亮點表現出來。
在面試中面試官一般會先讓我們介紹項目,介紹項目一般可以按照這個模板來介紹:項目的背景、項目的內容、自己負責的內容、項目亮點。技術面的面試官會詢問項目有什么技術亮點難點,這個時候可以把我們提前準備的亮點給面試官表述出來。例如做了什么優化、自定義view等,體現出自己在技術上的能力。
當然,很多時候我們的項目并沒有什么亮點,甚至就是一個Demo,例如筆者。在被面試官問到項目有什么技術難點時支支吾吾說不出來。這時候可以把項目自己實現的功能講出來,例如一個wanAndroid App可以這樣描述:首頁使用viewPager+recyclerView來展示后臺數據,點擊后可跳轉到對應文章詳情頁;登錄注冊需要跳轉到另一個Activity,采用okHttp攔截器和SharePreference來實現記住登錄?。千萬不要說:額、、就是一個練習demo,拉數據展示,沒有什么亮點。這樣讓面試官完全無法了解我們的項目到底如何,也無法從項目開始提問來了解我們,面試效果就大打折扣了。
面試官對于我們的項目有了一定的了解之后,會繼續深問一些相關的知識點或者一些情況是如何解決的。以wanAndroid App為例子,面試官可以進一步提問:viewPager有做緩存嗎?recyclerView緩存機制如何?首頁圖片過多首頁加載緩慢導致卡頓如何解決?為什么使用攔截器實現,他有什么優缺點?SharePreference的原理如何等等。
非技術面試官可能會問一些如:項目中學習到什么?你們是如何合作的?項目過程中遇到過什么問題等等。常見的問題可以提前準備,把自己的心得整理一下。
那,沒有項目怎么辦?那趕緊去寫一個。正如某個大廠的面試官說的:到現在都不知道你們這些實習生,到底是真的會,還是背八股文的。的確如此,有時候我們甚至都不知道自己是不是真的懂,唯一的辦法就是,是騾子是馬拉出來遛一遛,寫個項目。項目是面試官一個了解我們的非常好的方式。
需要注意的是:面試前要把自己的項目總結好,包括背景、內容、技術難點、亮點;面試時不要覺得自己項目很撈,而要表現出自己的自信,把項目內容有條不紊地表達出來。后面回答好面試官提出的問題就可以了。
算法
算法這一塊,先看看筆者在面試中遇到的算法題:(點擊可跳轉leetcode對應題目)
算法難度基本就是力扣的中等題,且很多都屬于經典題目。面試的過程中,只要別太緊張基本不會有太大的問題。筆者在前期的面試過程中過于緊張,導致大腦空白,根本無法思考,連題意都沒看明白。此時,可以深吸一口氣,冷靜一下,旁邊有水可以喝一口水,努力讓自己冷靜下來。如果是在牛客網面試,可以打開代碼全屏,可以遮掉面試官的視頻,眼不見心不煩(狗頭)。
如何提升算法,其實就是刷題,刷題,還是塔喵的,刷題。算法沒有捷徑可走,需要靠自己勤奮去做題。如何刷以及刷到什么程度,可以參考筆者的經驗:
分標簽刷。題目的類型總體就分為那么幾類,每一類題型都有特定的模板。因此在一段時間內,對同一類型的題目重復刷,然后總結思路,效率會更好。
可以參考大廠算法合集、劍指offer,在面試前一段時間把這些題目刷一刷,很多時候可以做到原題或者類型題。
多做總結。實習考察的算法大都是有套路,每次刷題都把關鍵的點記錄下來,做總結,很快可以提煉出一個題型的整體思路。這里推薦一個博主的算法框架,幫助我們提煉算法思路。
學習官解,精簡代碼。這里不是要實現那種一行代碼解決問題的騷操作,而是去除掉我們代碼中的那些無用的判斷、循環等操作,增加代碼可閱讀性和提升效率。
關于算法,不同的企業對算法的要求是不同的,有些企業的算法都是簡單題甚至沒有算法題,例如美團的算法題是很簡單的,騰訊的算法題也基本都是經典題目;而字節跳動對于算法考察較為嚴格,多為非常見算法題,且基本每輪技術面都有算法題。
其次,企業的不同的部門對算法的考察偏好也是不同的。例如我同學面試wxg一次性來了5道算法題,而筆者面試pcg則沒有遇到這個情況。對算法看重的企業多會更深地去考察我們的算法功底,而對算法沒有要求的更多是走個流程。
總之,學好算法對我們是一件終身受益的事情,而不管企業考察難度如何。
簡歷
關于簡歷,網絡上有很多的博客寫得很好,讀者可以自行去搜查一下。這里主要和讀者們分享筆者對于簡歷的一些心得。
簡歷的作用是展示自己的亮點給面試官,讓面試官可以在短時間內迅速了解我們。
簡歷一定要把自己的亮點寫上去,展示自己的能力。說人話就是:告訴面試官自己有多牛叉,這不是表現我們謙虛的時候。不管是項目亮點、還是個人技能,都通通寫上去。
其次,一定要控制篇幅,不宜過長。面試官一般10s內閱讀完一份簡歷,只需要把有亮點的內容展示出來,而一些類似“熟悉Java類與接口、了解使用xx框架”等基礎知識就不要寫了。
另外,有開源項目或博客也一定要寫上去,特別加分。有時候即使面試回答得一般,但是看到我們的博客或者開源項目可能就認為只是緊張,隨手就給我們一個過了。因此平時多寫博客、項目,是有好處的。
技能點描述要精準,不要模糊。
舉個例子:
熟悉JVM。
熟悉JVM的GC標記算法及其分代回收理論、方法調用的解析及其入棧過程、類加載流程、內存模型與運行時數據區等。
對比這兩種描述,第二種面試官可以很明顯知道我們到底對JVM掌握到什么程度以及哪些知識點,并針對性提問,而第一種面試官甚至會覺得我們根本不懂JVM,連JVM中有什么知識點都不知道。
因此描述技能一定要精準,不要模糊,讓面試官猜。面試官不會掀起我們的蓋頭,只會掀起我們的頭蓋[狗頭]。
無用信息不要寫。
縱使在校園內參加了非常多的大型社團活動,包括但不限于三下鄉、主持大會等。我們面試的是android崗位,不是社團。只需要簡單一句參加過校園各類社團活動,讓面試官知道我們是一個active boy/gird 就好了。
寫上簡歷的內容一定要是自己掌握的內容。
這是簡歷最基本的要求,不用多說了吧。
非技術問題
這部分的內容,大都會在三面或者HR面提問到,到這里其實面試已經差不多穩了,但也不可以亂講話哦,不然HR姐姐卡我們簡歷就難受了。這些問題多為考察我們的軟實力,重點是要知道面試官提問這個問題的目的是什么,了解他的“潛臺詞”。
順帶提一下HR面試,基本上到這一步,我們的面試就基本通過了。HR面試的主要目的是了解我們這個人本身的情況,如學習、周邊環境、未來打算、價值觀等等。只需要真誠和HR姐姐聊聊天,同時避開一些雷別踩就好了。嗯?這還能有雷?有的哇,例如HR姐姐問你拿了幾家offer之后你會選擇我們嗎?你直接說:如果另一家過了就不要你們了。那人家還給你發offer?
但其他的個人情況問題,還是需要真誠和HR溝通,其實也是看企業文化是否適合自己。
下面看看筆者被提問到的一些軟實力問題:
你項目中遇到的最大的困難是什么?
這個問題問的最多,多為考察面試者的解決問題的能力;問題本身并不是重點,解決的過程才是重點。
你在項目中學到了什么?
考問學習總結的能力,回答一些自己的收獲,可以是技術的,也可以是非技術的例如團隊合作的經驗。
平時是如何學習的?
考察自學能力,可以把自己平時學習的方法講出來,向面試官展示自己學習的能力。
你為什么選android?
考察對android的興趣。不要講得太浮夸哇,什么從小就xxx,真誠一點講出來就好了。
未來的計劃如何?考研嗎?
根據具體情況回答就好了,如先實習鍛煉業務能力,畢業后一兩年希望有單獨負責一個模塊的能力等等;一般來說,企業更愿意招聘未來可以轉正且有規劃的實習生,更有培養空間。
工作城市有什么考慮嗎?父母怎么態度等
這個很明顯了,根據自己的實際情況來回答;當然,面試官更愿意招聘希望去他們部門所在城市的面試者。
你還在面試其他公司嗎?拿到其他公司的offer了嗎?你會選誰?
這里可以講一兩個比較優秀的公司來提高自己的身價,讓HR感受到你的市場競爭力,但切不可全部十幾個說出來哇,我們都討厭海王,包括HR。
選誰這個問題,如果此時自己還沒確定,可以把自己考慮的因素講出來,如業務內容、地點、實習生培養制度等講出來,然后告訴HR最后會權衡考慮,并在最后向HR了解這些內容(如果你都不問,怎么權衡?HR一看就知道你在養魚)。如果已經確定好了要來這家公司,那就直接告訴他一定來。
千萬記住不要撒謊,例如告訴HR我一定來,但心里已經有了想去的公司。到時候要拒offer會非常尷尬,而且有可能進入企業黑名單。[狗頭]
當然面試官肯定更加傾向于想要選他們的面試者,不然發了offer又不來,那何必發呢?所以這里就看各位的情商發揮了。
你有什么優缺點?在別人看來,你有什么優缺點?
一定要提前做好準備,筆者當時就是沒做準備,亂講一通。
需要注意的就是別太浮夸,真實一點;什么叫真實一點?例如:我的缺點是總是控制不好自己的學習節奏,老是學習太晚,傷害身體。雖然存在這種情況,但別說HR,可能我們自己都不信不是嗎[狗頭]
其次是講缺點的時候可以聊一下自己是怎么對待自己的缺點的,因為發現是一回事,而最終怎么處理又是另一回事了;把自己怎么對待自己的缺點的可以講出來。
最后是注意題目,是有兩個角度:自己和他人。一個是自我反省,另一個是外在表現,最好準備好這兩道題的答案。
前面的面試體會如何?你覺得你前面的面試表現如何?
主要看在前面的面試中有沒有什么體會,然后有沒有去處理發現的問題。這里可以講發現了很多的不會的知識點,然后自己都去再次學習了等等
自我介紹
幾乎在每一場的面試都會有,但在三面總監面一般沒有。
自我介紹是除了簡歷之外面試官第二個快速了解我們的地方。最好不要對著簡歷念,而是補充一些簡歷沒有的內容。
例如可以講自己從何時開始自學,自學能力非常強;加入過什么老師團隊,做了什么項目;近段時間學習到什么程度等等。
在面試前可以做好一份自我介紹,然后后面所有的面試都用這份自我介紹就可以了。這樣也不會說在自我介紹的時候不知道說啥。
但是千萬不要太長哦,抓重點一兩分鐘就好了。
你還有什么問題嗎?
這部分可以向面試官提問一些自己想了解的情況。一般來說,需要了解的有:部門業務內容、實習生具體的工作內容(sdk、業務開發、跨平臺、轉語言等)、實習生的培養內容、學習建議等等。
不同的面試官也需要區分問,例如HR可以問多一些工作地點、轉正機會等問題,而技術面試官可以問一些工作內容的問題。
這些因人而異,最好不要說沒問題咯,讓面試官看起來對崗位沒有多大的興趣~
面試中
未知,所以恐懼。
在沒開始面試前,可能很多的讀者都是人生第一次入職面試,肯定非常緊張的,在面試前甚至想著,要不算了,不面了。這都是正常的。解決的辦法就是:去面一次。經歷過一次之后就不會緊張了。或者說,沒那么緊張了。
大廠的面試官的體驗一般都是非常好的,筆者到目前為止遇到的所有面試官,都給我非常好的面試體驗。
在面試的時候要注意語速與咬字清晰問題。筆者本身是一個語速很快的人,加上面試緊張,面試官很難聽清楚我到底在講什么。面試一定要控制語速,可以提前給自己錄音看看什么程度的語速是最合適的。
其次,要注意自己的表達清晰。仔細聽好面試官的問題,然后先組織好思路,再慢慢表述出來。回答問題,也是相當于和一個講解知識點的過程,思路一定要清晰。一些口頭禪、冗余的表達盡量去除。
有一個需要注意的點就是:不了解的東西,千萬不要講出來,切記!!!。例如,我們不懂NIO,在面試官問到傳統IO的時候,就不要拿NIO去比較或者提起NIO。如果提起了,面試官99%會問一些NIO的問題,這時候就會灰常尷尬。而如果自己掌握了NIO,那么就可以不斷提起NIO,把面試官的詢問重點往我們熟悉的知識點牽引。
最后需要注意一點的是:拒offer是一個很考驗情商的事情。這不是在凡爾賽,而是一個非常重要的事情,處理不好可能會上企業黑名單。舉個最簡單的例子:
現在手上拿到了企業a的offer,但是自己更加向往的企業是b,但是b還在面試。這個時候企業a的HR問你:a和b你選擇哪個?然后你堅定地說肯定選擇a啊。然后拖了一兩個星期,b通過了,然后跟a的HR講我不去,我去b了。不僅影響了企業a的招聘,而且HR還會覺得你言而無信。
所以,拒offer最好是趁早,不要影響人家的招聘;其次是語言前后要一致,不要當渣男or渣女。[狗頭]
春招時間線
實習生招聘一般集中在春季,秋季招聘主要是校招,也就是招正式工。
最先的一批開始時間是在年前,也就是12月。例如CVTE在11月、字節跳動在春節前就開啟了實習招聘,屬于最早的一批。
第二批在春節后,也就是2月份,很多的部門有內推直達。多關注牛客網等的一些內推信息,此時公司官網可能還沒有開放投遞通道。
三月份幾乎是所以一二線大廠開始招聘的時間。大廠還會分兩個批次:提前批和正式批。
提前批:一般通過內推直達沒有筆試,且提前批hc較多,是最推薦的投遞簡歷時機。
正式批:提前批掛了,正式批可以繼續面。缺點就是一般都需要筆試
但很多的公司沒有提前批與正式批之分,這個要看具體的公司具體安排。強烈建議,越早投越好。
四月份是正式批開始時間,但熱門崗位幾乎已經招滿人了。此時hc更少,要求也會比三月份更高。
最后
最后想要告訴讀者的是:影響面試結果的因素有非常多,如面試官心情、口味,當天自己的狀態,崗位要求等等。筆者的兩個同學,都是前面連續掛了兩次一面,但后面也都成功拿到了BAT offer,甚至不止一個。掛掉面試絕對不是簡單的自己能力不行,而是多方面的因素,總結好經驗,繼續面試就好了。
邁出第一步,開啟第一輪面試非常重要。不要覺得自己“好菜啊,投了肯定不過的,不投了”。不投,怎么知道不過呢?面試也是一個學習的過程,會慢慢發現自己的不足,包括表達、知識等等。所以,如果你還在猶豫,趕緊投起來吧。
希望這篇文章能夠給正在找實習的讀者提供一點幫助,先預祝各位實習面試順利吧。有什么問題或者想了解的內容可以評論區交流,后續筆者繼續補充或者新開一篇文章做解答。