從外包到大廠的逆襲!安卓開發5年,一年蟄伏後面試成offer收割機,入職騰訊定薪20*15

南方吳彥祖_藍斯發表於2021-06-30

我的情況

14年剛畢業的時候,Android開發市場發展火熱,無數人員湧入Anroid開發行業,人員增長率快,自然市場競爭力就大。當因為學歷不高、職業技能不熟悉再加上沒經歷過專案實戰,導致我的簡歷,大小公司拒收,最後只能來到了一家外包公司。

因為二本學歷遭到某公司的唾棄的經歷讓我憤怒!但是也無可奈何, 經歷永遠是過去式,職業技能才是未來應該佔主導的!

來到外包公司以後,我的臉上滿面愁容,因為在外包裡,大部分程式設計師的時間都在ctrl C+ctrl V,就像沒有靈魂的程式碼機器,他們永遠不知道。

外包公司的經歷給簡歷帶來的是毀滅性的打擊:

因為之前公司是外包,所以老於的簡歷在求職人群之中跌落低谷,別說拿到offer,面試的機會也只有寥寥數次。

所以我乾脆靜下心來花了一年的時間學習,玩命似的的學習Android,因為知道 掌握“吃飯”的技能不夠強大,有很大的提升空間。於是開始不停逛Github找自己不會的實戰專案,從部落格上找資料,去各大網站收集Android開發學習影片,一步一步從最基礎的做起。

盲目的學習還是效果差一點,後面開始學習怎麼系統去學習,從大佬那裡手機整理出了一份非常系統的學習路線,一個一個知識點的去死摳,讀官方文件,閱讀學習大佬們的原始碼,然後最後就是修改簡歷,準備好一切後開始投遞簡歷。

**面試結果:**投遞的簡歷大、中、小型各種公司不少於20家,面試大廠過了掌閱和騰訊,小公司過了一大堆,最後選擇入職騰訊,從15 12薪到2015薪,漲薪幅度12W+。

面試情況

騰訊一面

1.mmap + native 日誌最佳化? 2.廣播和 EventBus 的區別? 3.常用設計模式你瞭解哪些? 4.跨程式通訊有哪些? 5.簡單講講 binder 驅動吧? 6.跨程式傳遞大記憶體資料如何做? 7.說說 ConcurrentHashMap 的實現原理說下,初始化大小是多少? 8.啟動最佳化怎麼最佳化? 9.你寫的 rxpay 和 rxlogin 具體怎麼實現的? 10.kotlin + fullter 方面的

騰訊二面

1.單例設計模式都寫寫,靜態內部類是怎麼保證執行緒安全的? 2.synchronized 底層實現原理,ReentrantLock 公平鎖與非公平鎖。 3.主執行緒等待所有執行緒執行完畢,再執行某個特定任務怎麼實現?原理和原始碼看過沒? 4.自定義 view 的一般流程,要注意些什麼如何最佳化,點選事件和長按時間分別是怎麼實現的? 5.四種啟動模式,在原始碼分析中的原理是怎樣的? 6.講講 bindService 的過程,你當初是怎麼最佳化後臺服務程式的? 7.開發中你都用到了哪些設計模式?說說當時具體的場景。為什麼你要用方法工廠,另外兩種呢?

騰訊三面

1.講講 handler 的底層實現原理? 2.說說你做的日誌記錄最佳化? 3.你看過 binder 驅動的原始碼,說說他的記憶體對映過程,說說客戶端等待服務端處理返回的流程,如果要跨程式傳遞大記憶體資料你具體會怎麼做?簡單寫一寫吧。 4.在公司做過哪些最佳化? 5.過程中遇到的一些最難解決的問題? 6.提到了動態修復替換載入 so ,那你知道怎麼修復 class 嗎?怎麼修復資源呢? 7.還有什麼要問的?

面試中問道的問題遠遠不止這些,這些知識我記得印象比較深刻,給大家進行列舉出來的。其實面試中問的還是比較全面,比如有問道: 日誌、廣播、設計模式、跨程式通訊、Binder、Kotlin、Fullter等相關問題

關於其他公司的面試題我把大概記得的整理了出來,分成了Android和Java兩類問題,大家也可以參考下:

Android問題:

  1. 四大元件之間怎麼實現通訊(binder,冷啟動) 2.Glide三級快取,大圖載入,活動快取設計的必要,與Picasso有什麼區別 3.說下MVP,以登入為栗子,與MVC對比有什麼好處 4.啟動模式,異同,activity A 開啟 B 生命週期呼叫 5.handler設計模式、阻塞機制、同步屏障機制、執行緒切換、Looper、ThreadLocal 6.Retrofit的實現原理(動態代理+註解),rxjava如何實現執行緒切換、背壓、版本區別 7.apk加固原理,加殼脫殼; 8.apk瘦身做了哪些,縮減了多少M 9.說個自定義view,繪製過程 10.說下事件分發機制,兩個並列的view,點下去移到另一個,都呼叫哪些方法 11.記憶體洩漏有哪些,handler記憶體洩漏原因,如何解決,工具 12.tcp三次握手、四次揮手,HTTP與HTTPS區別,HTTP1.0與2.0區別,get與post區別 13.元件化原理,與外掛化不同點,動態代理

Java問題:

1.註解型別,區別,元註解 2.說下對鎖的理解:sync、lock、cas、volatile、JMM、讀寫鎖 3.HashMap原理,存取過程,為什麼用紅黑樹,紅黑樹與完全二叉樹對比,HashTab、concurrentHashMap,concurrent包裡有啥 4.泛型的理解,型別擦除 5.說下JVM的瞭解,記憶體模型,垃圾回收演算法,可達性分析,引用計數法,四種引用 6.對稱非對稱加密、md5原理

程式設計師如何從外包跳到大廠?

簡歷是成功的一半

簡歷的重要程度在面試過程中佔到50%,把簡歷寫好也是一個技術活,就和你寫晉升ppt一樣,很多程式設計師上班摸魚划水,最後週報和晉升答辯還能寫出花來,你仔細想想這其中的套路?

格式排版沒那麼重要,講清楚你幹了啥,按照STAR原則來, 把它當做一次你的上份工作經歷的晉升答辯來對待,專案成果一定要量化!量化!量化!簡歷篩選就1分鐘不到,把重要的東西強調出來!

面試能力和技術能力一樣重要

很多職場老油條在面試這一環節上,絕對是跑得比其他人快的,因為這當中就是有套路!他們熟悉各大廠面試官面試的流程,大同小異其實,甚至把問的題目都摸得差不多了。

所以很多應屆生在校招之前可以多問問你們的學長學姐,瞭解你想去的公司的面試套路,**不要打沒準備的仗!**面試時很多坑,如果不做好足夠的準備,你不被面試官坑也會被HR坑!畢竟短短的1個小時左右面試,看不出來太多。

進入和大廠對標業務的小廠,曲線救國

現在Android領域的大環境太好,部分崗位已經趨於飽和,大廠更加難進,但小廠你就得搞清楚它的核心業務是什麼,比如要麼進C端垂直領域裡前幾名的小廠,要麼進深耕B端的穩了很多年的小廠,因為很多大廠在細分領域裡後續要加大投入,一旦你是這個領域裡的頭部,大廠一開始涉足這個領域,你的機會就來了!

小廠也有它的優點,在小廠更容易有機會,大廠很多都是螺絲釘,我身邊很多人都是在小廠幹出了不錯的成績後來進大廠的。 時間會證明一切!

從大廠的邊緣部門進入

其實大廠並沒有很難進, 難進的是大廠的核心業務,兩者對人才要求肯定是不一樣的。這就和你當初選擇大學一樣,是進好的大學的邊緣專業還是選擇一般大學的重點專業?

這裡只說一點,社會發展速度太快了,現在你看到的核心和重點,或許在三五年之後會變成邊緣,同樣地,現在的邊緣將來很可能就成為了核心。

畢竟現在一個網際網路創業公司的生存時間已經短到了2年,誰能確定未來呢?

從大廠的邊緣業務切入,後面 抓住機會轉核心,未必不是一個好選擇。先拿到船票再說!

去大廠必先技術沉澱

就拿上面我自己為例,我最後 靠的是什麼進的騰訊?

學歷嗎?還是 經驗

不,都不對, 是努力,是技術,你要知道以後起決定作用的是 自己的職業技能

做東西的時候要有自己的亮點,比如你解決了什麼難點?做前端的話那基本就是載入速度,使用者體驗跟耗時,webpack最佳化。做後端那就往CAP方面去靠,怎麼做到高併發高可用的。

無論你是不是外包,只要你能力過硬,大場隨時可以進。

技術積累衝擊大廠

Android面試會涉及到很多雜而亂的知識點,所以想要進入大廠,你不僅需要有 十分紮實的基本功,還需要有 完整的解答邏輯

接下來分享的這份錦囊裡還包含了 百度、阿里、騰訊、京東等眾多大廠的Android面試真題,詳細介紹了各企業的面試重點、解決方案,幫助大家做好面試準備,斬獲大廠高薪 offer!

透過這份錦囊,你能收穫:

  • 瞭解大廠的面試考核標準,有的放矢地準備面試;
  • 掌握一手最新Android面試真題,有針對性地刷題;
  • 為自己心儀的公司提前做好準備,面試更有信心。

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

Android學習路線圖

首先,對於沒有學習方向,知識不體系的人,我把我工作幾年整理的學習路線分享給大家,做一個借鑑作用,還不知道怎麼學習的人可以直接照著我這個學習路線一個個的去學習,知識不體系的人可以參考下我整理路線的方式,總之希望能夠幫到你們!

模組化學習資源

接下來是每個模組我整理出來的文件學習資料,幫助大家更細緻化的學習。

《Android彙總複習資料—Java》

《Android彙總複習資料—Android》

《Android彙總複習資料—Android擴充套件》

《Android彙總複習資料—Kotlin》

《Android彙總複習資料—Flutter》

《Android彙總複習資料—演算法》

除了上面的學習路線,還可以額外的配合以下方式學習,效果翻倍~

①看影片進行系統學習

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

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

②讀原始碼,看實戰筆記,學習大神思路

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

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

③面試前夕,刷題衝刺

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

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

④2020大廠面試高頻知識點

  • 圖片
  • 網路和安全機制
  • 資料庫
  • 外掛化、模組化、元件化、熱修復、增量更新、Gradle
  • 架構設計和設計模式
  • 效能最佳化
  • Android Framework
  • Android優秀三方庫原始碼

以上這些內容均免費分享給大家,需要完整版的朋友, 。或者點選 【 】 檢視獲取方式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983917/viewspace-2779124/,如需轉載,請註明出處,否則將追究法律責任。

相關文章