為什麼在招聘網站上看到招聘JAVA的很多,而C語言和C++相對很少?

事可百樂


在回答這個問題之前,我想先向大家介紹一下編程語言的發展,這樣在瞭解了一定的基礎知識之後就能夠更好的理解“招聘網站上看到JAVA崗位很多,C語言和C++相對很少”。

編程語言的發展

其實,在現代意義上的計算機沒有被髮明之前,就已經出現了編程,那時還沒有形成編程的叫法,大家都只是知道機器能夠識別的只是0101010這樣的二進制數據。於是,們現在稱010101010這樣的編程語言為“機器語言”。而“機器語言”使用起來非常麻煩,因為你要學會使用010101010101表示一切事物,為了解決這個問題,後來逐步發展,把一些常用的指令用英語單詞表示出來,形成了彙編語言,也就是說第二代編程語言;這個時候也是比較痛苦的,你要記住那些單詞的含義不說,還必須告訴計算機每一步要怎麼做,而計算機又是一個非常笨的東西,你掉一個步驟他就罷工,並且彙編語言的可移植性非常差,在這臺電腦能夠編譯成功在另一臺電腦上就不一定了;之後為了方便軟件移植,高級語言誕生了(高級語言就是第三代編程語言),高級語言不要求程序員掌握計算機的硬件運行,只要寫好上層代碼,編譯軟件會將高級語言翻譯成彙編語言,然後再將彙編語言轉化成計算機語言,從而在計算機中執行。


而高級語言裡面又分面對過程的結構化語言和麵向對象的語言,題目中所提到的JAVA和C++就是面向對象的高級語言,C語言是面向過程的高級語言,也成為萬物起源語言。


JAVA語言有什麼優點呢?

市場上對於JAVA需求不是沒有道理的,因為JAVA具備了很多一些別的語言不具備的優點。

1、java能夠跨平臺:一次編寫,到處執行

java語言的跨平臺性非常好,它不僅有為開發普通桌面和商務應用程序的JavaSE,還有為開發企業環境下的應用程序提供的一套解決方案的JavaEE,同時還有為開發電子消費產品和嵌入式設備提供的解決方案的JavaME;

2.java

為什麼能夠跨平臺?

java編寫的代碼可以現在的任何操作系統(也成為平臺)上運行,真正做到了一次編寫,到處執行。這是因為java為不同的平臺都分別提供了JVM虛擬機,只要是java編寫的代碼,都會現在虛擬機上轉換成對應對應平臺上的格式,從而實現跨平臺。

(java創始人)

3、java語言經久不衰

1995年,SUN(Stanford University Network斯坦福大學網絡公司)公司創建了java語言,

1998年12月JDK1.2(將Java分成了J2SE,J2EE,J2ME);

2004年10月 JDK1.5(改名JavaSE5.0,JavaEE,JavaME);

2009年04月20日,甲骨文(Oracle)74億美元收購Sun。

...

由此可見,java語言是少見的功能強大、拓展性好且穩定的語言,這是市場離不開java的很重要的原因。


而C語言以及C++語言並不是沒有需求,一般編寫大型遊戲都會使用C,只不過現在的高級語言種類眾多,並且C的使用場景並沒有java那麼普遍;所以,最終體現在招聘上,java的崗位就多一些,而c和c++的崗位就相對來說少一些。


贈人點贊,手留餘香。我是小強Talk,歡迎大家關注我,和我一起共同成長進步!

小強Talk


在講理論之前,先分享個小故事。

我最開始在BAT實習的時候,用的是PHP,然後我有個同學只會C++,希望我能幫忙內推一下。

這當然沒問題啊,但是我們組沒有寫C++的。

於是我就去問隔壁廣告組的同學,人家說,我們只招寫JAVA的,不收C++的,但是我可以幫你再問問其他部門的。

於是,幾經周折,才在隔壁樓找到一個招C++實習生的項目組。

好在我同學夠優秀,順利通過了面試。

