在嵌入式生涯上出現(xiàn)的疑惑!

剛接觸嵌入式的朋友,都會想到如何學習嵌入式,嵌入式有什么用,如何在這個行業(yè)站穩(wěn)腳跟,下面凌陽教育帶您見識一下。

嵌入式也被成為嵌入式系統(tǒng),其是為了應(yīng)用高度定制軟件和硬件的計算機系統(tǒng),滿足一系列的特定應(yīng)用需求。國內(nèi)普遍嵌入式工程師認為:嵌入式系統(tǒng)以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng),是用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置。總的來說,嵌入式系統(tǒng)首先是計算機系統(tǒng)。

我們不能忽略這個問題。既然是計算機系統(tǒng),那么學習嵌入式,計算機的基本理論知識我們要不要學習呢?比如說,編譯原理、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、離散數(shù)學、計算機系統(tǒng)體系結(jié)構(gòu)。答案相信大家都是肯定的。現(xiàn)在很多人都意識不到這一點,在國內(nèi)高校中沒有設(shè)嵌入式專業(yè),因此很多學習嵌入式的人都是出自電子類專業(yè)或者自動控制類專業(yè),這就導致理論上會有缺憾。如果要問,排序算法有幾種,恐怕只知道冒泡和希爾,不知道堆排序、快速排序、基數(shù)鏈式排序這些算法,更不知道還有內(nèi)部排序和外部排序之分。查找算法只知道個基本的2分查找,對于樹的查找算法一無所知,怎么說呢?

也許很多從業(yè)的程序員,不乏專業(yè)水平相當優(yōu)秀的,認為這些并不重要。我只能說,你命好,做這種具體的工程大于理論的東西。實際上,如果從一個嵌入式的程序員成長為系統(tǒng)設(shè)計者,或者更高的技術(shù)職位,要從更深的層次看問題,理論起到了非常大的支撐作用。

比如說,設(shè)計一個普通的微波爐控制系統(tǒng)。說實話,這個代碼應(yīng)該是非常簡單的。但是,作為精細的設(shè)計者,不僅僅要考慮需求是否完成,還用從整個程序的空間雜度、時間雜度上去分析,并降低整個代碼的復(fù)雜度,從而進一步降低軟件結(jié)構(gòu)、算法實現(xiàn)對處理器的要求,達到對成本的節(jié)約。一般來說,成本不光是BOM成本,還包括人力成本、運營成本、開發(fā)成本、維護成本等。任何軟件系統(tǒng)都要測試,然而一份代碼要怎么才能比較好測試呢?這個問題并不好回答。

尤其是嵌入式代碼,測試方法雖然沿用了PC機的一些做法,但是仍然有許多工程限制,做起來難度頗高。馬克思說過,一切的節(jié)約可歸結(jié)為時間的節(jié)約。代碼結(jié)構(gòu)簡單,空間雜度小,那么也意味著更小的工程量,更短的測試時間,更穩(wěn)定的產(chǎn)品質(zhì)量。如果是個理論性稍微強點的產(chǎn)品,汽車導航系統(tǒng)、地圖的路徑搜索算法、定位位置的搜索,以及地圖的分類加載優(yōu)化等等,都不是太容易就能做好的,更需要堅實的理論基礎(chǔ)。許多剛出學校的大學生朋友們,沒出校門就把相關(guān)的知識還給老師了。其實,我經(jīng)常問公司新來的同事,設(shè)計算法的思路是什么?這個是從計算機的角度去考慮一個問題的解決辦法。很多新人是計算機畢業(yè)的都無法完整的回答我的問題,失望之余,更想說的是:經(jīng)驗很重要!但是比經(jīng)驗更重要的是知識,比知識更重要的是方法。在理論的指導下去積累經(jīng)驗,減少從經(jīng)驗下獲取知識,減少體驗式學習這種狀態(tài),養(yǎng)成系統(tǒng)的認識分析問題的方法,理論聯(lián)系實踐的方法,實踐檢驗真理的方法,經(jīng)驗必須能被理論解釋的方法。

