當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 技術(shù)讓夢(mèng)想更偉大
[導(dǎo)讀]關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容來(lái)源:嵌入式資訊精選知乎上有人問(wèn)經(jīng)常在網(wǎng)上看到很多牛人有ICPC等各大編程大賽的經(jīng)歷。我是學(xué)習(xí)嵌入式開發(fā)的,感覺(jué)我天天都是在看芯片資料,代碼難度也不高,甚至很多都有現(xiàn)成的,只要改改就可以自己用。好像什么高級(jí)算法、超強(qiáng)的數(shù)學(xué)能力在我的學(xué)習(xí)中都沒(méi)有什么體...

關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容

來(lái)源:嵌入式資訊精選

知乎上有人問(wèn)


經(jīng)常在網(wǎng)上看到很多牛人有ICPC等各大編程大賽的經(jīng)歷。


我是學(xué)習(xí)嵌入式開發(fā)的,感覺(jué)我天天都是在看芯片資料,代碼難度也不高,甚至很多都有現(xiàn)成的,只要改改就可以自己用。


好像什么高級(jí)算法、超強(qiáng)的數(shù)學(xué)能力在我的學(xué)習(xí)中都沒(méi)有什么體現(xiàn)啊!?完全用不到啊~~


那做算法研究,ICPC為了什么???都是做研究的牛人嗎??


ICPC這些東西對(duì)一般程序員有什么意義??


下面是各位過(guò)來(lái)人的回答:



 陳俊直 你參加ICPC沒(méi)有必要,行業(yè)不同,那是計(jì)算機(jī)軟件工程師參與的。個(gè)人感覺(jué)嵌入式工程師所涉及的算法和計(jì)算機(jī)軟件工程師所設(shè)計(jì)的算法有一小小差別。計(jì)算機(jī)軟件工程師要實(shí)現(xiàn)的是運(yùn)行在通用計(jì)算機(jī)平臺(tái)上的軟件,算法研究偏向于盡量降低系統(tǒng)的開銷,完全不需要考慮硬件設(shè)備。


而嵌入式軟件工程師所設(shè)計(jì)的工作是面向機(jī)器編程或者是面向過(guò)程編程,算法多考慮的是如何結(jié)合硬件來(lái)處理事件。因?yàn)榍度胧较到y(tǒng)不像計(jì)算機(jī)那樣有大量的內(nèi)存資源(RAM基本以KB計(jì)算,所以很少敢用鏈表,甚至部分電子、測(cè)控、自動(dòng)化專業(yè)學(xué)生都不學(xué)數(shù)據(jù)結(jié)構(gòu),雖然他們以后可能也從事嵌入式軟件研發(fā)),但當(dāng)你用DSP處理圖形圖像、音頻、電機(jī)控制的時(shí)候,就會(huì)用到算法了。最簡(jiǎn)單的是《自動(dòng)控制》課本里提到的PID。還有我聽到過(guò)而沒(méi)做過(guò)的神經(jīng)網(wǎng)絡(luò)算法(在實(shí)驗(yàn)室跟做項(xiàng)目時(shí)候聽研究生們說(shuō)的,但我只是個(gè)本科生。自控課本里那堆數(shù)學(xué)理論都沒(méi)看懂呢),打個(gè)比方,要設(shè)計(jì)一個(gè)嵌入式系統(tǒng)控制自加熱水壺的水溫精確并快速達(dá)到60℃,是直接燒到60℃就停止加熱(但停止后有余熱會(huì)繼續(xù)升高溫度,這樣浪費(fèi)電能);還是加熱到五十多度后停止加熱讓余熱慢慢使水溫到達(dá)60攝氏度后再斷續(xù)控制水溫(如何做到既省電又省時(shí)間)。


而對(duì)電機(jī)的控制,記得看過(guò)MIT的學(xué)生做的四軸飛行器,那個(gè)東西在狂風(fēng)中飛行都可以做到平穩(wěn)自如,拿桿子捅它也只是晃動(dòng)一下,很快就回復(fù)平穩(wěn)狀態(tài)。這也是自控的算法實(shí)現(xiàn)的。還有更接近人們生活的嵌入式系統(tǒng)算法就是實(shí)現(xiàn)汽車ESP車身穩(wěn)定系統(tǒng)的那些算法。


所以,嵌入式軟件研發(fā)工程師其實(shí)跟普通計(jì)算機(jī)軟件工程師(程序猿)在設(shè)計(jì)思維上還是有一些區(qū)別的。但共同點(diǎn)是:苦逼加班必不可少……


