非計算機(jī)專業(yè)想轉(zhuǎn)IT行業(yè)?
所謂女怕嫁錯郎,男怕入錯行,程序員怕選錯方向。技術(shù)棧的選擇關(guān)系到一輩子吃飯的問題,更何況是從非計算機(jī)專業(yè)轉(zhuǎn)到IT行業(yè),那么就更應(yīng)該謹(jǐn)慎行事了。
下面我就對c++和java進(jìn)行一個對比分析,希望能幫助到題主。
c++c++是從c語言發(fā)展而來的語言,是一門面向?qū)ο蟮恼Z言。它兼容c語言,具有較好的性能,較高的執(zhí)行效率。
但是在編譯c++代碼的過程中,除了按照代碼執(zhí)行之外,c++的編譯器還為我們做了很多額外的工作,這也就造成了c++相對于c語言來說要難很多。而且在幾十年的發(fā)展過程中,c++的標(biāo)準(zhǔn)不斷發(fā)展,變得越來越臃腫,新的特性越來越多。本來就不是一門容易學(xué)習(xí)的語言,再加上內(nèi)容還在不斷的增加,所以學(xué)習(xí)起來要難一些,對新手來說更是如此。所以,從學(xué)習(xí)的角度,不推薦學(xué)習(xí)c++。
另外國內(nèi)的it環(huán)境多是注重于應(yīng)用層面,小公司尤其如此,所以c++技術(shù)棧的相對來說就業(yè)面要稍微窄一點點(當(dāng)然都是相對的哈)。所以從就業(yè)方面來說,也不推薦c++。
javajava語言是sun公司推出的一門面向?qū)ο蟮木幊陶Z言,具有跨平臺、面向?qū)ο蟆⒎盒途幊痰忍攸c。但是相對于c++來說,運行時要大(需要jvm),執(zhí)行效率要低。
但是java中沒有指針的存在,而且由于java的商業(yè)化比較高,其語言發(fā)展的過程中,也相對來說更簡單,學(xué)習(xí)曲線更加平滑。所以相對于c++來說,上手會更快、更容易。
另外在國內(nèi)的各大小企業(yè)中,java也相對于c++應(yīng)用的更加廣泛,就業(yè)機(jī)會相對來說更多。所以從就業(yè)方面說,也更加推薦java。
其它雖然題主只問了java和c++,但是此處我還是想提一下另外兩門很有前途的編程語言,那就是go和rust。
go語言,google的親兒子,新手學(xué)習(xí)起來也容易,應(yīng)用也廣泛,現(xiàn)在國內(nèi)大小企業(yè)對go的需求也在不斷增多,所以學(xué)習(xí)go是一個非常好的選擇。
rust語言,Mozilla公司推出的語言,專注于安全,但是學(xué)習(xí)路線相對陡峭,目前國內(nèi)應(yīng)用也相對較少。不過已經(jīng)有一些大廠開始使用Rust,未來相信會更多。所以Rust,也是一門非常值得投資(學(xué)習(xí))的語言。
總結(jié)如果只選擇c++和java中的一種,建議選擇java;如果還想選擇其它編程語言的話,可以考慮考慮go和Rust。
我是令狐一沖,關(guān)注我,關(guān)注區(qū)塊鏈和Rust