我們還是來看嵌入式的定義,這個定義是相對的概念。什么計算機系統(tǒng)不是“高度定制的軟硬件計算機系統(tǒng)”呢?PC機,不嚴謹?shù)恼f是這樣。嵌入式在工程上有非常多的特點,相對于PC系統(tǒng)說,如果把PC系統(tǒng)看成一個完全的標準的“大嵌入式系統(tǒng)”,我們用大鵬鳥來形容它,那么,像“蜂鳥”這樣的最小的小鳥,像“麻雀”這樣的常見系統(tǒng),也就不難理解了。從技術(shù)上講,PC系統(tǒng)的知識量,難度都要比一般的嵌入式高出N個數(shù)量級。但由于PC系統(tǒng)在計算機歷史上發(fā)展得比較早,因而,其智力投入、完善性、應(yīng)用的廣泛性重要性是別的系統(tǒng)平臺無法比擬的。然而,正因為發(fā)展了這么久,其平臺的封裝性、穩(wěn)定性是非常高的。操作系統(tǒng)級,支撐軟件級,應(yīng)用軟件級,特別是應(yīng)用軟件級,一些與平臺無關(guān)的軟件,基本上很少涉及操作系統(tǒng)的知識,以及一些內(nèi)部的原理。如瀏覽器里的Javascript開發(fā),基本上不涉及操作系統(tǒng)的知識,只是受不同的瀏覽器的影響;又如Java,只涉及較少的系統(tǒng)平臺的知識;就算是C/C++語言,開發(fā)應(yīng)用程序,也就是一套API的應(yīng)用,涉及的操作系統(tǒng)的東西也只是冰山一角。由此可見,PC平臺的優(yōu)良封裝,極大地簡化了問題的復(fù)雜度,使開發(fā)者和應(yīng)用者能把主要精力放在自己的業(yè)務(wù)上,提高開發(fā)效率。

嵌入式領(lǐng)域就沒有這么幸運了,其為應(yīng)用的高度定制,造成了以效率、應(yīng)用為優(yōu)先的特點。封裝層次太多必然對效率有所傷害,同時規(guī)模變大,測試變得復(fù)雜,開發(fā)周期變長,所以嵌入式的層次結(jié)構(gòu)相對于PC系統(tǒng),邊界沒那么清晰,封裝考慮的問題沒有那么全面。完成同樣的一個工作,需要了解的內(nèi)容更多,才能做得更好。如果一定要拿嵌入式和PC系統(tǒng)比,個人覺得,PC系統(tǒng)的開發(fā)有時候比嵌入式系統(tǒng)還要難。由于封裝的比較完善,PC開發(fā)的門檻比較低,但是做好,做精通,做全面,比嵌入式難多了。嵌入式因為一開始就要了解相當規(guī)模的東西,所以入門的門檻變得比較高。縱觀這些東西,其實PC系統(tǒng)和嵌入式系統(tǒng)很大一部分都是重疊的。

嵌入式在工程領(lǐng)域最大的問題是軟硬件同時成熟,出了問題容易踢皮球,這里就很容想到調(diào)試。嵌入式的問題定位較為復(fù)雜,尤其是牽涉到軟硬件的復(fù)雜問題。

首先嵌入式的調(diào)試手段較為單一。相對于PC平臺,穩(wěn)定性和可靠性都要打折扣,這里不僅包括調(diào)試平臺的問題,也包括一些調(diào)試手段對代碼的影響,諸如改變代碼的運行時間,改變了代碼的動態(tài)行為(頻度,觸發(fā)時差等)。做嵌入式對系統(tǒng)要有一個更加全面的認識。這里包括從設(shè)計方法思路,設(shè)計目標要求,硬件的詳細設(shè)計和軟件的詳細設(shè)計。了解的越深刻對問題的定位越有幫助。這里就涉及到一個最大的問題,也就是剛出校門很多學生對自己的憧憬:要軟件硬件都通。

這個目標向大家坦白,我也憧憬過。當我現(xiàn)在招聘學生的時候,甚至有些工作經(jīng)驗的人都說出這個目標。這個目標不是錯,只是計算機軟件和硬件這兩大塊都是非常廣袤的領(lǐng)域,說通,目標的確有點高了。所以在這里,我常常給同事的建議是:如果你的專業(yè)是電子類的,可以把精力主要的放在硬件上,軟件只作為兼顧,學習一些C語言的基本知識,寫一些小型代碼,不宜把目標放在全職編程上。如果是計算機專業(yè)的,我建議把主要精力放在軟件上,學會看懂原理圖,了解一些電路的大致功能就可以了。兩方面往深里面去都是無底洞。全通的話,的確要些大本事的。這里只是我的建議,理由也很簡單,人都是經(jīng)營自己的長處,規(guī)避自己的短處。曾經(jīng)有一個朋友問我嵌入式問題,想成為軟硬都通的人。想給自己的職業(yè)規(guī)劃一下,我大致問他幾個軟件問題,比如說,算法的設(shè)計思路,排序算法的種類,搜索算法的種類,操作系統(tǒng)的本質(zhì),互斥多線程等等基本問題,回答毫無頭緒。然而問起電路的知識,KCL,KVL,競爭冒險,運放的分析方法,信號與系統(tǒng)的基本知識,對答如流。這種人去主攻軟件,是資源的極大的浪費。等你軟件入門了,硬件方面的設(shè)計知識也忘得差不多了。然后面臨事業(yè)更上一層樓的壓力,軟件需要學習的東西比較多,基礎(chǔ)理論差,學什么都吃力。硬件方面缺乏調(diào)試和經(jīng)驗的積累,也很難有所作為,若干年后只能做配角,精力的下降,事業(yè)上的失意,只能讓自己淪為屌絲。

