嵌入式開(kāi)發(fā)和web開(kāi)發(fā),未來(lái)10到20年,哪個(gè)的前景更好呢?
近期,知乎這個(gè)問(wèn)題引起了21ic家的注意。題主表示:“計(jì)算機(jī)專業(yè)大二學(xué)生,大三要分流,目前對(duì)web開(kāi)發(fā)和嵌入式系統(tǒng)開(kāi)發(fā)兩個(gè)方向比較有興趣,也在知乎上看了類似的提問(wèn),但沒(méi)有讓我比較滿意的回答,喜歡哪個(gè)就選哪個(gè)這種回答有點(diǎn)幼稚,所以只想了解一下這兩個(gè)方向的前景,看看哪個(gè)更好一些。”
接下來(lái)就引用一些網(wǎng)友精彩觀點(diǎn),供同樣有這樣疑問(wèn)的同學(xué)進(jìn)行參考。
作者:注銷用戶
web開(kāi)發(fā)在我看來(lái)技術(shù)門(mén)檻較低,不過(guò)看問(wèn)題的意思應(yīng)該是所指范圍更寬的互聯(lián)網(wǎng)行業(yè)。
如果說(shuō)過(guò)兩年就 本科畢業(yè)找工作,從薪資水平看互聯(lián)網(wǎng)行業(yè)平均會(huì)優(yōu)于嵌入式行業(yè)。
從行業(yè)的發(fā)展看,這兩個(gè)行業(yè)我都看好。
因本人從事的是嵌入式行業(yè),互聯(lián)網(wǎng)行業(yè)的工作內(nèi)容并不了解,所以也就不妄自揣測(cè),僅從嵌入式 行業(yè)做一些介紹。
嵌入式其實(shí)包括的范圍很廣,從小到8位的單片機(jī)到堪比PC性能的手機(jī)SoC,都可以歸入嵌入式,開(kāi)發(fā)這些芯片的驅(qū)動(dòng)是嵌入式,在這些MCU/SoC跑的操作系統(tǒng)和基礎(chǔ)應(yīng)用也是嵌入式,在此基礎(chǔ)上運(yùn)行的業(yè)務(wù)應(yīng)用也是嵌入式(手機(jī)APP等如果不算其中也無(wú)所謂)。
嵌入式行業(yè)需要軟硬結(jié)合。
嵌入式軟件開(kāi)發(fā)經(jīng)常會(huì)有需要與硬件開(kāi)發(fā)人員一起調(diào)試的時(shí)候。一個(gè)片上系統(tǒng)能不能正常跑起來(lái),需要軟件開(kāi)發(fā)者能看懂硬件原理圖,能熟悉和了解常用的硬件接口,能看懂芯片和一些器件的規(guī)格書(shū)。有可能,你需要了解SPI Flash或者NandFlash的接口和內(nèi)部操作邏輯;也有可能在處理音頻接口時(shí)要懂I2S的通訊協(xié)議;或者,外接一顆諸如什么傳感器時(shí),你需要熟知I2C或者SPI接口的時(shí)序;又或者接一個(gè)LCD時(shí)出了問(wèn)題,需要知道同步信號(hào)怎么去量測(cè)。
嵌入式行業(yè)需要基礎(chǔ)扎實(shí)。
嵌入式行業(yè)用到的MCU或者SoC,有可能是運(yùn)行Android這種大型系統(tǒng),或者是嵌入式Linux,也有更小的實(shí)時(shí)系統(tǒng)如VxWorks QNX eCOS ucOS NuttX FreeRTOS等等,有的還需要直面一片荒原,沒(méi)有任何OS。
在沒(méi)有OS的單片機(jī)MCU等環(huán)境,有可能需要熟知每一行代碼耗費(fèi)的指令,需要謹(jǐn)慎的處理中斷等異步邏輯,有時(shí)候沒(méi)有動(dòng)態(tài)分配內(nèi)存,只有幾十K或者百來(lái)K的RAM,沒(méi)有太多的空間給你的代碼去揮霍。
有的運(yùn)行小型的RTOS,你要根據(jù)具體情況分配好搶占式的任務(wù)或者分時(shí)的任務(wù),了解這些任務(wù)切換背后帶來(lái)的時(shí)序和邏輯上面的開(kāi)銷。
在Linux上面,SoC資源是更豐富了,但有可能你需要去裁剪內(nèi)核,或者添加相應(yīng)的驅(qū)動(dòng)。然后,你需要熟知Linux系統(tǒng)從內(nèi)核到系統(tǒng)調(diào)用,再到GNU的工具鏈,才能很好的在嵌入式Linux上做應(yīng)用。
因此,當(dāng)遇到上面的情況個(gè)人需要進(jìn)一步深入時(shí),需要操作系統(tǒng)和體系結(jié)構(gòu)等計(jì)算機(jī)基礎(chǔ)知識(shí)扎實(shí)。
嵌入式行業(yè)需要相關(guān)應(yīng)用背景比較深
大部分情況下,嵌入式行業(yè)不需要太多代碼上的技巧,甚至代碼量也不會(huì)太大,但需要對(duì)相關(guān)應(yīng)用的深入了解。
做多媒體相關(guān)的工作,你可能需要了解H264/265的編解碼;做音視頻傳輸,有可能要熟悉RTSP協(xié)議,G.711和G.729協(xié)議。如果做物聯(lián)網(wǎng),又有可能要熟悉BLE、WiFi相關(guān)背景知識(shí),或者是MQTT協(xié)議。做影像處理,又有可能要了解3A,圖像處理的相關(guān)算法。因?yàn)榍度胧叫袠I(yè)面對(duì)的需求和所應(yīng)用的芯片不同,經(jīng)常需要在原有的基礎(chǔ)上做二次開(kāi)發(fā),或者是從無(wú)到有的去搭建整個(gè)平臺(tái)。那么,能不能了解和熟知你從事的應(yīng)用的背景知識(shí)就極為重要。
從行業(yè)的發(fā)展來(lái)看,我個(gè)人觀點(diǎn)是互聯(lián)網(wǎng)也好,嵌入式也好,都會(huì)成為一個(gè)基礎(chǔ)設(shè)施的行業(yè)在。嵌入式行業(yè)火的那些年,華為這類公司也像今天的BAT一樣,以高出行業(yè)平均一截的工資招攬人才。當(dāng)下這幾年,互聯(lián)網(wǎng)行業(yè)的平均收入確實(shí)是優(yōu)于嵌入式行業(yè)。但在我看來(lái),無(wú)論是中國(guó)制造2025,工業(yè)4.0,還是大數(shù)據(jù)智慧城市等等,都離不開(kāi)互聯(lián)網(wǎng)和嵌入式兩者的結(jié)合發(fā)力。
以當(dāng)下熱門(mén)的大數(shù)據(jù)來(lái)說(shuō),互聯(lián)網(wǎng)的背景無(wú)需多說(shuō),數(shù)據(jù)的采集不需要嵌入式設(shè)備的參與嗎?最近熱炒的新零售,不需要嵌入式影像設(shè)備嗎?工業(yè)機(jī)器人也好,家庭機(jī)器人也好,純粹是互聯(lián)網(wǎng)的事情嗎?里面有多少傳感器?要不要本地的實(shí)時(shí)建模?
以人臉檢測(cè)或者識(shí)別來(lái)說(shuō),為什么會(huì)說(shuō)識(shí)別速度慢,芯片有沒(méi)有硬件加速?有沒(méi)有GPU,有沒(méi)有DSP?要連上網(wǎng)絡(luò)查詢數(shù)據(jù)庫(kù)嗎?好的,數(shù)據(jù)庫(kù)的比對(duì)是純照片嗎?還是提取人臉特征?人臉特征提取要不要嵌入式設(shè)備去做?不同光照條件要不要3A算法去處理?要不要做高動(dòng)態(tài)?
是不是活人要不要紅外檢測(cè)?嗯,還有時(shí)下熱門(mén)的3D結(jié)構(gòu)光建模。這樣,一個(gè)簡(jiǎn)單的應(yīng)用,從圖像采集,到圖像處理,再到圖像算法,然后是傳輸,還有控制,有可能涉及到多顆嵌入式芯片的參與。那么,它的背后也涉及了多個(gè)公司多個(gè)團(tuán)隊(duì)的協(xié)作。
我想說(shuō),不論是做互聯(lián)網(wǎng)行業(yè)還是嵌入式行業(yè),在大學(xué)時(shí)期的基本功一定要學(xué)扎實(shí)。雖然我沒(méi)有從事互聯(lián)網(wǎng)行業(yè),但我相信這個(gè)行業(yè)深入下去也一定需要扎實(shí)的基礎(chǔ)知識(shí)和行業(yè)應(yīng)用背景知識(shí)的儲(chǔ)備。不是程序設(shè)計(jì)語(yǔ)言不重要,而是操作系統(tǒng),體系結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),乃至高等數(shù)學(xué),這些大學(xué)的基礎(chǔ)課程,都是你深入這個(gè)行業(yè)必須的。如果說(shuō)一個(gè)培訓(xùn)班幾個(gè)月培訓(xùn)出來(lái)就能做的事情,也不必去搶著做。畢竟,讀大學(xué)干嘛的?
最后,這兩個(gè)行業(yè)如何選擇,考慮下自己的興趣愛(ài)好,考慮下將要去往的城市,決定還是自己去做的好。
作者:VizXu
我算是做嵌入式的,姑且過(guò)來(lái)談一談自己的想法。
web開(kāi)發(fā)我不甚了解,所以這里只講嵌入式相關(guān)的內(nèi)容。
一、嵌入式學(xué)習(xí)曲線
嵌入式所涉及的內(nèi)容相當(dāng)之廣,由此導(dǎo)致學(xué)習(xí)曲線陡峭,學(xué)習(xí)成本很高,但是回報(bào)率卻不見(jiàn)得很高,至于為什么會(huì)這樣,下文會(huì)有分析。這里先討論一下學(xué)習(xí)曲線問(wèn)題。我想從語(yǔ)言、操作系統(tǒng)、版本控制系統(tǒng)、編譯系統(tǒng)、和技術(shù)棧這五個(gè)方面講解:
語(yǔ)言:
C無(wú)疑是最基本的,如果你搞驅(qū)動(dòng)那么還需要對(duì)匯編有所了解,雖然可以不那么熟練,但是需要對(duì)照datasheet知道如何實(shí)現(xiàn)硬件和軟件交互,其實(shí)就是各種倒騰寄存器。按道理如果只和內(nèi)核打交道事實(shí)上C++都可以不掌握,但是只要涉及到Framework的東西C++是肯定需要的,因?yàn)橛布橄髮尤荂++寫(xiě)的,本著技多不壓身的原則,這里默認(rèn)C++也是要掌握的。
那C/C++掌握到何種地步才能說(shuō)算是可以上手了呢?這是個(gè)我現(xiàn)在也沒(méi)想清楚的問(wèn)題,但是網(wǎng)上90%的人說(shuō)自己精通C/C++都是可以呵呵的,因?yàn)橐郧拔乙策@么認(rèn)為,但是現(xiàn)在我不這么認(rèn)為了,事實(shí)上掌握語(yǔ)法本身和掌握語(yǔ)言是不一樣的,比方我說(shuō)我掌握了8000個(gè)英語(yǔ)詞匯,但是我碰到美國(guó)人可能連一句話都說(shuō)不出來(lái),這也可以類比計(jì)算機(jī)語(yǔ)言。所以我覺(jué)得能不能上手,不在于你語(yǔ)言掌握地如何,按照我本人的經(jīng)驗(yàn)就是多實(shí)踐。不懂就上網(wǎng)搜索,能翻墻就直接google,我想如果只是語(yǔ)言上的問(wèn)題,網(wǎng)上能給你解決99%,剩下的自己摸索。
工作中如果涉及上層或者圖形界面之類的,那你還需要掌握相應(yīng)的語(yǔ)言或者框架比如Qt、python等。我感覺(jué)要是有C/C++作基礎(chǔ),這些知識(shí)都不難掌握。
至于說(shuō)java、js、css、html啥的,要是碰到了就學(xué)習(xí)一下吧,但是我估計(jì)嵌入式本身是不太會(huì)涉及這些語(yǔ)言的,除非小公司啥都你一個(gè)人搞。
操作系統(tǒng):
雖然嵌入式操作系統(tǒng)我本人知道的就有Linux、vxworks、mips、wince、QNX,事實(shí)上還有很多其它的系統(tǒng)。但目前來(lái)看linux仍然是主流,所以linux肯定要掌握。Linux真正流行起來(lái)并做大,很大原因要?dú)w功于Android系統(tǒng)及其移動(dòng)設(shè)備端的流行。想想當(dāng)年symbian統(tǒng)治手機(jī)操作系統(tǒng)的時(shí)候,Linux那時(shí)還是個(gè)小吊絲。Google看上Linux并把它作為Android系統(tǒng)的內(nèi)核,我想無(wú)非出于兩點(diǎn),一是開(kāi)源,社區(qū)參與開(kāi)發(fā)人員多;二是Linux性能確實(shí)不錯(cuò)。如何深入理解并掌握l(shuí)inux?我本人的經(jīng)驗(yàn)是,首先買(mǎi)一本linux內(nèi)核的書(shū),認(rèn)真看一篇,對(duì)它的各個(gè)模塊有一個(gè)比較清晰的認(rèn)識(shí),比方內(nèi)存管理,io,進(jìn)程管理,中斷、文件系統(tǒng),網(wǎng)絡(luò)等,知道內(nèi)核空間是怎么運(yùn)行的,與用戶空間是怎么通信的等等。然后下載一份linux內(nèi)核代碼,先自己嘗試編譯一下,然后嘗試對(duì)各個(gè)模塊進(jìn)行裁剪,燒寫(xiě)到目標(biāo)機(jī)上跑一跑看看效果,對(duì)比一下變化,這樣我想會(huì)理解的更深入。
版本控制:
這個(gè)取決于公司。我git和svn都用過(guò),個(gè)人感覺(jué)git更強(qiáng)大一點(diǎn)。一般用svn的大部分是歷史遺留。這個(gè)就不多說(shuō)了,具體網(wǎng)上搜索一下,看看menupage就好了。不過(guò)我還是要多說(shuō)一句,這個(gè).gitignore實(shí)在是太坑爹了。
編譯系統(tǒng):
不同公司會(huì)有所不同,如果是odm做Android手機(jī)的廠商,都是用google自家的編譯系統(tǒng),就是我們常說(shuō)的Android編譯三部曲(source,lunch和make),如果是其它公司的話可能會(huì)有基于shell或者python的自定義的編譯系統(tǒng),其實(shí)底層也是調(diào)用Makefile。
技術(shù)棧:
因?yàn)楝F(xiàn)在自己負(fù)責(zé)的是我們產(chǎn)品的整個(gè)系統(tǒng)的開(kāi)發(fā),包括底層的和上層的代碼基本上都是要涉及到的,所以我感覺(jué)技術(shù)棧還算是比較寬。如果是linux內(nèi)核開(kāi)發(fā),那么以下技術(shù)是應(yīng)該掌握的: 硬件架構(gòu),片上系統(tǒng),boot,軟硬件裁剪和定制,內(nèi)核編譯燒寫(xiě),驅(qū)動(dòng)開(kāi)發(fā),功耗分析,協(xié)議i2c、spi、uart還有usb等。如果是涉及上層,那么需要掌握的技術(shù): 進(jìn)程間通信,多線程開(kāi)發(fā),信號(hào)量和鎖,圖形界面,網(wǎng)絡(luò)以及網(wǎng)絡(luò)協(xié)議等。
二、就業(yè)前景
從資本流來(lái)看,嵌入式行業(yè)的資本是凈流出的,換句話說(shuō)在走下坡路了,嵌入式曾經(jīng)也火過(guò)一陣,大概是零幾年的時(shí)候,那時(shí)候物聯(lián)網(wǎng)概念剛提出來(lái),嵌入式作為其重要載體,一下子也可以說(shuō)炙手可熱了,但是隨著時(shí)間推移,發(fā)現(xiàn)要實(shí)現(xiàn)萬(wàn)物皆聯(lián)的目標(biāo)還很遠(yuǎn),加上后來(lái)人工智能大數(shù)據(jù)區(qū)塊鏈概念的崛起,人們也逐漸淡忘了嵌入式。目前做嵌入式的公司一般都是做手機(jī),pos機(jī),掃地機(jī)器人啥的,說(shuō)到底還是需要賣(mài)硬件產(chǎn)品,而這種產(chǎn)品生產(chǎn)成本也不低,而且還不好賣(mài),這就直接導(dǎo)致這行賺不到啥錢(qián)。我曾問(wèn)過(guò)我單位一個(gè)資深工程師為啥微軟不想做客戶機(jī),回答毛利太低,一臺(tái)300美金的客戶機(jī)能賺90美金就已經(jīng)很不錯(cuò)了,這還是整個(gè)客戶機(jī)市場(chǎng)就那么幾個(gè)寡頭廠商在做的情況下取得的成績(jī)。所以相比現(xiàn)在火到不行的人工智能、區(qū)塊鏈行業(yè)來(lái)說(shuō)那只能用人比人氣死人來(lái)形容了。
從穩(wěn)定性來(lái)看,一般做嵌入式比較穩(wěn)定,畢竟一來(lái)硬件這東西用幾年也得換,二來(lái)做這行的很少有創(chuàng)業(yè)型公司,像我們這樣的產(chǎn)品全世界也就那么幾家公司在生產(chǎn),完全沒(méi)必要擔(dān)心受到新玩家的沖擊,加上有很成熟的產(chǎn)業(yè)鏈,可以說(shuō)整體是相當(dāng)穩(wěn)定的,當(dāng)然你說(shuō)公務(wù)員那更穩(wěn)定,我也沒(méi)法反駁。再者學(xué)習(xí)成本很高,不能像網(wǎng)站開(kāi)發(fā)那樣上幾個(gè)月的培訓(xùn)就能上手,所以進(jìn)入圍城之類的人才也少,大部分是要不經(jīng)驗(yàn)豐富的老員工,他們已經(jīng)不太好轉(zhuǎn)行了,要不就是我這樣的稀里糊涂入坑的,總之這一行就別想發(fā)大財(cái)啦。
三、未來(lái)趨勢(shì)
做嵌入式路比較窄,學(xué)習(xí)成本不小,還比較孤獨(dú)。當(dāng)然這里說(shuō)的孤獨(dú)是指很少有人和你探討,很多問(wèn)題都需要你自己一步步解決,因?yàn)檫@一行就那么一小撮人在做。 但是你說(shuō)嵌入式會(huì)不會(huì)沒(méi)落?我想肯定不會(huì)的,而且我估計(jì)在某個(gè)時(shí)機(jī)成熟時(shí)可能還要火一把,但是我不知道是啥時(shí)候,這個(gè)只是個(gè)人感覺(jué),玄幻。
不過(guò)我個(gè)人是覺(jué)得技術(shù)這東西看個(gè)人興趣,不是說(shuō)做嵌入式就一定一條路走到黑。學(xué)好了c/c++以及底層的知識(shí),其它語(yǔ)言和技術(shù)其實(shí)很好學(xué)。我本人現(xiàn)在也在自學(xué)人工智能,所以路還是要自己走出來(lái)。
以上,祝好。
作者:kaiyuantian
作為一個(gè)嵌入式轉(zhuǎn)web的過(guò)來(lái)人,對(duì)我來(lái)說(shuō)。
首先工作方便,嵌入式要帶一大堆東西,web一臺(tái)電腦ok了。
其次一個(gè)很現(xiàn)實(shí)的問(wèn)題,web起步工資比嵌入式高的多。
工作做產(chǎn)出web要快的多,而且你的工作95%的時(shí)間都是集中在核心任務(wù)上的,嵌入式不是有時(shí)搭個(gè)環(huán)境一天就過(guò)去了,當(dāng)然如果熟練,并且經(jīng)驗(yàn)豐富的話這些還好。
學(xué)習(xí)曲線,嵌入式要高很多,web上手比較快,但是嵌入式也相對(duì)比較穩(wěn)定,更新?lián)Q代比較慢,web則相反,當(dāng)然掌握了本質(zhì)就很容易了。
至于前景嗎,嵌入式 + web =物聯(lián)網(wǎng) ?嵌入式就是物,web就是網(wǎng)。
當(dāng)前比較熱門(mén)的大數(shù)據(jù),人工智能,都是web方面的,當(dāng)然人工智能也有嵌入式的,不過(guò)也離不開(kāi)網(wǎng)。
公司方面,嵌入式很傳統(tǒng)人,員流動(dòng)?。▊€(gè)人經(jīng)歷),web方面就比較開(kāi)放,人員流動(dòng)大。
如果你關(guān)心到10,20年以后,我建議你都學(xué)。從嵌入式開(kāi)始 到web比較容易,如果反過(guò)來(lái)就比較難了。好好學(xué)linux,c/c++打好基礎(chǔ)。然后在向其他方向發(fā)展。
web開(kāi)發(fā)其實(shí)也有很多分支,大方向有客戶端,服務(wù)端。建議你從服務(wù)端開(kāi)始。語(yǔ)言選擇建議nodejs或python,前者依托JavaScript可以前后端通吃。并且api與linux系統(tǒng)aip很像上手比較容易。python呢與c/c++無(wú)縫連接。
最后想說(shuō),其實(shí)我覺(jué)得你關(guān)心的太遠(yuǎn)了。10后會(huì)發(fā)生什么誰(shuí)都不知道,尤其互聯(lián)網(wǎng)行業(yè),發(fā)展變化非???。踏實(shí)做好眼前是就是最好的
作者:閼男秀
這位同學(xué)很有想法啊,「喜歡哪個(gè)就選哪個(gè)」的確太隨性了。下面就以我個(gè)人經(jīng)歷和觀察分享點(diǎn)看法,供題主和有相同處境的同學(xué)參考。
國(guó)內(nèi)現(xiàn)狀
假設(shè)你面臨畢業(yè)需要找工作,現(xiàn)在有華為、格力、??低暫桶俣?、騰訊、阿里巴巴這幾家讓你選,你會(huì)選哪一個(gè)?——如果是我,我基本會(huì)毫不猶豫地在后三者中繼續(xù)選擇。 前面三個(gè),不敢說(shuō)是行業(yè)頂尖,但也基本是國(guó)內(nèi)做嵌入式比較知名的公司。
- 華為不用多說(shuō)了吧?通信解決方案供應(yīng)商,其家的華為手機(jī),在街上隨便拉一個(gè)人問(wèn)至少也應(yīng)該知道。電子通信類的學(xué)生,大多數(shù)人就是以華為為目標(biāo)。
- 格力,白色家電的代表,與之同期還有美的、海爾等等。家電產(chǎn)品算是嵌入式領(lǐng)域一個(gè)大分支。
- 海康威視,主打視頻監(jiān)控產(chǎn)品,我們公司接過(guò)一個(gè)方案集成項(xiàng)目,客戶指定就要??低暤漠a(chǎn)品作為視頻監(jiān)控。
- 百度,知名于搜索引擎,還有各種衍生產(chǎn)品,貼吧、網(wǎng)盤(pán)、地圖、翻譯等等;
- 阿里巴巴,主打線上交易和支付,常用的淘寶和支付寶便是屬于其家;
- 騰訊則是通訊產(chǎn)品和游戲,微信、QQ等等等。
先不談個(gè)人,要看嵌入式和Web這兩門(mén)技術(shù)前景如何,觀察相關(guān)大企業(yè)發(fā)展情況就可以略知一二了。當(dāng)然了,嵌入式技術(shù)本身還是需要結(jié)合具體領(lǐng)域和應(yīng)用場(chǎng)景,基本上各行各業(yè)都有:手機(jī)、機(jī)頂盒、路由器、車載系統(tǒng)、還有工業(yè)和農(nóng)業(yè)領(lǐng)域的各種嵌入式設(shè)備等等。唯一不變的是:嵌入式技術(shù)做出來(lái)的肯定是軟硬件結(jié)合的產(chǎn)品!
但是呢,我們國(guó)內(nèi)的電子硬件行業(yè)并不太樂(lè)觀,芯片和技術(shù)非常依賴國(guó)外進(jìn)口,有條新聞可以窺斑見(jiàn)豹:美國(guó)封殺中興、華為事件。
唇亡齒寒,嵌入式硬件是載體,嵌入式軟件是靈魂;載體沒(méi)了,靈魂也自然消亡了。
而Web技術(shù),是搭建一個(gè)知名互聯(lián)網(wǎng)平臺(tái)的必須條件。除了前面提到的百度和阿里巴巴,還有近期出現(xiàn)的打車平臺(tái)(滴滴打車),外賣(mài)平臺(tái)(美團(tuán)、餓了么),共享單車(摩拜、OFO),而且知乎(問(wèn)答平臺(tái))這里本身也是屬于Web領(lǐng)域而非嵌入式領(lǐng)域。
共享單車這里我重點(diǎn)說(shuō)一下,我認(rèn)為共享單車無(wú)論是在技術(shù)上,還是在運(yùn)營(yíng)和使用理念上,是一款很經(jīng)典的物聯(lián)網(wǎng)產(chǎn)品了??纯粗悄芗揖宇I(lǐng)域做了十幾年,也沒(méi)有一款能進(jìn)入千萬(wàn)家的革命性產(chǎn)品?
只不過(guò),我們國(guó)內(nèi)似乎還沒(méi)有很多這樣厲害的物聯(lián)網(wǎng)企業(yè)。我目前能想到比較知名的只有摩拜和小米,還有一家做共享車位鎖的公司(利益相關(guān):用他們的主板二次開(kāi)發(fā)過(guò)GPRS車位鎖,項(xiàng)目已卒)。
當(dāng)然了,除了互聯(lián)網(wǎng)企業(yè),還有一些是屬于傳統(tǒng)軟件行業(yè)的,主要是面向各行各業(yè)的信息管理系統(tǒng)(內(nèi)容管理系統(tǒng)CMS),或者一些辦公自動(dòng)化(OA),在線審批系統(tǒng)等等。這里不是很了解就不多寫(xiě)了。
技術(shù)發(fā)展
Web技術(shù)和嵌入式技術(shù),真的是一個(gè)在天飛,一個(gè)在地上跑! Web技術(shù)有開(kāi)源理念,不怕找不到學(xué)習(xí)資料和社區(qū),每個(gè)框架都應(yīng)該有完善的文檔,如果想深入框架具體細(xì)節(jié),可以,自己去閱讀源碼或看看前人是否有貢獻(xiàn)。前端發(fā)展迅速飛快甚至有人發(fā)出「求不要等新了,已經(jīng)學(xué)不動(dòng)了」的感慨。而后端技術(shù)相對(duì)緩慢,不過(guò)框架和語(yǔ)言特性也可以逐年大更新。
反面教材,切勿模仿!
嵌入式技術(shù),不好意思我們產(chǎn)品資料對(duì)外保密不開(kāi)放,卒。開(kāi)玩笑的,其實(shí)最近也有硬件逐步開(kāi)源了,但整個(gè)行業(yè)內(nèi)還是處于保守封閉的狀態(tài),發(fā)展相對(duì)互聯(lián)網(wǎng)比較緩慢。
我二次開(kāi)發(fā)過(guò)一款A(yù)ndroid門(mén)禁打卡機(jī),其Android系統(tǒng)還是4.0,然后我旁邊的前端吐槽說(shuō)那用nodejs框架可能會(huì)有點(diǎn)兼容性問(wèn)題。用是能用,不過(guò)我后來(lái)找到一款免費(fèi)的能在Android上跑的人臉識(shí)別引擎,其官方SDK建議Android版本是5.0+。勉勉強(qiáng)強(qiáng)跑到了門(mén)禁打卡機(jī)上去,可是離線識(shí)別人臉運(yùn)行速度不夠理想,大約2.8s,項(xiàng)目卒。
我不怎么碰無(wú)人機(jī),但我想再舉這個(gè)例子,因?yàn)樵趺匆膊荒芊裾J(rèn)無(wú)人機(jī)屬于嵌入式開(kāi)發(fā)啊。雖然近期沒(méi)怎關(guān)注大疆無(wú)人機(jī)的消息,但印象中,大疆真的就是無(wú)人機(jī)領(lǐng)域里電子消費(fèi)級(jí)別的佼佼者!選擇這條路真的需要沉下心來(lái)做技術(shù),專心研究無(wú)人機(jī)及其相關(guān)技術(shù)才行。不能像我,總是關(guān)注各種技術(shù)和產(chǎn)品的周邊新聞。當(dāng)然了,這一領(lǐng)域,沒(méi)有研究生級(jí)別和相關(guān)學(xué)習(xí)環(huán)境,一般都進(jìn)不去的。同理,如果做到了圖像和語(yǔ)音識(shí)別這些,前景應(yīng)該是不錯(cuò)的(其實(shí)真相是因?yàn)槲医佑|少才覺(jué)得不錯(cuò)嘿嘿)。
而且嵌入式應(yīng)用和Web應(yīng)用都是在Linux上跑,尤其是我上面做的那個(gè)人臉識(shí)別項(xiàng)目,放在云端,那也算是Web應(yīng)用開(kāi)發(fā)吧?放在本地嵌入式Linux系統(tǒng)里,算不算嵌入式應(yīng)用開(kāi)發(fā)呢?當(dāng)然我對(duì)嵌入式開(kāi)發(fā)并沒(méi)有誤解,嵌入式四個(gè)層次:硬件、驅(qū)動(dòng)、系統(tǒng)、應(yīng)用。計(jì)算機(jī)系出身一般是接觸系統(tǒng)和應(yīng)用層;而電子系出身一般做硬件和驅(qū)動(dòng)。
總而言之,Web技術(shù)和嵌入式技術(shù),真的是一個(gè)在天飛,一個(gè)在地上跑!天上飛的速度快,但人人都看得見(jiàn),地上跑的慢但藏得好,不仔細(xì)發(fā)掘真看不到。
個(gè)人發(fā)展
最后說(shuō)下個(gè)人發(fā)展。 如果是做Web開(kāi)發(fā),不論是985/211,還是二三本學(xué)生,只要不是眼高手低,畢業(yè)生應(yīng)該不愁找不到工作,而且可能還有多種選項(xiàng)。
而選擇嵌入式開(kāi)發(fā),不敢說(shuō)找不到工作,但是相比Web可選擇的大大減少,985/211估計(jì)沒(méi)什么大問(wèn)題,但二三本學(xué)生我真的不敢說(shuō)一開(kāi)始就能找到很滿意的那種工作!
我都還記得我當(dāng)年實(shí)習(xí)的時(shí)候,進(jìn)入了一家嵌入式方案公司,同一時(shí)期還有其他學(xué)校的計(jì)算機(jī)系專業(yè)過(guò)來(lái),后來(lái)一個(gè)暑假過(guò)去,想留下來(lái)及能留下來(lái)的也只有我隔壁學(xué)院那個(gè)光源與照明專業(yè)的同學(xué)。那家公司也沒(méi)有多糟糕,博士出來(lái)創(chuàng)業(yè),博帶碩,碩帶本,還請(qǐng)了一個(gè)學(xué)校老師帶我們實(shí)習(xí)生。
工資方面。目前普遍觀點(diǎn)是:同等時(shí)期同等水平同等努力下,做Web能拿到的工資比做嵌入式的要高!
看看各行業(yè)那些知名企業(yè)給出的應(yīng)屆生工資就可了解個(gè)大概。為什么要看大公司給應(yīng)屆生的“批發(fā)價(jià)”?蛋糕很大的時(shí)候,大企業(yè)拿走大的部分,小公司也能分一杯羹填飽肚子;而如果該行業(yè)的巨頭分給員工那么點(diǎn),可想該行業(yè)是不是實(shí)在沒(méi)什么利潤(rùn),或者是不是太壓榨員工了。
另外,如果會(huì)看各行業(yè)巨頭的財(cái)務(wù)報(bào)表,也是能了解這個(gè)行業(yè)發(fā)展好不好的,只不過(guò)我們這些打工仔的工資還是由老板決定。
再說(shuō)一點(diǎn),有些選擇也是因?yàn)樽约旱膫€(gè)人因素,比如我從小就泡在網(wǎng)絡(luò)上,自然偏向于互聯(lián)網(wǎng)發(fā)展;可我大學(xué)的助班師姐,同為電子專業(yè)我也不知道為什么她能學(xué)得那么輕松,年年成績(jī)拿第一,似乎還輕松的考研進(jìn)了某所985/211,只能說(shuō)人比人比死人。有次我向她請(qǐng)教學(xué)習(xí)方法,她說(shuō)她也不知道為什么對(duì)硬件那些一看就懂,努力一下就行,可是如果讓她寫(xiě)代碼,她就挺頭痛的。
大概,命運(yùn)早就給我們上了無(wú)形的枷鎖,而我們只是在這枷鎖可移動(dòng)的范圍內(nèi)做出選擇吧?
作者:金旭亮
未來(lái)會(huì)有大量的智能設(shè)備需要研發(fā),各個(gè)行業(yè)都需要,會(huì)出現(xiàn)很多研制和生產(chǎn)這些智能設(shè)備和產(chǎn)品的公司。做嵌入式開(kāi)發(fā)需要專門(mén)的設(shè)備和儀器等,個(gè)人得進(jìn)入相應(yīng)的公司,研發(fā)特定的產(chǎn)品和系統(tǒng),專業(yè)化程度較高,就業(yè)面窄一點(diǎn)。
Web這塊會(huì)隨著云計(jì)算平臺(tái)的成熟而日益通用化,計(jì)算和存儲(chǔ)會(huì)象水電一樣成為基礎(chǔ)設(shè)施,相對(duì)獨(dú)立的網(wǎng)站的概念會(huì)越來(lái)越弱化,人們關(guān)注的是信息服務(wù),而不會(huì)在意這個(gè)服務(wù)到底是誰(shuí)開(kāi)發(fā)維護(hù)和提供的。
嵌入式開(kāi)發(fā)離不開(kāi)硬件,它會(huì)通過(guò)探測(cè)外界而產(chǎn)生大量的數(shù)據(jù),又能通過(guò)接收控制信息以反過(guò)來(lái)作用于外界,得到的是“實(shí)在之物”,而Web開(kāi)發(fā)是純“軟件”的,關(guān)注于信息這個(gè)“看不見(jiàn)”的東西,主要干的都是信息存儲(chǔ),加工,處理等工作,本質(zhì)上背后全是數(shù)學(xué)。
至于前景,看具體人的,好壞因人而異。
作者:匿名用戶
嵌入式無(wú)疑是最穩(wěn)定的,因?yàn)榍度胧礁咏布?,但是今天的嵌入式可能層次高一點(diǎn),純粹寫(xiě)底層的很少了,寫(xiě)業(yè)務(wù)的多一點(diǎn),和寫(xiě)上層程序差不了多少,別人家的硬件都有弄好的驅(qū)動(dòng),各種東西一組和,弄點(diǎn)代碼,就是產(chǎn)品了,電路啊極端底層啊都是硬件工程師做的。
嵌入式必備技能,c語(yǔ)言,操作系統(tǒng),網(wǎng)絡(luò)編程系統(tǒng)編程,電路了解,驅(qū)動(dòng),編譯裁剪個(gè)操作系統(tǒng)都是家常便飯。這些技能,再未來(lái)估計(jì)50年都不會(huì)淘汰。
再說(shuō)web開(kāi)發(fā),web開(kāi)發(fā)這個(gè)領(lǐng)域,技術(shù)含量特別的低,我是過(guò)來(lái)人,java c# golang 都玩過(guò),什么mvc ioc aop,什么領(lǐng)域驅(qū)動(dòng)。說(shuō)白了,就是增刪查改,然后各種緩存啊,各種數(shù)據(jù)庫(kù)。但是web領(lǐng)域雖然技術(shù)含量不是很高,但是逼格特別高,從前端的mvvm框架,到后端的負(fù)載均衡系統(tǒng)分布式計(jì)算分布式存儲(chǔ)系統(tǒng)大數(shù)據(jù),各種高大上的詞,但都是吹逼的,當(dāng)你真正了解的時(shí)候,你會(huì)發(fā)現(xiàn)屁都不是,很多人都是流于表面。
我總結(jié)一下web領(lǐng)域的人的開(kāi)發(fā)狀況,這個(gè)領(lǐng)域各種東西都是別人開(kāi)發(fā)好的,從數(shù)據(jù)庫(kù),到web服務(wù)器框架,到分布式存儲(chǔ)。打開(kāi)idea,新建sping mybatis項(xiàng)目,連接mysql redis ceph mapreduce,然后再選擇一個(gè)消息隊(duì)列框架,比如選kafka,生成,運(yùn)行與tomcat,負(fù)載與nginx,再弄個(gè)docker,前端弄個(gè)vue裝襯,成了,一個(gè)高逼格helloword,各種牛逼技術(shù)都用上了。
web領(lǐng)域變化很快,你不需要自己搗鼓什么,跟著別人走就是了,技術(shù)含量極低。 是我就選擇嵌入式開(kāi)發(fā),這些技能都是基礎(chǔ),當(dāng)我想學(xué)web的時(shí)候,或許我學(xué)七天比培訓(xùn)一個(gè)月出來(lái)10k的人更牛逼。你以為培訓(xùn)大多的是干嘛的?都是搞web的。最重要的是,很多人基礎(chǔ)太爛,寫(xiě)幾年增刪查改就感覺(jué)自己混不下去了,那就是自己的原因。
總結(jié),嵌入式很難學(xué)習(xí)周期長(zhǎng),需要很多基礎(chǔ)知識(shí),web領(lǐng)域可以當(dāng)混子混日子,培訓(xùn)都能干。
作者:HalfmanG2
就長(zhǎng)遠(yuǎn)看,未來(lái)嵌入式開(kāi)發(fā)和Web開(kāi)發(fā)日子都不好過(guò),事實(shí)上程序員是個(gè)正在死掉的職業(yè)。
程序員產(chǎn)生的原因在于計(jì)算機(jī)操作所需的技能超出了常人的生活技能。
所以過(guò)去在進(jìn)行一些與計(jì)算機(jī)相關(guān)的日常工作時(shí),需要額外的有計(jì)算機(jī)專業(yè)人員參與,也就形成了程序員這個(gè)行業(yè),活躍在各個(gè)領(lǐng)域。
但是,在不久的未來(lái),隨著計(jì)算機(jī)技術(shù)的普及,與開(kāi)發(fā)的日益簡(jiǎn)便,特別是未來(lái)復(fù)雜業(yè)務(wù)逐漸轉(zhuǎn)向云端服務(wù)的情況下,我們現(xiàn)在認(rèn)知中的一些高大上的互聯(lián)網(wǎng)產(chǎn)品,普通人都能很快實(shí)現(xiàn)。所以現(xiàn)在普通的開(kāi)發(fā)人員將失去存在的意義。
那有人可能又要說(shuō)了,既然服務(wù)都轉(zhuǎn)向云端了,是不是 Web 開(kāi)發(fā)會(huì)更有前景呢?答案也是否定的,因?yàn)殡S著各種工具完善,服務(wù)也不再需要專門(mén)的開(kāi)發(fā)人員去處理,除了極少部分的核心算法服務(wù),將幾乎不需要進(jìn)行開(kāi)發(fā)。Web 服務(wù)研發(fā)人員將更注重業(yè)務(wù)邏輯的設(shè)計(jì)與對(duì)于三方服務(wù)的整合,而不是自己去寫(xiě)大把的代碼。
而另外,核心算法服務(wù)也不是現(xiàn)在程序員能 hold 住的,基于諸如 AI、神經(jīng)網(wǎng)絡(luò)、圖像識(shí)別數(shù)據(jù)分析這些核心算法服務(wù),普通程序員根本力不從心,只有專門(mén)進(jìn)行相關(guān)理論研究的數(shù)學(xué)、生物、物理科學(xué)家將主要負(fù)責(zé)這方面的工作。
所以,結(jié)論就是,既然在讀本科,就考學(xué)碩吧。
來(lái)源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!