<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式的學(xué)習和職業(yè)發(fā)展淺談

嵌入式的學(xué)習和職業(yè)發(fā)展淺談

作者: 時(shí)間:2018-07-31 來(lái)源:網(wǎng)絡(luò ) 收藏

最近我的工作太忙了。身邊朋友問(wèn)我如何學(xué)習,在這個(gè)行業(yè)健康的發(fā)展。我一直未能做一個(gè)系統的回答。這里我想寫(xiě)篇文章,徹底的回答這個(gè)問(wèn)題。

本文引用地址:http://dyxdggzs.com/article/201807/384702.htm

,這是個(gè)術(shù)語(yǔ)。在我看來(lái),系統是:為了應用高度定制軟件和硬件的計算機系統,滿(mǎn)足一系列的特定應用需求。國內普遍認同的嵌入式系統定義為:以應用為中心,以計算機技術(shù)為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專(zhuān)用計算機系統。

IEEE(國際電氣和電子工程師協(xié)會(huì ))對嵌入式系統的定義:“用于控制、監視或者輔助操作機器和設備的裝置”。原文為:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants。(此段來(lái)自百度)

從我個(gè)人的理解,到普遍的定義,再到IEEE的權威??梢钥吹?,嵌入式系統首先是計算機系統。我們不能忽略這個(gè)問(wèn)題。既然是計算機系統,那么學(xué)習嵌入式,計算機的基本理論知識我們要不要學(xué)習呢?比如說(shuō),編譯原理、數據結構、操作系統、離散數學(xué)、計算機系統體系結構。個(gè)人認為,沒(méi)學(xué)走,就學(xué)跑是非常要不得的。很多人意識不到這點(diǎn)。

加之國內很多學(xué)校沒(méi)有培養嵌入式的專(zhuān)業(yè),沒(méi)有相應的人才輸出。很多學(xué)習嵌入式的人都是從電子類(lèi)的專(zhuān)業(yè),自動(dòng)控制類(lèi)的專(zhuān)業(yè)等等轉過(guò)來(lái)的。這個(gè)轉型也意味著(zhù)理論上的巨大缺憾。如果要問(wèn),排序算法有幾種,恐怕只知道冒泡和希爾,不知道堆排序,快速排序,基數鏈式排序這些算法,更不知道還有內部排序和外部排序之分。查找算法只知道個(gè)基本的2分查找。對于樹(shù)的查找算法一無(wú)所知。怎么說(shuō)呢?也許很多從業(yè)的程序員,不乏專(zhuān)業(yè)水平相當優(yōu)秀的,認為這些并不重要。我只能說(shuō),你命好,做這種具體的工程大于理論的東西。實(shí)際上,如果從一個(gè)嵌入式的程序員成長(cháng)為系統設計者,或者更高的技術(shù)職位,要從更深的層次看問(wèn)題。理論起到了非常大的支撐作用。

比如說(shuō),設計一個(gè)普通的微波爐控制系統。說(shuō)實(shí)話(huà),這個(gè)代碼應該是非常簡(jiǎn)單的。但是,作為精細的設計者,不僅僅要考慮需求是否完成。還用從整個(gè)程序的空間雜度、時(shí)間雜度上去分析,并降低整個(gè)代碼的復雜度。從而進(jìn)一步降低軟件結構、算法實(shí)現對處理器的要求,達到對成本的節約。

一般來(lái)說(shuō),成本不光光是BOM成本,還包括人力成本,運營(yíng)成本,開(kāi)發(fā)成本,維護成本等等。任何軟件系統都要測試,然而一份代碼要怎么才能比較好測試呢?這個(gè)問(wèn)題并不好回答。

我這里先賣(mài)個(gè)關(guān)子,回頭我在另外一篇文章里詳述。尤其是嵌入式代碼,測試方法雖然沿用了PC機的一些做法,但是仍然有許多工程限制。做起來(lái)難度頗高。

