c/c++開發轉嵌入式(軟體/驅動)工程師好轉嗎?

我是今年大四的學生,找到了一個c/c++開發的工作(公司要求的知識:vim 、網路編程、資料庫、openresty),公司做智能支付的,其它都好,就是一直想從事嵌入式軟體/驅動方面的工作,大學也是學的電子信息工程專業,偏硬體些。現在秋招快完了,等春招就得拒了這個又不知道還有好企業沒。。。謝謝大神幫我分析下


1)擺正心態

我們上學的時候,買本書,跟著視頻敲著代碼,決心以後就做這個了,可是到了職場上,我們卻面臨著「任人宰割」的局面,我們的發展方向基本上要符合公司發展方向。很多時候不是我們想去做什麼,就一定能做成什麼。我在幾年前去了電源公司,本以為要做嵌入式產品,卻做了三個月的Qt的應用開發。作為一名公司職員,名義上是嵌入式演算法工程師,可能隨時因為公司需要,臨時組建開發小組,去解決當前的問題。如果真的有興趣,就自己去堅持學習這個方向的東西,當你把這個方向搞明白了,能解決問題了,哪位總監經理會傻到讓你去做不擅長的東西呢?這裡所謂的擺正心態,第一,就是擺正進入職場不能做自己想發展方向的心態,這是所有工作人面臨的問題,不要有情緒,好好做,技術都是相通的;第二,擺正學習心態,若真的喜歡嵌入式驅動這個方向,需要自己找時間學習。

2)嵌入式驅動真的好嗎?

嵌入式驅動,要學習的東西很多東西,根本就不是一朝一夕可以培養成的。學習成本很高,我們從單片機C開發上一點點學習,定時器、中斷和各種外設、通信介面,內存,寫時序;能看著原理圖編程,能知道一些簡單的放大硬體驅動,我們覺得很有成就,覺得這樣軟硬結合就是嵌入式了吧;然而,當我進入到Linux嵌入式系統的世界的時候,我們打開了新世紀的大門,原來還有這樣的天下。我們開始理解Linux是做什麼的,我們開始學習怎麼把Linux、boot移植到我們的平台,我們發現了我們使用的Linux系統,最大的用處就是來編譯Linux系統的;我們開始學習Linux編程,發現學會shell腳本編程如同配了一把利器; 我們開始做一個應用級的驅動閃爍一個LED,我們又考慮如何做一個內核級的LED驅動,然後發現,原來這麼簡單的驅動在Linux上需要按照標準的字元驅動的格式來書寫,我們對驅動開發產生了很大的興趣,勵志做一個嵌入式驅動開發工程師;接著,我開始研究Linux內核,了解裡面的機制,開始聽到很多自旋鎖,進程信號量這些從來沒有聽過的辭彙,我們進入到內核代碼里,發現原來C語言還可以這麼用,還有這樣的操作方式,再一次感嘆C語言的神奇。

可是在工作中,嵌入式的驅動開發很簡單亦很難,簡單在我們可以移植別人的驅動,可以稍微修改那些穩定的成形廠商的驅動,只要我們把嵌入式驅動開發流程把握的清晰,就不需要考慮內部到底是一個什麼過程,就能很好的搞定它,久而久之,我們會變的懶惰;難在從頭到位開發驅動,可這樣的工作,是超級巨大的,一個驅動往往需要一個開發組進行,分到你頭上,可能就是一個很小的部分。中小型公司靠移植,大型公司會分工開發,沒有人說,我完整的開發一個驅動,除非他真的是很簡單簡單不值一提的驅動。面對著這樣的工作量,我們卻要學著好多好多東西來鋪墊,真是一個矛盾的事情。

3)關於轉型

我覺得技術都是相通的,就好比Qt的信號與槽,剛開始學的時候以為什麼東西,其實不就是單片機的中斷信號和中斷服務函數的關係么。。無論你在應用級開發還是驅動級開發,都用到C或者C++,不斷使用和演繹,你的熟練度就越熟,越熟練就越有創意!重要的是這種編程思維,好好做一份工作,這種技術崗位都差不多吧。


沒基礎的話就來深圳吧不缺工作的只是待遇會低一些 想做驅動的話要積累很多越早越好


剛剛開始畢業因為我接觸過驅動,看過一點點內核的源碼,所以我最最剛剛開始也是想做驅動。

但是。。。命運弄人,我被分配到了做單片機和視頻相關的東西,不過我沒有放棄,我還是認或者真的做了,之後公司替換晶元,使用STM32,所以我順勢就開始做了一些這些東西,直到現在,我才發現,驅動沒那麼好做,需要積累的代碼和協議太多了。

所以,如果你真想做,我給你的建議是,首先認真做好當前工作。1、當你越專越深的時候或者你就不再想做驅動了。2、工作一段時間,如果你還有想做驅動的念頭,那麼你要開始苦逼的看源碼了,從kobj開始吧,熟悉一點源碼以後就可以開始看驅動的代碼了。3、完成2之後如果你沒有放棄並且興趣大增的話說明你真的開始驅動之路,這時隨著你的積累或者你可以和公司申請給你做一部分驅動工作。

另外,如果你真的想來kobj的話可以回復我,我給你推薦一個系列帖子,寫得非常好。


沒事的,技術行當,套路都是差不多的,只是應用層就業面廣一些,底層就少一些,喜歡底層的工作的話以後可以慢慢學習,你這個時機最好先就業安穩一下,別錯過了。


不好。

你非要做技術的話,給銀行做技術。

離錢越近你就越有錢。


來來來,看我簡介,你看我這個知乎號頭像都沒有,肯定是混的差啦。。。題主你也是有追求啊,我還從沒見過主動有意願和熱情進入這個夕陽行業的。。。怎麼說呢,過幾年希望題主不要後悔,哈哈

不過講個正經的,如果你在嵌入式方面經驗足夠豐富,能力夠強,還是很吃香的,不過市場需求量沒有其他計算機相關行業需求那麼大,以後跳槽可能會碰到各種不如意和限制


同專業。然後方向C++後台服務。。。。老鐵這樣讓我很尷尬啊


推薦閱讀:

mfc中CString如何轉化為const char*類型?
#define 不是簡單的替換嗎,為什麼下面的代碼錯誤?
當把一個char類型轉換成int型的時候計算機里究竟而發生了什麼?
OpenMP在實際開發中應用多嗎?
對於 C/C++ 函數指針的困惑?

TAG:C | CC | 嵌入式開發 |