【嵌入(ru)式軟件工(gong)程師】過來人給嵌入(ru)式軟件工(gong)程師的(de)十個建議
回顧1980年代的嵌入式(shi)(shi)領(ling)域(yu),當時的工程師(shi)主要是設計混(hun)合(he)信號電(dian)路(lu)、連接微控制器、撰(zhuan)寫低階編(bian)碼、從外面拿(na)回產品原(yuan)型…只要一(yi)個工程師(shi)就能(neng)做好以上所有(you)(you)事情。但是現在,嵌入式(shi)(shi)系(xi)統變得更(geng)大、更(geng)復雜,一(yi)臺設備可(ke)能(neng)有(you)(you)數(shu)百(bai)萬行軟件(jian)(jian)程序代碼;嵌入式(shi)(shi)技術也被(bei)區分為硬件(jian)(jian)開發(fa)(fa)、固件(jian)(jian)開發(fa)(fa)與(yu)軟件(jian)(jian)開發(fa)(fa)。
在很多大(da)公司仍然(ran)是如此,但(dan)趨(qu)勢似(si)乎又有回頭(tou)的(de)跡象;有越(yue)來越(yue)多業者開(kai)始(shi)整合工程師(shi)的(de)角色(se),尋找既熟悉軟(ruan)件也熟悉硬(ying)件技(ji)術的(de)工程師(shi),以求(qiu)事半(ban)功倍之效。調查顯示(shi),現在有越(yue)來越(yue)多工程師(shi)的(de)工作同時牽涉(she)硬(ying)件與軟(ruan)件技(ji)術。
有越來越多工程師需要軟硬件技術能力兼備
嵌入式技術日進千里,工程師要如何確保自己學習到的新技術是最關鍵的?為此EETimes美國版請(qing)教了九位嵌(qian)入式領域專家與一(yi)位負責招募人才的主管,請(qing)他們分享究竟(jing)現在的嵌(qian)入式工程師最需(xu)要掌握哪些重(zhong)要技(ji)能;雖然他們的意見(jian)稍(shao)有不同,但都同意一(yi)個觀點:所有的工程師都不應該(gai)停(ting)止學習。
以下是整理(li)專家意見,歸(gui)納(na)出的十個給嵌入式工程師的建議(yi):
1、學習那些讓因特網實現的技術
具備30年嵌入(ru)式(shi)工(gong)程師經驗的(de)獨立產品設計與顧問(wen)公司Aurium Technologies總經理Ken Wada認為(wei),多數嵌入(ru)式領域工(gong)程(cheng)師(shi)都(dou)知道(dao)如何(he)撰寫(xie)C或C++語(yu)言程序,但(dan)有(you)時(shi)候這樣的(de)(de)技能是不(bu)夠(gou)的(de)(de);他(ta)建議嵌(qian)入(ru)式工程師(shi)學習因(yin)特網有(you)關(guan)的(de)(de)技術,對職業生(sheng)涯發展(zhan)會(hui)有(you)加分效果,例(li)如他(ta)目前負(fu)責的(de)(de)幾(ji)個開(kai)發案,都是在(zai)嵌(qian)入(ru)式系(xi)統中嵌(qian)入(ru)虛擬(virtual)的XML,好讓一些小型連(lian)網設備(bei)能具備(bei)“即(ji)插即(ji)用(yong)”的運(yun)作模式。
2、學習利用搜索引擎
當了35年(nian)工程師、自認是“看得懂系統架構的(de)軟(ruan)件人”的(de)PTR Group首席科學家Michael Anderson認(ren)為(wei),不(bu)要閉門造車,要善用開放源(yuan)碼世界(jie)的(de)(de)信息(xi),很多常見的(de)(de)設計問題其(qi)實透過因特(te)網(wang)就能找到同領(ling)域(yu)菁英(ying)貢獻(xian)的(de)(de)程序代碼;嵌入式工(gong)程師們要走出(chu)自(zi)己(ji)的(de)(de)小(xiao)世界(jie)擁抱社群,與同領(ling)域(yu)的(de)(de)其(qi)他工(gong)程師們相互(hu)交流、互(hu)相幫助,而(er)這也是開放源(yuan)碼世界(jie)的(de)(de)精神。
3、離開舒適圈
雖然只當了18年工程師、但自認是系統與(yu)軟件技術“通才”的(de)DSP與(yu)嵌(qian)入式軟件開(kai)發(fa)顧問公司Jetperch創辦人(ren)Matt Liberty建議,不(bu)斷(duan)更新并提升原本(ben)擅長的(de)(de)技術(shu)雖(sui)然(ran)很重要,但嵌(qian)入式工(gong)程(cheng)師(shi)若能擴展自己的(de)(de)知識(shi)領(ling)域會更有益。走出舒適圈,挑戰(zhan)自我、去學習原本(ben)不(bu)熟悉的(de)(de)東(dong)西,包括工(gong)程(cheng)以外的(de)(de)知識(shi),例如(ru)與(yu)客戶(hu)、同(tong)事之間的(de)(de)互動(dong),將會收(shou)獲良多。
4、熟悉實時操作系統(RTOS)
在工程人才招募機構Randstad Technologies負責嵌入式產業領域(yu)的解(jie)決方案(an)經理Henry Wintz表示,目前(qian)產業界(jie)對(dui)于熟悉(xi)RTOS的(de)工程師(shi)需求很高,也愿意提供(gong)更高的(de)薪資(zi)水平(ping);因此他鼓勵沒有接(jie)觸過RTOS的(de)嵌(qian)入式工程師從一些(xie)較小型的(de)系統著手,累積相關技術經驗(yan)。此外他也發現產業界對嵌(qian)入式Linux人才有不少需求,主要是因為這種操作系統具備較大的(de)設計(ji)彈(dan)性。
5、培養多元化技能與系統觀
擔任近20年(nian)工程師(shi)、具備(bei)許多不同領域(yu)技(ji)術經驗(yan)的技(ji)術顧問(wen)公司Rebelbot顧問Jen Costillo建(jian)議,原本從事較小型系統架(jia)構(例如MCU)開發的(de)工程師,可以開始去(qu)熟悉更大的(de)系統(例(li)如Linux驅動程(cheng)序),反之(zhi)亦然(ran)。嘗試(shi)著去開(kai)發(fa)手機應用程(cheng)序、或者是學(xue)習后端服務器(qi)的相關技術,能讓你開(kai)啟完全不同的觀點;他并建議工程(cheng)師去熟(shu)悉開(kai)放性(xing)硬件,現(xian)在市面上(shang)有不少現(xian)成的開(kai)發(fa)板,能讓工程(cheng)師專(zhuan)注于學(xue)習獨特算法的開(kai)發(fa)。
6、了解軟件也要了解最新的處理器
有超過15年嵌入式軟(ruan)件工(gong)程師經驗的Embedded、fm工程師Elecia White表示,除了要深入了解C或C++等基本(ben)程(cheng)序語言,有(you)時也要(yao)認(ren)識一(yi)些(xie)熱門(men)的新(xin)程(cheng)序語言以因應特殊設計需求(qiu),但(dan)更重要(yao)的是了解(jie)最(zui)新(xin)的處理器技(ji)術;處理器才(cai)是嵌入(ru)式系統的本(ben)質(zhi)。因為我們的系統資源有(you)限,我們需要(yao)了解(jie)可用的資源有(you)哪些(xie)。
7、要能熟悉開放源碼軟件
擁有31年工程師(shi)經驗的Freescale Semiconductor數字網絡全球軟件開發部門總(zong)監Rob Oshana表示,客(ke)戶往往會要求在系(xi)統(tong)中整合(he)一大堆軟件(jian),因此所(suo)有的嵌入(ru)式工程(cheng)(cheng)師(shi)(shi)需(xu)要熟悉各種軟件(jian);他建議工程(cheng)(cheng)師(shi)(shi)避免只專長(chang)單(dan)一領域,因為那可能(neng)會阻礙你的成長(chang)。對(dui)嵌入(ru)式工程(cheng)(cheng)師(shi)(shi)來(lai)說,確保自己對(dui)軟硬(ying)件(jian)技術都很(hen)了解,是非(fei)常寶(bao)貴的價值。
8、建立系統級的工程思維
自詡為高信賴度嵌入式系統專家、擔任了15年工程(cheng)師的E2V電子系統(tong)總工程師Adam Taylor認為,嵌入式(shi)工程(cheng)師(shi)擁有(you)系統導向(xiang)的(de)(de)思維是很重要的(de)(de),有(you)不少開發(fa)案(an)遇到問題,就是因為沒有(you)在開發(fa)初期充分考慮(lv)基準(zhun)(zhun)、驗(yan)證策(ce)略以及兼容(rong)性驗(yan)證計劃等項(xiang)(xiang)目;此外(wai)每個嵌入式(shi)工程(cheng)師(shi)都應該具備優(you)良的(de)(de)項(xiang)(xiang)目管理技巧(qiao),力求準(zhun)(zhun)時(shi)完成負責的(de)(de)項(xiang)(xiang)目。具備能明智因應技術(shu)與項(xiang)(xiang)目風(feng)險的(de)(de)能力,對職(zhi)業生(sheng)涯發(fa)展會(hui)很有(you)幫助。
9、要能明確表達自己的想法與意見透過文字或繪圖
Micrum總(zong)裁Jean LaBrosse認為,無論(lun)是哪一種工(gong)程師,都需要能有(you)效表(biao)達自(zi)己(ji)(ji)的(de)想(xiang)法(fa)與(yu)意見;往(wang)往(wang)有(you)些菜鳥工(gong)程師無法(fa)清晰表(biao)達自(zi)己(ji)(ji)的(de)想(xiang)法(fa),因(yin)為抓不到重點,而(er)最好(hao)的(de)解決(jue)方法(fa)是練習將之圖形化,例如畫(hua)出(chu)流(liu)程圖。這(zhe)聽起來好(hao)像有(you)點過時(shi),但有(you)時(shi)利用(yong)各種圖框組合來整理自(zi)己(ji)(ji)的(de)思緒(xu)、表(biao)達想(xiang)法(fa)會(hui)是很(hen)有(you)用(yong)的(de),例如iPad的iThoughts應用程(cheng)序。
10、學習無線連結技術
自認是低階嵌入式工程師、有13年工作經驗的iRobot資深首席軟件工程師Chris Svec建議,嵌入式工程(cheng)師需要在接下來1~3年學習無線連結技術,特別是Wi-Fi與藍(lan)牙低功耗(BLE);因為現在的(de)(de)嵌入(ru)式設備(至(zhi)少各種消(xiao)費(fei)性電子都是(shi))與使用者智能手機連結(jie)的(de)(de)主要(或唯一)方式,就是(shi)透(tou)過(guo)這些無(wu)線技(ji)術,雖然Wi-Fi與BLE不一定(ding)會是(shi)嵌入式(shi)系統的標準配備(bei),但熟悉這些技術對(dui)嵌入式(shi)工(gong)程師來說會很(hen)實用。