背景經歷
當時我作業近5年,明顯感覺到了瓶頸期,具體來說,感覺自己用過很多框架、做過一些技術設計、也有過一些產出,但是從技術深度上感覺不足,到后期時做事也沒有明顯挑戰,完全適應了公司節奏,說句不好聽的成了老油條,可以每天舒服的混日子(這也有好處,有時間準備面試),這對于個人成長不利,長此以往可能面臨大齡失業,所以我覺得需要痛下決心改變一下現狀,我定的目標就是進大廠,因為我覺得小廠做到我目前的程度已經很難有很多的提升了,

下了決心之后,下一步是寫簡歷
簡歷在面試程序會起到至關重要的作用,我們需要非常注意簡歷的撰寫,
在面試的程序中,面試官通常會非常關注你簡歷中的作業經歷、專案介紹、技能特長這三部分的內容,如果你面試的公司沒有固定題目的話,那很多問題都會圍繞你簡歷里這三部分內容去問,這里需要注意的一點是相關技能的書寫,核心思想,想進大廠的簡歷,要突出自己的特色,寫得要生動,能從簡歷看出你實力不俗,如果簡歷不過關,很大幾率根本沒有面試機會,
首先你要讓面試官明確你面試的定級是什么, 很多時候一個職位對應了很多個職級,在投簡歷的時候,你的簡歷需要讓面試官給你一個比較明確的定級,否則面試程序會比較被動,也會影響面試官對你的判斷,

因此這部分的內容需要突出自己的特長,也要寫一些現在公司相對關心的問題:
- 比如你對插件化、熱修復、組件化、性能優化等很熟悉,就可以明確的寫上,但如果不是很熟悉那么盡量不要去寫,
- 如果你對Android某部分內容很熟悉就可以寫得相對詳細一些,比如你對Handler、Binder機制很熟悉,就可以寫“熟悉Android常見機制,比如Handler、Binder機制等”,
- 而看到你很熟悉這部分內容,面試官可能在問問題時一層層深入,因此你肯定需要提前準備一下這部分內容如何講解,基本可以從機制的優點、重點、難點三方面去說明,
面試篇
對于Android工程師來說,面試開始的時候都會問一些演算法和Android、Java的基礎知識,
針對Java的基礎知識,我建議你看一下《碼出高效:Java 開發手冊》《深入理解Java虛擬機》《Java并發編程的藝術》這三本書,這里可以分享一個之前在Github上看到的Android底層基礎到架構成長筆記庫,整理得很全,如果你也有需要可以去查看,點擊查看Github地址!

對于Android的面試題,大多都是跟系統原理有關的內容,但也有很多沒有準確答案的問題,比如四大組件的原理這樣的題目,需要你從一個宏觀的角度去解釋一下四大組件,或者你也可以拆分開一個個去講解,
關于Android面試高頻的問點,這些你是必須要理解清楚的!如果你在準備面試,這份《Android快速面試指南》肯定很適合你! 很全面,如果你也有需要可以去查看,點擊查看Github地址

一些Android經常使用到的組件一定要理解清楚,比如:
- Handler.postDelay的機制
- 觸摸事件機制
- 自定義View
- 如何計算View大小
- 容器控制元件如何對子控制元件進行布局
- 資料庫基本操作
- Binder機制
- LMK機制
還有面試官也可能會問一些開源框架的原理,建議你也要多了解一些:
優秀的網路框架
圖片加載框架
日志記錄框架
EventBus
AAC框架的原理
還有性能優化,最近幾年公司對性能優化關注很多,有的同學可能做過專門的性能優化或者自己開發過一些工具總結過一些方法論,這樣比較好答一些,但是大部分小伙伴可能平時都在關注業務需求開發,性能優化的實戰可能并不是很多,這里分享這份《Android性能優化實戰筆記》,非常適合那種缺乏實戰經驗的小伙伴!如果你也有需要可以去查看,點擊查看Github地址
面試的后面大多都會從專案入手,你需要在面試之前針對你的專案做詳細的準備,比如面試官會:
- 讓你介紹一下你的專案
- 你需要體現出這個專案的難點
- 你在專案中的貢獻
- 專案的具體實作等
- 有可能還會問到一些具體的細節,所以建議是實事求是去講,但一定要對自己的模塊非常清晰,
除了技術面試以外,有時還有可能會考察一些軟技能,比如面試官會考察你跨部門協作能力、溝通能力、時間管理、任務分配和職業規劃等
關于如何復習
對于復習,首先要對自己做一次自我了解, 我是通過畫腦圖(點擊地址查看)來進行這個程序的,我會整體默想一遍大概的知識體系,畫成類似下圖,回想每個知識點可能考到的內容,記錄下自己模糊的地方,然后去看網上總結的面試題,再對每個題目都做一下回答,這是一個迭代程序,

在你預想的問題都可以回答上來的時候,就需要深入挖掘一下技術細節和深度了, 比如我作業中開發了一個PLT Hook工具,這個工具可能是我參考開源專案并封裝修改過來的,但對其中的細節并沒有很了解,這個時候你就要對這個開源專案所涉及的內容做一次系統學習了,
演算法這一塊的話,“臨時抱佛腳”對于演算法的學習和積累作用不是很大,因此需要我們在平時繁忙的作業中抽出一些時間來復習,你也可以去LeetCode、LintCode上刷刷題,另外,雖然大部分面試的演算法題目都是LeetCode上的簡單題目,但你同樣也需要關注一些中等和困難難度的經典題目,
總結
這里并沒有涉及太多具體的面試題,更多側重的如何準備面試, 而面試的準備其實是在我們平時作業程序中一點一滴積累的,復習只是作為一種在面試前鞏固知識的手段,
復習的程序主要是我們對知識點的整理和總結, 你可以想一下在面試的時候可能會遇到的問題,以及該如何去表達,但是我想說,雖然“臨時抱佛腳”的準備可能有時有用,但是在短時間內靠“突擊”是很難理解到某個知識點更加深度層次的內容, 而且知識面的廣度也是需要時間和經驗去積累的,所以不管你是否需要面試,在平時作業程序中都需要多思考、多訓練、多總結,在有需要的時候可以厚積薄發,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/297333.html
標籤:其他
