本處文章遵循創作公用原則,署名保持一致,不得商用。署名的意思就是你轉載得註明出處和本人名諱。保持一致的意思就是:轉載時別自作聰明/自以為高明地改動本文的任何一個部分,包括標題!包括標題!包括標題!
公司一直有 Android 工程師免費參加 Google I/O 的福利,前兩年缺了一點點運氣,今年有幸搭上這班車,近距離感受現場的氛圍,不得不說, Google 是全世界最偉大的公司,沒有之一。但這並不重要,重要的作為 Android 工程師,未來的路該怎麼走,這裡說的 Android 工程師,不僅包括剛出校園的新人,也包括在社會上打拼多年的老司機。
Android 工程師真的爛大街了麼?
Google I/O 的 Session ,有相當一部分是圍繞 Android 展開的, 移動網際網路是網際網路的里程碑,而手機是 Google 數百種裝置中最重要的, Google 一直以來都在優化 Android 的使用者體驗。雖然移動開發這兩年已經接近飽和,但只要仔細觀察就不難發現,是初級工程師的門檻在變高,而各個大廠的高階/專家級工程師/架構師缺口仍然很大。
Android 技術每年在變化,不知道學哪些技術?
這個問題每個人的答案都不一樣,我在這裡從另外一個角度來說。
首先問你們一個問題,為什麼想做 Android 移動開發?
- 因為 Android 簡單好學嗎?不, Android 並不簡單也不好學。
- 因為 Android 開發輕鬆嗎?不, Android 開發直接面對的是使用者,細節的體驗要求更高。
- 因為 Android 開發(網際網路行業)薪水高?不見得吧,各行各業都有做得好的,即便是在網際網路行業,移動開發的待遇未必在工程師中出於領先狀態。
這個問題我也一直在思考,回想自己是怎麼走上 Android 這條路的,和今天在現場看 Google I/O 的感受是一樣的,一個詞: cool 。
Google 通過技術改變世界,改善人們的生活,給人類更大的可能性,作為大生態中的一份子,貢獻出自己的一份力量,以後老了才不會後悔。
好,我們先不談夢想,做技術是因為它好玩有趣,所寫即所得,而移動開發最接近終端使用者,你的一兩行程式碼,說不定就在什麼時候,引起使用者的尖叫:“ OMG! Amazing! so cool~ ”
說到這裡,結論就很明顯了,我們要學習的技術,是能夠帶給使用者愉悅體驗的,是能夠符合 Google 的願景 make good things 的,是讓使用者更加 wellbeing 的。
也就是說,讓 App 的體驗更好,更流暢、更穩定、功能更強大,所有能達到這些目的的技術,都要學,學了不是為了不被淘汰,而是為這個世界多貢獻一份力。儘管生活中會遇到各種各樣負能量的瑣事,但工作是為了創造價值,不開心的煩惱少去想才不枉人間走一遭。
哪些技術必學,哪些技術選學,哪些技術推薦學?
先說必學
- Java 基礎知識
- Android 基礎知識(這個不掌握就不要談其他東西了)
- 網路基礎知識(不聯網的 app ,除了單機遊戲外估計找不到什麼好應用了)
- 圖片基礎知識(圖片載入庫得熟悉吧)
- 媒體播放基礎知識(如 exoplayer )
- Firebase ( I/O 持續優化的東西,不學說不過去了,況且還有 FCM )
- Kotlin (大勢所趨,沒什麼好說的,不學肯定後悔)
- Support 包(搞向下相容必須用到的東西)
- 構建系統(包括 gradle maven proguard 等等)
- 測試框架(包括今天 Google 推的 mockito )
- ReactiveX (重點是流的概念,而不是非同步)
- Json 序列化和反序列化
- 元件化
- Material Design
- 相機基礎知識
- 二維碼基礎知識
- 定位基礎知識
- 自動化指令碼(如 python )
- 資料庫基礎知識
- 加解密基礎知識
再說選學,選學的意思是用到了就學,沒用到不學也沒關係
- 熱補丁技術
- React Native
- 外掛化
- NDK 開發
- 直播技術
- 媒體播放高階知識(編解碼相關)
- VR 技術
- Flutter 框架(目前主要做 UI 的)
- Android 架構框架
- Android Things
最後說推薦學的
- AR 技術(作為技術我一直認為這塊是移動產品的藍海,誰發現了場景的新大陸,誰就拿下了 onepiece )
- AI 技術( TensorFlow )
- 指紋技術
不要為了學而學,多想想用在什麼場景
任何技術不用在實際的業務場景中,就沒有價值,和學生時代被老師要求背書一樣。
作為移動開發工程師,多想想如何才能讓使用者更加愉悅,那就少不了自己要多用,所以 Google 可以招到這麼多優秀的工程師加入,這些工程師每天每天(刻意重複)都不斷地使用自己的產品,時間久了就會有終端使用者的代入感,才能設身處地為使用者考慮。如果你都不把自己當成是產品的目標使用者,可能一個起碼的自測都會忽視掉。
很慶幸能夠加入一家像 Google 一樣每個員工都把產品用心打磨,不斷使用不斷練習的公司,這樣終有一天一個能被稱為願景的東西才有可能實現吧。