馬克思說(shuō)過(guò),一切的節約可歸結為時(shí)間的節約。代碼結構簡(jiǎn)單,空間雜度小。那么也意味著(zhù)更小的工程量,更短的測試時(shí)間,更穩定的產(chǎn)品質(zhì)量。如果是個(gè)理論性稍微強點(diǎn)的產(chǎn)品,汽車(chē)導航系統。地圖的路徑搜索算法。定位位置的搜索,以及地圖的分類(lèi)加載優(yōu)化等等,都不是太容易就能做好的。更需要堅實(shí)的理論基礎。

許多剛出學(xué)校的大學(xué)生朋友們,沒(méi)出校門(mén)就把相關(guān)的知識還給老師了。其實(shí),我經(jīng)常問(wèn)公司新來(lái)的同事,設計算法的思路是什么?這個(gè)是從計算機的角度去考慮一個(gè)問(wèn)題的解決辦法。很多新人是計算機畢業(yè)的都無(wú)法完整的回答我的問(wèn)題,失望之余,更想說(shuō)的是:經(jīng)驗很重要!但是比經(jīng)驗更重要的是知識,比知識更重要的是方法。在理論的指導下去積累經(jīng)驗。減少從經(jīng)驗下獲取知識,減少體驗式學(xué)習這種狀態(tài),養成系統的認識分析問(wèn)題的方法,理論聯(lián)系實(shí)踐的方法,實(shí)踐檢驗真理的方法,經(jīng)驗必須能被理論解釋的方法。

所以,這第一點(diǎn)建議,就是希望從事嵌入式的朋友能把計算機基礎課程全部系統的學(xué)習一遍。

我們還是來(lái)看嵌入式的定義,這個(gè)定義是相對的概念。什么計算機系統不是“高度定制的軟硬件計算機系統”呢?PC機。不嚴謹的說(shuō)是這樣。

嵌入式在工程上有非常多的特點(diǎn),相對于PC系統說(shuō),如果把PC系統看成一個(gè)完全的標準的“大嵌入式系統”,我們用大鵬鳥(niǎo)來(lái)形容它。那么,像“蜂鳥(niǎo)”這樣的最小的小鳥(niǎo),像“麻雀”這樣的常見(jiàn)系統。也就不難理解了。

從技術(shù)上講,PC系統的知識量,難度都要比一般的嵌入式高出N個(gè)數量級。但由于PC系統在計算機歷史上發(fā)展得比較早。因而,其智力投入、完善性、應用的廣泛性重要性是別的系統平臺無(wú)法比擬的。然而,正因為發(fā)展了這么久,其平臺的封裝性穩定性是非常高的。操作系統級,支撐軟件級,應用軟件級。特別是應用軟件級,一些與平臺無(wú)關(guān)的軟件,基本上很少涉及操作系統的知識,以及一些內部的原理。如瀏覽器里的Java開(kāi)發(fā),基本上不涉及操作系統的知識,只是受不同的瀏覽器的影響;又如Java,只涉及較少的系統平臺的知識;就算是C/C++語(yǔ)言,開(kāi)發(fā)應用程序,也就是一套API的應用。涉及的操作系統的東西也只是冰山一角。

由此可見(jiàn),PC平臺的優(yōu)良封裝,極大的簡(jiǎn)化了問(wèn)題的復雜度,使開(kāi)發(fā)者和應用者能把主要精力放在自己的業(yè)務(wù)上,提高開(kāi)發(fā)效率。嵌入式領(lǐng)域就沒(méi)有這么幸運了。其為應用的高度定制,造成了以效率,應用為優(yōu)先的特點(diǎn)。封裝層次太多必然對效率有所傷害。同時(shí)規模變大,測試變得復雜。開(kāi)發(fā)周期變長(cháng)。

