金三銀四如何短期拔高?這份排坑的Android麪筋必須收藏!「附高質學習資料」

馬上過年了,過完年回來就是春招和金三銀四的面試季了,今天分享一下面試前的準備技巧和一些Android面試要點,這篇文章適用於所有需要就業的小夥伴,不管你是名校畢業,還是雙非出身,我相信這篇文章能給你帶來一點點的小的收穫!

主要講的幾個部分:

  • 引人注目的簡歷
  • 常見的面試小技巧
  • Android 面試要點
  • 高質的學習資料

引人注目的簡歷

準備簡歷有兩點是絕對要記住的:

  • 不要等到真正開始找工作前幾天纔開始準備你的簡歷,越早準備越有優勢!

  • 簡歷一定要用 PDF 格式,一定要用 PDF 格式,一定要用 PDF 格式!

簡歷真的很重要很重要,招聘系統或者是郵箱裏一天可能會收到幾十萬份甚至更多的簡歷,HR可能打開10秒都不夠就決定這份簡歷是不通過還是進入下一階段了。

我的簡歷經過了五個版本的修改,從一開始的簡歷掛,到現在,基本上都變成筆試掛了(有毒?)

不同版本的簡歷

簡歷的目的:讓企業的人從整體上了解你是一個具備什麼能力的人

簡歷可能涉及到的分點都儘可能全地給你列出來了,你只需要選擇其中適合你的即可:

  • 個人信息:你的姓名、聯繫方式、求職崗位(切忌不要寫無關的內容例如身高體重之類的)
  • 掌握技能這一塊是最重要的,面試官會根據你寫的內容考察你掌握的知識
  • 校內經歷:在校期間你主要的突出表現
  • 項目經歷:如果有團隊項目最好,也可以從 GitHub 上找一個項目練手,再沒有,可以把學校的課程項目寫上去呀!
  • 競賽經歷:數學建模、ACM、藍橋杯這些高質量比賽一定要寫
  • 實習經歷:這點不是必須的,如果有,最好描述清楚實習的工作內容、表現和收穫
  • 獲獎證書:CET-4,CET-6,獎學金,軟著,論文······
  • 自我評價:不要侷限於寫上爛大街的協作能力強,工作認真······可以要加上具體內容去支撐你的每個自我評價

如果你不知道該怎麼寫簡歷,我可以推薦兩個鏈接給你,我基本上是按照他們的建議來寫簡歷的:

一個程序員的簡歷模版分享

常見的面試小技巧

面試有很多小技巧的,特別是和 HR 對線的時候(HR看到不要找我呀,害怕.jpg)

我們先來看看和技術面試官對線的時候,有哪些可以用的小技巧:

  • 不懂不要說不懂:面試官在知識深度上超出我們的掌握範圍,如果問到不懂可以參考下面的做法:
    • 可以結合自己的理解去回答,無論正確與否,虛心請教
    • 若是有標準答案的問題但不懂,可以說:“目前還沒有接觸到這部分知識,面試完以後會去學習,加強理解!”
  • 引導面試官:面試官拋出一個問題時,圍繞該點展開回答,可以串聯一些其它知識,但不要說太多,引導面試官:
    • 提到 ArrayList 時,提一下 LinkedList,引出 LinkedList
    • 提到 HTTP 時,提一下 HTTPS,引出 HTTPS
  • 手撕代碼切忌擡手就寫,要確定題意,對有不理解的地方要敢於提問。解題時跟面試官說自己的思路,以及每一步幹什麼,一邊寫一邊向面試官解釋
    • 不要一開始就追求最優解,面試官不會太反感粗糙的代碼,但他希望你是一個有邏輯、思路嚴謹的人
    • 面試官會引導你優化你現有的代碼,不必因爲一開始寫不出最優解而苦惱。
  • 反問環節:要從面試官那兒獲得對自己的反饋,比如:
    • 你覺得我的基礎如何,之後該向哪個方向加強?
    • 當前企業最主要的技術棧是什麼?
    • 公司目前的主要業務是什麼?該崗位主要負責什麼內容?

當我們經歷了技術面的洗禮後,順利來到了 HR 面試,這時候要記得:在 HR 面試環節,要在不過分誇張的情況下表現出自己的優秀,表現出對加入公司的嚮往。

HR 主要會問以下幾項內容:

  • 瞭解你的個人情況(校內經歷、興趣愛好、家庭情況···)
  • 詢問你對公司的瞭解,我們可能面試很多家公司,不可能每家公司都瞭解很透徹,只要瞭解公司的行業,主要產品即可
  • 詢問你的期望薪資(這是 Battle 名場面!最後再展開說)
  • 反問環節:可以問 HR 關於企業文化培養新人的制度等,如果有完善的制度和文化,一般 HR 都會回答的很流利的,否則就要慎重了。

Android 面試要點

整個面試題分爲三個部分:Java、Android和項目經驗。

Java技術

Java基礎

  • 對抽象、繼承、多態的理解
  • 泛型的作用及使用場景
  • 枚舉的特點及使用場景
  • 線程sleep和wait的區別
  • JAVA反射機制
  • weak/soft/strong引用的區別
  • Object的hashCode()與equals()的區別和作用

集合類

  • JAVA常用集合類功能、區別和性能
  • 併發相關的集合類
  • 部分常用集合類的內部實現方式

多線程相關

  • Thread、Runnable、Callable、Futrue類關係與區別
  • JDK中默認提供了哪些線程池,有何區別
  • 線程同步有幾種方式,分別闡述在項目中的用法
  • 在理解默認線程池的前提下,自己實現線程池

字符

  • String的不可變性
  • StringBuilder和StringBuffer的區別
  • 字符集的理解:Unicode、UTF-8、GB2312等
  • 正則表達式相關問題

註解

  • 註解的使用
  • 註解的級別及意義
  • 如何自定義註解

Android技術

Android基礎

  • 四大組件的意義及使用,生命週期回調及意義
  • AsyncTask、Handler的使用
  • Android系統層次框架結構
  • AsyncTask的實現方式
  • AsyncTask使用的時候應該注意什麼
  • Android常見的存儲方式
  • Looper、Handler和MessageQueue的關係
  • Activity的啓動流程(考察對Framwork的熟悉程度)
  • 多進程開發的注意事項(Application類區分進程,進程間內存不可見、進程間通訊方式)

Resource相關

  • .9圖片的意義
  • style和theme的作用及用法
  • dpi、sp、px的區別以及轉換關係
  • raw和assets文件夾的作用,二者有何區別
  • Android系統如何在多個資源文件夾下查找匹配最合適的資源

虛擬機

  • Java內存模型
  • Android虛擬機的特點
  • Dalvik和Art的區別
  • 熟悉垃圾回收的實現機制,瞭解虛擬機的GC類型

View相關

  • 常用組件的使用:ListView、RecyclerView及Adapter的使用
  • View之間的繼承關係
  • Invalidate與postInvalidate的區別
  • 自定義View的實現方式(根據項目經驗詢問相關組件)。
  • onMeasure/onLayout/onDraw的作用
  • Paint、Matrix、Shader等繪製相關類的方法作用
  • 詳細描述事件分發機制

動畫

  • Android有哪些動畫的實現方式
  • Interpolator類的意義和常用的Interpolator
  • ViewAnimation與屬性動畫有什麼區別
  • 如何自定義ViewAnimation
  • 屬性動畫的實現原理

圖片處理

  • 一般項目中如何加載大圖
  • 圖片壓縮的方式
  • 如何不壓縮圖片加載高清圖
  • 圖片加載過程中,一般會使用緩存,這個緩存的主要作用是什麼
  • 談談自己熟悉的圖片加載框架

項目經驗

開發工具

  • 代碼管理工具:SVN、Git
  • 常用的調試工具:Hierarchy Viewer、DDMS等
  • CI工具:Lint檢查,FindBugs、Jenkins
  • 內存分析工具:dumpsys、memoinfo、MAT

項目工程

  • APP更新策略:推送或者拉取?
  • 如何統一處理錯誤崩潰
  • 如何進行用戶行爲收集
  • 日誌管理有哪些要點?(Debug包開放,release包關閉,錯誤日誌反饋)
  • 打包方式Ant、Maven、Gradle
  • 機型適配情況

開放平臺

  • 是否使用過第三方平臺
  • 常用開放平臺的熟悉度(微信、QQ、微博、支付寶等常用的支付和分享)
  • 是否進行過對第三方平臺的統一封裝?
  • 是否自己開發過SDK?

設計相關

  • 有哪些常用的設計模式、設計原則
  • 設計模式在Android源碼中的應用
  • 設計模式在項目中的應用
  • 項目中的分包方式
  • MVC在android中的應用,利弊
  • android項目中的常見層次結構,包劃分
  • 有沒有設計過項目中的層級結構、包劃分

