前言
首先就開發(fā)方向而言,大致可以分為四大塊:
一、嵌入式開發(fā)嵌入式開發(fā)其實(shí)可以分為兩大類:一類是不帶操作系統(tǒng),一類是針對帶操作系統(tǒng)的Linux。帶操作系統(tǒng)的當(dāng)然還有其他,這里就拿Linux操作系統(tǒng)做討論。 不帶操作系統(tǒng)的,大家最熟知的就是MCU,這是很多同學(xué)大學(xué)時期就會接觸的東西。比如智能家居,或者說給門做一個開關(guān)等等,這些對于剛開始做開發(fā)的同學(xué)來說,是比較酷。但是從這個場景也可以看得到,MCU是更適合單人或是小團(tuán)隊(duì)做的項(xiàng)目,不太適合大項(xiàng)目的多人合作。因?yàn)楸旧鞰CU的特點(diǎn)就在于輕量級,很小。很多公司項(xiàng)目就是一到兩個人即可。選擇這個方向的很多是以電子,通信,自動化或是機(jī)械設(shè)計相關(guān)專業(yè)的朋友,也就是計算機(jī)邊緣專業(yè)的朋友會選擇MCU,那如果是計算機(jī)相關(guān)專業(yè)的朋友可能就會選擇Linux相關(guān)的,選擇MCU的很少。 那MCU到底值不值得推薦呢?回歸到話題本身,對于方向的選擇就是個人的愛好與自己經(jīng)驗(yàn)的選擇。有些朋友可能就是喜歡做MCU,面向愛好編程,這里就不做討論。這里我們更多討論的是“面向薪資編程”,可能很俗氣,但個人認(rèn)這是相對客觀的選擇標(biāo)準(zhǔn)。 說MCU好吧,是的,MCU很容易學(xué),不是很難。如果是想做軟件開發(fā),做硬件不行嗎? 做硬件是可以的,硬件是軟件的支撐。但是對于一名程序員來說,對于運(yùn)用的多樣化還是靠軟件去支撐。也因?yàn)槿绱耍浖_發(fā)的薪資會比硬件多很多。所以,如果不是特別喜歡,愿意為愛發(fā)電的化,還是建議大家做軟件。 這里不推薦,不是因?yàn)闆]有市場,畢竟國內(nèi)而言,好的,優(yōu)秀的硬件大廠也不是沒有。只是作為軟件開發(fā)的角度來看,它的成長性不強(qiáng),多人協(xié)作的能力不強(qiáng),不適合大項(xiàng)目。這里大項(xiàng)目的理解是人數(shù)上的大項(xiàng)目,而不是金額上的。 再說說Linux操作系統(tǒng)方向的嵌入式嵌入式的很多崗位屬于制造行業(yè),其特點(diǎn)是靠硬件和人力成本上的利潤獲利,而軟件對于制造行業(yè)來說就是半賣半送,不會以軟件作何核心來體現(xiàn)。比如手機(jī)上的軟件, 而Linux嵌入式比MCU好的點(diǎn)在于,至少是到操作系統(tǒng)的,其使用場景相對復(fù)雜。先說應(yīng)用開發(fā),以上位機(jī),界面化開發(fā)為主,能選擇的方向:QT等,其項(xiàng)目單一,迭代時間很長。然后是內(nèi)核驅(qū)動開發(fā),主要是產(chǎn)品廠商,可能會有少部分會有Java開發(fā),大概率是的芯片原廠。 那說到這里,不少朋友可能會說,那到底如何選擇技術(shù)方向呢? 如何判斷方向好與不好,主要看兩點(diǎn):
其實(shí)很多現(xiàn)在大家所說的程序員的35的危機(jī),大多來自于此,一個方向做了三五年,一眼就看到了八年十年后自己的樣子,它的薪資成長性和技術(shù)成長性已經(jīng)看到頭了。另一方就是來自于內(nèi)卷。 就上面已說的崗位而言,MCU 的薪資成長性,從新手到五年,是由區(qū)別的,但是五年到十年的提升就比較一般了,技術(shù)成長性也會一般。 而嵌入書,上位機(jī),這種,如果是進(jìn)大疆等這種龍頭企業(yè)就沒法談,所以我們今天討論的是一般性,不會拿最頂和最差做特例去談。 說到龍頭企業(yè),這里和大家分享一下offer如何選擇,特別是對于應(yīng)屆生而言,很多時候?qū)τ谛劫Y和平臺之間兩難。 第一,看公司。公司是在什么平臺,平臺和公司有關(guān),和你無關(guān),但是公司好不好還是和自己有關(guān)的。行業(yè)往后排。 第二,看團(tuán)隊(duì)。大的公司是有不同的團(tuán)隊(duì)的,選擇好的團(tuán)隊(duì),也就選對了之后處事的同事人群,這對于自己之后的學(xué)習(xí)提升會有很大的幫助。 第三,看薪資。在好的平臺公司,除非體量差別特別大,如果差不多,就看薪資。 第四,看技術(shù)方向。 很多人不理解,為什么把技術(shù)方向放在最后。 這么說吧,現(xiàn)在Java很火,不少的c/c++開發(fā)的程序員都轉(zhuǎn)了Java和go,原因并不是說看好這個方向,大部分的實(shí)際情況還是在于,招聘的大小公司多,薪資高。其實(shí)也就是"面向薪資"編程。至于有人說的隔行如隔山,那大家可以想想,同樣是編程,這座山能有多高,而且作為一名程序員而言,學(xué)習(xí)能力是必備的基礎(chǔ)技能。 你能夠讓好的企業(yè)面試通過了你,并給你開出滿意的薪資,然后讓你轉(zhuǎn)一個技術(shù)方向。說明他們認(rèn)可你的學(xué)習(xí)能力,給你學(xué)習(xí)的時間。那自己還在擔(dān)心什么呢? 當(dāng)然,還是之前說的,自己對于目前的技術(shù)方向有追求就另說。 二、桌面開發(fā)桌面開發(fā)的技術(shù)體系和上位機(jī)很像。c/c++的桌面開發(fā)以QT/MFC為主。其薪資也有很高的。比后端不會低。但是薪資的成長性上,五年和十年也不會太大。 三、游戲開發(fā)游戲開發(fā)的好處在哪里呢?你可以完全不用擔(dān)心沒有應(yīng)聘的崗位,崗位一直都會有,只要PC機(jī)還在,游戲產(chǎn)業(yè)還在。就會有大把的崗位。不像是區(qū)塊鏈,搞不好就沒有了。 游戲開發(fā)的話主要是游戲客戶端開發(fā)和服務(wù)器開發(fā)。那這兩個方向如何選擇呢?如果薪資差不多的話,選服務(wù)器開發(fā)。 四、后臺開發(fā)后臺開發(fā)就比較泛了,比如前面說過的游戲服務(wù)器,還有金融,網(wǎng)絡(luò)安全等等。但是總體來說,沒有桌面開發(fā)那么多,更比不上Java。后臺開發(fā)有很多,但是c/c++后臺開發(fā)不一定每家公司都有。如果說你在的公司目前有c++后臺開發(fā)或是以前沒有現(xiàn)在準(zhǔn)備有,說明相對來說該公司還是不錯的。c++面向的是組件開發(fā),要用到c++后臺開發(fā)就是需要去造一些輪子。 這里是比較推薦大家,如果是準(zhǔn)備扎根于c/c++這個方向,可以優(yōu)先考慮c++后臺開發(fā)。 原因有四: 第一,c++后臺開發(fā)是常年公司招人卻又招不到人的崗位,不是說它不卷,而是對于這個崗位的公司來說,基本上都是本著寧缺毋濫的原則。所以只要技術(shù)到位,薪資還是很客觀的。而且大部分是大廠,對于學(xué)歷的要求也是相對較高。 第二,c++后臺開發(fā)基本上是大廠必備,對于想要進(jìn)大廠的c++程序員,它是不錯的考慮。 第三,c++后臺開發(fā)工程師的培養(yǎng)周期很長,比如說Java ,你身邊有沒有工作四五年的Java程序員被3個月的新生代頂替掉的現(xiàn)象,而這個確確實(shí)實(shí)存在。而c++后臺開發(fā)很難速成,它的慢也讓很多本身是做c/c++的最后選擇去做Java,python了。 第四,c/c++后臺開發(fā)它是比較龐大而復(fù)雜的體系。比如A公司做即時通訊,B公司也做即時通訊,但是他們的代碼框架是不一樣的,日志也不一樣,流媒體編碼也不一樣等等,這也就是為什么招聘的這個崗位的時候更注重程序員對計算機(jī)原理,底層技術(shù)的理解和學(xué)習(xí)能力。也正是這種非一成不變讓技術(shù)崗位更具成長性和競爭性。 既然說了c++后臺開發(fā)是c/c++后臺開發(fā)者不錯的選擇,但是面對其要求肯定也讓不少人感到困惑:我是不是適合呢? 五、什么樣的人比較適合c/c++后臺服務(wù)器開發(fā)?
前面咱們也提到了,正是因?yàn)閏++的內(nèi)容很多,所以至今是沒有出現(xiàn)c++大一統(tǒng)的框架來解決所有的問題的。還有不少的朋友甚至覺得做c/c++后端開發(fā) 只要把TCP/IP協(xié)議學(xué)好就可以了。 六、那對于c++后臺開發(fā)的技術(shù)學(xué)習(xí),具體要學(xué)習(xí)哪些技術(shù)內(nèi)容呢?這里分享給大家分享一份c/c++Linux后臺開發(fā)的學(xué)習(xí)技術(shù)路線,自己可以對照的參考,查漏補(bǔ)缺。 作為個人目前覺得對于對c/c++后臺開發(fā)體系總結(jié)完善程度最為詳細(xì)的學(xué)習(xí)路線,來自于零聲教育的這份學(xué)習(xí)提升路線: 主要從七大模塊提升:
免費(fèi)公開課訂閱即可以學(xué)習(xí): 如果是想在c/c++后臺開發(fā)方向得到有效的快速提升(不是所謂的速成),他們的課程體系是大家繞不過的具有參考意義的提升路線。從學(xué)習(xí)路線中可以對c/c++后臺開發(fā)方向的技術(shù)棧體系有一個清晰的認(rèn)識。 從他們的高概率的大廠學(xué)員offer反饋可以對c++后臺開發(fā)這個崗位在目前市場上的需求和薪資有一個更加深層次的了解。 所以不管學(xué)習(xí)與否,對于這樣一個完善詳細(xì)的提升技術(shù)路線,是值得大家去獲取參考的。 七、配套推薦給大家學(xué)習(xí)的參考書籍
|
|