所以嵌入式的層次結構相對于PC系統,邊界沒(méi)那么清晰,封裝考慮的問(wèn)題沒(méi)有那么全面。完成同樣的一個(gè)工作,需要了解的內容更多,才能做得更好。如果一定要拿嵌入式和PC系統比,個(gè)人覺(jué)得,PC系統的開(kāi)發(fā)有時(shí)候比嵌入式系統還要難。由于封裝的比較完善,PC開(kāi)發(fā)的門(mén)檻比較低,但是做好,做精通,做全面,比嵌入式難多了。嵌入式因為一開(kāi)始就要了解相當規模的東西,所以入門(mén)的門(mén)檻變得比較高??v觀(guān)這些東西,其實(shí)PC系統和嵌入式系統很大一部分都是重疊的。

所以,第二點(diǎn),我推薦大家讀(俞甲子 / 石凡 / 潘愛(ài)民)寫(xiě)得《程序員的自我修養》。這里多說(shuō)兩句,首先,嵌入式只是比PC開(kāi)發(fā)要多了解些東西,本質(zhì)上來(lái)講并無(wú)區別,這些知識當中有一半是與具體工程相關(guān)的東西。也就是說(shuō),照著(zhù)流程做,并無(wú)太多的為什么,如果硬要問(wèn)為什么,其實(shí)也就是一些工程上的需求。一些嵌入式應用之間可能略有一些區別,可能有些區別還很大,但大致的流程還是相似的。有個(gè)比較好的PC開(kāi)發(fā)功底,了解了這些流程,開(kāi)發(fā)嵌入式應該是沒(méi)什么特別的障礙的。

其次,《程序員的自我修養》這本書(shū)是針對PC平臺的,書(shū)中的許多東西是PC平臺特有的,比如說(shuō)動(dòng)態(tài)加載等。但理解動(dòng)態(tài)加載也會(huì )對Bootloader加載應用程序和操作系統有一個(gè)直觀(guān)的比較。由于并不是針對嵌入式平臺的(我沒(méi)發(fā)現有專(zhuān)門(mén)講嵌入式的書(shū)),所以,很多東西需要自己在嵌入式中去體會(huì )。另外書(shū)中對一些嵌入式中比較在意的問(wèn)題描述的并不夠詳細,比如說(shuō)鏈接腳本還有ABI。PC平臺這些問(wèn)題被很好的封裝起來(lái)了。所以,有些問(wèn)題在嵌入式領(lǐng)域,還需要進(jìn)一步深挖。這本書(shū)作為嵌入式入門(mén)的理解是非常合適的。

嵌入式在工程領(lǐng)域最大的問(wèn)題是軟硬件同時(shí)成熟,出了問(wèn)題容易踢皮球。這里就很容想到調試。嵌入式的問(wèn)題定位較為復雜,尤其是牽涉到軟硬件的復雜問(wèn)題。首先嵌入式的調試手段較為單一。相對于PC平臺,穩定性和可靠性都要打折扣。這里不僅包括調試平臺的問(wèn)題,也包括一些調試手段對代碼的影響,諸如改變代碼的運行時(shí)間,改變了代碼的動(dòng)態(tài)行為(頻度,觸發(fā)時(shí)差等)。做嵌入式對系統更加要有個(gè)全面的認識。這里包括從設計方法思路,設計目標要求,硬件的詳細設計和軟件的詳細設計。了解的越深刻對問(wèn)題的定位越有幫助。這里就涉及到一個(gè)最大的問(wèn)題,也就是剛出校門(mén)很多學(xué)生對自己的憧憬:要軟件硬件都通。 這個(gè)目標向大家坦白,我也憧憬過(guò)。當我現在招聘學(xué)生的時(shí)候,甚至有些工作經(jīng)驗的人都說(shuō)出這個(gè)目標。這個(gè)目標不是錯,只是計算機軟件和硬件這兩大塊都是非常廣袤的領(lǐng)域,說(shuō)通,目標的確有點(diǎn)點(diǎn)高了。

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

