有人這樣問我,嵌入式工程師辛苦嗎?聽到這個問題,我很想說什么不辛苦就會有成果呢,而且辛不辛苦只有經歷過才知道,要知道做什么都是要付出自己的努力,都會很辛苦的,每一行業辛苦點都不一樣,很多IT行業的人都會被問IT行業累嗎,而對于嵌入式來說,嵌入式的辛苦表現在這幾方面,一起來通過一位資深程序員與嵌入式有了3年緣分的人的經驗來看:
1. 單位早期的系統架構設計技術人員水平會決定你的工作狀態
曾經一家公司,一個while(1)開頭的裸奔系統,帶自己設計的消息機制,帶沒有DC的GUI,還自己擴展了一套中文編碼。在這套系統上有一系列的產品,每個新產品為了縮短開發時間,都沿用已有產品的代碼,又不敢做大的改動,應屆生在上面添加了新的糟糕的代碼,又遺傳到下一個產品中。每個新產品的bug數都在3000左右,軟件開發人員都痛苦無比。這種狀況一直到公司請來一個高水平的CTO,果斷引入uC/OS II 系統,移植MiniGUI,全面采用GBK和Unicode才有所改善。
你想知道后來怎么樣了嗎?后來當然是這套全新的系統又被一幫低水平的程序員給改亂了呀,又有一批新手接過了這套讓人痛苦的歷史包袱啊。
2. 硬件工程師同事的水平會決定你的工作狀態
如果硬件工程師靠譜,照著demo板改改畫出來的板子,打板回來,焊好元件,燒上demo程序,上電就能正常跑起來。否則,軟件就放假慢慢等著吧。
如果硬件粗心,把線連錯了,漏接了,你也許不得不自己從頭看datasheet,挨個檢查信號,幾天的時間也許就這么過去了。發現問題要幾個小時幾天,解決只需要幾秒鐘或者幾分鐘。問題解決得差不多了,板子也被飛線鋪滿了。
還有一次,我們兩個同事,坐飛機到芯片公司總部出差請求支援,結果被人家發現只是一根排線虛焊了呀,丟死人呀。
后來我長心了,開始軟件調試工作前一定要檢查硬件。
3.方案公司的方案以及支持力度決定了你的工作狀態
如果采用的芯片比較簡單,尤其早期的芯片,有的還不帶MMU,不能采用linux或者android這樣的高級系統,甚至不能移植uC/OS 這樣的多線程系統,一些像低電檢測這樣的任務實現起來是很別扭的。現在的芯片都強大多了,很多以前在舊平臺上引以為豪的奇技淫巧都不需要了。
不同公司方案的風格也很不一樣。我的總體印象,美國的芯片給你開放的東西很多,你可以做很靈活的定制開發,遇到問題你有能力可以自己嘗試解決。但是如果不是大客戶,支持力度很有限。臺灣的芯片方案基本上把什么就給你做好了,你換個logo做成產品,跟別家打價格戰去吧;但是很多模塊代碼是不開放的,你在上面能做的東西很有限,遇到問題需要上報,然后苦苦地等他們解決,發sdk新版本,也是很讓人頭疼的事。國內的方案接觸過的不多,用過一些小公司的小芯片,參差不齊,大部分給的datasheet顯得非常業余。
4. 公司財力、領導的眼光和氣魄決定了你的工作狀態
公司有錢,或者領導有決斷,買參考板,買幾萬塊的調試器,買個好用的示波器、邏輯分析儀,不知道能提高多少工作的效率。一幫軟件吭哧吭哧加串口打印,調試幾個星期或一兩個月,問題還不一定能解決,發的工資、浪費的時間、錯過的市場機會,不也是錢嗎?
所以,嵌入式工程師辛苦與不辛苦的因素有很多,不止上面這些,所以你需要的就是好好歷練,再來,也讓你知道一下嵌入式工程師發展前途,讓你心里有個譜
就嵌入式工程師而言現在在一線城市,一個成熟的嵌入式工程師薪資大概在15k到 20k 居多(整天在公司里混水的除外),當然更高的也有。當時剛剛入職薪資不會有那么可觀,一般新人技術熟練度和知識廣度都會有所欠缺,所以畢竟會經歷一個被企業培養和篩選的過程。在技術行業里沒有什么工作能一蹴而就,更不存在什么真正的鐵飯碗,如果想能拿到未來自己期望的薪水,初期一定要多實踐,多查閱資料。
同樣,技術行業就更不要奢求什么錢多事兒少離家近了,就算你爬到了主管經理級別也是一樣。還有急事加班,如果你想年薪20w+ 加班那是必然。
總的而言想要學習技術必須要肯吃苦有學習下去的動力。這樣前途會很光明錢途也會隨之而來。