這里又提到項目經(jīng)理、技術(shù)總監(jiān)這樣的技術(shù)管理職位,不是說你技術(shù)好就可以做這個職位了,首先各個公司這兩種職位都是有所區(qū)別的,但一般來講都是偏向管理的。既然是管理,不能用別人管你的時候,你得到的體驗再去管別人,要學習管理理論。諸如PMBOK,CMMI,好好看看行業(yè)內(nèi)優(yōu)秀的工程實踐,好好看看項目目標如何對齊,這些理論知識都是指導我們實踐的最有效的手段。

不要寄希望自己是牛人中的牛人,可以發(fā)明新的理論。請大家看看歷史,每個行業(yè)都有個開山鼻祖,那時候水平還比較低,然后發(fā)展一段時間后有一個將這個行業(yè)壯大的牛人,這個并不僅僅是因為那個牛人牛,也有因為這個行業(yè)積累到一定的時間,可以出這樣的一個牛人將這個行業(yè)進一步壯大。這是事物發(fā)展的客觀規(guī)律,我們必須要尊重。但在中國,技術(shù)人是一類特殊的人群,他們因為技術(shù)而傲,對于不懂技術(shù)的領(lǐng)導,私下缺乏應(yīng)有的尊重和誠服,容易造成政令不通。項目經(jīng)理,總監(jiān)更應(yīng)有好的技術(shù),以便得到下屬最大的認同。

學習嵌入式的方法多種多樣,但最好的辦法還是求助于計算機,計算機是自己的第一老師,人都是第二位的。不要指望通過牛人,你就可以變成牛人。學習知識,實際上是自己對知識建立理解的過程,不要第一時間去聽大牛的講解,首先要有自己的理解,即使是錯的,我認錯,再通過大牛的講解進一步的學習,糾正調(diào)整自己,可以事半功倍。如果沒有自己的思考,自己也只是個鸚鵡學舌的人,缺乏創(chuàng)造力和獨立面對問題的能力,久而久之是非常可怕的。

俗話說學無止境的,嵌入式也是一樣,若想拿高薪,就要不斷的努力學習。高薪背后意味著很多內(nèi)涵和外延,這些內(nèi)涵和外延不僅僅包括點點知識和技術(shù),還有做事的態(tài)度方法,面對問題的堅韌……太多了。一句話,在自己想把自己變得更強,首先尋求的是能力的全方面的提升,不光光是點技術(shù)。所以,面對這種問題一定要踏實。你要求的薪水高,公司對你的期望也高;每個公司都有特殊的東西,那不是一兩天就能學會的,也不是技術(shù)能替代的。自己把調(diào)子提得那么高,要么慘淡收場,要么勉強完成任務(wù),要么驚艷四座,自己看著辦。相反,薪水提得不高不低,給自己一點點時間,企業(yè)對你的期望低,能做出點成績,反倒容易讓別人刮目相看,利于自己的長期發(fā)展。這里還是有許多學問的,自己的人生,一定要謹慎經(jīng)營。

學習嵌入式一定要勤奮,編程是一種體力+腦力的活。熟能生巧,這是常識。十萬行的編程量是基礎(chǔ),寫一些復(fù)雜的算法,如A*,樹等等算法;再寫一些計算機圖形學方面的算法,以應(yīng)用軟件為目標,把自己的編程量撐到十萬行。這樣的強度能保證自己對所用的語言有一個非常的熟練程度,也能對計算機的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)有個深刻的認識,同時對操作系統(tǒng)的API也能略微熟悉。若能堅持這種訓練到達三十萬行,那么就會更加優(yōu)秀,可為進一步的行業(yè)發(fā)展,打下堅實的基礎(chǔ)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內(nèi)容