但是等到校招季的時候,我已經順利拿到了offer,提前入職了,他卻又開始找工作投簡歷了。於是我就問他怎麼回事,他說C++項目組今年校招綠色通道沒有名額,他只能再另謀高就了。

上面這個親身經驗呢,是想說明兩點

1目前招C/C++的確實很少

2招進去之後,可能還是沒有head count轉正。

所以啊,從公司的角度都是如此,從招聘網站上看到很少招C/C++的職位,就更加在情理之中了。

那麼,為什麼現在用C/C++的越來越少了呢。

這就和兩種語言的特性有關了。

JAVA vs C/C++

與C/C++比起來,JAVA可以說是後來者居上,取長補短。它既保留了C語言的各種優點,又剔除了C語言裡指針,多繼承等晦澀的難點,更是增加了友好的try-catch-throw,極大了減輕了程序員在編程過程中的壓力。

此外由於靠近底層,C語言的學習與調試成本也很大,導致其可移植性也遠不如java靈活。

再進一步講,由於語言難度大,如果想用C語言編寫出一個程序或者平臺,其人才培養與開發過程的消耗都遠高於使用JAVA。因此,就算從成本的角度出發,java也是要比C語言更加優秀的選擇。

求職數據

最後,我們用一組數據來證明吧。

2019.2.19 21:59,我在某求職網站上輸入java,得到的在招崗位有1602條。

而隨後,輸入C,得到的信息只有可憐的282條。

市場的供需關係可見一斑。

基於此,我的觀點是,既然C/C++已經逐漸沒落,JAVA現在風頭又一時無兩,建議有學習C語言意向的同學考慮轉去學JAVA。

畢竟,智者都是根據市場走勢,來及時調整方向。



——————————————手動分割——————————————

真是服了評論裡的各位了呢,都跟我說搜搜嵌入式試試。

好噠,我真的搜啦,看到沒,各位朋友,228條,還不如搜C的多呢。

——————————————————分割結束————————————

如果你對我的回答有什麼問題,歡迎在下方給我留言,我是蘇蘇思量,性別女,頭像是本人,來自BAT的Java開發工程師,經常分享科技類見聞,歡迎關注我,與我交流哦。

最後,加個私心,也許你也願意看看把分佈式部署在同一個機器的血淚史。

https://m.zjurl.cn/answer/6659350280661893379/?iid=62984567304&app=news_article&share_ansid=6659350280661893379&app_id=13


蘇蘇思量


這個標準是國內的標準看,如果放在全球的範圍內這三種編程語言還依然還是排名前三名,但現在編程語言有個大趨勢已經不可逆了,就是集成化編程語言的流行,符合這種特質的java和python,python好像集成度更加高一些,所以上升的勢頭非常猛,特別受到培訓機構的推崇,畢竟學習週期會短很多,而且發展潛力非常大,但現在就python的實際就業機會相對還是比較少,有一個朋友搞了一年多的python結果在西安找工作,最後終於找個了真的需要python編程的工作,從而發表感慨千萬不要相信所謂的發展前景,當下才是最重要的。

就現在實際情況看C/C++還在發揮極其重要的作用,現在很多客戶端軟件以及服務器的開發都離不開這兩種編程語言,只不過不像java語言這麼火熱,現在很多底層開發語言的職位薪資也是非常高,而且入門的門檻也非常高,因為門檻高很多人做不了的導致索性現在很多人就不作為入行的編程語言了,畢竟入行找個更加簡單點的工作會更好一些,現在的大學生喜歡做一些簡單化的東西,即使現在流行的人工智能底層性能影響的也是這兩種編程語言。

因為國內這兩年互聯網公司非常流行,主要開發在應用級別開發,無論在後端還是客戶端幾乎都離不開java,所以相對來講java職業也是最多的,而且在二三線城市也有大量的java開發人員,職位數量就是第一存在,從全球範圍看很多C/C++在一些核心技術層面使用範圍還是非常廣泛,特別是一些涉及到核心技術CA認證等等都是這兩種語言搞的,所以不要覺得這兩種編程語言已經退出歷史舞臺了,而且國內軟件發展這麼多年,還有很多核心技術還沒能掌握,而且軟件開發有些時候不完全是技術層面問題,還涉及到生態鏈的建立問題,就拿操作系統做例子,即使現在能夠做出來也不一定能夠建立生態圈子,所以落後在短時間內很難彌補上,需要時間以及生態的積累。

