Android開發者畢業一年進入字節跳動,薪資跨越式增長,年薪30W!

image

【導讀】合格的Android工程師真正應該具備什麼技能?在面試時,面試官又會如何驗證你具備這些新技能?畢業僅一年,相繼拿下頭條、阿里、騰訊等offer的本文作者,爲你繪製了一幅面試技能雷達圖。

◆◆哲學第一命題:我是誰?◆◆

211B段高校畢業的小碩一枚,光電子專業(偏光通信工程)。專業方向實在不想去,也沒有好的選擇,不是研究所就是通信設備廠。研究生期間自己折騰Java,C++開發,也自學了點算法,畢業秋招是也嘗試過找Android崗機會,all掛了,那時真沒有競爭力,自己的儲備也不夠,畢業時去了家小型互聯網公司,主要是做後臺開發。一年後公司掛了,今年8月份不得不開始重新找工作,好在我入職後就準備着手入坑Android。所以,我有(dao)幸(mei)在最近2年時間經歷了Android崗面試,第一年參加秋招,今年的面試經歷感覺很艱難,體會頗多...

入職兩個多月了,有時間回想一下爲轉行Android崗所經歷的學習和麪試過程,其實也踩過了不少大坑,今天寫點東西(好久沒碼字了),要是能幫到和我一樣準備找Android崗的你,也算是不枉熬這一夜。

兄弟姐妹們,別怕,坑我幫你踩啦!

image

◆◆從零零散散地自學到系統化學習 ◆◆

一開始只是自學網絡上的視頻課程,但我本身沒有基礎,周圍又沒有人可以交流,視頻課程和博客文章在知識點的構建上都很碎片化,很難在形成從理論到項目實踐的系統性認知。

image

尤其是網絡中的博客文章,我點進去看了之後實在是看不下去,慢慢的就覺得沒有底氣,歸根到底是因爲自學中接觸網絡的信息太碎、太雜了,很多東西串不起來,感覺自己知道的不少了,但是和行家一交流就經常短路,最後只能尬聊。

這個階段耗費了我大半年的時間,自學效果很不好,總結一下:對原理理解不深刻、用法不熟悉,更不懂一些設計模式、架構怎樣落地應用的。

2018年底,一位學長推薦我學習了一門免費的移動互聯網課程,每天2個小時的課時,我當時花了好幾周天時間認真學習了課程內容,這對我之後的學習和麪試幫助很大,主要是讓我在初學的階段清晰瞭如何學習,重點應該放在什麼地方,如何選擇合適的技術方向,合理的學習路徑是什麼,項目經驗如何提升,簡歷該怎麼寫纔能有吸引力進而獲得面試機會,今年的技術面中常會出現哪些考點問題。

小夥伴不要拍磚了,我現在把這門免費課程推薦給你,也許能幫助到你。

關注我,加我的微信:15388039515
微信二維碼

◆◆ 八個技能點 ◆◆

架構師築基必備技能

Android應用是由Java語音進行開發的,SDK也是由Java語言編寫的,所以我們要學習Java語言。另外,雖然說Kotlin語言也得到Android官方的熱推,但是Kotlin也是編譯成了Java語言在運行的。對於Android開發來說。

只要SDK沒有用Kotlin重寫,那麼Java語言都是需要學習的。而且Android apk的後臺服務器程序大概率是Java語言構建,所以學習Java是一個必然。

那麼Java中那些東西是我們Android中比較相關的稍微比較難的Java基礎幾乎是一個門檻,像泛型丶多線程丶反射丶JVM丶JavaIO丶註解丶序列化等等。

image

Android框架體系架構

這塊知識是現今使用者最多的,我們稱之爲Android2013-2016年的技術。

但是,即使是這樣的技術,很多開發者也往往因爲網上很多copy代碼的習慣而導致對這塊的使用的代碼熟悉而陌生,熟悉的是天天和它們打交道天天在複製,陌生的是天天打交道卻沒有深入研究過他們,要學習源碼,模仿源碼,然後在hook源碼,這樣才能說懂這塊的知識。

image

Android 360°全方位性能調優

  • 一個app的性能好不好我們需要從兩個層面分析:

