安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

今年的大環境

作為一名即將求職的程序員,面對一個可能跟近些年非常不同的 2020 年,你的就業機會和風口會出現在哪裡?在這種新環境下,工作應該選擇大廠還是小公司?已有幾年工作經驗的老兵,又應該如何保持和提升自身競爭力,轉被動為主動?

就目前大環境來看,跳槽成功的難度比往年高很多。一個明顯的感受:今年的面試,無論一面還是二面,都很考驗Android程序員的技術功底。

那麼如何才能通過一線互聯網公司面試?

應該學什麼才能有效地提高自身的競爭力呢?其實,首先我們應該優先深入學習工作中用到的技術,其次,關注這2年來Android最新的面試題所涉及的知識點,根據自身的實際情況有選擇地進行針對性的學習和提升。只有這樣,自身才不會被所謂的 互聯網寒冬 嚇倒。

面試之前的準備

首先我不建議頻繁的跳槽,除非被逼無奈,頻發跳槽,不光會成為面試官害怕的一個方面,對自己的沉澱也是沒有幫助的。同時我不建議裸辭,這樣會存在太多的不定性因素,如果面試時間拖得太久,這段事件你沒有經濟收入,但是你還在支出(房租,日常生活開銷)。這樣會代來無形的壓力,同時如果面試受挫,很容易失去信心,甚至懷疑自己的能力。但是離職也有他的好處,因為,有些公司可能項目非常急,需要迅速上崗,那麼你離職的交接辦理也會耽誤一些時間,那麼也會成為面試官考慮的一個因素。所以還是要結合自己的情況而定。

1. 面試複習

  • 面試之前我用10天左右把自己看的書,做過的項目,寫過的博客,還有一些java和Android基礎複習一遍來準備面試,但是後來實際發現,儘管花了很久的時間去複習,但是複習的成果在面試過程中體現並不是很大。因為,雖然感覺複習的很好,可能沒過三天就忘記以前的看的內容了。同時重複的去理解與忘記很容易代來負面情緒,所以,複習要儘可能短一些,在自己的長處,比如:前端,後臺,框架源碼,framework等等去好好的梳理一下,成為自己的特點和優勢就好。然後面試前1-2天把一些面試常考的知識點複習一下牢牢記住,就可以了,不用等自己100%的準備好才去面試,因為那事不可能的。你根本複習不過來。60-70%就很好了,剩下的就在面試中去回顧吧。
  • 不要想著完全不用回顧自己以往學過的東西,也不去準備。就等著便面試遍複習,因為即使你當初理解的熟的不能再熟,也要看,因為你永遠想不到自己的記憶力消散的有多快,有多可怕。同時當你面試的時候,你就會發現,你根本沒有時間去複習。即使你想在地鐵上看一下也是不太可能的,因為你會忙著別的或是太累或是導航去下一個地點。而沒有時間去複習。

2. 簡歷製作

簡歷製作是一種學問,一份好的簡歷往往讓人眼前一亮。同時簡歷要突出重點,

  • 技能特長

比如你自定義View好,那麼就把View的相關技能寫上,比如:View加載流程,事件分發,自定義屬性,滑動衝突等等,如果視頻方面強那麼就相關的技能寫上。儘量不要有精通,除非你真的“精通”。否則就是給自己挖坑。也不要寫一些太過常見的技能,如果:瞭解Activity的生命週期。誰都知道的東西,沒別要單拿出來。也不要太長或太短10-12個技能特長左右。宗旨在於表達的特點簡單明瞭。其他的點大家在自己搓摩下。

  • 項目介紹

如果你是實習,那麼你一定要有自己在大學項目,或是畢業設計,或是團隊項目。如果是在職一定要有公司的項目。同時項目不宜過多2-3個即可,如果你有覺得可以在簡歷上寫的前端或是後臺的項目,那麼會有很大的加分。同時項目介紹不要太過囉嗦,3-5行,突出架構,核心技術,主要功能與模塊即可,同時寫出自己在其中做了那部分內容。(

這部分要寫好,因為面試官很可能會問你,你開發中遇到的問題,難點,優化,協作,調試等相關問題)

  • 其他技能

