車載Android程式設計師的2022年終總結與轉行建議
theme: channing-cyan
「回顧2022,展望2023,我正在參與2022年終總結徵文大賽活動」
不知不覺間2022年只剩下幾天了,這意味著我即將邁入30歲的殿堂,作為一個搞車載的程式設計師,而立之年感受頗多,藉助掘金社群的活動,簡單分享一下2022年的個人總結。
回顧2022
2022年對我而言,是很糟的一年,2021年底由於工作和我個人的原因和異地的女友分手了,經過一段時間的混亂後,我選擇寫技術部落格來轉移自己的注意力。
緊接著2022年年初,我順利通過公司的內部答辯從 “高階軟體工程師” 晉級 “資深軟體工程師” ,這是我這一年中最值得開心的事。上家公司是一家上市企業,我個人學歷以及工作年限其實並不符合晉升要求,但是得益於我在車載應用領域的文章積累,成為眾多候選者中舉證材料最完整的人,所以算是破格晉級。
從部門總監那裡得知晉級成功的那一刻,還是非常開心的,這樣開心的時間大概持續了一週左右,這段時間,我一直在問自己,這樣是不是就足夠了?還要繼續深入應用開發嗎?它都有哪些前景呢?
做車載這三年,在公司我一直主要從事車載應用的開發,偶爾也會參與Framework層一些模組的開發,我的晉升依據也是基於我在應用方面的積累,但是我其實一直對Android Framework、Native開發有著相當大的興趣,但是公司內部預計很難安排相應的工作給到我,所以經過艱難的權衡,我還是決定在2022年10月離職了。
離職之後,簡單嘗試了幾個網際網路公司的面試,主要還是驗證自己的一些想法,這裡列舉幾個我印象比較深的問題。
Q:應用的換膚機制和原理
A:不知道!
車載應用雖然有換膚的需求,但是車載系統應用是基於Android Runtime Resource Overlay實現換膚,不過這套機制並不支援非系統應用,導致車載應用與移動端應用實現換膚的技術手段完全不同,所以我並沒有實踐過移動端應用的換膚,也就談不上理解原理了。
結果:掛了!
Q:有沒有使用過Flutter,描述一下它的繪製原理
A:額,同樣不知道!!
國內主流的車載IVI系統,基本都是Android OS,也沒聽過車載系統應用有跨平臺的需求,所以Flutter在車載應用開發領域使用的很有限,以至於做了三年車載應用開發,完全沒有接觸過Flutter。
結果:不出意外,掛了!
Q:外掛化的原理
A:不造啊!!!
車載應用的一個重要特點就是互動邏輯要儘可能簡單,方便駕駛員操作,所以車載應用一般頁面都很少,基本用不上那麼外掛化這麼複雜的工具。
結果:當然還是掛了!
簡單的幾次面試,基本驗證了我的想法是合理的,移動端應用和車載應用開發還是有不少區別的,想進來其實並不難,但是做久了想出去就難了。
展望2023
“如果我不能教會新手,那麼就說明我沒有真正理解這個知識”
最近在B站看到的費曼學習法啟發了我,最高效的學習方式就是,將學到的內容化繁為簡的教會別人。
2022年我大約寫了18篇技術性部落格,但是多數時候,我都是把它當做對學習或工作內容的一次總結,回過頭再來看這些內容,總結的質量差,大面積的拼湊了原始碼,閱讀起來枯燥又乏味,而且缺乏提煉和總結,彷彿寫了很多,但是抓不到重點。
所以,2023年要繼續磨鍊自己的寫作技巧,把文章內容寫得更加淺顯易懂,同時也準備在B站製作一些視訊教程,鍛鍊自己的總結能力。
轉行車載的建議
為什麼要寫換行建議?因為總會有人問我,做手機開發如何轉行車載開發,那麼就在這裡簡單提一下。
APP工程師
基於我這次找工作的經驗來看,APP工程師如果希望轉行Framework崗位,實際工作經驗偏少的話基本不現實,所以只能考慮轉行車載APP工程師。
但是要注意的是,車載應用與移動端的應用開發還是存在一些不同的,例如開發一個車載系統設定、或SystemUI應用,使用的API往往是Android SDK沒有暴露的API,手機應用開發基本不會涉及這塊的內容,所以各個公司往往更願意招聘有一定車載經驗的程式設計師。
但是,手機應用開發轉車載不代表沒有機會,一般只要實力過硬,轉行成功的概率還是非常大的。所以還是建議提升自己應用開發實力,寫一些部落格、做一些開源專案,有空閒時間的再看一下原生SystemUI、Launher、系統設定這些應用是如何實現的,都是非常不錯的加分專案。
當然如果有一個211或985的學歷,那就另當別論了,學歷永遠是硬實力!
Framework或Native/HAL工程師
從事FW或Native/HAL的工程師轉行車載沒什麼特別值得猶豫的,FW/Native工程師一直都是車載稀缺的崗位,主機廠商也願意接收沒有車載經驗的FW/Native工程師,如果轉行之後薪資會迎來一波提升,那麼直接轉就行。
小結
以上就我的2022年終總結了,需要指出的是,文中提到的我個人的職業規劃並不適用於大多數人,而且屬於一個潛在風險很大的發展路徑,極容易變成什麼都會什麼都不精,所以對於多數人我建議還是做深度發展,而不是橫向發展。
寫這篇總結的時候,驚訝的發覺我開始低燒了,寄,不會剛上一週的班就陽了吧。吃藥休息了,咱們2023年再見吧!
「回顧2022,展望2023,我正在參與2022年終總結徵文大賽活動」
- Android車載應用開發與分析(1) - Android Automotive概述與編譯
- 【Android R】車載 Android 核心服務 - CarService 解析
- 【Android R】車載 Android 核心服務 - CarPropertyService
- 車載Android程式設計師的2022年終總結與轉行建議
- 從應用工程師的角度再談車載 Android 系統
- Android 車載應用開發與分析(12) - SystemUI (一)
- RE: 從零開始的車載Android HMI(三) - SurfaceView
- RE: 從零開始的車載Android HMI(二) - Widget
- RE: 從零開始的車載Android HMI(一) - Lottie
- Android 車載應用開發與分析 (3)- 構建 MVVM 架構(Java版)
- Android 車載應用開發與分析 (4)- 編寫基於AIDL 的 SDK