互聯網公司面試官是如何360°無死角考察候選人的?(下篇)【石杉的架構筆記】

歡迎關注我的公衆號:石杉的架構筆記(ID:shishan100)
面試

週一至週五早8點半!精品技術文章準時送上!redis


1、寫在前面

上一篇文章:互聯網公司的面試官是如何360°無死角考察候選人的?(上篇)算法

用一個面試連環炮引出了平時中大型互聯網公司的面試官是如何發問的。緩存

緊接着從技術廣度、底層技術、技術深度幾個角度說了一下,咱們通常是如何來考察候選人的技術。性能優化

本文是下篇,將會從項目經驗、系統設計、履歷/學歷/素質、候選人與崗位的匹配、多輪面試官的協做這些方面,繼續告訴你們,互聯網公司是如何全方位、無死角來考察候選人的。網絡


2、項目經驗的考察

項目經驗,絕對是面試官必須考察的,極可能上來就是讓你先畫一下項目總體架構圖,說一下大家項目用了哪些技術以及核心的業務思路。數據結構

而後從項目入手,考察你項目裏各個技術掌握的如何,經過連環炮對你掌握最好的技術進行深刻考察,對一些高階技術的考察,直接下探到底層。架構

舉個例子,若是你說大家公司裏用了dubbo做爲服務框架,那麼會問問你dubbo底層的通訊框架是什麼?Netty?Mina?併發

而後再問問你底層的NIO是啥?網絡通訊裏的長鏈接和短鏈接是啥?框架

你是否看過dubbo的源碼?dubbo源碼中你印象深入的對併發技術的運用是什麼?

一些面試官喜歡從項目展開問各類技術,也有一些面試官上來直接從你簡歷上的技術開始發問,從技術深刻到項目。這就看我的喜愛了。

固然不管如何,最後總會聊到項目的一些業務細節,好的面試官會掌握一個原則:死扣細節。

提問時,必需要深刻到你把某個業務細節講清楚,以及結合這個業務細節究竟是如何落地和設計技術方案的,如何使用各類技術在業務中的。

好比說

● 你說你用了Redis,那就會進一步問你,你哪一個業務用了Redis?那個業務的流程請你敘述一下?

● 在Redis裏大傢俱體是選用了哪一種數據結構存放什麼數據?數據的過時時間是什麼?若是緩存過時了,你的數據兜底方案是什麼,到哪兒去回查?

● 你的key如何設計的,爲何要這麼設計?你的這個業務把數據放在了Redis裏,是其餘哪一個業務來查Redis?爲何要這樣子作?若是不用Redis會怎麼樣?

這只是一個例子,實際上各類技術均可以在項目裏深扣細節。這就能考察出,你對這個技術的實踐到底有多深,經歷過多麼複雜的線上業務的實踐,能hold住一個技術解決線上系統中的哪些問題。

總之,從項目裏,咱們能夠看出你是否負責過複雜業務架構下的分佈式系統的設計和開發?

大家的系統是不是線上高併發大流量高負載場景的挑戰,你是否經歷過這種技術挑戰?

大家的系統是否承載過億級別海量數據的存儲以及高性能讀寫的挑戰,你是否解決過這些問題?

此外,從項目考察中,還能夠直接看出你的總體能力技術定位。你是僅僅負責過一個模塊呢?仍是負責過一個子系統?

或者是做爲架構師負責過一個完整的項目羣,帶過幾十人的團隊,設計過大規模複雜的系統架構?

因此說,你到底把控過什麼樣的項目,具有什麼樣的能力,從你負責過的項目裏,直接能夠看出來。

若是你來面試的是中級的崗位,那麼可能咱們以爲你技術總體ok,獨立負責過核心模塊的開發,同時對各類技術都有必定的實踐經驗,就OK了。

若是你面的是高級/資深的崗位,那麼咱們會看看你是否帶領一個小團隊獨立負責過一個有必定複雜度和難度的完整系統的架構設計和開發。

若是你面試的是架構師的崗位,那咱們確定是要求你在一個公司裏主導過不少人協做完成的大型並且複雜的項目羣。

而且咱們要求你對一個大型系統架構有深度的思考和總體的把控,並且這個項目要有足夠的技術挑戰,大用戶量、高併發、海量數據,等等。

