再说嵌入式入门
我之前寫過幾篇嵌入式入門的文章?
不過我的讀者還是覺得不夠過癮,我覺得還是要著重說一下嵌入式軟件應該重點學習什么,guoqing收假最后一天寫文。
精通C語言?
精通C語言?
精通C語言
C語言對于嵌入式軟件來說就是他的命脈,不懂C語言的人根本就不能說想搞嵌入式,而想學好嵌入式,那么就必須要精通C語言,你在大學,可以不參加電賽,不跟老師做項目,但是一定要學好C語言,如果說切菜是廚師的基本功,那么C語言就是嵌入式程序員的基本功,這也是很多招聘公司把C語言來考察面試者的原因。
分享一份C語言學習資料,這個資料是比較全面的,都是電子書,大家有選擇性閱讀,目前為止應該是最全面,最好的C語言學習pdf資料了。
鏈接:?
https://pan.baidu.com/s/15LZKixjFQzs0ZNfOo2ZWpQ
提取碼:?
gx7w
熟練數據結構和算法
數據結構和算法有點因崗位而異,有的崗位基本很少用到數據結構和算法,可能工作十來年,掛著一個嵌入式軟件的頭銜,結果沒寫過一個鏈表,基本的語法都是一些 if 和鎖 ,控制GPIO口之類的,但是用不到不等于不學,我們所知道的所有操作系統,都脫離不開數據結構和算法,而且嵌入式軟件是需要和操作系統代碼強相關的,嵌入式軟件的代碼依賴操作系統的代碼來運行,學習好數據結構和算法,可以讓你看到豬是怎么跑的,但是至于以后入職工作,能不能用這方面的技術來吃豬肉,那就要看緣分了。
數電模電基礎
嵌入式軟件不同于互聯網,很大一部分就是因為跟硬件息息相關,所以必須要有數電和模電基礎,像一些鎖相環,與門,或門之類的東西,我們是需要清楚的,純軟件開發可能不需要懂這方面,但是電子技術的話,這些基礎是必不可少的。
模電是很多人的一個心病,我當年也是學不好,像三極管,二極管,mos管之類的,還要理解一些電路設計,這部分是大學電子課程的基礎,當然,如果你沒有這個機會,可以買幾本書來學習下。
從51單片機開始
我覺得搞電子的每個人都應該學習51單片機,很多直接從ARM開始學習的也學得很好,能找到一些不錯的工作,但是我還是建議從51開始,51學起來也不難,還能練習C語言,51用來裸跑是非常不錯的,理解CPU的工作原理,學習一些通信協議,比如I2C,SPI,點亮LED燈,練習下中斷,定時器,后面再做做多任務,學完多任務后,就可以去學習系統相關的東西了。
學習嵌入式系統
嵌入式系統,這個東西就比較多了,在學習51之后,你可以學習STM32,STM32標配的就是freertos系統,系統是從多任務衍生過來了,你理解了多任務,再學習系統就不是什么難事了,實時系統我還是推薦學習freertos。
分時系統的話,那肯定是Linux了,如果你跟我一樣,特別喜歡Linux,你也可以直接上Linux 學習,Linux是一個很大的東西,有應用,驅動,運維,如果你做嵌入式,就一定不是運維之類的工作,所以,Linux私房菜 這類的書籍是不適合你的,你要看的是《Linux 設備驅動》,《Linux內核設計和實現》這類的書籍。
嵌入式軟件面試
C語言是每個嵌入式軟件面試必備的,我記得我在畢業的時候,去參加一個公司面試,被要求當場寫一個鍵盤掃描的程序,剛開始是比較緊張的,我拿到這個題目的時候,也是一愣一愣的,后來我緩了一下,我認為我自己的知識儲備完全可以拿下這樣簡單的面試題,就是那次,我當場在面試官面前寫了鍵盤掃描的程序,雖然是很簡單的代碼,但是第一次面試還是比較緊張的。
我想說明一件事情,我們從大學里面學到的東西,如果都認真學習了,完全可以應對面試題目,但是面試的松弛程度,緊張程度,是需要我們不斷練習,最后孰能生巧,不緊張了,表現好自己,拿下offer的概率就會增大的,網上那些100%拿下offer的分享,我是不相信的,面試本身就是技術加臨場表現的,現在的畢業生,我看來技術都是差不多的,特別現在學習資料都差不多,即使剛開始有點差距,如果有學習的心態,后面能補回來也是很快的。
嵌入式工作會做什么?
我前面說了下,嵌入式的工作是萬金油,這個也只是相對來說的,在大企業里面,不可能讓一個人從事非常多的任務,這樣會導致一個問題,風險非常大,你承擔的任務越多,那么風險就越大,所以大企業需要的是在某個領域非常專業的人才,從事的事情也是非常專業的,單一的。
單一的工作需要一個Leader來指揮,這就需要一個架構師,這個架構師需要指導你往哪里天聰你的代碼,你拉了一車磚頭過來,不能隨便就亂扔吧,這就需要規則,需要架構師來制定這個規則,所以就出現了各種軟件總工。大企業需要單一的某個領域的人才,但是小企業,需要的就不是了,他們需要比較全面的人才,他們沒有那么多錢來請各個方面的人才,比如你要做一個手環,在小公司,那你就需要把驅動,應用,后臺通信,各個功能子模塊都一個人來完成。但是如果你在大公司,你可能就只負責手環的功耗部分,如果功耗有問題就來找你,其他的事情,就不是你負責的范圍。
音視頻
音視頻這部分一直都是一個大模塊,企業應該把這部分脫離開來找人,所以如果你是從事這部分相關工作的,可以深入專研。很多企業,專門成立多媒體部門,研究的就是音視頻相關的技術,編解碼等等,數據傳輸等等,都是他們要做的技術。
算法相關
有的嵌入式崗位專門研究算法的,比如一些openface等算法一直,還有用matalab做一些算法運算,這些都是嵌入式相關,也是比較專一的崗位,當然了,工資也是比較高的,研究算法的人才因為對某些東西比較有研究,反過來做一些系統或者應用的開發也是如魚得水,技術相關的東西很多都是相通的。
平臺相關
嵌入式硬件的不同平臺,導致了在不同平臺上有經驗的人才就不一樣,如果你是做rockchip的,那么你就具備這部分的經驗,你可以一直從事rockchip方面的開發,這就是平臺性相關,如果你是做全志平臺的,那你可能更擅長全志平臺的,如果跳槽,你找全志平臺的話,會更有競爭力,別人也更看重你之前的工作經驗。
對于文章中的學習資料可以在公眾號回復?「 1024 」?獲取,有些資料鏈接過期的,可以私聊我獲取。
參考:https://blog.csdn.net/qq_33835307/article/details/83062526
掃碼或長按關注
回復「?加群?」進入技術群聊
總結
- 上一篇: 如何将计算机网络作为热点,教你如何三步让
- 下一篇: 学习,才是最好的投资~