在中國,pc(主要是windows-intel體系)軟體開發程式設計師,也就是「純軟體程式設計師」的「**年齡段」較短是乙個不爭的事實,一般純軟體程式設計師到了30—35歲就必須考慮轉型問題,否則在中國程式設計師工作強度普遍較大這一現實情況下,無論是體力還是新知識的接收速度都無法與20出頭的年輕程式設計師相比。轉型的方式有多種:轉向系統分析師,離開程式設計第一線;轉向it職業培訓講師;轉向市場、管理等職位,放棄技術工作;自行創業等,這些轉型方式都是不錯的選擇。
但很多長年從事技術工作的程式設計師,如果從事技術之外的工作,可能存在適應問題,市場、管理、自行創業等轉型方式自己未必覺得適合。如果在30—35歲之後仍然決定從事技術工作,也可以選擇轉向嵌入式系統開發,也就是純軟體程式設計師轉型成為嵌入式系統工程師。
業界公認:嵌入式系統工程師,包括硬體工程師和嵌入式軟體程式設計師,生命週期要比純軟體程式設計師長得多,待遇相對也高一些。主要原因是嵌入式系統多用於工業等領域,在這些領域中,嵌入式系統應用面千變萬化,技術成熟程度、可靠性、成本等是決定系統選型的核心問題,華而不實的東西比較少,像microsoft和intel那樣壟斷pc市場軟硬體,聯合起來從使用者口袋裡掏錢這種行為難以存在,新技術往往不是被追逐的物件,成熟技術是更容易被接受的,例如8051系列微控制器已經使用了20多年,現在仍然被大量使用。
筆者正處在這種轉型即將完成之時,總結經驗教訓,筆者提出自己的幾點看法,談一下純軟體程式設計師向嵌入式系統工程師轉型時需注意的一些問題:
1、澄清乙個誤區——wince和嵌入式linux並不完全等於嵌入式系統開發
目前,一談到嵌入式系統,就容易談到wince和嵌入式linux,還有.net compact framework和j2me等,許多純軟體程式設計師,學會了wince開發,學會了嵌入式linux開發,就認為自己已經入門或者精通了嵌入式系統開發。其實wince和嵌入式linux本身只是嵌入式作業系統(eos),它們均來自相應的pc作業系統——windows和linux,.net compact framework和j2me也來自相應的pc虛擬機器平台——.net framework和j2se,這類eos和虛擬機器平台只能用於高檔嵌入式系統硬體,例如手機或者pda,軟體開發使用的硬體本身是乙個成熟的硬體平台,例如一部成品手機/pda,或者一塊帶有tft lcd和觸控螢幕的實驗板,這種嵌入式軟體開發和相應的pc軟體開發極其相似,甚至是趨同的,很少直接和硬體打交道。這類嵌入式系統開發只是嵌入式系統開發中的很小一部分而已,主要用於消費類電子產品的開發,很少用於工業領域。
2、硬體能力的提公升十分關鍵
嵌入式系統開發涉及的知識面比純軟體開發更大,嵌入式系統工程師的付出可能數倍於純軟體程式設計師。這一方面是因為嵌入式系統是「嵌入」的,也就是用於大系統或者產品內部的廣義計算機軟硬體系統,非常容易涉及到交叉學科和領域,例如:乙個智慧型電力儀表內部使用的嵌入式系統,開發時工程師就必須懂得電力方面的相關知識;乙個智慧型化工儀表內部使用的嵌入式系統,開發時工程師就同樣必須懂得化工方面的相關知識,否則不僅不能很好地完成開發,還可能出現產品無法適應電力、化工等行業特殊環境的問題,甚至可能因為錯誤開發而引發電力、化工等方面的嚴重事故。另一方面就是因為嵌入式系統開發包括了硬體開發,即使軟體開發也很容易直接涉及到硬體,因此提高自身的硬體能力也就成為純軟體程式設計師向嵌入式系統工程師轉型的關鍵問題了。
對於缺乏硬體和電路基礎的純軟體程式設計師,向嵌入式系統工程師轉型時,提高硬體和電路能力非常重要。在這方面沒什麼捷徑可走,一方面是基礎知識的學習,重點是大學裡學過的《模擬電子技術》、《數字電子技術》、《計算機組成原理》等課程的內容;另一方面就是動手,這是最重要的,沒聽說過哪個電子高手是看書背書練成的,都是電烙鐵和萬用表下練出來的,自己購買元器件、電烙鐵、萬用表、程式設計器等必須的材料和工具,自己查資料設計電路,自行動手焊接製作實驗板和電路,不要依靠成品實驗板,是提高嵌入式系統硬體能力的有效方法,在這方面不要怕「出血」——學成之後的收入會對得起你,但是,學習之時必須坐得住冷板凳——學技術都應該是這個態度。
3、不可盲目懷舊
某些嵌入式軟體開發與dos軟體開發有一定的相似之處,例如硬體完全透明,大量使用c語言甚至組合語言等,很多dos時代過來的純軟體程式設計師容易在嵌入式軟體開發上懷舊,認為dos軟體開發又回來了。適當懷舊也無不可,但如果認為嵌入式系統開發是dos開發的翻版,那就大錯特錯了。前面說過,嵌入式系統是乙個涉及面更大的領域,硬體從低檔的8051一直到高檔的arm9、mips64等,軟體從組合語言一直到.net compact framework和j2me,現代軟體開發思想——物件導向、設計模式、體系結構、軟體工程等仍然指導著嵌入式軟體開發,而且有逐漸深入的趨勢。盲目懷舊會影響自己對新技術、新知識和新思想的學習,須知就算是嵌入式系統開發新技術更新較慢,但新技術仍然是大量湧現的,10年前十幾塊晶元組成的電路可能現在只需要一塊soc mcu就能實現,10年前幾百行幾千行組合語言程式的軟體開發規模,現在8051的軟體開發規模都可能達到幾千行甚至上萬行c語言程式,不引入現代軟體開發思想是行不通的。
柏楊先生在他的著作《醜陋的中國人》中曾經辛辣地諷刺了我們這個民族的某些劣根性,其中有乙個就是「向後看」、「向古看」以及「古時什麼都好」。例如今天有人看到上學貴、看病貴和住房貴,就說「70年代最好,上大學不要錢,看病免費,福利分房,還不如回到70年代」,殊不知70年代上大學確實不要錢,還有補助(一直延續到80年代初),可是高考公升學率不到10%;70年代看病免費,可是當時一家生好幾個孩子有幾個養不活是常事;70年代福利分房,可是一家三代人擠十幾平方公尺的房子也是常事,筆者敢說一句話,把適應了今天的生活,卻拼命說70年代多好的人,讓他們真正過一段時間70年代的生活,不消乙個月,十個裡面有九個又都會拼命說吃不消的。現在某些報刊、雜誌和**經常盯著所謂的「80後」和「90後」年輕人說事,拿個例當常例,把一些缺點無限放大,說「80後」和「90後」是「垮掉的一代」,這些話聽著玩可以,但作為老程式設計師,我們應該捫心自問:為什麼我們會被20出頭甚至十七八歲的「80後」和「90後」程式設計師所淘汰?是什麼逼得我們轉型的?
「長江後浪推前浪,前浪死在沙灘上」,「沉舟側畔千帆過,病樹前頭萬木春」,盲目懷舊,放棄學習,只會讓自己更快地被淘汰,純軟體開發如此,嵌入式系統開發同樣如此。嵌入式系統雖然沒有太多華而不實的更新和公升級,更加依靠工程師的經驗,適合基礎牢固和經驗豐富的老一代程式設計師轉型,但這只能說是更適合老一代程式設計師的實際情況一些,絕不是意味著轉型後可以放棄對新技術、新知識和新思想的學習。
純軟體程式設計師選擇向嵌入式系統工程師轉型,這是一條充滿艱難險阻的道路,但一旦選擇了這條道路,堅持走下去,可能會獲得意想不到的成功。願中國嵌入式系統開發產業的熊熊烈火早日被點燃!
純軟體程式設計師向嵌入式系統工程師轉型時需注意的問題
在中國,pc 主要是 windows intel 體系 軟體開發程式設計師,也就是 純軟體程式設計師 的 年齡段 較短是乙個不爭的事實,一般純軟體程式設計師到了30 35歲就必須考慮轉型問題,否則在中國程式設計師工作強度普遍較大這一現實情況下,無論是體力還是新知識的接收速度都無法與 20出頭的年輕程...
純軟體程式設計師向嵌入式系統工程師轉型時需注意的問題
一席話十年書,不錯 url 在中國,pc 主要是windows intel體系 軟體開發程式設計師,也就是 純軟體程式設計師 的 年齡段 較短是乙個不爭的事實,一般純軟體程式設計師到了30 35歲就必須考慮轉型問題,否則在中國程式設計師工作強度普遍較大這一現實情況下,無論是體力還是新知識的接收速度都...
嵌入式Linux系統工程師學習大綱
嵌入式linux 系統工程師就業班 1 入學基礎考試複習大綱 1 作業系統部分 3 n主要參考書 3 n基本概念和基礎知識 3 c語言 資料結構與程式設計部分 4 n使用教材及參考書 4 n考試的基本要求 4 n基本概念和基礎知識 4 n程式設計部分要求 4 微機原理與接 術部分 5 n使用教材及參...