C++狗都不學(xué)?
????不知道從什么時候開始,“C++狗都不學(xué)?。?!”這句話開始在彈幕里,評論區(qū)里頻繁出現(xiàn)。對于正在學(xué)習(xí)或是打算學(xué)習(xí)C++的小伙伴們其實(shí)不必?fù)?dān)心,這句話調(diào)侃大于事實(shí)。當(dāng)然,存在即合理,值得花點(diǎn)時間討論一下。可以通過幾個問題來進(jìn)行討論:
? ? 1、什么是C++?
????C++是一個聯(lián)邦,是一個集合,包括C部分,面向?qū)ο蟛糠?,?biāo)準(zhǔn)庫部分以及模板。對于零基礎(chǔ)的小白并不適合作為入門語言。
? ?2、為什么80后程序員不抱怨C++太難?
? ? 那個年代機(jī)會多,覺得難就干別的,沒時間抱怨,做個網(wǎng)頁也能養(yǎng)家糊口。
????作為一名80后程序員,我上大學(xué)的時候,計算機(jī)系基本只有一個專業(yè),計算機(jī)科學(xué)與應(yīng)用,大家的學(xué)習(xí)路線都差不多,C++作為一門專業(yè)課,內(nèi)容非?;A(chǔ)。在學(xué)習(xí)C++之前,已經(jīng)學(xué)習(xí)過了《C語言》,《數(shù)據(jù)結(jié)構(gòu)與算法》等等其他基礎(chǔ)課程,基礎(chǔ)好的自然覺得不難。C部分是一致的,C++標(biāo)準(zhǔn)庫就可以當(dāng)做是《數(shù)據(jù)結(jié)構(gòu)與算法》的實(shí)現(xiàn)。面向?qū)ο蠛投鄳B(tài)嘛... ...,這個說來話長。那時候要學(xué)的東西還不多,工作以后有大把時間可以去學(xué)習(xí)《C++ Primer》夯實(shí)基礎(chǔ),然后通過《Effective C++》、《More Effective?C++》、《C++模型對象》這些書籍進(jìn)階,看完以后面向?qū)ο?,多態(tài)也就自然了解了。
????還有一個重要的原因,好用不好用,難不難,都是相對的。沒有對比就沒有傷害,沒有新型的編程語言作為對比。你的領(lǐng)導(dǎo)和客戶也不會拿著一些花里胡哨的功能,要求你照著做。
3、C++好找工作嗎?
????目前是的,一般而已比JAVA好找工作。互聯(lián)網(wǎng)大爆發(fā),90后程序員大多用JAVA。C++主要還是游戲,軍工行業(yè)為主,用工量不大,80后程序員還能干的動。隨著國產(chǎn)化替代軟件的需求越來越多,C++崗位也慢慢多了起來。很多以C++為主業(yè)的公司這幾年都遇到了用工荒。JAVA行業(yè)也越來越卷,現(xiàn)在學(xué)C++的人又慢慢多了起來。(我驚訝的發(fā)現(xiàn),目前的C++學(xué)習(xí)路徑和10幾年前,20年前基本一致,還是那幾本名著。)
????以我們公司最近招聘為例:
?????C++程序員:一個月難得幾個面試的。常年招人,C++,QT有基礎(chǔ)的,應(yīng)屆生也要。
????JAVA后端:只要想招,天天都有人來面試,幾個人競爭一個崗位,一個月內(nèi)必然招滿。
????JAVA前端:信息一發(fā)布,幾十個人搶一個崗位......
4、為什么現(xiàn)在總有人說:C++狗都不學(xué)?
????其實(shí)原因上面已經(jīng)說過了,主要是兩點(diǎn):
現(xiàn)在編程的人多了,要學(xué)的東西也爆炸式增長,初學(xué)者比較迷茫。很多人并沒有C、數(shù)據(jù)結(jié)構(gòu)這些專業(yè)課基礎(chǔ)就開始學(xué)C++,所以感覺很吃力?;蚴菍W(xué)點(diǎn)皮毛馬上就要用于項(xiàng)目,沒時間進(jìn)階。
程序員這個職業(yè)容易對技術(shù)癡迷,大部分JAVA程序員自然會覺得JAVA是最好的,學(xué)了Python也就會排斥接受C++。php,C#也各自有風(fēng)光的時候。和這些語言相比,C++上有老下有小,一方面要考慮兼容,另一方面又想著增加新語言的特性......
總之,C++在未來很長一段時間里依然會在編程語言排行榜的前列,可以放心學(xué)習(xí)。作為編程入門,推薦學(xué)習(xí)C、python,如果是工作,JAVA或是C++依然是主流。另外,我看好python,不會替代JAVA或C++,但越來越多的JAVA和C++程序員會需要使用python。