回到現實中初學者如何選擇編程語言,除了市場供需因素之外,還需要根據個人的實際情況,如果覺得自己就想在某個方面施展,那就全力以赴的去學習,不要太在意別人的選擇,有些編程語言可能開始學的費勁,堅持的時間長了薪資待遇自然就上去了,很多人花了幾萬塊錢參加培訓做了一段時間發現壓根不是自己想做的工作,中間選擇了放棄,所以不要看別人都去報班了自己也跟著去了,結果弄到最後發現不是自己需要的工作,很多人覺得C語言已經沒有市場了,從市場的需求關係看,絕對的數量並不在少數,只不過比例相對低一些,但是薪資待遇真不會低了。

也沒有必要覺得現在大家都去學習java了,是不是市場空間已經不足了,現在企業對於高級軟件工程師大門永遠敞開,學的能力上來了工作機會自然就會有了,至於是不是最流行的編程對於大眾來有用,對於個體就要區別對待了。

希望能幫到你。


大學生編程指南


因為需求決定了。互聯網用c的很少,基本只有傳統的IT CT廠商和硬件結合的項目用c。

c++以前比較牛逼,但是由於坑太多,現在新項目用c++的也變少了。c++依賴太多,太噁心了,因為c++不屬於任何一個公司,而且標準委員會只指定標準,不實現標準,而且c++沒有實際意義上的二進制abi規範,所以換一個編譯器,升級一個編譯器版本,不用編譯器編出來的動態庫混用,甚至換一個STL實現,都會出現不兼容的問題。而且現在c++標準98/03/11/14/17/20這麼多標準,實現多少完全看編譯器,而由於不屬於任何一個公司,編譯器也分好多種。各種不兼容,導致一個在g++4.5版本下跑的好好的歷史遺留項目,用的03標準。想開一個c++11跑跑,結果n堆編譯錯誤。在老標準可以用的寫法,新標準禁止了。新標準的c++其實很好用了,但是由於各種歷史原因導致的,坑實在太多,技術水平一般的公司不容易hold住,而且隨著硬件水平提升性能優勢也不是很明顯了,而且其實性能主要看寫代碼的人。

java屬於一個公司,標準制訂,編譯器的製作要一致的多。而且升級版本不會有像c++那麼多問題。現代c++非常好用,但是由於c++的項目大多都是歷史項目,所以升級不了編譯器,還得繼續用十幾年前的c++寫代碼,所以就顯得c++很難用了,這怎麼和現代的java比。

還有一個重要原因是生態,java可以用的庫,太多了,而且有強大的包管理。而c++還是用的非常土的和c語言一樣的頭文件編譯展開的方式。用第三方的庫,都要用源代碼自己編譯,編譯器等級高了不行,低了也不行,用了不同版本的STL還可能連接錯誤,就一個簡單的引用第三方庫就玩死一票人。

這裡不談語法表達性這種區別,大部分公司就是想快速做出項目來,容易上手,拿來就用的東西多,這才是重要的。所以某些語言就慢慢用的少了,但是在某些領域是不可替代的,所以在出現同類型語言前,並不會被淘汰。


冰封灬飛飛


國內互聯網軟件開發規模遠超嵌入式和底層應用軟件開發的規模。

Java應用領域比較單一,基本上都是互聯網應用。比如,各類手機APP,網站等等。這類應用的開發門檻較低,投入小見效快,吸引了很多投資。這應該是Java人才需求旺盛的重要原因。Java開發的職業的特點是,就職門檻低,薪酬較高。由於技術層次不高,新手上路所需時間較短,新老更替週期短,職業穩定性較差。

