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