PS:本人對(duì)這些過(guò)程控制、自動(dòng)控制理論實(shí)踐較少,如有錯(cuò)誤敬請(qǐng)指出。



 沈沉 因?yàn)槟銓?duì)自己的定位是"一般的程序員",所以確實(shí)沒(méi)什么意義。



 李劍波-游友移動(dòng) 嵌入式與算法沒(méi)有直接聯(lián)系。你提到的嵌入式開發(fā)是屬于嵌入式系統(tǒng)的驅(qū)動(dòng)單元,嵌入式系統(tǒng)中涉及算法的部分應(yīng)該在“主控單元”。如果你想覺(jué)得做算法高級(jí),可以考慮到通信領(lǐng)域試試看。通信領(lǐng)域的無(wú)線信道計(jì)算里會(huì)涉及很多算法,但是也基本成熟。


還有機(jī)器人領(lǐng)域,在機(jī)械手臂控制上會(huì)有識(shí)別算法,還有就是涉及圖像處理的嵌入式領(lǐng)域。另外,樓主應(yīng)該知道每個(gè)人都有自己的成長(zhǎng)軌跡,這個(gè)軌跡與周圍環(huán)境關(guān)系巨大,你想想還有人30不到當(dāng)國(guó)家一把手,雖然大家軌跡不同,但是軌跡的終點(diǎn)應(yīng)該是我們心里所尋找的地方,而不是從眾的結(jié)果。如此,每個(gè)人的人生都是獨(dú)特的。



 邱震鈺 有這閑情干嘛不留著去享受造車輪的樂(lè)趣,寫點(diǎn)編譯器、3D圖形引擎、regex引擎、通用Adt庫(kù)、網(wǎng)絡(luò)庫(kù)、3D超級(jí)瑪麗之類的或者在嵌入式實(shí)現(xiàn)一些你想有別于一般嵌入式從業(yè)者的東西,ICPC這種,不適合你(價(jià)值觀上)。


條條大路通羅馬。



 tom pareto 建議回頭把嵌入式系統(tǒng)的定義再回顧一下。什么叫嵌入式系統(tǒng)?國(guó)內(nèi)一個(gè)普遍被接受的定義是:嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。這里的定義很值得琢磨,由于嵌入式系統(tǒng)與常規(guī)計(jì)算機(jī)系統(tǒng)相差較大, 所以對(duì)代碼質(zhì)量的要求很高。


從計(jì)算機(jī)的角度來(lái)看,程序的性能要高,所以時(shí)間復(fù)雜度要低。由于內(nèi)存小,所以空間復(fù)雜度要低,要設(shè)計(jì)很好的數(shù)據(jù)結(jié)構(gòu)。功耗要低,所以將一些硬件功能用軟件完成。從應(yīng)用的角度來(lái)看,嵌入式系統(tǒng)以應(yīng)用為中心,所以有一大票應(yīng)用的算法需要開發(fā):語(yǔ)音識(shí)別、人臉識(shí)別、數(shù)據(jù)融合、路徑檢測(cè)、機(jī)器視覺(jué)、壓縮編碼、信號(hào)檢測(cè)、...…。