所以,項目考察,是重中之重。不少同窗平時積累了很多的技術學習,可是有一個很大的問題是,項目經驗和實踐太少。

這些同窗可能確實沒經歷過複雜系統的架構設計的歷練,因此很是容易在項目經驗考察這塊出現問題,被面試官斷定爲技術不錯,可是經驗缺少。


3、系統設計的考察

這個也是不少互聯網大廠的面試官,在考察一些高級工程師及以上的同窗,喜歡發問的。

通常會用本身公司或者團隊裏的一些業務場景拿出來,或者是廣泛性的一些業務場景,而後來問你如何針對這個業務場景設計系統架構?

舉幾個例子

  • 如何設計一個電商秒殺系統架構?
  • 如何設計一個消息推送系統架構?
  • 雙11大促的時候如何設計系統的動態擴容/縮容的機制?


相似諸如此類的一些場景式的系統設計考察。其實這個主要是用一些你可能沒接觸過的場景,來現場考察一下你的架構設計思惟。

尤爲是針對上面說的高級/資深、架構類的崗位,咱們尤爲會注重現場考察你沒接觸過的業務場景的架構設計。

由於畢竟你來了之後,確定要讓你接觸全新的業務,而後立馬給出合理並且靠譜的架構設計方案,在新的公司來落地你的經驗。

不少同窗平時不太注意積累系統設計的能力,致使出去面試的時候,人家一問場景系統設計問題,直接發矇了。

因此,平時應該對公司裏各類業務場景多思考,本身設定一些挑戰,好比假設你公司的請求量暴增100倍,數據量暴增100倍,你的系統架構應該如何設計?

多給本身設立挑戰,而後去嘗試着思考設計,才能積累出系統設計的思惟和能力來。


4、基本功的考察

不少大廠都會考察候選人的基本功,尤爲是數據結構和算法。好比現場手寫一些常見的算法題。

不少同窗很容易倒在基本功這塊,一些基礎的數據結構和算法題都不會寫,那就是有點問題了。

這裏強調一下,這個東西並非應屆生專用的,其實也表明了一個工程師,甚至一個架構師的基本技術素養問題。

所以建議你們平時仍是要注重基本功的保持,平時寫寫算法題,熟悉一下數據結構,能保持本身的技術素養不會掉落。

不然數據結構和算法都不熟悉,對複雜系統的技術細節把控基本也就無法作到,由於不少複雜分佈式系統的源碼裏,處處是本身寫的數據結構和複雜算法。


5、履歷背景/學歷背景/過往經驗/綜合素質

最後必定會綜合看一下一個候選人總體的背景,好比你的履歷背景。

你過去是外包公司出身?仍是傳統IT公司出身?或者是一些小型互聯網公司?或者是一二線大互聯網公司出身?

另外你的學歷如何?是大專?普通本科?211 / 985本科?普通碩士?211/985大學的碩士 or 博士?

你過去作的都是一些內部系統,好比OA系統,財務系統?或者都是C端系統,有上千萬用戶量的系統?或者你過去作的都是某種偏門的項目,好比爬蟲之類的?

你的溝通表達能力如何?性格是否踏實和nice,不浮躁?你是否有團隊協做精神?

這些綜合性的東西,其實都會在咱們的總體考察範圍以內,都會歸入考慮範圍內,最後決定要不要發offer。


6、候選人與崗位需求的匹配

其實按照上述流程考察下來之後,會經歷多輪面試,基本一次好的面試就能夠綜合考察出一個候選人的完整狀況了。

這個候選人的技術面是否完整,是否有幾個技術領域有足夠的深度?

候選人作過什麼樣的項目,項目的實踐經驗如何,把控過多大的團隊和多大的項目,

對全新業務場景的系統設計能力如何,基本功如何,綜合背景和素質如何。這些東西,基本上均可以很好的考察出來了。

此時就會將一個候選人跟崗位的需求進行匹配,好比說你要招聘的是一個資深Java的崗位,須要他過來開發的是公司裏較爲核心的子系統。

而後呢,你公司的技術棧是dubbo、zk、kafka、redis,等等

大家公司每秒有上萬的併發訪問壓力,數據量一億以上,線上系統偶爾故障,好比高併發下zk忽然報錯異常,致使系統業務中斷,而後須要帶4個初級和中級的兄弟一塊兒開發。


這時,你考察完一個候選人,就知道他的技術能力是否匹配這個崗位,技術深度可否cover住線上系統常見的一些故障。

