前言
北京字節跳動科技有限公司成立于2012年3月,是最早將人工智能應用于移動互聯網場景的科技企業之一。其獨立研發的“今日頭條”客戶端,開創了一種全新的新聞閱讀模式。
我一直很向往這樣有創新精神,并做出了巨大成果的大公司,而且,除了上面的偉大成績,字節跳動公司的薪資待遇和福利保障在同行中也都是佼佼者,是不少程序員向往的大廠,我也是。
1、自我介紹。自我介紹其實是個比較關鍵的過程,這基本上決定了后續環節將會問哪些問題以及初步給你的評分定位(作為無數候選人的面試官,這一點主觀上個人也是如此認為)。自我介紹的要點是重點講述一兩個最近自己主要參與或者負責的項目,著重說明自己承擔的角色,所負責角色具體所做的事情,思路一定要清晰。
2、完了之后,基本上面試官會對著其擅長和當前尚未解決的或者心存疑慮的問題進行提問或者說相互溝通、交流。因為面試的是架構師,所以純粹的技術性問題(比如aop,bean生命周期,jdk基本的并發,常見緩存方式等等)已經沒有問了,直接就是針對項目里面的具體架構、業務問題進行深入的討論。
比如整體架構他會問道為什么我要用F5以及LVS而不是其他的。問到的包括對于性能,如何進行排查,通用的答復(比如說我說先看前臺還是后臺,前臺findbugs、chrome f12,后臺先看哪臺服務器負載高,top、vmstat、sar等等,如果oracle則看awr,mysql看performance schema。應用服務器的話看jstack,jprofiler等等)之后,一般會進一步問具體哪些指標等等,基本上如果答復足夠清晰的話,一般面試官不會再進一步細問。
討論到分布式事務回滾的時候,我們溝通到由發起方負責傳遞分配被發起方ID可實現,服務的可重復執行以及補償。另一個面試官問道,他要確保緩存中取到的值必須是最新的,要么取不到,我說那就先刪除緩存,再插入庫,最后插入緩存,就不會有問題,或者用handersocket實現,這樣也可以保證沒有問題。再然后相互聊了下restful的優勢與劣勢,nginx,rpc框架與架構。談到MQ的時候,因為MQ很早的時候研究過,后來因為公司自己開發了一個定制的MQ,所以基本上不了解各種MQ的差別以及實現機制,直接答復不清楚即可,這一點其實問題不大,每個人總會有弱項的。
最后,一般來說,好像面試官是技術出身的,通常會再問,工作外是否關注新技術,如果答復是的話,通常面試官會進一步問看哪些新技術,哪些論壇的哪些板塊,對于具體的新技術,如果面試官有接觸的,他會進一步問這個技術的特點、相對于現在的優勢。
基本上,技術面試會問六七個左右,一般會從概述性開始,到實現層面具體如何實現都問進行,這一點其實跟面試官很有關系,國外通常認為架構師必須是寫代碼的,雖然不一定工作中的職責是寫代碼,但他必須知道如何驗證他設計的架構是否合理,而不是腦袋一拍,丟給程序員去自由發揮。
有些公司或者部門招聘架構師或者相對比較高級的開發時,通常面試官是非技術出身或者技術并非其強項的,這個時候面試就不會這個討論,很大程度上可能圍繞著4+1模型去問。如果面試官在DB方面擅長,可能為重點放在數據庫設計上。
3、技術面試在2個小時左右結束,隨后根據兩個面試官出去時的表情可以看出基本上技術面過關了,隨后跟兩個面試官的主管差不多溝通了半個多小時,最后又跟人事溝通了差不多半個小時,人事答復他們會內部溝通下定級的問題,再行通知我,可以認為基本上搞定了。
4、第二天晚上就收到收到人事的通知了,因為開的薪資不滿意,直接拒絕了,并給出了最低要求。人事表示,會和部門再行溝通,又過了2天,人事答復,薪資按我要求進行調整了調整,五一一回來,OFFER就發過來了。
5、補充一點,作為慣例的一部分,技術面、二面、人事面基本都問關于我們公司或者其他方面,你有什么需要了解的或者想問的么,這一點大家就隨意了,感覺怎么回答問題都不大,主要還是看自己對候選公司的了解情況或者主觀意愿。
資源分享
點擊:
**《Android架構視頻+BAT面試專題PDF+學習筆記?》**即可免費獲取
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那么很難做到真正的技術提升。希望這份系統化的技術體系對大家有一個方向參考。
研究,那么很難做到真正的技術提升。希望這份系統化的技術體系對大家有一個方向參考。
2020年雖然路途坎坷,都在說Android要沒落,但是,不要慌,做自己的計劃,學自己的習,競爭無處不在,每個行業都是如此。相信自己,沒有做不到的,只有想不到的。祝大家2021年萬事大吉。