「Android高工面試之旅」疫情失業裸面失敗後,花費3個月複習面試了20家公司後收割好運

前言

不知不覺2020年已經快要過去了,然而受到疫情影響,之前的公司四月份都沒有正式復工,於是只能被迫走上了重新找工作的道路

開篇

在完全沒有準備的情況下面了幾家公司,由於好幾個月沒有工作了,基本上以前做過的技術細節都記得不是很清楚了,以至於面試的情況非常不理想。由此,這段時間心情一直起起伏伏,甚至產生了對自己技術能力的懷疑,以及擔心自己到底能否找到一份工作了。

從事Android開發也三年有餘了,然而在投簡歷過程中也是遇到了很多問題,比如簡歷上的經歷跟公司需的不匹配;比如自身的技術面過窄,覺得自己學了很多,但是過於理論化而沒有落實到實踐當中;再比對之前做過的項目細節把握的不好,也沒有去深究,都導致了面試當中出現的一系列問題。

然而生活還是要繼續,工作也要繼續找下去。雖然自己也面臨也寫生活上的壓力,但是這也不是停滯不前的理由和藉口。寫這個博客的目的也很明確,幫助自己梳理相關的技術,直面自己內心的恐懼,以更好的準備面試,找到一份滿意的工作。

準備

1. 簡歷

在投簡歷的過程中,跟HR交流有時直接說“經驗不匹配”。自我感覺還是簡歷寫的有問題,這種情況下,簡歷盲投感覺已經不合適了,還是要有針對性的對簡歷進行定製化,先過簡歷關。

2. 技術點

既然毫無準備的裸面行不通,那就開始查漏補缺,準備相關的知識點吧。

作爲一個三年多的Android研發,自認爲還是積累了一定的技術實力和能力的,只是沒有系統,深入的整理過自己的項目技術點。

3. 拓展

針對面試中問的一些問題,沒有思路去回答的,面試結束後可以針對這些問題去拓展和深挖,避免下次面試再出現相同的情況。

思考

這次的面試目標是「Android高工」,那麼要思考的是,這個「高」,究竟高在哪裏?我們以一個什麼樣的工作經驗,技術水平,思想深度,才能達到這個高度,這個是要思考的,在面試和準備過程中我也不斷的反思和總結。

面試經歷

後來複習了三個月左右。7月底開始邊投簡歷邊進行復習掃尾、鞏固,大大小小的公司投出了大概三四十份簡歷。收到面試大概20場。下面我挑了幾個較好的和一些大廠的真題面經分享一下。

小建議:
面試某家公司前,最好是要先了解你所面試的工作崗位,公司的業務,主要是做哪個方面的,這樣可以更加具有針對性的複習和準備。

華潤集團下某借貸子公司

一家借貸公司,肯定對APP安全方面比較着重。

  • Activity 的啓動過程
  • Broadcast 註冊方式與區別
  • 磁盤緩存怎麼實現
  • 進程間通信原理、Binder 機制原理
  • APK加固、dex文件加密實現、原理
  • 說一下類加載的過程、機制,爲什麼要這樣設計?
  • 談談你對安卓簽名的理解。
  • 對於提高app的安全性,你有哪些建議或方法?

騰訊新聞

大概就是UI、頁面流暢度、適配這些方面吧。

  • 如何將一個Activity設置成窗口的樣式。
  • Android中跨進程通訊的幾種方式
  • 屏幕適配的處理技巧都有哪些?
  • ListView卡頓原因及處理
  • 廣播傳輸的數據是否有限制,是多少,爲什麼要限制?
  • 如何防止過度繪製
  • View的回執流程
  • 說說對Context的理解
  • 卡頓的一整套解決方案是怎麼做的?

某知名外賣APP

佈局、頁面、高級UI之類的

  • View的繪製過程,onMeasure方法中兩個參數的含義;
  • 你在做佈局優化的過程中用到了哪些工具?
  • 做完佈局優化有哪些成果產出?
  • 看過哪些源碼
  • 混合開發有沒有做過
  • 大致說一下自己做過最滿意的項目吧

字節跳動抖音部

音視頻、算法

  • 靜態註冊和動態註冊的原理分別說一下吧
  • JNI是如何訪問java中的方法和字段的?
  • JNI規範中定義了哪些引用,區別是什麼
  • 算法:獲取單鏈表倒數第k個元素
  • 單例實現線程的同步的要求?
  • LaunchMode應用場景
  • 計算一個view的嵌套層級

算法:

某上市公司(母嬰類產品)

  • 請介紹下ContentProvider是如何實現數據共享的。
  • android本身的一些限制,比如apk包大小限制,讀取大文件時的時間限。
  • 算法:複製含有隨機指針節點的鏈表
  • Android系統中GC什麼情況下會出現內存泄露呢?
  • 三次握手四次揮手說一下吧
  • HashMap 、HashTable原理?
  • Java 虛擬機&內存結構&GC&類加載&四種引用&動態代理
  • 進程保活怎麼做