C/C++的應用領域比較廣,涉及到汽車電子,智能設備的底層驅動和平臺,PC應用,遊戲引擎等等。這類開發的門檻高,投入大風險高,很大程度上制約了投資的規模。這些原因導致C/C++人才需求低迷。C/C++開發的職業特點是,就職門檻高,薪酬待遇低。語言本身的複雜程度就高於Java,由於偏於底層開發,還需要掌握大量的操作系統,網絡協議,硬件接口的知識。新手上路所需時間至少要3年以上,職業穩定性較好。

個人覺得國內IT人才市場的需求狀況從一個側面反映了中國IT行業偏重於上層應用,而底層的核心技術上投入不足的現狀。舉個例子說,物聯網很火,但大部分都集中在網的開發,很少有企業在做物的開發。所謂物的開發就是芯片傳感器之類的核心技術開發。這樣看來互聯網也好物聯網也好繁花似錦的背後,存在著發展潛力不足的隱憂。


日衝信息 黃


作為C++/VC++程序員,事實實招聘C++的也很多,招聘objective–c的也很多,只是JAVA的更多這與IT公司有關。這兩年最火的是APP開發,Android開發需要用JAVA語言,很多網站開發也會用到,所有需求量很大。

C語言開發一般來說都偏向於底層,系統內核與硬件很常見,這些崗位較少,需求量最大的是用於IOS開發的objective–c,objective–c也是C語言的一個分支。


C++一般用於產品的後臺處理開發,C++對於新手並不友好,一般都需要有經驗的開發者,要求Linux/UNIX系統,在Windos上用的多是VC++和C#


萌哈科技


主要還是C和C++太強大了,而現在的大部分互聯網公司都只是追求快速開發,那麼就誕生了很多封裝非常完整的開發語言,遠遠擯棄了底層的東西,而這些封裝完整的開發語言可以速成,而並不需要深挖底層的東西,忽略了很多實現的具體細節,這也是互聯網企業對產品開發的需求導致的,但為什麼C和C++能保持常勝不衰,打個比方,就像C++裡的類一樣,他們倆就是所有類都要繼承的上帝類,至高無上,就是說,後來的這些快速開發的語言,或多或少有他們倆的影子。


南方有佳人c


這個很簡單,第一Java在web領域是排行第一的語言,第二java在信息系統後臺也佔盡便宜,第三Java體系就是擰螺絲釘的模型,大量類庫,組件能讓碼農不必關注底層細節實現業務,層次分的很細,每個層次碼農需求也不同

c cpp面對的開發程序對象不同,基本是底層或者性能優先的程序,過於複雜時會在上層使用腳本便於開發,代碼量天生就少很多,而且語言要求更高,需要長時間訓練,要求也更高


一葉書藏


第一,需求為導向

程序的作用主要就是呈現效果,實現業務。最終服務的個人或者群體不關心你用什麼語言,而且看能否實現我的需求。

正因為是需求導向的,所以如果有一門語言可以更快速、高效的實現就尤為重要了。

正因為需求導向,所以,只要能實現我的需求,我不管你用什麼語言。

第二,學習成本

學習成本越低,相對應的這方面學習的人越多。不是什麼東西都是越複雜越好,未來編程語言只會越來越簡單。我承認c和c++可以實現非常多的功能,真的做到萬物可編程。

但是想編程萬物需要你有知識沉澱,不斷學習。需要掌握的越多,出師越難。等你開發個十來年也不敢說自己精通……人生又有幾個十年?


屁屁觀影


1.相比而言,Java的使用者很多,因為不同語言所使用的領域不同。

2.現在互聯網領域很火,主要是以BS架構的網站為主,而JAVA的核心就是做Web,做大型網站。

3.C語言和C++雖然應用領域也很廣,但是由於C語言太面向底層,實現一個簡單的程序都需要較多的代碼,而且學習成本比較高。而C++雖然在C的基礎上做了封裝,但是它的語法非常複雜,沒有JAVA容易入門。

4.市場的需求導致了這種現象的出現,軟件公司對JAVA程序員的需求大於對C程序員的需求,總的來說,還是這個社會的發展所決定的。





分享到:


相關文章: