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