計算機嵌入式已經慢慢被大家接受,也有很多人開始去了解嵌入式,這也是因為大家都想要成為嵌入式軟件工程師的,這個稱謂聽起來就沒有那么簡單,下面還是先跟小編來了解下嵌入式工程師能做什么吧。
嵌入式工程師能做什么?嵌入式軟件工程師需要哪些知識?
一、基本職業技能
編碼能力:至少精通C/C++語言進行coding。就嵌入式行業而言,這兩種語言用得最多。如果掌握了它們,即便切換到其他語言,難度也不會太大。此外,還包括良好的編碼習慣和風格,具體內容可以參看最初幾期關于編碼規范的一些討論。關于這個能力,想說明的一點是,良好的編碼能力并不等同于指針,數據結構用得多溜,各類運算符優先級記得多牢,代碼寫得多精簡。可維護性,可移植性,可閱讀性,可靠健壯性才是更加需要關注的點。
1.分析問題解決問題能力:這個能力包含幾個層面。第一個層面是調試工具的使用熟練度,主要為進行代碼調試的時候,結合MCU的特性,如何熟練應用工具進行分析,例如watch/live watch,memory watch,break point設定技巧,插件的使用,查看寄存器找尋HardFault原因。第二層面是問題分析與解決方式方法。之前說過我創建了個QQ群,經常有群友會問各式各樣的問題,其中的很多提問者根本就沒自己分析過原因,或者根本就不知道怎么去分析。在還沒有形成條件反射般的分析能力前,在解決復雜問題時,推薦使用魚骨圖進行分析:先假設可能的原因,理清他們間的前后、因果關系,然后拆分為不同節點去各個擊破排除。
2.硬件基礎能力:嵌入式軟件開發的特殊性要求即便是軟件人員也需要具備基本的硬件能力,包括模電,數電,傳感器等。
3.英語:不要以英語不好排斥閱讀英文資料,除非猴年馬月的時候,中國技術發達到所有芯片都是自己制造,所有技術標準都是自己制定。另外,良好的英語口語和書面能力,能大大拓寬你的就業面。
二、熟悉軟件開發流程
大學里面以及培訓速成機構很少講解這方面的理念,所以導致大部分人員習慣性的一上來就開始編碼。下圖是軟件開發編碼階段開始bug引入率,發現率以及修復成本的圖例。由此可見,如果缺乏流程上把關,直接進行編碼,后期的代價是非常高的。
軟件最經典的開發流程為V-Model,其他流程體系基本上都大同小異,脫離不了這個模子。這塊的能力要求為,要清楚不同階段要做什么,交付物是什么,做哪些評審和測試保證軟件質量。軟件流程帶來的兩個主要好處在于:1. 通過不同階段的設計開發評審驗證測試,保證代碼的質量;2. 建立起閉環的路徑,追蹤需求在設計開發測試階段的覆蓋率,保存不會有遺漏。
三、學習能力
這個能力不僅僅是這一行所要求的,所有行業都要求。并且,對于嵌入式這一行而言,這個能力應該放在第一位。下個月你可能就需要開發不同方向的產品,明年你可能就需要用新的MCU,過幾年可能C語言就淘汰。如果學習能力弱,節奏跟不上技術的變遷,不久的將來就會被行業淘汰。類似的,學習能力也包含兩個方面。第一為學習方法和效率,這個小編學習能力也一般,給不出多好的建議。第二為學習的態度,這個體會就比較深了。作為一名軟件小團隊的team leader,常常需要分配任務給團隊成員。因為產品是全新的方向,所以很多東西需要現學現用。有些成員能很快進入狀態,短期內掌握新的知識并應用于新產品開發,有些成員學習進度緩慢,無從下手,需要人為干預才能往前。第二類人員的之所以進展緩慢的通病為,帶著畏難不前的心態去學習,總是會以新員工的姿態放寬對自己的要求,認為進度慢是理所當然。帶著這樣的心態,在我看來是一種自甘墮落的表現,對個人的成長極端不利。
四、行業相關能力
做通訊設備,那就得精通相關的通訊接口和協議,做電源產品,那就得掌握電力電子基本的拓撲和控制方法,做電池管理系統,就得知曉電池特性。
還有一些其他的能力,比如說領導力,團隊協作能力,溝通技巧這些都是其次的,主要還是自身的技術要硬,想要有過硬的技術不妨咨詢一下創客學院,有好的技術老師帶,做事情會事半功倍。
以上介紹的就是嵌入式工程師能做什么了,掌握好了嵌入式技術之后,那么也算是掌握了一門長久的吃飯工具,目前嵌入式就業形勢大好,所以現在去學習嵌入式還是很明智的。