好了,大概就這麼多,大家可以考察下自己對於知識點的掌握情況。

對於答案,我覺得只要你真的會了,用自己的語言去描述就是最好的答案~ 不過爲了讓大家方便複習,我將耗時一年多整理的1025頁的Android高級面試及答案解析分享給大家~

接下來重點來了!!!

高質的學習資料

如今入門Android的門檻已不像十年前那麼高,學習資料隨便百度一搜一大把,我們需要選擇適合自己的、高質的學習資料來學習,否則會降低我們的效率。

我整理了各個科目的一些學習資料,並且自己手工製作了幾幅思維導圖,相信一定對你有幫助!

私信我「資料」即可獲取該文章中所有的高清腦圖!

計算機網絡

計算機網絡是開發中的重中之重,基本上是離不開網絡這一塊的,因爲我們開發的應用要給客戶用的,給客戶都用就涉及到聯網,聯網就涉及到網絡。

對於開發人員而言,應用層、傳輸層是最最重要的,網絡層次之,其餘作爲了解,感興趣可以深入學習。

我閱讀過的書籍有三本:

  1. 《圖解 TCP/IP》
  2. 《圖解 HTTP》
  3. 《計算機網絡:自頂向下》

前兩本書用大量的圖解讓我們對整個網絡世界進行宏觀上的瞭解,第三本書會更加系統、全面地將每一層的知識點講解透徹。

數據結構與算法

這一塊是最最重要的,只要你是研發崗位,就逃不過這一關,但恰恰這是最難的一關,因爲它的靈活多變,學習的難度自然會上升,但這也是被最多人忽略的一個領域。

數據結構算法專題

數據結構算法專題

Android七大核心知識

如果是從事 Android 開發,這部分就相當於我們的根基,這部分知識面有些廣,重要的也很突出:

  • 架構師築基必備技能:深入Java泛型+註解深入淺出+併發編程+數據傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO
  • Android高級UI與FrameWork源碼:高級UI晉升+Framework內核解析+Android組件內核+數據持久化
  • 360°全方面性能調優:設計思想與代碼質量優化+程序性能優化+開發效率優化
  • 解讀開源框架設計思想:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網絡訪問框架設計+RXJava響應式編程框架設計+IOC架構設計+Android架構組件Jetpack
  • NDK模塊開發:NDK基礎知識體系+底層圖片處理+音視頻開發
  • 微信小程序:小程序介紹+UI開發+API操作+微信對接
  • Hybrid 開發與Flutter:Html5項目實戰+Flutter進階

上面這幾個知識點是我在面試過程中被問到過次數最多的,如果需要系統的學習,針對這些知識點,我手頭上準備了不少的電子書和筆記,將這些筆記將各個知識點進行了完美的總結。

Android開發相關源碼精編解析

只要是程序員,不管是Java還是Android,如果不去閱讀源碼,只看API文檔,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。

真正最能鍛鍊能力的便是直接去閱讀源碼,不僅限於閱讀各大系統源碼,還包括各種優秀的開源庫。

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

Android高級開發面試題及答案解析

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

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

完全掌握以上這些不能夠讓你馬上衝進大廠,但至少能夠讓你踏進中廠或者好的小廠,踏進大廠也只是時間問題!

總結

(1)準備一份好簡歷,格式一定要用 PDF,參考網上的模板不斷優化自己的簡歷內容

(2)3月至5月是春招和金三銀四的招聘時間,6月至8月是秋招提前批的黃金時間,9月至11月是秋招的大潮,一定要跟上!

(3)投遞簡歷一定要內推,內推碼和公司都在牛客網

(4)要有自己的一兩個面試小技巧,可以在不斷面試中總結出來

(5)心態要穩,要淡定,你總能成功的

英雄不問出處,總有一片屬於你的天地,一定要試着堅持下去!

  • 羨慕那些年薪幾十萬的同學嗎?羨慕。
  • 羨慕那些有大廠 Offer 的人嗎?羨慕。
  • 羨慕那些已經找到自己熱愛的崗位工作的人嗎?羨慕。

切忌因此而焦躁不安,盲目的攀比只會讓自己的眼光更狹隘,做好自己的職業規劃非常重要,享受追逐夢想的過程吧,萬一實現了夢想,你的下一站又是哪裏呢?

最後再補充一句,不要妄自菲薄,但也不要眼高手低,我們都是普通人,比昨天的自己更進步一些就好了!

 以上內容均免費分享給大家,需要完整版的朋友,點這裏可以看到全部內容!!!

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