我是自動化應屆畢業的,大學的時候學習也不是很好,看韋東山的視頻入了嵌入式的門。

後面就面試了現在這個公司,面試的時候說是做驅動方面的,入職後就做了些系統移植的工作。

以前這方面的知識學的比較少,公司做技術的一共才6個人,公司又只有我一個人做這方面的,其他人都是做fpga方面的,有一個老大是做演算法的,他懂得比較多,有時會給我一些指導。

但大部分時間都是我自己在找資料,而網上的教程很少,每次都把時間浪費在找資料和驗證資料的正確性上了。

感覺每次接觸到的知識都不是很深,而且很繁瑣。在這種情況下該如何提升自己的技術呢?


私以為,未來的工程師應該是軟硬兼修的,FPGA也不再是單純的FPGA的,都在往SoC發展,就是一個FPGA裏除了原有的可編程邏輯資源,還會塞幾個ARM的核,跑跑操作系統,比如典型的xilinx公司的Zynq 7020晶元,裡面就帶兩個ARM9的核,可以跑Linux系統。

而其他傳統的ARM SoC,也變得多核異構了,通常有幾個A53,外加幾個R4/R5,然後再帶個神經網路加速器NPU。比如RK3399這樣的片子。

所以,對於嵌入式這個方向來說,要學習、研究的知識是非常多的:

一方面,要掌握Linux操作系統,驅動開發、移植等必修的技能,同時還要熟悉市場上主流的一些SoC相關的硬體知識,至少能順利地將定製的硬體板子boot成功,驅動load成功。

另一方面,看公司或者說個人的發展方向了。目前國產化的CPU(比如龍芯、飛騰等)和國產化的操作系統(比如UOS、SylixOS等)勢頭很好,因為中美貿易戰的原因,未來5-10年內做國產化相關的生意/工作,都會是不錯的選擇。

除了操作系統、驅動等一些基本的技能之外,嵌入式還有一些比較細的分支。

比如搞物聯網,用成本的MCU(STM32F1/F4之類)的,跑個RTOS(或國產RTOS,如RT-Thread),對接阿里雲或其他私有雲,近幾年也蠻火的。就是需要對網路方面知識要了解多一些,wifi、2G/4G、mqtt協議、大數據平臺等等,以及要對各種硬體感測器比較瞭解。物聯網技術門檻不高,主要要看公司業務能力。

除此之外,作為嵌入式開發,Qt這種跨平臺的GUI框架,很有必要熟練掌握的,好在qt的資料多、文檔全,學起來不難。

所以說,嵌入式開發要學的東西蠻多的。操作系統、驅動、網路、硬體、GUI,一個都不能少。不過好在這些知識更新比較慢,可以有比較長遠的規劃、積累,而且不會像一般碼農那樣容易被淘汰。

最後,剛畢業不要輕易跳槽,在一個項目上多沉澱一些積累,可以觸類旁通。


從你的問題能獲取的信息:

1. 工作環境為小公司。公司不管大小,自有它生存之道,小公司也有大佬,不管是技術還是管理等。

2. 工作方向為嵌入式,嵌入式分很多種,硬體,軟體,再細分更多。(這裡吐槽一下,你可以把工作具體方向介紹更清楚點,工作中尤為如此,當你請教別人的時候,如果自己都沒弄清楚,沒帶入到問題裡面去,別人可沒時間在那聽一個連問題都講不清楚的人囉嗦);

3. 如何提升自身技術能力?自我學習提高,自己在公司鍛煉自己,請教大佬,實踐動手分析解決問題,方法多了去。

ok,簡單點,題主現在一家小公司搞嵌入式(具體搞啥的不清楚,可能是打醬油的,也可能是畫燒餅的…),好比玩dota的菜鳥,雞不買,眼也不做,玩的還渣,大神都不願帶你,現在只好到知乎請教各位:

菜鳥:大神,我應該怎麼提升dota技術啊?

大神:你打幾號位?

菜鳥:我不知道,就問問

大神:你不曉得問個鎚子,滾滾滾。

好多職場新人問別人問題的時候有幾個毛病,一是從不先自己好好思考,沒把自己帶入到問題裡面就到處問人;二是喜歡拋一個模稜兩可或者籠統的問題,指望別人給他頭頭尾尾指導一遍,最好親自動手示範一遍。結果是自己不會思考,問多別人很煩,個別大佬甚至會叼你。別不愛聽,事實就是如此!

回到問題本身,假設你現在的情況如下:

1、公司技術缺乏(小公司確實也存在部分開發和管理不規範的問題,產品能用就好),這種情況只能通過自己學習提高,補充專業知識,學習和提高做事和解決問題方法,學會規範化流程設計等等,互聯網這麼發達的時代,想學習瞭解這些東西不難,畢竟波老師的電影大部分男生硬碟都塞滿的!

2. 公司有大佬,要學會自我思考,和請教別人方法,大佬也是從菜雞出道,相信不是人人都不理你。從大佬們身上學習做事和解決問題的方法,同時自己業餘時間多學習提高自身的專業知識;

3、跳槽到大公司,接觸更規範和專業的環境提升自己,同時自己業餘時間學習提高自己。

還有問題的話,請關注我吧


就你的描述來看,感覺你現在沒有形成自己學習的方法論,其實這個東西很重要,就是你平常收藏的一些網站和常用的學習工具,這個東西我是在讀研的時候慢慢掌握的,就是自己的核心競爭力,我覺得這些東西你要自己找找,自己摸索吧,一般人都不會分享出來的(包括我),小公司的成長確實覺得前途渺茫,我在小公司呆過兩個月就走了(做激光器的)後面去了紫光展銳,然後又讀研來了,現在覺得清晰了很多,其實知乎現在還有很多寶,看你怎麼搜索啦,加油!


我目前差不多就是這麼個環境啊,我最初做的是嵌入式硬體,然後開始做stm32的程序編寫(硬體一直幹著,都做),由於工作需要偶爾也謝謝fpga的程序。目前在找時間學linux和cortex-a的程序編寫。

要說提高,首先自己得想學,然後借鑒公司做的項目,每個自己負責的部分多思考,在改善功能的同時每次加一些自己沒做過的,用以學習提升。畢竟沒有公司項目的刺激,自學還是太慢堅持了。嵌入式軟體和硬體可以分,到最好別分的太細,這個方面多瞭解是可以互相促進的。比如我在學習了程序編寫後就明白了硬體可以如何更好的變通和設計。提高技術還是要自己多學多動手,現在網上資料這麼多,想學還是很好找資源的。


夯實語言基礎,可以多關注一些開源的項目,並且動手做做,研讀代碼,同時記得記筆記總結,現在也有很多人會寫些公眾號文章,其中不乏優質乾貨文章,融入社區積極參與討論,看看業界人士都在做什麼


嵌入式就是這個樣子啊,教程不多。

很多問題靠查datasheet和實測來解決。

不過說實話,我如果是你的話,會學FPGA,個人感覺比玩ARM-LINUX的,cortex-M系列的技術深一點,僅限個人感覺。


找準方向,接這方面的活。幹就完了。小公司可能沒有大神帶,那隻能自己磕了,想要哪方面發展,只能自己探索了。大公司也靠運氣,比如,大神是否帶你。。。,不帶的話,也得自己磕。唉,說白了,找準方向,堅持不懈,抓住機會。


開始最好能去大廠歷練幾年,跟著幾個項目走一遍。小公司面窄且沒有技術積累,建議看機會跳槽。


推薦閱讀:
相關文章