Android開發前幾年火爆一時,市場飽和後Android程序員每一名程序員都想進階,甚至成爲架構師,但這期間,須要付出的辛苦和努力遠超過咱們的想象。java
就我這幾年對所接觸的Android工程師調研:97% 的Android開發 技術人都會面臨這些困境(可能也是你的困惑)程序員
主要困境;web
外包公司/小型團隊技術閉塞:若是你長期在小型軟件公司或外包公司工做,是很難有機會經歷完整且大型項目的開發,整個技術視野會比較窄,致使薪資長期處於停滯不前;面試
重複一樣的編碼工做:長期重複一樣的編碼工做,項目對你的技術要求就是那些,不會讓你按照本身的指望去發展,致使很長時間本身的能力都沒法突破,企業更是難以接受新技術;編程
自控力差,沒時間學習:白天工做,晚上加班,只能依靠碎片化的時間學習,若是自控力比較差,基本就三天打魚兩天曬網,沒法系統性學習,沒法沉澱成技術實力;設計模式
目前的簡歷,難進大廠:現有的技術能力、項目經驗,沒法經過大廠簡歷初篩,更別說拿到大廠的高薪 Offer。性能優化
這些問題,將會成爲你職業發展的絆腳石,不想辦法解決這些,焦慮可能會像一塊巨石,壓在你身上。不少求職者的能力體系和企業用人需求有很大出入。架構
相信大多數從事Android開發的小夥伴一開始確定不是抱着改變世界的宏偉目標,說白了就是賺錢的多,之後技術牛逼了,年薪百萬,走上人生巔峯,迎娶白富美~app
但工做過一年後你會發現,本身的工做重點就是將找各類各樣的組件、框架,拖拖拽拽,改改樣式。在極端狀況下出現了問題後(好比部分機型上崩潰,加載圖片慢),也不知道該如何解決!框架
形成這種局面的緣由:本身的意識不夠,格局受限,在向上提高方面也沒有完整的規劃。
從自身規劃的角度講,技術上的進階分以下幾個階段:
1.作好業務需求的功能。這個是初級程序員就應該有的能力。
2.解決極端狀況下的技術問題,好比性能優化,OOM等。稍有點規模的公司,確定都會遇到這種問題,好比上文中說的App在部分機型上崩潰、頁面加載不出來等。只是大部分程序員會以爲難以復現,或者是由於小几率事件而忽略了。在忽略這些問題的過程當中,也放棄了進一步提高的可能性。還有一部分程序員是看到了這些問題,但一直不知道怎麼解決,由於這些問題的產生基本都是要往底層框架去找緣由,而平時只關注上層的業務邏輯代碼,於是沒有深刻研究底層的原理,致使愛莫能助。
3.在開發框架和效率上作文章。舉個例子,不少程序員說本身的精力都在和產品的撕中浪費了,但有沒有想過,可以經過技術手段將本身從繁雜的無技術含量的工做中解救出來?好比是否可以作到只編寫一次代碼,或者改個配置參數就可以作到在不一樣平臺上運行。更高的要求是,可否將這些方案作成通用框架或產品。
其實沒轉行的Android程序員,大多都是但願能在這方面繼續學習提高的。而上面列舉的幾個階段,首先要從思考方式上去逼迫本身不斷地逼迫本身,不要偷懶。其次,要想按照上述階段發展,還須要落在實處,在具體的技術體系中不斷的學習。
舉個例子:
對於OOM,須要知道有哪些優化工具可使用(Lint、MAT等),如何檢測OOM,以及垃圾回收機制等深層次的原理。對於性能優化來講,如何減小apk體積、資源動態加載等都是必會的。如下是性能優化相關思惟導圖。
(Android性能優化思惟導圖)
在體系化的學習過程當中,博客、書籍、視頻課程都是較好的學習手段。
鑑於Android也是基於java語言的,所以不少與java相關的基礎也是必須掌握的,好比《深刻理解Java虛擬機》、《Effective Java》等相關書籍也是必讀的。
Android相關的書籍包括《Android權威編程指南》、《Android開發藝術探索》等,進一步的還能夠去閱讀Android相關源碼,配合《Android源碼設計模式解析與實戰》等書籍,對閱讀源碼大有裨益。
(Android學習推薦書籍)
若是你以爲本身看書太慢並且難以所有理解,博客不夠系統,能夠找一套進階視頻學習。沒有的話我能夠免費分享一套給你
做者目前在深圳,13年java轉Android開發,在小廠待過,也去過華爲,OPPO等,去年四月份進了阿里一直到如今。等大廠待過也面試過不少人。深知大多數初中級Android工程師,想要提高技能,每每是本身摸索成長,不成體系的學習效果低效漫長且無助。
咱們今年整理了一份阿里P7級別的Android架構師全套學習資料,特別適合有3-5年以上經驗的小夥伴深刻學習提高。
主要包括騰訊,以及字節跳動,華爲,小米,等一線互聯網公司主流架構技術。若是你有須要,儘管拿走好了。
如下爲個人整理,粉絲免費分享;
全套部分展現;7大專題
1.高級UI
UI這塊知識是現今使用者最多的。當年火爆一時的Android入門培訓,學會這小塊知識就能隨便找到不錯的工做了。
不過很顯然如今遠遠不夠了,因此不少人會以爲大環境很差了安卓開發要涼了。
這些人若是能自身檢討;企業要大家這些CV工程師的意義在哪呢?
你要本身親自去項目實戰,讀源碼,研究原理的呀。
2.性能優化
若是我是老闆,我招你來是寫代碼的,不是寫bug的。若是你的代碼太爛,各類bug。我把你開了後從新招我的進來接手維護,甚至推到從新作,後面那個接盤的是否是要罵街?
若是你會性能調優,能解決項目中各類性能問題。那麼拿20K真的不過度。你得具有深厚的代碼功底,深刻學習源碼原理以及使用工具進行測試和檢查調優。
3.NDK開發
音視頻,人工智能,這些是將來沒辦法阻擋的發展大趨勢。我在獵聘網上看那些招聘崗位,要求精通NDK的薪資都在30-60K。追求高薪崗位的小夥伴,NDK開發必定要掌握而且去深挖
4.Flutter
火了一年多了,你工做不必定要用到。可是你出去面試(初級不多要求會),確定會問到的。
關於Flutter是否是將來,我無法肯定告訴你,我能肯定的就是你要去面試高薪崗位,你得掌握這種主流的新技術(大廠最看重的除了基礎,技術水平外,就是你的學習能力。)
5.移動架構實戰項目
架構師不是天生的,是在項目中磨練起來的,因此,咱們學了技術就須要結合項目進行實戰訓練,那麼在Android裏面最經常使用的架構無外乎 MVC,MVP,MVVM,可是這些思想若是和模塊化,層次化,組件化混和在一塊兒,那就不是一件那麼簡單的事了。
架構師尤爲是移動開發,數量太少了。可能不少Android開發的小夥伴都沒見過移動架構師。架構師薪資是什麼樣的水平呢?
阿里P6處於高級工程師,年薪四五十萬左右
阿里P7處於資深高級,年薪百萬左右
阿里P8屬於架構師了,年薪可達170萬以上
阿里的標準和薪資都是很高的,其它公司會有差距,但不會太大。
點擊石墨文檔,免費領取以上視頻教程;
你有沒有敢去想過,本身之後能達到架構師水平,突破百萬年薪,實現財富自由呢?若是你以爲這對於你來講不可能,甚至很好笑,那麼你就真的高不可攀了。