最近開始準備新工作了,寫下自己覺得找新工作的流程和看法。
我覺得要從這幾個方面入手:面試的公司對象、面試技巧禮儀點、面試知識點準備。
面試公司對象:
你想要找一傢什麼樣的公司,BAT級別的,還是行業巨頭的,還是一般的,你是想追求什麼?薪資待遇還是技術乾貨,這些是你一定要想明白的,這是你找工作最核心的,最原始的出發點,違背了這些,即使找到了也乾的心不甘情不願,所以瞭解自己的需求及自己準備復出的努力。
面試技巧禮儀:
這些非一朝一西能夠學會,到我們要知道和注意,不求完美,但應做到大大方方、乾淨利落。同時,每個人根據自身的優缺點進行不同的準備,然後平時自己看到說的有用的方式可以記錄下來。總的來說,無法說話邏輯清晰、觀點表述明確,外表穿着得體等。
面試知識點準備:
我是從事Android移動端開發,就主要針對這個行業裏面試要求的具體知識進行羅列。
自我介紹 :(很重要,第一印象建立的時間)
最好能夠把你的自我介紹說辭寫出來並進行自我演練,達到語句流暢,邏輯通順,層次分明,簡潔明瞭。時間上2-3分鐘。
關鍵點:
-
之前工作的公司、崗位及工作方向。
-
團隊構成,在團隊中的位置及承擔的責任。
-
爲團隊做出的主要貢獻,對於這部分涉及到的 項目經歷以及延伸出的知識點 一定要重點準備。
-
能夠從側面反映出你優點的愛好。
-
如果能從其它渠道瞭解到你招人的部門所做的東西,那麼也可以談談對他們的一些瞭解以及自己的願望,沒有就算了,這個是可選項。
項目介紹:
項目經驗這塊因人而異,把覺得做的有亮點的東西挑出來,從四個方面來準備:
-
功能模塊的實現
-
達到了什麼效果
-
遇到了什麼問題,是如何解決的
-
涉及到的相關知識點
項目經驗和知識點 其實是一個雙向的過程,要 試圖去找到它們之間的聯繫:
-
談到項目經驗的時候,可以說:做完 xx 之後,我還去了解了一下 yy 背後的原理,xxx,這裏體現的是 你是否有求知慾 。
-
談到知識點的時候,可以說:yy 的原理是這樣的,在 xx 項目中我是如何應用它來解決問題的,這裏體現的是 你是否具備把知識付諸實踐的能力。
遇到的問題:
一定要準備,很重要! 問題涉及到知識點也要都弄清楚。平時項目可能比較忙,遇到問題急着解決。但是要學着先把問題先記錄下來,之後再按下面的步驟進行總結,有條理地進行闡述:
-
遇到問題
-
分析過程
-
解決方案
-
結果
基礎知識
java 基礎:
-
面向對象的基本思想
-
Object類相關:Object類的幾個關鍵函數、String涉及到的常量池概念,序列化 & 反序列化。
-
重要關鍵字:final、static。
-
內部類:內部類的分類、應用場景、內部類編譯成class後是怎麼樣的。
-
抽象類 & 接口:區別、應用場景。
-
編碼:編碼的目的、分類。
-
異常:異常體系、自定義異常。
-
註解:註解的基本概念、分類、編譯時註解 & 運行時註解。
-
容器:重要容器的內部實現、容器間的對比。
-
內存模型。
-
垃圾回收。
-
類加載的過程。
-
泛型:分類、通配符 & 上下邊界、泛型擦除。
-
反射:使用。
Android基礎
- Dalvik、Art虛擬機
-
Activity:生命週期、launchMode。
-
Fragment:生命週期、懶加載、兩種Adapter之間的區別。
-
BroadcastReceiver:基本概念、廣播分類、權限。
-
Service:生命週期、onStartCommand的返回值、startService和bindService的區別、相同進程 & 不同進程的交互、IntentService實現原理。
-
重要的工具類 & 源碼實現:AsyncTask、HandlerThread、Handler、IntentService、LruCache、LinkedHashMap、SparseArray。
-
RecyclerView:緩存原理、和ListView的對比、Adapter如何適配多種layout。
-
存儲:數據庫升級 & 優化、ContentProvider,SharePreference。
-
SDK版本升級的兼容問題。
-
Android的權限管理機制。
圖片
- Bitmap相關:Bitmap的大小計算、質量、inJustDecodeBounds、inBitmap。
-
幾種圖片格式的對比、壓縮。
-
大圖加載:BitmapRegionDecoder
算法
- 別無捷徑,刷題,但是刷題的時候,要按照題的類型去總結。
開源框架
- RxJava:操作符的應用場景、重點操作符的內部實現、和RxJava的對比。
-
Glide:流程、緩存相關的實現。
-
Retrofit:流程、動態代理 & 註解解析。
-
OkHttp:流程、隊列實現、緩存實現。
性能
- 性能優化技巧:啓動速度優化、佈局優化、內存優化、電量優化、APK大小優化、列表滑動優化。
-
性能優化工具:TraceView、Systrace、調試GPU過度繪製 & GPU呈現模式分析、Hierarchy Viewer、MAT、Memory Monitor & Heap Viewer & Allocation Tracker、LeakCanary、Lint。
-
ANR:ANR原理 & 源碼分析、舉一個處理ANR的例子。
-
性能實踐:解決過的性能問題,從 遇到問題、分析問題、解決問題、結果 四個點進行闡述。
View
- 繪製流程:measure、layout、draw三個關鍵流程。
-
事件分發:事件分發的原理、處理過的滑動衝突問題。
-
自定義View:Canvas & Path,實現過的比較複雜的自定義View。
架構
- MVP:MVP的思想 & 優劣勢、在項目中的應用、
源碼
- AMS
-
WMS
-
Binder
-
應用打包流程
-
應用啓動流程
-
應用安裝流程
網絡
- 基礎知識:看一下對於 <<計算機網絡>> ,重點是網絡分層模型、TCP/UDP、HTTP/HTTPS。
設計模式
按照23種網絡模型、三個分類進行總結,每種設計模式包含以下三個方面,至少要準備常用的幾個:
-
基本概念:UML圖、簡單例子、應用場景、優勢 & 劣勢。
-
Android源碼中的實現
-
項目中的應用
多線程
- 看併發編程的藝術,這本書的目錄就是多線程最好的知識體系。
-
遇到過的多線程問題、怎麼解決的。
Gradle
-
-
常用配置。
-
多渠道打包。
-
-
插件化
-
-
插件化的核心思想。
-
幾種插件化框架實現的原理。
-
組件化
- 組件化的優勢。
-
Arouter:使用方式、實現原理。
Kotlin
- 有用到的可以看看。
多媒體
- 音頻、視頻播放。
JNI
- 調用實現方式。
備註:上面基礎知識方面參考了 簡書上的 澤毛 的博客,我認爲這個人的博客很好,很優秀,值得我去學習。希望大家可以去看一下他的博客。看到別人的優秀,就會看到自己的不足,承認自己的不足,去做,你一定也會優秀的,come on!