如果有英語4.6級一定要寫上,有github,個人blog一定要寫上地址。這我就不用說了吧。

簡歷製作總結:

至於其他的對大家應該沒有難度。同時適當的包裝無可厚非,求職者想找個好工作,面試官想找個好員工。對方就像相親一樣。一定會把你的低摸個清楚的。如果相親的時候的沒問題,等孩子都有了那就晚啦。哈哈,我就是這個意思。包裝的目的是為了增加HR的通過率。這樣才會有面試機會,對我們這種渣渣來說,面試機會比面試通過與否更重要。因為面試邀請都沒有,你準備有個P用。

最後我還是希望大家提高自己的實力,實力才是硬道理

3. 簡歷投遞

如果說簡歷製作是門學問,那麼簡歷投遞一定是一個技巧了。投的好你就會有面試邀請,投的不好,即使你能力再好也是過不去的。所以投好簡歷至關重要。那麼我們可以從這幾個方面入手:

  • 網站選擇

現在主流的網站有智聯,BOSS直聘,拉鉤。如果你這些投遞完後面試邀請還不是很多,可以試試中華英才,前程無憂,獵聘同道。其他的軟件基本就沒什麼作用了,智聯可以海投,能力好可以看公司方向投遞。拉鉤有投遞上線,可以多創建幾個拉鉤重複投遞,BOSS的話可以在坐公交或是面試之餘去投,這個主要是以聊為主,如果誰看了你的簡歷,那麼你可以主動溝通。

  • 投遞時間

你可以選擇在週日晚間投遞,這樣在週一HR上班時候你的簡歷不會排的太遠。平時也是在每天的6-8點投遞為好,這樣如果HR去看的話,會容易看到一些

  • 其他注意

如果你是半年或是一年經驗,可以多寫一點,當然面試的時候給的簡歷就要真實了。因為有些情況,如果你工作太短,無論你多優秀也不會有太多的面試機會,因為人家的硬性條件你都過不去。

4. 面試準備

  • 個人準備
    如果你是在大城市,一定要把手機充好電(帶著充電寶),因為去哪裡都要導航,還有就是提前就多買點吃的,因為你可能為了乾麵試一天都吃不上飯(深有體會)。帶好簡歷和紙筆。
  • 面試安排
    如果面試邀請比較多的話,一定要用Excel做好表格,然後儘量把相同地點的安排在一起(雖然給你面試邀請的時候,會規定時間,但是你打電話溝通時間件,一般都會同意的,大家都理解)。這樣你就可以不用來回跑,可以一天面3-4個。

大家可以根據自己的情況自己創建,安排和查看都很方便。

  • 面試排期

面試多的話,不要一天排超過4個,2-3個最好,有時候可能會趕不上,同時會給人家造成不好的印象,同時對自己太多勞累(面試比工作累多了)。

我的面試經歷

本人 14 年畢業,在學校裡面自學 Android 開發,在 cz 呆了三年,小城市,IT 不發達,倒閉了 2 家公司,然後上北上廣深謀求發展。

求職開始於某個週日晚上十一點把簡歷公開到獵聘,第二天開始就被獵頭的電話打爆(對這個所謂寒冬有點疑惑),按先後順序面了xxx體育資訊(搞BC的)、xx者科技(技術方向不同,去了幾乎沒怎麼面就讓我回家了)、騰訊音樂(電話一面掛)、技威時代(智能家居方向)、悅動圈(跑步運動,用戶量過億)、順豐科技、OPPO、百度(止步現場第三輪技術面)、頭條,加粗的是拿到offer的,最終入職了頭條。至此我的耗時3個月的找工作經歷終於是畫上句號了~

以上便是我的歷時幾個月的求職經歷,小夥伴們找用作,一定要擦亮眼睛,不要被一些公司給騙了。最後附上面試題,我把幾個大廠的面試題做了分類整理出來分享給大家,因為篇幅原因下面只列出面試題,詳細的面試答案我都整理成了一個doc、pdf格式的,詳情文末獲取。

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