合資外企

  • LeakCanary 原理
  • OOM 場景及規避
  • App 安裝過程的怎樣的
  • ANR是什麼?怎樣避免和解決ANR
  • MVC MVP MVVM原理和區別
  • 算法:2000萬個整數,找出第五十大的數字?
  • App 是如何沙箱化,爲什麼要這麼做?
  • flutter用過嗎?
  • Flutter 如何與 Android iOS 通信?

志安科技

類似於華爲海思,對底層很看重。

  • HashMap 原理
  • andorid的Binder機制是怎麼樣的
  • Linux的原理有了解嗎
  • 有看過哪些源碼,有深入到C++中嗎,C++熟練嗎?
  • 熟悉framework哪些模塊的源碼,對圖像性能優化有了解嗎
  • 以後的技術發展方向是如何的

阿里巴巴P6崗

  • HTTP2.0與3.0的區別
  • 項目中常用的設計模式
  • https中哪裏用了對稱加密,哪裏用了非對稱加密,對加密算法(如RSA)等是否有了解?
  • 瞭解過Android虛擬機有哪些?
  • 對Dalvik、ART虛擬機有什麼瞭解?
  • Gradle自動補丁包生成原理
  • Hybrid 通信原理是什麼,有做研究嗎?
  • 來介紹下你最成熟的一個項目是哪個?
  • 能簡單的畫一下你這個項目的架構圖嗎?
  • 除了MVP,MVC,MVVM外還有什麼其他的架構方式?
  • 動態編譯和反射相比,除了性能方面外還有什麼區別?
  • 死鎖如何避免、處理?
  • Flutter中的Widget、State、Context 的核心概念?是爲了解決什麼問題?
  • 卡頓 {如何檢測卡頓,卡頓原理是什麼,怎麼判斷頁面響應卡頓還是邏輯處理造成的卡頓} ,BlockCanary 的原理
  • 算法:雙鏈表翻轉、寫出你所知道的排序算法及時空複雜度,穩定性

最後

多餘的話就不講了,接下來將分享我面試之旅的複習過程,如果你也在準備面試但是不知道怎麼高效複習,可以參考一下我的複習路線,有任何問題也歡迎一起互相交流,加油吧!

這裏給大家提供一個方向,進行體系化的學習:

1、看視頻進行系統學習

這幾年的Crud經歷,讓我明白自己真的算是菜雞中的戰鬥機,也正因爲Crud,導致自己技術比較零散,也不夠深入不夠系統,所以重新進行學習是很有必要的。我差的是系統知識,差的結構框架和思路,所以通過視頻來學習,效果更好,也更全面。關於視頻學習,個人可以推薦去B站進行學習,B站上有很多學習視頻,唯一的缺點就是免費的容易過時。

另外,我自己也珍藏了好幾套視頻,有需要的我也可以分享給你。

2、進行系統梳理知識,提升儲備

客戶端開發的知識點就那麼多,面試問來問去還是那麼點東西。所以面試沒有其他的訣竅,只看你對這些知識點準備的充分程度。so,出去面試時先看看自己複習到了哪個階段就好。

系統學習方向:

  • 架構師築基必備技能:深入Java泛型+註解深入淺出+併發編程+數據傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO

  • Android高級UI與FrameWork源碼:高級UI晉升+Framework內核解析+Android組件內核+數據持久化

  • 360°全方面性能調優:設計思想與代碼質量優化+程序性能優化+開發效率優化

  • 解讀開源框架設計思想:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網絡訪問框架設計+RXJava響應式編程框架設計+IOC架構設計+Android架構組件Jetpack

  • NDK模塊開發:NDK基礎知識體系+底層圖片處理+音視頻開發

  • 微信小程序:小程序介紹+UI開發+API操作+微信對接

  • Hybrid 開發與Flutter:Html5項目實戰+Flutter進階

知識梳理完之後,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結。

3、讀源碼,看實戰筆記,學習大神思路

“編程語言是程序員的表達的方式,而架構是程序員對世界的認知”。所以,程序員要想快速認知並學習架構,讀源碼是必不可少的。閱讀源碼,是解決問題 + 理解事物,更重要的:看到源碼背後的想法;程序員說:讀萬行源碼,行萬種實踐。

主要內含微信 MMKV 源碼、AsyncTask 源碼、Volley 源碼、Retrofit源碼、OkHttp 源碼等等。

4、面試前夕,刷題衝刺

面試的前一週時間內,就可以開始刷題衝刺了。請記住,刷題的時候,技術的優先,算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎麼會問。

關於面試刷題,我個人也準備了一套系統的面試題,幫助你舉一反三:

總結

改變人生,沒有什麼捷徑可言,這條路需要自己親自去走一走,只有深入思考,不斷反思總結,保持學習的熱情,一步一步構建自己完整的知識體系,纔是最終的制勝之道,也是程序員應該承擔的使命。

以上內容均免費分享給大家,需要完整版的朋友,點這裏可以看到全部內容。或者關注主頁掃描加 微信 獲取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章