未來想從事嵌入式,問下知乎大神嵌入式學習要分幾個階段,哪個階段比較難?有沒有好的學習方法?
本人在一所普通重點大學學習,專業是通信工程。我對於嵌入式開發有著極大的好感,大一時學了C語言和單片機。要上大二了,想問下接下來要怎樣準備學習之路。
描述近年來,以ARM和linux、Android為代表的嵌入式技術發展迅猛,廣泛應用在消費電子(手機、平板電腦、遊戲機)、車載電子(導航、自動駕駛系統)、工業控制(工業機器人、無人工廠)、智能硬體(智能手錶、VR)等領域,嵌入式技術是物聯網技術的基石和重要組成部分。本路線圖總共400餘小時的視頻課程,以國內嵌入式領域知名培訓機構的4個月脫產學習就業班課程為基礎,進行合理的拓展和擴充、知識點細化、重點突出講解等處理,結合配套開發板,學習本課程之後效果完爆16800四個月的線下培訓課程。本學習路線圖完全零基礎起步,不需要單片機、C語言、英語等各種基礎,只需要你的興趣和學習時間投入,尤其適合電子、自動化、通信、嵌入式、物聯網、計算機等相關專業的在校學生以及剛畢業走向工作崗位,急需掌握相關技能的新人工程師。最後,朱老師想說一句:學不學的會交給我,學不學問你自己。學習目標通過系統的、持續的、一站式全面學習,從小白成長為嵌入式軟體工程師。學習建議(1)按照路線圖順序學習,最大限度降低難度,更有循序漸進、學以致用的感覺。
(2)學習時要緊跟老師思路,去思考,不能像看電影,看完了什麼都沒得到。
(3)一定要做學習筆記,記錄課程中重要知識點以及自己的體會、心得。聽課不總結,效果打5折。(4)配合課程配套開發板進行學習,可以最大限度降低難度。(5)戒驕戒躁,期望一兩個月速成找到高薪工作的請醒醒、洗把臉繞道走。我一貫的看法: 不要想太多,直接開始造。打聽知道得再多,你都是在外圍轉圈。一旦扎頭進去了,所有的問題都會慢慢清楚了。
百問網 希望可以幫到你 內容有點多 建議你保存慢慢看
進實驗室,看哪個學長的項目好玩就去蹭項目, 跟著做,慢慢就上道了。
跟著他們熬熬夜, 拼拚命搞競賽,你就知道你是不是『真』的對開發感興趣了 2333.嵌入式學習一共要分五個階段,分別是:
階段一 - 嵌入式開發之基礎階段
嵌入式驅動開發環境搭建初級
C語言語法概述
C語言內存操作
C語言函數使用
linux操作系統基礎
選修課 - GNU工具簡介
階段二 - 嵌入式linux應用開發階段
Linux文件IO操作
Linux進程間通信
Linux多線程編程
Linux網路編程
階段三 - 嵌入式Linux之ARM體系結構與編程階段
選修 - ARM開發板基礎知識
選修 - ARM彙編語言
選修 - ARM硬體開發基礎
ARM Bootloader開發
ARM硬體介面開發
階段四 - 嵌入式Linux底層系統開發階段
探尋嵌入式系統移植的世界
看懂uboot的神秘面容
Linux內核及文件系統製作
linux字元設備驅動初探
linux驅動策略及框架
linux下輸入子系統
階段五 - 項目及選修階段
嵌入式Linux網路編程基礎
嵌入式綜合項目-智能家居
Linux網路編程項目實戰 - 輕量級HTTP服務
linux下網卡設備驅動
探索Android底層開發
選修課-NDK初探
linux下usb驅動
選修課 - 數據結構與演算法
C++面向對象編程
其中第一個階段是基礎階段,如果題主C語言學得一般的話,最好還是重點再學一下,二、三、四個階段是實戰開發階段,這幾個階段重點再開發上,算比較難的知識點,要融會貫通,第五個階段是進階和項目實戰階段,如果前幾個階段學好了,第五個階段學起來就比較容易。
這五個階段每個階段都很重要,如果題主想好以後要從事嵌入式相關工作的話,每個階段修務必學好,題主學習的過程中可以直接看視頻教程學習,推薦一套包含上面所有課程的視頻教程《嵌入式開發教程》,希望對題主有幫助
嵌入式涵蓋的知識面比較廣,既要看懂硬體,會根據datasheet寫晶元驅動,又要懂C/C++;先學單片機,跑裸機程序,之後學習一種嵌入式操作系統比如uCOS或FreeRTOS,這個時候可以開始用操作系統做一個完整的小項目,搞明白信號量、多任務調度的原理;再然後開始著手學習linux,再慢慢的學寫linux下的設備驅動,主要是字元設備驅動;然後開始學寫linux下的應用程序,自己跑一個簡單的server 和client慢慢的了解socket 編程方式,以及串口、資料庫之類的應用;再然後就是GUI,可以學學Qt等等,這個時候,你就徹底入門了......再然後要重點加強自己的編程內功修鍊,分散式、架構、多線程、線程池以及高並發等等的實現;另外多學一些經典演算法,多看github上的相關演算法源碼實現,提高自己對演算法的理解與編程能力,關鍵的關鍵要找准一個方向,並在這個領域深耕多年,說到底,編程還是為了解決業務問題,要有行業背景。
承蒙邀請,但是這個話題本人實在給不出什麼精彩的解答。本人不給建議,只說說我自己的學習方式吧。
有人說51單片機研究精通就得十年;有人說把C++寫十年還不敢說精通;有人深入各種操作系統…對於這些人,本人無反對。
我作為實用主義者,向來夠用就行。要用ucos,花一個星期看源碼夠了。要寫圖形界面,看幾個小時,現學現賣。要寫驅動,參考書一翻。寫應用,邊查系統函數邊寫。因為我沒有專註於一個固定領域,所以每一個領域都不是很熟悉。對了,我的本行是模擬電路。剛剛參加完電賽的來答一答,網上大多數觀點都是先學51,再學ARM,再去Linux什麼的,起是也沒必要,先學什麼隨便,我覺得吧,找一個小項目,把它好好的實現,就能學好,而不是照著教科書,一個模塊一個模塊的去學,這個行業主要還是應用,能做出來就行,比如去做一個用51控制的紅外對管尋跡小車,用arm控制的攝像頭尋跡避障小車,或者arm控制的四軸飛行器,用樹莓派實現的WiFi視頻遙控小車,小車大法好還有,我是電子工程專業的,但是我平時都是做控制的,專業無所謂,但是基礎得有,自己去學,沒什麼學不會的,競賽也很重要,比如飛思卡爾智能車競賽,電子設計競賽,robomasters等等,還有多進實驗室,
我不是來說怎樣學好嵌入式的,我是想說世界這麼大,眼界要寬。本科時學的建築,讀研到自動控制,研一時很想去做嵌入式,最初覺得用單片機、用MCU可以 ,竟然可以做那麼多事情……後來慢慢地發現,外面的世界和學校是不一樣的,學校接觸的所謂的『酷炫』只是落後於當前科技N年的東西,逐漸地攤的技術。大一大二可以略微了解下C 開發板 硬體之類的,但是只是了解了解而已,但是完全沒必要去投入太多精力或者說作為自己的發展方向,因為太窄了太落後了。大三大四可以去實習去看看現在流行什麼,再確定自己的興趣和方向。重點大學,可以繼續選一個有意思有前途的方向去深入學習和實踐,現在而言:人工智慧、大數據、移動互聯網等等,是值得投入時間並且作為自己事業的方向。不喜勿噴。
只談基礎知識不實踐做項目的都是耍流氓。如果條件允許,還是得系統地學習做個項目,比如嵌入式平板開發,才能真正學到東西。
以嵌入式平板開發為例,你需要系統地學習以下知識:
圖片授權轉載自瘋殼(深圳)科技有限公司(瘋殼)
大一的時候就買了塊麵包板,51單片機,電阻,電容,晶振,成功讓LED閃爍開始,已經11年了,現在仍然樂此不疲。
訣竅上面各位都提到了,其實也簡單:感興趣,多動手,多交流。特別多動手。僅此,而已,足矣!這行業不好,累。不如多買幾套房子吃房租呀
有興趣,就不難。就是做項目煩。
C語言基礎,Linux系統的命令,Linux下C語言基礎編程,Linux下C語言高級編程(文件,進程線程,網路等),ARM彙編/介面,armC語言編程(裸奔代碼),arm平台操作系統下初級驅動,高級驅動,等。僅供參考
嵌入式就是做項目,折騰,基礎的演算法也得看,不看工作面試會吃虧。
任何一門計算機相關學科做到最後你就會發現最後都是在研究那幾門計算機科學與技術專業課:編譯原理,操作系統,計算機體系結構與組成原理,數據結構
我大學時想法和你一樣。現在,呵呵
可以看看韋東山老師的視頻,第一期完全免費,講的很經典。
趕緊進實驗室,跟著項目走,你就知道自己到底適不適合做開發…我覺得首先得確定這個
嵌入式就是嵌入式系統,如果你要做的比較專業的話,先開始學linux的命令,還有學習操作系統,你學嵌入式建議用arm11架構的晶元,型號就是6410,可以燒寫linux系統,不要聽那些學長說的什麼多做小東西,做四軸飛行,做飛思卡爾,那些不是真正的嵌入式,如果還想深入了解的話可以找我
推薦閱讀:
※藍牙設備產品開發需要用到什麼儀器設備?
※如何獨立為UDOO開發板或CB開發板寫系統?
※如何自學成為硬體工程師?
※硬體工程師這個崗位的發展空間如何?有哪些好的發展方向?
※軟體工程師與硬體工程師的差異?