1、從寫代碼的時候就注意,讓自己的代碼是高性能高可用的代碼,這個過程是書寫高性能代碼

2、對已經成型的代碼通過工具檢測代碼問題,通過檢查到問題來指導我們進行代碼的刪改這個過程被稱爲調優

  • 那如何寫出高性能的代碼呢?

需要我們具備深厚的代碼功底,這就是代碼的基礎,如:數據結構達到可以根據應用場景寫出符合當前場景的特殊結構,比如google針對Android平臺特徵研發了SparseArray代替HashMap.另外,對常用的算法也有自己獨到的見解

image

設計思想解讀開源框架

現在去很多公司面試,除了你具備基本的能夠寫一個高性能app的能力後,一般都會在自己的app裏面加一些現有的相對較6的技術,這些技術我們稱之爲前沿技術。他們一般包含熱升級,熱修復,App Instant,強制更新,組件化路由架構Arouter,RxJava,IOC架構方法,Hook技術等等,當然,這些技術你不能只會用,你需要知道他的原理,有時候,你還需要知道如何對這些架構進行改進。

另外,非常重要的一點,Android開發者不願意接受新知識,所以對於現在Google推出的新的技術方案毫無感覺,這些都是被 control C 和control V所毒害,開源讓開發者失去了自我,失去了基本的編碼能力,失去了深入學習的信心和毅力,所以對於很多google推出的新技術好組件(Google I/O 大會新技術),好框架已經很多人不願意去學習了,而這是最不應該的,現在的大環境下我們更需要好好學習。

image

NDK模塊開發

音視頻丶高清大圖片丶人工智能丶抖音直播等這些年與用戶緊密相關,與我們生活最相關的技術一直都在尋找最終的技術落地平臺,以前是Windows系統,而現在是移動系統了。而移動系統中Android比例又是最大的。所以NDK可以說是必備要學習的,除此之外,音視頻的編解碼技術流媒體協議,ffmepeg,c,c++,JNI,linux都是音視頻開發必備技能。而且OpenCV \OpenGI這些又是圖像處理必備。

image

架構師煉成實戰

架構師不是天生的,是在項目中磨練起來的,所以,我們學了技術就需要結合項目進行實戰訓練,那麼在Android裏面最常用的架構無外乎 MVC,MVP,MVVM,但是這些思想如果和模塊化,層次化,組件化混和在一起,那就不是一件那麼簡單的事了,我們需要一個真正身經百戰的架構師才能講解透徹其中蘊含的深理。

image

微信小程序

移動架構師不可不學習微信小程序

image

Hybrid 開發與Flutter

混合開發的flutter現在已經逐漸成了主流的混合開發框架,另外由於阿里系的強大存在,導致阿里系的公司都在用Weex混合架構,這些都是一個Android工程師開拓視野,走向未來必不可少的基本技能的。

image

在這裏我也分享一份自己收錄整理的Android學習PDF+架構視頻+面試文檔+源碼筆記,還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習

(面試題還附有答案哦!很多是我在面試中碰到的原題)送給你,拿走不謝,因爲我是雷鋒!(放心拿,不轉發、不分享)

有需要的同學關注我,添加我的微信:15388039515
微信二維碼

◆◆根據個人背景,調整簡歷,突出重點 ◆◆

8月份我開始準備找工作,年初聽到很多公司大量裁員的負面消息,還是有些擔心就業形勢不太好,從後來的投遞簡歷情況看,Android方向的招聘還是挺多的,但是企業的招聘要求在不斷增加,門檻提高了。

今年上半年我自己的學習過程給了我很強的信心,在正式找工作前,我先試水面試了幾家公司,目的就是積累經驗和找一下面試感覺,對我之後學習的效率提升了不少,每次面試中遇到的問題有針對性地做查找資料、細化知識點,準備好之後再投了一批簡歷。

image

自己準備的簡歷投完之後得到的面試機會並不多,所以找了一位老司機檢查了一遍簡歷,發現簡歷的確有比較大的問題。在他的指導下,調整了簡歷項目,去除了之前的和目標崗位不太相關的項目,細化了Android部分的項目。

