Android開發要達到阿里P7水平,很難嗎?憑什麼人家能進大廠?
寫在前面;
Android開發前幾年火爆一時,市場飽和後Android程式設計師每一名程式設計師都想進階,甚至成為架構師,但這期間,需要付出的辛苦和努力遠超過我們的想象。
就我這幾年對所接觸的Android工程師調研:97% 的Android開發 技術人都會面臨這些困境(可能也是你的困惑)
主要困境:
外包公司/小型團隊技術閉塞:如果你長期在小型軟體公司或外包公司工作,是很難有機會經歷完整且大型專案的開發,整個技術視野會比較窄,導致薪資長期處於停滯不前;
重複同樣的編碼工作:長期重複同樣的編碼工作,專案對你的技術要求就是那些,不會讓你按照自己的期望去發展,導致很長時間自己的能力都無法突破,企業更是難以接受新技術;
自控力差,沒時間學習:白天工作,晚上加班,只能依靠碎片化的時間學習,如果自控力比較差,基本就三天打魚兩天曬網,無法系統性學習,無法沉澱成技術實力;
目前的簡歷,難進大廠:現有的技術能力、專案經驗,無法透過大廠簡歷初篩,更別說拿到大廠的高薪 Offer。
這些問題,將會成為你職業發展的絆腳石,不想辦法解決這些,焦慮可能會像一塊巨石,壓在你身上。很多 求職者的能力體系和 企業用人需求有很大出入。
相信大多數從事Android開發的小夥伴一開始肯定不是抱著改變世界的宏偉目標,說白了就是賺錢的多,以後技術牛逼了,年薪百萬,走上人生巔峰,迎娶白富美~
但工作過一年後你會發現,自己的工作重點就是 將找各種各樣的元件、框架,拖拖拽拽,改改樣式。在極端情況下出現了問題後(比如部分機型上崩潰,載入圖片慢),也不知道該如何解決!
造成這種局面的原因:自己的意識不夠,格局受限,在向上提升方面也沒有 完整的規劃。
一,職業發展規劃
從自身規劃的角度講,技術上的進階分如下幾個階段:
1.做好業務需求的功能。這個是初級程式設計師就應該有的能力。
2.解決極端情況下的技術問題,比如效能最佳化,OOM等。
稍有點規模的公司,肯定都會遇到這種問題,比如上文中說的App在部分機型上崩潰、頁面載入不出來等。只是大部分程式設計師會覺得難以復現,或者是因為小機率事件而忽略了。 在忽略這些問題的過程中,也放棄了進一步提升的可能性。還有一部分程式設計師是看到了這些問題,但一直不知道怎麼解決,因為這些問題的產生基本都是要往底層框架去找原因,而平時只關注上層的業務邏輯程式碼,因而沒有深入研究底層的原理,導致心有餘而力不足。
3.在開發框架和效率上做文章。
舉個例子,很多程式設計師說自己的精力都在和產品的撕逼中浪費了,但有沒有想過,能夠透過技術手段將自己從繁雜的無技術含量的工作中解救出來?比如是否能夠做到只編寫一次程式碼,或者改個配置引數就能夠做到在不同平臺上執行。更高的要求是,能否將這些方案做成通用框架或產品。
其實沒轉行的Android程式設計師,大多都是希望能在這方面繼續學習提升的。而上面列舉的幾個階段,首先要從思考方式上去逼迫自己不斷地逼迫自己,不要偷懶。其次,要想按照上述階段發展,還需要落在實處,在具體的技術體系中不斷的學習。
舉個例子:
對於OOM,需要知道有哪些最佳化工具可以使用(Lint、MAT等),如何檢測OOM,以及垃圾回收機制等深層次的原理。對於 效能最佳化來說,如何減少apk體積、資源動態載入等都是必會的。以下是效能最佳化相關思維導圖。
具體怎麼做?
如果你現在已經是一個 Android 工程師,但是經驗積累的還不夠,那這個階段就是你成長極快的時候。前提是,你認同我之前經常說那句話:
從你入行那一刻起,你就要不停地學習。
對於 Android 工程師來說,想在業務能力上更進一步、讓自己更值錢,最大的捷徑就是用正確的方法來學習,好的方法能讓你事半功倍,下面就是我在學習中總結的兩個“捷徑”:
第一,用企業的技術要求來訓練自己。
作為一個程式設計師,你的知識體系,和企業的用人需求,是不一樣的。 Android 工程師尤其是。
我也見過一些讀者朋友,覺得自己的 Android 技術過關,但是一到面試就被 pass 了,問題就出在這,無法將 Android 技術應用到實際開發中。
這裡我建議 Android 經驗 1-3 年的讀者,可以對標阿里 P7 的標準。文章後面,我會給大家分享阿里 P7 的技術水平,和如何達到這樣的水平。
第二,制定一份至少 6 個月的學習計劃,目標儘可能明確。
我之前分享過一個觀點:學一個新東西,如果你能堅持 6 個月,已經躋身這些學習者的 25%。能夠堅持一年的人,不超過 5%。如果你竟然堅持學習了 5 年,就可以輕鬆打敗那 99% 的人,進入 1% 的行列。
我自己就是最好的例子,剛工作那會,我每天至少編碼 3 小時,一直堅持了 3 年。
我建議你現在給自己制定一個學習計劃,最好以 6 個月為一個週期,至於達到什麼程度,要根據自己的實際水平,可參考上面兩條。
以上 2 條,是我親身實踐得出的結論,希望你們能用得上。
肯定會有讀者想說:我也經常制定學習計劃,但是從來沒堅持下來過。
對於這樣的讀者,我更建議你能找一個系統學習的路線,很多大佬整理的學習路線都很好,能讓絕大部分學員堅持下去。
二,體系化深入學習
在體系化的學習過程中,部落格、書籍、影片課程都是較好的學習手段。
鑑於Android也是基於java語言的,因此很多與java相關的基礎也是必須掌握的,比如《深入理解Java虛擬機器》、《Effective Java》等相關書籍也是必讀的。
Android相關的書籍包括《Android權威程式設計指南》、《Android開發藝術探索》等,進一步的還可以去閱讀Android相關原始碼,配合《Android原始碼設計模式解析與實戰》等書籍,對閱讀原始碼大有裨益。
如果你覺得自己看書太慢而且難以全部理解,部落格不夠系統,可以找一套進階影片學習。沒有的話我可以免費分享一套給你
關於作者
作者目前在深圳,13年java轉Android開發,在小廠待過,也去過華為,OPPO等,19四月份進了阿里一直到現在。等大廠待過也面試過很多人。深知大多數初中級Android工程師,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長且無助。
今年整理了一份阿里P7級別的Android架構師全套學習資料,特別適合有3-5年以上經驗的小夥伴深入學習提升。
主要包括騰訊,以及位元組跳動,華為,小米,等一線網際網路公司主流架構技術。如果你有需要,儘管拿走好了。
以下為我的整理,粉絲免費分享;
三、進階阿里P7
1、確定好方向,梳理成長路線圖
知識梳理完之後,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結。
高階UI
UI這塊知識是現今使用者最多的。當年火爆一時的Android入門培訓,學會這小塊知識就能隨便找到不錯的工作了。
不過很顯然現在遠遠不夠了,所以很多人會覺得大環境不好了安卓開發要涼了。
這些人如果能自身反省;企業要你們這些CV工程師的意義在哪呢?
你要自己親自去專案實戰,讀原始碼,研究原理的呀。
效能最佳化
如果我是老闆,我招你來是寫程式碼的,不是寫bug的。如果你的程式碼太爛,各種bug。我把你開了後重新招個人進來接手維護,甚至推到重新做,後面那個接盤的是不是要罵街?
如果你會效能調優,能解決專案中各種效能問題。那麼拿20K真的不過分。你得具備深厚的程式碼功底,深入學習原始碼原理以及使用工具進行測試和檢查調優。
NDK開發
音影片,人工智慧,這些是未來沒辦法阻擋的發展大趨勢。我在獵聘網上看那些招聘崗位,要求精通NDK的薪資都在30-60K。追求高薪崗位的小夥伴,NDK開發一定要掌握並且去深挖
Flutter
火了一年多了,你工作不一定要用到。但是你出去面試(初級很少要求會),肯定會問到的。
關於Flutter是不是未來,我沒法確定告訴你,我能確定的就是你要去面試高薪崗位,你得掌握這種主流的新技術(大廠最看重的除了基礎,技術水平外,就是你的學習能力。)
移動架構實戰專案
架構師不是天生的,是在專案中磨練起來的,所以,我們學了技術就需要結合專案進行實戰訓練,那麼在Android裡面最常用的架構無外乎 MVC,MVP,MVVM,但是這些思想如果和模組化,層次化,元件化混和在一起,那就不是一件那麼簡單的事了。
架構師尤其是移動開發,數量太少了。可能很多Android開發的小夥伴都沒見過移動架構師。架構師薪資是什麼樣的水平呢?
- 阿里P6處於高階工程師,年薪四五十萬左右
- 阿里P7處於資深高階,年薪百萬左右
- 阿里P8屬於架構師了,年薪可達170萬以上
阿里的標準和薪資都是很高的,其它公司會有差距,但不會太大。
2、透過原始碼來系統性地學習
只要是程式設計師,不管是Java還是Android,如果不去閱讀原始碼,只看API文件,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。
真正最能鍛鍊能力的便是直接去閱讀原始碼,不僅限於閱讀各大系統原始碼,還包括各種優秀的開源庫。
3、閱讀前輩的一些技術筆記
4、刷題備戰,直通大廠
歷時半年,我們整理了這份市面上最全面的安卓面試題解析大全
包含了騰訊、百度、小米、阿里、樂視、美團、58、360、新浪、搜狐等一線網際網路公司面試被問到的題目。熟悉本文中列出的知識點會大大增加透過前兩輪技術面試的機率。
如何使用它?
1.可以透過目錄索引直接翻看需要的知識點,查漏補缺。
2.五角星數表示面試問到的頻率,代表重要推薦指數
以上內容均放在了開源專案: 【 github 】 中已收錄,大家可以自行獲取。
你有沒有敢去想過,自己以後能達到架構師水平,突破百萬年薪,實現財富自由呢?如果你覺得這對於你來說不可能,甚至很可笑,那麼你就真的遙不可及了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983917/viewspace-2733883/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 測試能力達到什麼水平,才能進阿里跟位元組?阿里
- 編寫開發環境很難嗎開發環境
- 進入BAT等主流網際網路公司做Java開發需要達到什麼技術水平?BATJava
- 做Java開發2w月薪,需要技術水平達到什麼程度?Java
- 做Java開發如何月薪達到兩萬,需要什麼技術水平Java
- Java要學的知識點有哪些?學到什麼程度可以高薪進大廠?Java高薪
- 在一線城市做Java開發如何月薪達到兩萬,需要技術水平達到什麼程度?Java
- 為什麼這麼多人覺得前端開發很難做下去?前端
- Java學到什麼水平能夠出去找工作!Java
- Android元件化開發實踐(一):為什麼要進行元件化開發?Android元件化
- 進入到一家軟體公司之後要開發什麼
- 自學web前端達到什麼水平,才能z找到工作?Web前端
- 阿里面試:MySQL索引憑什麼能讓查詢效率提高這麼多?阿里面試MySql索引
- 年薪40萬Java開發在阿里巴巴是什麼水平?Java阿里
- python很難嗎Python
- 參與開源專案很難嗎?
- 為什麼寫程式碼讓人家覺得你很厲害?
- 運維為什麼要學開發?linux運維學習難不難運維Linux
- 阿里P7技術知識點,年薪50W你也能達到(附帶阿里大牛知識講解)阿里
- 學 Flutter,能挽救Android 開發嗎?FlutterAndroid
- Java培訓靠譜嗎?能學到什麼?Java
- web前端達到什麼水平,才能滿足求職的標準?Web前端求職
- 月薪兩萬的Java工程師需要達到什麼水平?Java工程師
- 阿里P7:你瞭解路由嗎?阿里路由
- 面試真的很難嗎?面試
- DC/OS很難理解嗎?
- 學習java很難嗎?Java
- 為什麼要學習大模型應用開發?大模型
- 分散式微服務為什麼很難?分散式微服務
- 什麼是前端開發?為什麼要學前端開發?前端
- Java程式設計師如何月薪達到兩萬,需要技術水平達到什麼程度?Java程式設計師
- 為什麼要選擇Python進行Web開發?PythonWeb
- 前端入門那麼容易,工作很難找嗎?前端
- 自學web前端達到什麼水平,才能滿足求職的標準?Web前端求職
- 深度思考:擁有多年開發經驗為何還會被多家大廠拒絕?Android開發還有什麼能學習的?Android
- java到什麼水平可以開始學習jlivejdon?Java
- 阿里雲盤憑什麼敢不限速阿里
- 為什麼說Objective-C很難學?Object