【嵌入式軟件工程師】過來人給嵌入式軟件工程師的十個(gè)建議
回顧1980年代的嵌入式領(lǐng)域,,當(dāng)時(shí)的工程師主要是設(shè)計(jì)混合信號(hào)電路,、連接微控制器、撰寫低階編碼,、從外面拿回產(chǎn)品原型…只要一個(gè)工程師就能做好以上所有事情,。但是現(xiàn)在,嵌入式系統(tǒng)變得更大,、更復(fù)雜,,一臺(tái)設(shè)備可能有數(shù)百萬(wàn)行軟件程序代碼,;嵌入式技術(shù)也被區(qū)分為硬件開發(fā)、固件開發(fā)與軟件開發(fā),。
在很多大公司仍然是如此,但趨勢(shì)似乎又有回頭的跡象,;有越來越多業(yè)者開始整合工程師的角色,,尋找既熟悉軟件也熟悉硬件技術(shù)的工程師,以求事半功倍之效,。調(diào)查顯示,現(xiàn)在有越來越多工程師的工作同時(shí)牽涉硬件與軟件技術(shù),。
有越來越多工程師需要軟硬件技術(shù)能力兼?zhèn)?/strong>
嵌入式技術(shù)日進(jìn)千里,,工程師要如何確保自己學(xué)習(xí)到的新技術(shù)是最關(guān)鍵的?為此EETimes美國(guó)版請(qǐng)教了九位嵌入式領(lǐng)域?qū)<遗c一位負(fù)責(zé)招募人才的主管,,請(qǐng)他們分享究竟現(xiàn)在的嵌入式工程師最需要掌握哪些重要技能,;雖然他們的意見稍有不同,但都同意一個(gè)觀點(diǎn):所有的工程師都不應(yīng)該停止學(xué)習(xí),。
以下是整理專家意見,,歸納出的十個(gè)給嵌入式工程師的建議:
1、學(xué)習(xí)那些讓因特網(wǎng)實(shí)現(xiàn)的技術(shù)
具備30年嵌入式工程師經(jīng)驗(yàn)的獨(dú)立產(chǎn)品設(shè)計(jì)與顧問公司Aurium Technologies總經(jīng)理Ken Wada認(rèn)為,,多數(shù)嵌入式領(lǐng)域工程師都知道如何撰寫C或C 語(yǔ)言程序,,但有時(shí)候這樣的技能是不夠的;他建議嵌入式工程師學(xué)習(xí)因特網(wǎng)有關(guān)的技術(shù),,對(duì)職業(yè)生涯發(fā)展會(huì)有加分效果,,例如他目前負(fù)責(zé)的幾個(gè)開發(fā)案,都是在嵌入式系統(tǒng)中嵌入虛擬(virtual)的XML,,好讓一些小型連網(wǎng)設(shè)備能具備“即插即用”的運(yùn)作模式,。
2、學(xué)習(xí)利用搜索引擎
當(dāng)了35年工程師,、自認(rèn)是“看得懂系統(tǒng)架構(gòu)的軟件人”的PTR Group首席科學(xué)家Michael Anderson認(rèn)為,,不要閉門造車,要善用開放源碼世界的信息,,很多常見的設(shè)計(jì)問題其實(shí)透過因特網(wǎng)就能找到同領(lǐng)域菁英貢獻(xiàn)的程序代碼,;嵌入式工程師們要走出自己的小世界擁抱社群,與同領(lǐng)域的其他工程師們相互交流,、互相幫助,,而這也是開放源碼世界的精神。
3,、離開舒適圈
雖然只當(dāng)了18年工程師,、但自認(rèn)是系統(tǒng)與軟件技術(shù)“通才”的DSP與嵌入式軟件開發(fā)顧問公司Jetperch創(chuàng)辦人Matt Liberty建議,,不斷更新并提升原本擅長(zhǎng)的技術(shù)雖然很重要,但嵌入式工程師若能擴(kuò)展自己的知識(shí)領(lǐng)域會(huì)更有益,。走出舒適圈,,挑戰(zhàn)自我、去學(xué)習(xí)原本不熟悉的東西,,包括工程以外的知識(shí),,例如與客戶、同事之間的互動(dòng),,將會(huì)收獲良多,。
4、熟悉實(shí)時(shí)操作系統(tǒng)(RTOS)
在工程人才招募機(jī)構(gòu)Randstad Technologies負(fù)責(zé)嵌入式產(chǎn)業(yè)領(lǐng)域的解決方案經(jīng)理Henry Wintz表示,,目前產(chǎn)業(yè)界對(duì)于熟悉RTOS的工程師需求很高,也愿意提供更高的薪資水平,;因此他鼓勵(lì)沒有接觸過RTOS的嵌入式工程師從一些較小型的系統(tǒng)著手,,累積相關(guān)技術(shù)經(jīng)驗(yàn)。此外他也發(fā)現(xiàn)產(chǎn)業(yè)界對(duì)嵌入式Linux人才有不少需求,,主要是因?yàn)檫@種操作系統(tǒng)具備較大的設(shè)計(jì)彈性,。
5、培養(yǎng)多元化技能與系統(tǒng)觀
擔(dān)任近20年工程師,、具備許多不同領(lǐng)域技術(shù)經(jīng)驗(yàn)的技術(shù)顧問公司Rebelbot顧問Jen Costillo建議,,原本從事較小型系統(tǒng)架構(gòu)(例如MCU)開發(fā)的工程師,可以開始去熟悉更大的系統(tǒng)(例如Linux驅(qū)動(dòng)程序),,反之亦然,。嘗試著去開發(fā)手機(jī)應(yīng)用程序、或者是學(xué)習(xí)后端服務(wù)器的相關(guān)技術(shù),,能讓你開啟完全不同的觀點(diǎn),;他并建議工程師去熟悉開放性硬件,現(xiàn)在市面上有不少現(xiàn)成的開發(fā)板,,能讓工程師專注于學(xué)習(xí)獨(dú)特算法的開發(fā),。
6、了解軟件也要了解最新的處理器
有超過15年嵌入式軟件工程師經(jīng)驗(yàn)的Embedded,、fm工程師Elecia White表示,,除了要深入了解C或C 等基本程序語(yǔ)言,有時(shí)也要認(rèn)識(shí)一些熱門的新程序語(yǔ)言以因應(yīng)特殊設(shè)計(jì)需求,,但更重要的是了解最新的處理器技術(shù),;處理器才是嵌入式系統(tǒng)的本質(zhì)。因?yàn)槲覀兊南到y(tǒng)資源有限,,我們需要了解可用的資源有哪些,。
7,、要能熟悉開放源碼軟件
擁有31年工程師經(jīng)驗(yàn)的Freescale Semiconductor數(shù)字網(wǎng)絡(luò)全球軟件開發(fā)部門總監(jiān)Rob Oshana表示,客戶往往會(huì)要求在系統(tǒng)中整合一大堆軟件,,因此所有的嵌入式工程師需要熟悉各種軟件,;他建議工程師避免只專長(zhǎng)單一領(lǐng)域,因?yàn)槟强赡軙?huì)阻礙你的成長(zhǎng),。對(duì)嵌入式工程師來說,,確保自己對(duì)軟硬件技術(shù)都很了解,是非常寶貴的價(jià)值,。
8,、建立系統(tǒng)級(jí)的工程思維
自詡為高信賴度嵌入式系統(tǒng)專家、擔(dān)任了15年工程師的E2V電子系統(tǒng)總工程師Adam Taylor認(rèn)為,,嵌入式工程師擁有系統(tǒng)導(dǎo)向的思維是很重要的,,有不少開發(fā)案遇到問題,就是因?yàn)闆]有在開發(fā)初期充分考慮基準(zhǔn),、驗(yàn)證策略以及兼容性驗(yàn)證計(jì)劃等項(xiàng)目,;此外每個(gè)嵌入式工程師都應(yīng)該具備優(yōu)良的項(xiàng)目管理技巧,力求準(zhǔn)時(shí)完成負(fù)責(zé)的項(xiàng)目,。具備能明智因應(yīng)技術(shù)與項(xiàng)目風(fēng)險(xiǎn)的能力,,對(duì)職業(yè)生涯發(fā)展會(huì)很有幫助。
9,、要能明確表達(dá)自己的想法與意見透過文字或繪圖
Micrum總裁Jean LaBrosse認(rèn)為,,無論是哪一種工程師,都需要能有效表達(dá)自己的想法與意見,;往往有些菜鳥工程師無法清晰表達(dá)自己的想法,,因?yàn)樽ゲ坏街攸c(diǎn),而最好的解決方法是練習(xí)將之圖形化,,例如畫出流程圖,。這聽起來好像有點(diǎn)過時(shí),但有時(shí)利用各種圖框組合來整理自己的思緒,、表達(dá)想法會(huì)是很有用的,,例如iPad的iThoughts應(yīng)用程序。
10,、學(xué)習(xí)無線連結(jié)技術(shù)
自認(rèn)是低階嵌入式工程師,、有13年工作經(jīng)驗(yàn)的iRobot資深首席軟件工程師Chris Svec建議,嵌入式工程師需要在接下來1~3年學(xué)習(xí)無線連結(jié)技術(shù),,特別是Wi-Fi與藍(lán)牙低功耗(BLE),;因?yàn)楝F(xiàn)在的嵌入式設(shè)備(至少各種消費(fèi)性電子都是)與使用者智能手機(jī)連結(jié)的主要(或唯一)方式,就是透過這些無線技術(shù),雖然Wi-Fi與BLE不一定會(huì)是嵌入式系統(tǒng)的標(biāo)準(zhǔn)配備,,但熟悉這些技術(shù)對(duì)嵌入式工程師來說會(huì)很實(shí)用,。