在你的工作中,算法和數(shù)學(xué)能不能用上,取決于你自己。類似于機(jī)械加工,一般技術(shù)工人并不需要太高的理論水平,只需要讀懂工程師給的圖就可以了。但是,對(duì)于工程師來(lái)說(shuō),那就不一樣了,必須合理地選擇材料、結(jié)構(gòu)、工藝,這個(gè)時(shí)候就需要理論了,所以一切取決于你自己了。



 李俊杰 根據(jù)你工作內(nèi)容而定,根據(jù)你個(gè)人偏好而定,如果你愛(ài)造輪子,這些有用。嵌入式也分硬件和軟件。如果你選擇偏硬件,在電子上多下功夫,軟件競(jìng)賽對(duì)你沒(méi)有用。如果選擇偏軟件的,現(xiàn)在比較多的是linux驅(qū)動(dòng)開發(fā),也沒(méi)有涉及多少算法。但是不想做底層的搬運(yùn)工,想可以往上層轉(zhuǎn)型的時(shí)候,像圖像處理,語(yǔ)音識(shí)別這些涉及數(shù)學(xué)的就比較多了,然后感興趣可以走機(jī)器學(xué)習(xí)之類高薪低競(jìng)爭(zhēng)的方向??催@些的時(shí)候,算法和數(shù)學(xué)功底就顯得尤其重要了。簡(jiǎn)單的使用單片機(jī)、DSP,控制個(gè)電機(jī)、連個(gè)攝像頭,都沒(méi)有多少技術(shù)含量。像樓上提到的四軸、自平衡的優(yōu)化、機(jī)器人、路徑的規(guī)劃、攝像頭、圖像的壓縮等等,同樣的東西看你自己要挖掘多深了。



 王鑫 電子專業(yè),大一打了一年ACM,區(qū)域賽打醬油蹭個(gè)銅牌,至少寫起程序來(lái)虐虐同學(xué)還是很容易的(學(xué)校很一般般)。參加這類比賽還是會(huì)讓你的思路開闊一些,代碼實(shí)現(xiàn)能力強(qiáng)一些。



 仲睿光 作為一名有多年OI經(jīng)歷,目前研究軟件無(wú)線電方向的嵌入式算法工程師來(lái)回答一下吧。我現(xiàn)在做的主要是各種通信算法在FPGA、DSP及多核arm上實(shí)現(xiàn),如寬帶抽取濾波器,主要難點(diǎn)是算法在并行下的展開,強(qiáng)實(shí)時(shí)要求下的調(diào)優(yōu),所涉及到的知識(shí)結(jié)構(gòu)主要是計(jì)算機(jī)體系結(jié)構(gòu)的基本知識(shí)(如CPU工作原理)、數(shù)字電路,但是在實(shí)現(xiàn)時(shí)候要對(duì)算法本身了解透徹(據(jù)說(shuō)近幾年acm和oi出過(guò)fft相關(guān)試題?本人沒(méi)有親自考證)。以fft為例,該運(yùn)算在FPGA上的實(shí)現(xiàn)思路與PC及GPU思路完全不同。此外還有各種為了接近硬件io瓶頸的zero copy的代碼研究。從嵌入式工控方向看,也對(duì)數(shù)學(xué)基礎(chǔ)有一定要求,如無(wú)人機(jī)飛控涉及到的算法。當(dāng)然應(yīng)用面較廣的通用嵌入式,主要側(cè)重于業(yè)務(wù)組合,對(duì)算法要求不高。



 匿名用戶 對(duì)于“一般”程序員,有很高的概率沒(méi)有意義。嵌入式行業(yè)依托于硬件,測(cè)試成本更高。實(shí)際的開發(fā)中,大多數(shù)時(shí)候會(huì)更傾向于穩(wěn)定為主,出于成本效益角度考慮,沒(méi)有機(jī)會(huì)讓你去按照你的想法去做你想做的。一個(gè)“一般”的開發(fā)人員,在這個(gè)方面基本沒(méi)有什么話語(yǔ)權(quán)。不管初創(chuàng)公司也好,行業(yè)生存十幾、幾十年的公司也好,代碼往往都是撿著現(xiàn)成的來(lái)。說(shuō)PID算法的,哪家公司會(huì)讓你自己從零實(shí)現(xiàn)?還不都是以調(diào)參為主,這對(duì)開發(fā)人員有很高的要求么?而且還有一種悲哀的情況是,嵌入式行業(yè)公司的競(jìng)爭(zhēng)力,技術(shù)以外的東西更多,技術(shù)人員的重要性相對(duì)低。你做開發(fā)的費(fèi)盡心機(jī)做的優(yōu)化,很可能比不上銷售的一杯酒,比不上評(píng)審時(shí)的一個(gè)悄悄送上的信封…



 歷蘇 一般來(lái)說(shuō),嵌入式軟件開發(fā)的復(fù)雜度不可與計(jì)算機(jī)的開發(fā)相比,所以對(duì)算法的要求不會(huì)那么高,但是往往為了壓低成本,大部分嵌入式設(shè)備的內(nèi)存和存儲(chǔ)空間會(huì)比pc小很多,因此也是需要進(jìn)行算法優(yōu)化的,所以高級(jí)的嵌入式設(shè)備對(duì)基本的數(shù)據(jù)結(jié)構(gòu)和算法還是要學(xué)的。但往往嵌入式更重要的是要求硬件設(shè)計(jì)的品質(zhì),還有軟硬件結(jié)合、系統(tǒng)移植、驅(qū)動(dòng)程序開發(fā)(可能需要連接傳感器)的知識(shí)。


|?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|

|?如有侵權(quán),請(qǐng)聯(lián)系刪除?

???????????????? ?END ?????????????????

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