面試題的詳細答案解析

一、性能優化

  • 做過哪些性能優化?是怎麼評測和具體優化的?
  • 為什麼WebView加載會慢呢?
  • 如何優化自定義View
  • FC(Force Close)什麼時候會出現?
  • Java多線程引發的性能問題,怎麼解決?

二、Android Framework相關

  • Android系統架構
  • View的事件分發機制?滑動衝突怎麼解決?
  • View的繪製流程?
  • 跨進程通信
  • Android系統啟動流程是什麼?
  • 啟動一個程序,可以主界面點擊圖標進入,也可以從一個程序中
  • 跳轉過去,二者有什麼區別?
  • AMS家族重要術語解釋
  • App啟動流程(Activity的冷啟動流程)
  • ActivityThread工作原理
  • 說下四大組件的啟動過程,四大組件的啟動與銷燬的方式
  • AMS是如何管理Activity的?
  • 理解Window和WindowManager
  • WMS是如何管理Window的?
  • 大體說清一個應用程序安裝到手機上時發生了什麼?
  • Android的打包流程?apk裡有哪些東西?簽名算法的原理?
  • 說下安卓虛擬機和java虛擬機的原理和不同點?(JVM、
  • Davilk、ART三者的原理和區別)
  • 安卓採用自動垃圾回收機制,請說下安卓內存管理的原理?
  • Android中App是如何沙箱化的,為何要這麼做?
  • 一個圖片在app中調用R.id後是如何找到的?
  • JNI
  • 請介紹一下NDK?

三、Android優秀三方庫源碼

  • 你項目中用到哪些開源庫?說說其實現原理?
  • Android中軟引用與弱引用的應用場景

四、熱修復、插件化、模塊化、組件化、Gradle

  • Android中ClassLoader的種類&特點
  • 熱修補技術是怎樣實現的,和插件化有什麼區別?
  • 熱修復原理
  • 為什麼選用插件化?
  • 插件化框架對比
  • 插件化原理
  • 模塊化的好處
  • 分析現有的組件化方案
  • 組件化開發的好處
  • 跨組件通信方案分析
  • 如何管理過多的路由表?
  • 多模塊開發的時候不同的負責人可能會引入重複資源,相同的字符串,相同的icon等但是文件名並不一樣,怎樣去重?

五、設計模式與架構設計

  • 設計模式談談你對Android設計模式的理解
  • 項目中常用的設計模式
  • 手寫生產者/消費者模式
  • MVC MVP MVVM原理和區別?
  • MVP架構存在的問題與解決辦法
  • MVC的情況下怎麼把Activity的C和V抽離?
  • MVP 架構中 Presenter 定義為接口有什麼好處?
  • MVP如何管理Presenter的生命週期,何時取消網絡請求?
  • aop思想
  • Fragment如果在Adapter中使用應該如何解耦?
  • 從0設計一款App整體架構,如何去做?
  • 實現一個庫,完成日誌的實時上報和延遲上報兩種功能,該從哪些方面考慮?
  • 說一款你認為當前比較火的應用並設計(比如:直播APP,P2P金融,小視頻等)

