個人嵌入式學習之路(好文推薦) java
前言
這個題目很大,給人一種感受我好像很成功,其實否則。實際上本身水平不高,甚至很低,可是作過了一些曲折的學習道路,同時把本身真實的學習歷程表達出來,但願對後來者有借鑑的意義,甚幸!
工做三年、幾成廢人!
我2000年畢業於華中地區的一個理工科大學,專業是機械電子,我當時已經簽了一家內陸某個省級機關工做,家裏八輩是農民,而且很偏遠,可以進入這樣的地方是祖墳有風水。但在畢業前夕有個進入it的機會,我本想進去的,家裏人極力反對,阻力可想而知。同時要交4000元的違約金,對我來講是天文數字。大學裏的費用不少是借的,幾乎將近一半的費用是在大學勤工儉學掙的,爲了省錢,高中一個學期回家一次,大學一年回去一次。而且我我的也有特殊的人生背景(悲景更確切),這裏很少說了,寫十篇也寫不完,同時偏離主題。這樣我就參加了工做。一張報紙一杯茶的日子,幾乎下班後有種很空虛和恐慌的感受。在工做中雖然是與本身專業有點關係,可是不多。專業幾乎荒廢。我本身也思考,若是再不出去,本身將會成廢人,只好讓國家養了。兩年後決定出去,可是幾成廢人,誰要呢,只好到學校去鍍金。這是中國教育和社會的悲哀!
至於專業就改成計算機方面,據說好找工做,我說實話不是很對計算機特別感興趣,生存第一須要。不要笑我,哈哈!
考研成績出來,超過了國家線幾十分。那個方向要兩個,我第三,可是那年非碘,不面試就按分數來排,天然我落選了。其實給我面試機會也不必定要我,哈哈,本身幾斤幾兩很清楚。
最後調劑到另一個學校,交錢,咬咬牙,交吧!如今仍然債臺高築!
進入學校前夕
爲何要把這段列出,看後就知道了。
單位有網絡,常常上網查些英語資料,在那裏惟獨英語沒有丟不少。因而我就在網上查資料,學什麼好呢,最後肯定學嵌入式把,據說跟硬件相對比較緊密!而我在大學裏多少學習了數字電路,單片機等,因此多少也有所利用,不會真的一無所知。固然在這以前也自學過數據結構,計算機組成原理等。C 語言在大學就學了。哈哈這就是個人家底。
我知道本身的基礎差,因而我就拿操做系統,數據庫、數據結構、c++來看,機關有這個好處,空餘時間多,因而日常就看書,很痛苦,沒有人請教。
另外就上網到論壇上去,我就到各個專業的技術論壇,實際上是電子論壇和嵌入式論壇。我幾乎沒有發帖,幾乎把幾個大型的出名的論壇的帖子翻遍了,雖然有不少重複的,我才知道嵌入式是個什麼東東。這些帖子對我之後的學習產生了極大的影響。
最關鍵兩點:一、嵌入式是什麼?
二、嵌入式須要哪些知識?
知道了這兩點,好辦!我就開始規劃學習路線。計算機的基本理論不能丟,因而重點看組成原理,數據機構,操做系統、c++。同時論壇上了解到,實時操做系統ucos是一個很好的嵌入式操做系統,對初學者很好。因而我就買了一本書,可是代碼在電腦裏調不通,網上也有不少相同的問題,我就看書,分析代碼,一遍不行就兩遍,三遍,這樣纔看了入了門,才知道什麼是進程。原來看操做系統書時,根本就不知道進程是個什麼東西。
在這段時間掌握的東西很少,可是,對我之後的影響很大,我想起了大學時一個同窗跟我說過了一句話:大學裏最重要的不是學到了什麼,最重要的是學會怎麼學!大概是這個意思。
進入個人避難所
對我來說,再次進入大學再也不是大學,而是避難所。但願此次進入給我喘氣和養精蓄銳的機會和時間。我是這樣認爲和實踐的。
在學校我有三件事:上課,上圖書館,上網。
對於上課,學校開了不少課程,很是好,不少是名人名師講解,因而不少同窗都想學,都去聽。我也考慮過,最後放棄。我是這樣認爲的,時間是有限的,什麼都想學,什麼都學不成。因而我把我本身學的課進行了分化,通常的課程經過就行,重要的必定好好學。我但願不要什麼爭論學習課程多和少的問題,這僅僅是個人見解。因此個人成績應該是不好的。分數低。好在後來的單位沒有要個人成績單,不然就慘了。
我我的感受是上圖書館的效率比在寢室裏高多了,這是個人經驗。
上網,我給本身定了規矩:不玩遊戲,不灌水,少看電影!由於時間對我來講太少和寶貴了,我沒有資格和資原本浪費這些。上網我就在幾個重要的專業技術網站上逛,下載技術資料。我一個朋友最近開了一個嵌入式網站,www.embeded.cn 裏面的資料至關一部分是我在網上找的資料。那個網站很不錯,資料豐富,找嵌入式方面,特別是嵌入式linux的資料,異常豐富。
有人會問,您下了那麼多資料,怎麼看的完和消化的了呢?
我是這樣對待這個問題的:
一、 網上資料比較零散,不繫統,可是若是把差很少的東西收集起來看就相對完整了,(嵌入式的圖書就是這兩年特別多,特別是2004年,簡直是向外涌!2003年想買本嵌入式,特別是嵌入式linux的很少。)
二、 對於像我這種入門的來講,不少看不懂,不要緊,反覆看,我我的對學習方法的一個總結是:重複是最好的老師!
三、 即便有的用不上,也能夠收集之後用的上時查閱。
可是我並不是什麼都要,目前個人技術路線是嵌入式linux,因此像wince之類基本上不
收集。
總之,我在學校裏我充分利用時間來學習,我看到一些同窗成天的掛在網上打遊戲,發
些無關痛癢的帖子,浪費時間呀!我真的很痛心!
學習嵌入式
在這裏我把它單獨列出,文章有點紊亂,可是內容但願有益。
一、學習linux
根據我在論壇的瞭解,我選擇學習嵌入式linux,恰好咱們學校也重視嵌入式linux,從實驗室到課程安排都是關於嵌入式linux方面,天時地利!這裏我把學習linux的經驗和教訓說說。
能夠這樣說,在論壇裏說道學習linux差很少就學習linux內核。因而我電腦裏安裝了linux就開始看linux內核方面的書了。我記得來學校之前就買到一本陳莉君的講linux內核的初版,如今有第二版了。我就開始看那本說,你們說linux內核情景分析不錯,我就買了上下冊,後來又買了 《深刻理解linux內核》,最後也買了毛德操的《嵌入式系統》也是分析linux內核代碼的,主要講arm相關的。
看內核期間是個很是痛苦的過程,看情景分析有種在森林中找出路,其間我組織了一些同窗學習內核,幾乎沒有幾個能堅持下來的。我認爲我是堅持下來了。情景分析在看第1、第二遍是幾乎沒有摸到門道,我分析有三個方面的緣由:一、本身的基礎差,這是最關鍵的。二、內核自己很難。三、沒有交流和高人指點。到了第三遍時我才摸到門,才差很少知道個linux的大概脈絡,不少細節也是稀裏糊塗。
學習linux總結,這裏聲明一下,我指的嵌入式主要是偏向軟件的嵌入式。學習嵌入式的重點和難點關鍵在操做系統,若是沒有掌握操做系統,我認爲很難把握一個嵌入式系統。即便在作嵌入式開發中,做應有層的開發幾乎能夠不知道操做系統也能夠開發,我認爲那是浮在表面的。很難深刻和提升本身的層次。聲明:一孔之見!不可深究!
在學習linux內核過程當中犯了一個極其嚴重路線錯誤:對linux幾乎不懂就開始學習內核。我我的推薦一個學習路線是:使用linux—〉linxu系統編程開發---〉驅動開發和分析linux內核。而我差很少相反,實際上你不會使用linux也能夠學習內核,可是若是你懂了這些東西學習更有效率。
關於要不要學習內核的問題,個人回答以下:不必定。若是你是喜歡鑽研的那你進入內核會知足你的慾望。同時對你之後的嵌入式系統的開發有很好的影響。若是你想從事嵌入式linux系統開發,最好對內核有所瞭解。若是僅僅是作應用開發沒有必要。我打個比喻:c、c++、java等語言是武林中的某個武林派別的話,如什麼拳法,什麼刀法等,那麼linux 內核應該是一我的的內功的反應。
怎麼開始學linux內核:最好有三件寶物:《深刻理解linux內核》《情景分析》和源代碼。
先看《深》,那主要講原理,好像市場上有本講原理性而且更淺,《linux內核設計與實現》據說不錯。若是沒有學習操做系統的,像我這樣的,最好先看看操做系統原理的書。看了幾遍後,就看情景分析,最好對着《深》看。兩本交叉看,《深》是綱,《情》是目。最後深刻代碼。
二、學習嵌入式linux
學習嵌入式,我認爲兩個重點,cpu和操做系統,目前市場是比較流行arm,因此推薦你們學習arm。操做系統不少,我我的對開始學習的人,特別不是計算機專業的,推薦學習ucos。那是開源的,同時很小。學習很好。爲何選linux,我不想講太多,網上這方面的太多,可是我在工做中發現,作linux的技術路線很難,在windows幾乎不會有的問題,在linux開發中幾乎遍地陷阱。一掉進去劃很長時間出來,一旦解決本身又長進了!相對來講開發週期長,難度大。如今資料也逐漸豐富起來,難度也下降了些!
至於怎麼學習,這是他的特點地方,必須有塊開發板,我是同窗裏最先買學習板的,雖然化錢,我認爲值。對我實習和工做產生了很大的影響。
若是沒有開發板,那是紙上談兵。有人說,那要1000-2000亞,的確是,兄弟,看長遠的,對您的職業和發展那點錢不算什麼!有的人說我站着說話不腰痛,好吧,錢這東西對我影響很大,我在大學裏掃廁所,掃的不錯,獎5元/月。兄弟你有過嗎?我認爲教育投資是效益最有保障的!我實習拿3k,不少同窗拿1-2k,固然比我高的也有。雖然我如今沒有畢業,但一家公司就簽了。從事目前流行的高檔的消費電子的研發。對於我兩年前一無所知的我,應該有質的變化,我感謝學校收了我這個廢品。固然我也很是的努力。說這麼多並非要炫耀我什麼,實際上根本不值得炫耀,雖然如今工做環境和待遇比較滿意,可是,我發現我不好,特別是代碼能力,我但願日常你們少玩遊戲,多編程。編程纔是硬道理!
三、 學習板和培訓
你能夠不接受培訓,可是不能不買開發板。若是你想學習嵌入式必定要買塊學習板,最好買塊arm9的,貴些也值。能夠跑高級操做系統。這個不要什麼品牌公司的,通常不會出什麼問題,市場上的板子通常是三星的2410,基本上是抄的。若是是作產品那要注意些。通常的公司通常要2000,加lcd要3000甚至更多。我接觸到有的板只要1200,加lcd也就2000,差異比較大,我認爲學習都夠啦。
對於培訓,若是有條件最好參加,主要是嵌入式相對別的不一樣,本身摸索很費時,若是有高手指點很是的好,進步快。特別是認識作這些的朋友。我接受過培訓,認識個朋友。在之後的工做中幫我不少,在這裏謝謝他!我記得哈佛的一個MBA的學生這樣說,大意是:在哈佛學到什麼不重要,最重要的是這些將來各大公司的高級管理人員是個人同窗!真是有遠見!
目前市場是培訓比較貴,一個星期兩三千,真正算起來也要,那些講師待遇絕對不會低。可是有個致命的問題是連續上課,一連幾天,效果不佳。我但願社會上多出些1000元左右,而且時間長些,如一個月,一週一到兩次課。若是沒人作,我來作,哈哈!
沒有想到,一下寫了這麼多,其實還想寫的,好比在中科院的一位老兄是怎樣學習linux內核和看書的,真的很感動。他的爲人我很欽佩。也想介紹毛德操的《嵌入式系統》那本書,對學習arm linux的很好,也想介紹實習和工做的東西,太長了,耽誤你們時間。我也不想檢查裏面的錯別字了,不少!就寫到這裏吧 linux