改完簡歷後,面試機會果然變多了,我主要找深圳和北京的崗位。我當時在職,頻繁的請假跑去現場面試也不方便,在集中面試了一週之後拿到了3個offer,年薪都在20W以上,最終我選擇了字節跳動,年薪30W。

建議:面試過程中,面試官常根據你的簡歷追問一些細節問題,簡歷上寫的技能和知識點,自己一定要熟悉,不熟悉的不要寫上去。簡歷寫和目標崗位相關的項目,之前工作中不太相關的項目可以去掉,簡歷整體項目經歷要和目標崗位匹配。

◆◆你該瞭解的Android崗面試環節和重點 ◆◆

一個完整的Android崗面試過程主要有以下幾個主要環節:筆試環節、自我介紹、項目介紹、技術(切磋)面。

  • 筆試環節,這個不用多說,提前刷題是肯定的,我在面試前3個月就已經開始刷題了,前面做錯了也沒關係,不過要去研究這個題爲什麼錯,錯在哪裏,有些什麼原理,都是要熟練掌握的。可以根據面試的公司來着重刷題。

  • 關於自我介紹,主要就是簡單介紹下自己的教育背景,在校或在職期間的研究方向和所做的項目以及在項目中所充當的角色等等,爲之後的面試做個鋪墊,讓面試官從中捕捉一些點來向你提問。

  • 項目介紹是最爲重要的,這也是體現你綜合實力的地方,對項目背景、項目實現的方案,項目所實現的東西都要瞭如指掌,最好準備一到兩個較大型的項目,關鍵是項目中間的技術細節都要瞭如指掌,比如項目中遇到的一些問題,是什麼原理?你是怎麼解決的?一旦你說不太清楚,面試官就會對項目的真實性存疑。

image

  • 技術面是一個虐與被虐的痛苦過程,主要會圍繞簡歷項目展開,大廠面試官問的很細,所以簡歷上寫到的相關技術最好搞透徹。小公司一般不會問特別深問題。重點:技術面也是一個很好的學習過程,有問到你不會的點,虛心向面試官請教,一般都會指導你一下的,而且還可以加印象分!

◆◆2019年的Android崗面試的新套路◆◆

隨着市場環境的變動,今年經歷的面試過程有兩個比較大的變化,看來面試套路不一樣了:

  1. 考察更加全面了,除了考察對數據結構與算法的理解,圍繞着各種底層源碼、原理,提出的問題更細更刁鑽了。
  2. 對項目方面的考察深度提升了很多,會被面試官揪着細節一步一步讓你解釋,爲什麼這麼做?說說自己在項目中具體負責的模塊中用到的技術細節,遇到了什麼問題,怎麼解決。

So,我會給如下建議:

  • 講述項目的基本情況,項目的背景、規模、用時、用到的技術以及各個模塊。重點突出自己比較熟悉的技術,防止在面試官打斷的提問的時候,問到自己最薄弱的環節。
  • 主動說出自己做了哪些事情,這部分的描述要儘量和自己的技術背景一致,描述自己在項目中的角色。描述模塊中用到的技術細節,這部分一定要注意,一定要把話題引到自己最熟悉模塊的技術細節。
  • 一定要主動:作爲面試者,應該能夠主動並且邏輯清晰的說出自己的項目中有哪些亮點,能夠主動的把自己的閃光點在短短几十分鐘的面試中都展現出來。

總結一下吧:
今年的大環境進一步惡化,同時公司的招人要求變高了,小夥伴們的進入門檻會越來越高,薪酬水平卻在提升,只要是入眼了,還是敢給好offer,這也說明企業在這樣的大環境下,希望花錢找到適合的,能幹的。真正合格的Android工程師一直是短缺的,努力做金字塔上部的那塊磚。

上面我提及的免費課程,這裏詳細介紹一下內容,小夥伴自行觀看。

image

想要學習這門免費課程的小夥伴們,可以關注我
添加我的微信:15388039515
微信二維碼

Android開發者畢業一年進入字節跳動,薪資跨越式增長,年薪30W!

還分享包括Android學習PDF+架構視頻+面試文檔+源碼筆記,還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料幫助大家學習提升進階

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