這里又提到項目經(jīng)理,技術(shù)總監這樣的技術(shù)管理職位,不是說(shuō)你技術(shù)好就可以做這個(gè)職位了。首先各個(gè)公司這兩種職位都是有所區別的,但一般來(lái)講都是偏向管理的。既然是管理,不能用別人管你的時(shí)候,你得到的體驗再去管別人,要學(xué)習管理理論。諸如PMBOK,CMMI,好好看看行業(yè)內優(yōu)秀的工程實(shí)踐,好好看看項目目標如何對齊。這些理論知識都是指導我們實(shí)踐的最有效的手段。不要寄希望自己是牛人中的牛人,可以發(fā)明新的理論。請大家看看歷史,每個(gè)行業(yè)都有個(gè)開(kāi)山鼻祖,那時(shí)候水平還比較低,然后發(fā)展一段時(shí)間后有一個(gè)將這個(gè)行業(yè)壯大的牛人。這個(gè)并不僅僅是因為那個(gè)牛人牛,也有因為這個(gè)行業(yè)積累到一定的時(shí)間,可以出這樣的一個(gè)牛人將這個(gè)行業(yè)進(jìn)一步壯大。這是事物發(fā)展的客觀(guān)規律,我們必須要尊重。但在中國,技術(shù)人是一類(lèi)特殊的人群,他們因為技術(shù)而傲,對于不懂技術(shù)的領(lǐng)導,私下缺乏應有的尊重和誠服。容易造成政令不通。項目經(jīng)理,總監更應有好的技術(shù),以便得到下屬最大的認同。

所以這第三點(diǎn),要綜合自己的專(zhuān)業(yè)情況,知識背景,合理的選擇自己的職業(yè)目標。在嵌入式領(lǐng)域找到自己的發(fā)展空間。

最后是一些雜項,我也不分類(lèi)了。學(xué)習嵌入式的方法多種多樣。但最好的辦法,還是求助于計算機,計算機是自己的第一老師,人都是第二位的。不要指望通過(guò)牛人,你就可以變成牛人。學(xué)習知識,實(shí)際上是自己對知識建立理解的過(guò)程,不要第一時(shí)間去聽(tīng)大牛的講解。首先要有自己的理解,即使是錯的,我認錯。再通過(guò)大牛的講解進(jìn)一步的學(xué)習,糾正調整自己,可以事半功倍。如果沒(méi)有自己的思考,自己也只是個(gè)鸚鵡學(xué)舌的人,缺乏創(chuàng )造力和獨立面對問(wèn)題的能力。久而久之是非??膳碌?。

不要想通過(guò)幾個(gè)月培訓機構的學(xué)習,就能像潘砍粵巳能丸,拿到高薪。如果真是這樣,這世界里有時(shí)間有錢(qián)的人多了,他們?yōu)槭裁床荒芡ㄟ^(guò)這種辦法變得更有能力,拿到更高的收入?高薪背后意味著(zhù)很多內涵和外延,這些內涵和外延不僅僅包括點(diǎn)點(diǎn)知識和技術(shù),還有做事的態(tài)度方法,面對問(wèn)題的堅韌……太多了。一句話(huà),在自己想把自己變得更強,首先尋求的是能力的全方面的提升,不光光是點(diǎn)點(diǎn)技術(shù)。所以,面對這種問(wèn)題一定要踏實(shí)。你要求的薪水高,公司對你的期望也高;每個(gè)公司都有特殊的東西,那不是一兩天就能學(xué)會(huì )的,也不是技術(shù)能替代的。自己把調子提得那么高,要么慘淡收場(chǎng),要么勉強完成任務(wù);要么驚艷四座。自己看著(zhù)辦。想反,薪水提得不高不低,給自己一點(diǎn)點(diǎn)時(shí)間,企業(yè)對你的期望低,能做出點(diǎn)成績(jì),反倒容易讓別人刮目相看,利于自己的長(cháng)期發(fā)展。這里還是有許多學(xué)問(wèn)的。自己的人生,一定要謹慎經(jīng)營(yíng)。

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



關(guān)鍵詞: 嵌入式

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>