可否在線上故障的時候,立馬有足夠的源碼功底分析、定位和解決問題。是否有過往相似足夠的高併發和海量數據的項目經驗。

是否帶過幾我的獨立把控過一個核心繫統的架構設計和開發,過去的公司背景咋樣,學歷咋樣,綜合素質咋樣。

這個候選人和崗位需求是否匹配,基本上就出來了。


7、多輪面試官的分工協做

上面列舉了大量的技術考察的內容,實際上很難說是一輪面試官直接完成的。

所以,通常咱們都是分紅多輪面試官協做考察。可是根據不一樣的公司,不一樣輪的面試官的職責會稍微有一些不同。

好比說一面面試官可能主要就是考察一下技術內容,包括技術面以及連環炮發問考察技術深度,以及算法功底,不太涉及項目。

二面面試官可能會着重考察項目經驗,系統設計,同時對技術深度也會繼續考察。

三面面試官可能會從你把控過的項目規模、帶的團隊規模、團隊管理能力、規範和流程設計能力、總體工做履歷背景和經驗、軟素質(溝通表達、團隊協做、價值觀,等等)來考察你。

上面說的只是一種分法,一個公司內的不一樣團隊的分工多是不同的。

也有的多是一二面都是考察技術面和技術深度,不涉及項目,三面來考察你的項目經驗,四面來考察你的一些綜合素質。

或者可能你面的職位很高,好比是總架構師之類的職位,也許還有CTO或者技術VP出來面試你第五輪。

可是無論如何分,總體考察的內容都是上面的那套東西以及那個流程和過程。


8、Java進階面試系列的開始

下一篇文章,咱們就開始以連載的形式,跟你們聊聊中大型互聯網公司Java面試時高頻考察的技術點以及相關的面試技巧。


敬請期待:
《哥們,大家的系統架構中爲何要引入消息中間件呢?》
《哥們,那你說說系統架構引入消息中間件有什麼缺點?》


END

若有收穫,請幫忙轉發,您的鼓勵是做者最大的動力,謝謝!


一大波微服務、分佈式、高併發、高可用的原創系列文章正在路上

歡迎掃描下方二維碼,持續關注:


石杉的架構筆記(id:shishan100)

十餘年BAT架構經驗傾囊相授


推薦閱讀:

一、拜託!面試請不要再問我Spring Cloud底層原理

二、【雙11狂歡的背後】微服務註冊中心如何承載大型系統的千萬級訪問?

三、【性能優化之道】每秒上萬併發下的Spring Cloud參數優化實戰

四、微服務架構如何保障雙11狂歡下的99.99%高可用

五、兄弟,用大白話告訴你小白都能聽懂的Hadoop架構原理

六、大規模集羣下Hadoop NameNode如何承載每秒上千次的高併發訪問

七、【性能優化的祕密】Hadoop如何將TB級大文件的上傳性能優化上百倍

八、拜託,面試請不要再問我TCC分佈式事務的實現原理坑爹呀!

九、【坑爹呀!】最終一致性分佈式事務如何保障實際生產中99.99%高可用?

十、拜託,面試請不要再問我Redis分佈式鎖的實現原理!

十一、【眼前一亮!】看Hadoop底層算法如何優雅的將大規模集羣性能提高10倍以上?

十二、億級流量系統架構之如何支撐百億級數據的存儲與計算

1三、億級流量系統架構之如何設計高容錯分佈式計算系統

1四、億級流量系統架構之如何設計承載百億流量的高性能架構

1五、億級流量系統架構之如何設計每秒十萬查詢的高併發架構

1六、億級流量系統架構之如何設計全鏈路99.99%高可用架構

1七、七張圖完全講清楚ZooKeeper分佈式鎖的實現原理

1八、大白話聊聊Java併發面試問題之volatile究竟是什麼?

1九、大白話聊聊Java併發面試問題之Java 8如何優化CAS性能?

20、大白話聊聊Java併發面試問題之談談你對AQS的理解?

2一、大白話聊聊Java併發面試問題之公平鎖與非公平鎖是啥?

2二、大白話聊聊Java併發面試問題之微服務註冊中心的讀寫鎖優化

2三、互聯網公司的面試官是如何360°無死角考察候選人的?(上篇)

相關文章
相關標籤/搜索