行業(yè)頂級專家對嵌入式工程師的十點建議
隨著智能化的進一步擴張和物聯(lián)網的逐漸鋪開,嵌入式的重要性不言而喻,對應的嵌入式工程師們迎來空前的機遇同時,也感受到了對自身技術素質的考驗壓力。本文集合了來自行業(yè)內10位頂級專業(yè)人士的建議和忠告,所述內容字字珠璣,相信可以對處在各個階段的嵌入式工程師們都是非常有價值的參考。
1.了解網絡互聯(lián)的意義
通常來講,如果某個人懂得用C或者C++語言編程,其實已經證明這個人是個合格的嵌入式工程師了?;蛘呖梢哉f,這個人都已經可以憑這點解決許多工程問題了。
不過呢,懂得網絡技術將會使這個工程師獲益良多。舉個例子,一個優(yōu)秀的嵌入式工程師有時候會參與到將虛擬XML植入到嵌入式系統(tǒng)中的項目中。這是一個非常有潛力的方向,通過利用各種底層標準和專有協(xié)議來作用于網絡的抽象層,最終可以實現(xiàn)各獨立器件間的自發(fā)式大數(shù)據(jù)傳輸處理。也有人將此理解為網絡小設備的 “即插即用”版本,也是有一定的道理。
--來自Ken Wada,Aurium Technologies董事長
2.掌握搜索技術
這里講的不是關于搜索引擎的技術架構,而是普通的搜索引擎的使用。也就是說,嵌入式工程師要懂得利用手上的搜索工具去尋找自己需要的資源。
要學會高效的尋找對自己有用的開源代碼,浪費時間在自己琢磨開發(fā)上是非常不明智的,一定要懂得利用網絡中已經存在的那些共享資源,那些已經足夠支持你的想法了。
盡量把自己融入到各個有含金量的社區(qū)和論壇中,盡自己所能幫助其他會員,反過來你遇到困難的時候也會從那些人那里獲得自己需要的幫助,這絕對會使你事半功倍。一定要避免自己憋在家里絞盡腦汁地試圖單兵解決問題,“開源”,在專家的共享互動中能顯示出巨大的技術能量,要懂得激發(fā)和利用這種優(yōu)勢。
--來自Michael Anderson,PTR集團首席科學家
3.軟技術同樣重要
這里的軟技術同樣也不是指軟件技術,而是相對于純技術而言的工作技能,比如管理技能或者與客戶溝通的技巧。這看起來雖然不像是嵌入式工程師的工作范圍,但如果能夠掌握到這些技能,其實對于工程師本身在加深技能水平和擴展能力范圍上有非常大的幫助。
通過項目管理和了解客戶的行業(yè)特性,可以幫助嵌入式工程師了解身邊優(yōu)秀企業(yè)做某個項目時的出發(fā)點和難點,這會讓工程師在自身整體質素上有較大的飛躍。太倚重技術或太倚重管理都不是好的方法,在兩者間獲得一個平衡才能讓嵌入式的專家發(fā)揮最大的潛力。
--來自Matt Liberty,Jetperch公司創(chuàng)始人
4.積累實時操作系統(tǒng)技術經驗
目前有個趨勢,是那些既掌握了正規(guī)架構的開發(fā)知識、又能在RTOS(實時操作系統(tǒng))下工作的工程師們變得越來越炙手可熱,所要求的工資水平也水漲船高。這是因為這部分人既掌握了開發(fā)各種看重安全的產品所需的必要手段,又了解硬件的一些并發(fā)機制。比如一個CPU可能隨時被調用去執(zhí)行另一個任務,這時這類工程師將明白如何確保當前使用的一些資源不會因此受到影響。也就是說,這類工程師會懂得如何在保證性能的前提下,保護現(xiàn)有資源不受其它突發(fā)任務和程序的影響。
因此有些專注于小型器件但沒有在實時系統(tǒng)下工作的工程師們不妨開始接觸一些的開發(fā)技能。比如VxWorks、Green Hills INTEGRITY,或者 Micrium μC/OS等。近來對于嵌入式Linux的需求也非常強勁,因為Linux是屬于拓展性非常強的操作系統(tǒng),你可以把它做成專用于計時和調度的系統(tǒng)上傳到任何需要的硬件上,并針對系統(tǒng)的進一步優(yōu)化和控制進行核心部分的開發(fā)。
--來自Henry Wintz,Randstad Technologies方案經理
5.多元化的技術方向
如果你是關注在準系統(tǒng)或者小型MCU領域,那么最好是去上一節(jié)Linex驅動的輔導課程,這種培訓能讓你今后很容易就轉移到安卓領域。而如果你當前是專注于大型系統(tǒng),那就建議去試試準系統(tǒng)的學習。也就是說,通過制作移動App和學習后端服務知識,可能會讓你獲得新的開發(fā)視角和資源儲備。
另外,也可以去了解下開源硬件,如今可以隨時買到大量的開發(fā)板,這使得工程師們不需要整天圍著硬件打轉,而忽略掉算法上的研究。
雖然這種貌似跨界的做法會讓有些工程師感覺失落,曾經在硬件上的成就突然折半了一樣。但是其實這種技術多元化的理念可以讓你的職業(yè)道路越走越順暢,那些只是專注在某一方向上的人,很可能會在短期內遇到自己的瓶頸。
--來自Jen Costillo,Rebelbot公司首席顧問
6.緊跟處理器最新趨勢
有些人堅持每年都學習使用一項新的軟件,在他們認為學習越多的軟件工具就越有用。不過這只是對于純粹的軟件工程師而言,他們需要處理一些專門的應用需求。而嵌入式工程師,則需要多注意芯片方面的學習,深入了解C或者C++ 非常關鍵,但是在重要性方面,最新的編程語言卻很難與最新的處理器技術相提并論。
嵌入式專家來說,其天職就是了解各種處理器。嵌入式工程師使用的是有限資源的系統(tǒng),所以了解現(xiàn)存可用的那部分資源就非常重要。“Go”這樣新潮小巧的編程語言也許確實是很強大,但有個問題是它可能不會在我們這個有限資源的環(huán)境中運行。
每個工程師學習到的知識有深有淺、有窄有寬,但真正讓你成為專家的,是很小一部分你非常專精的那些技術。
--來自Elecia White,Embedded.fm嵌入式軟件工程師
7.盡情享用開源軟件
客戶們總是想把數(shù)以千計的軟件包塞進他們的系統(tǒng)中,所以這個時候,嵌入式工程師們對使用大量的開源軟件一定要心安理得。
同樣,讓自己只是浸泡在單一的技術領域是非常不明智的,因為你手上的那點技術量很可能短期內就過時或者遭遇瓶頸。對硬件和軟件的兩手掌握非常重要,目前來看,做到的那部分工程師們在行業(yè)中都非常吃香。
--來自Rob Oshana,飛思卡爾半導體數(shù)字網絡全球軟件研發(fā)總監(jiān)
8.培養(yǎng)自己的系統(tǒng)思維
具備系統(tǒng)的思維能力對一個嵌入式工程師來說非常重要,經常能看到一些團隊由于沒有在初期建立明確的需求框架、驗證策略和符合性演示計劃而導致整個項目過程非常艱難。嵌入式工程師們都應該牢固掌握一些項目管理的技能,這樣才會有能力保障項目的完成日期。通過技術與系統(tǒng)語言來理智地闡述項目會面臨的風險,這種能力將給一個嵌入式工程師的職業(yè)生涯帶來巨大的優(yōu)勢。
--來自Adam Taylor,E2V公司電氣系統(tǒng)工程主管
9.學會良好地表達自己的想法
不僅是嵌入式工程師,所有類型的工程師其實都應該學會高效地表達自己想法或打算。很多時候,主管都會被迫打斷一些初級工程師的講話,請求重新解釋某個概念,就是因為工程師們常常都在忘了重點的情形下不停地自己說下去。這時候,其實借助圖形的說明方法其實是效果最好的。
早期都是使用一些流程圖來闡釋概念,現(xiàn)在看來這些稍有點過時了。但嵌入式工程師們都至少應該掌握基礎的制作塊圖、狀態(tài)機圖、圖片、云形方形等手段的能力來輔助闡述一些概念,這在講述一些運行原理的時候尤其有用。
這很容易理解,想想一個給控制器寫軟件的開發(fā)人員坐在前面,你卻在試圖用一個全文字的工具來為他闡述機器的運行機制,這簡直是災難。
--來自Jean LaBrosse,Micrum公司董事長
10.學習無線連接技術非常重要
在接下來的1-3年里,嵌入式工程師最好能夠詳細了解那些常用的無線連接技術,尤其是WiFi和低功耗藍牙技術等。
眾所周知,與嵌入式設備互動的最佳端口就是智能手機,至少在消費電子領域是這樣的。消費電子廠商和其它一些行業(yè)廠商都已經搞明白,純粹一個嵌入式設備遠遠比不上一個手機能提供給用戶的使用舒適度。最主要的是,嵌入式設備將需要與智能手機的程序相連接,以達到自身升級和問題修復的目的。
--來自Chris Svec,iRobot公司高級主任軟件工程師
雖然所列的技能里面有些會存在爭議,但至少這是通過正式詢問多名嵌入式專家得到的信息,代表著每一項都至少是對于嵌入式工程師來說非常重要的技能,而除此之外,唯一沒有爭議的一點,應該就是電子行業(yè)的不斷發(fā)展,使得工程師要隨時且積極地學習新技能,才能保持與時俱進。