六、其它高頻面試題

  • 如何保證一個後臺服務不被殺死?(相同問題:如何保證service
    在後臺不被kill?)比較省電的方式是什麼?
  • Android動畫框架實現原理
  • Activity-Window-View三者的差別?
  • 低版本SDK如何實現高版本api?
  • 說說你對Context的理解?
  • Android的生命週期和啟動模式
  • ListView和RecyclerView系列
  • 如何實現一個推送,消息推送原理?推送到達率的問題?
  • 動態權限系列
  • 自定義View系列
  • 對谷歌新推出的Room架構
  • 沒有給權限如何定位,特定機型定位失敗,如何解決?
  • Debug跟Release的APK的區別?
  • android文件存儲,各版本存儲位置的權限控制的演進,外部存

    儲,內部存儲
  • 有什麼提高編譯速度的方法?
  • Scroller原理
  • Hybrid系列
  • 如果在當前線程內使用Handler postdelayed 兩個消息,一個
  • 延遲5s,一個延遲10s,然後使當前線程sleep 5秒,以上消息的執行
    時間會如何變化?
  • Android中進程內存的分配,能不能自己分配定額內存?
  • 下拉狀態欄是不是影響activity的生命週期,如果在onStop的
    時候做了網絡請求,onResume的時候怎麼恢復
  • Android長連接,怎麼處理心跳機制
  • CrashHandler實現原理?
  • SurfaceView和View的最本質的區別?
  • Android程序運行時權限與文件系統權限
  • 曲面屏的適配
  • TextView調用setText方法的內部執行流程
  • 怎麼控制另外一個進程的View顯示(RemoteView)?
  • 如何實現右滑finish activity?
  • 如何在整個系統層面實現界面的圓角效果。(即所有的APP打開
    界面都會是圓角)
  • 非UI線程可以更新UI嗎?
  • 如何解決git衝突?
  • 單元測試有沒有做過,說說熟悉的單元測試框架?
  • 實現一個Json解析器(可以通過正則提高速度)
  • Jenkins持續集成
  • 為什麼 Google 會推出Fragment ,有什麼好處和用途? 直接
    用 View 代替不行麼?
  • 工作中有沒有用過或者寫過什麼工具?腳本,插件等等;比如:
    多人協同開發可能對一些相同資源都各自放了一份,有沒有方法自動檢測這種重複之類的
  • 如何繞過9.0限制?
安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

面試之外

上面說地都是一些硬實力,經過這一次的被動面試經歷,下面簡單說些自己在面試過程中總結的一些面試之外需要注意的東西:

一定不要裸辭

如果是裸辭找工作,HR 一般都會問什麼時候離職的。如果手裡沒有 Offer,就很被動了,很有可能被壓薪資。主動權一定要掌握在自己手中。

選擇大於努力

即使很努力如果方向錯了就是浪費時間,就像我選擇了小程序就是個錯誤(大前端坑太多,入坑需謹慎)。我的建議是多深入研究一些以不變應萬變的技能。

學歷與履歷

雖然說能力很重要,但學歷是敲門磚(HR 就看這個)。如果連面試機會都沒有,還怎麼談然後?如果學歷不突出有很好的大廠履歷也很不錯,貌似是個蛋生雞,雞生蛋的問題。

充分準備

一些基礎知識和理論肯定是要背的,要理解的背,用自己的語言總結一下背下來。

雖然 Android 沒有前幾年火熱了,已經過去了會四大組件就能找到高薪職位的時代了。這隻能說明 Android 中級以下的崗位飽和了,現在高級工程師還是比較缺少的,我能明顯感覺到國慶後多了很多高級職位,所以努力讓自己成為高級工程師才是最重要的。

那麼,該如何複習呢?

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

今天分享的面試題就到這裡,還是那句話,有些東西你不僅要懂,而且要能夠很好地表達出來,能夠讓面試官認可你的理解,例如Handler機制,這個是面試必問之題。有些晦澀的點,或許它只活在面試當中,實際工作當中你壓根不會用到它,但是你要知道它是什麼東西。

我為大家準備了以下一體系的複習資料:

《Android開發七大模塊核心知識筆記》

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

《960全網最全Android開發筆記》

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

《379頁Android開發面試寶典》

歷時半年,我們整理了這份市面上最全面的安卓面試題解析大全
包含了騰訊、百度、小米、阿里、樂視、美團、58、獵豹、360、新浪、搜狐等一線互聯網公司面試被問到的題目。熟悉本文中列出的知識點會大大增加通過前兩輪技術面試的幾率。

如何使用它?

1.可以通過目錄索引直接翻看需要的知識點,查漏補缺。
2.五角星數表示面試問到的頻率,代表重要推薦指數

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

《507頁Android開發相關源碼解析》

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

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

安卓開發6年,公司倒閉後,耗時3個月北上廣求職,終入職頭條

資料太多,全部展示會影響篇幅,暫時就先列舉這些部分截圖;

需要的朋友,直接轉發+點贊+私信回覆【資料】一鍵領取!!!


分享到:


相關文章: