就以Carr作為這位軟體工程師的代號。
Carr在大學裡面主修電氣工程自動化相關的課程, 按理說他每天接觸的都是一些高於220v的強電和相關的硬體設計。
大學表現相對突出, 獲得學校保研機會, 讀研主修控制專業。 研究生沒放棄對硬體的喜愛, 多次設計相關的微控制器系統, 並且在畢設階段自作一套硬體系統, 編寫相關軟體程式實現控制。
研究生畢業, 參加各類行業的面試。 進了一家微電子企業。 進了公司, 發現自己做的行業是微電子微控制器底層驅動, 也就是說, 轉行弱電做軟體。
Carr想, 學了多年的硬體, 在軟體方面卻沒有多大的突破, 反正自己對軟體也沒有多大的排斥, 何不借著這個工作的機會, 接受相關的專業軟體學習機會。
從強電到弱電, 從硬體到軟體, 從應用層到底層, 這是一層層的突破。 Carr總結了自己轉行所學的相關內容:
1、從新認識ARM。
對於應用層的工程師來說, ARM微控制器只是一個工具, 不需要熟練掌握各模組機制, 只要知道其工作原理就行, 然後利用底層驅動工程師編寫好的相關驅動介面, 根據專案功能需要, 實現調用和控制。 但是對於底層驅動的工程師, 一切都不一樣了, 需要熟讀晶片英文手冊, 瞭解各模組運行機制, 以至於針對後期客戶的各種問題能知道原因所在。
2、從新學習程式設計語言。
對於應用層的人來說, 大部分都是邏輯控制或者借著控制演算法編寫C語言代碼實現控制。 但是到了底層驅動, 不僅要熟練C語言, 還要掌握彙編。
3、學會Linux作業系統或者Android。
4、最重要的是心態。
企業招收應屆畢業生, 最看重的是其學習能力。 所謂隔行如隔山, 剛開始學習另一個行業是痛苦的,