爲什麼有人說C++是最難學的編程語言? (4個回答)

從事嵌入式開發多年,有三種語言玩的比較多C/C++ java,從編程語言的難度來講C++是最難得,而且也是最難入門的編程語言,很多編程老手都是這個結論,爲什麼C++是最難學的編程語言,雖然難學但還是很多編程老手喜歡研究它,更是很多架構師的最愛。

現在以個人的觀點講述爲什麼C++是最難的編程語言,其實在C++基礎語法部門看不出這門編程語言有多難,難在泛型編程和麪向對象的特性展示,幾乎每個知識點都附帶着很多細節點,而且更加要命的是C++語法規則還在不停的延伸,幾乎長期玩C++都有一種通病總是覺得這門語言學不完,就連C++的創始人都說自己有時候都看不懂這門編程語言了,linux的創始人對於這門編程語言成見也非常大,有點故弄玄虛的感覺。

如果單純從學校的理論角度去學習這門編程語言其實看不出有多難,因爲基礎語法的學習摻雜的東西就比較少,很多在學校學過這種語言的大學生覺得自己的基礎應該還可以結果真正開始做項目的時候傻眼了,原來還有這麼多自己不懂的語法知識,只靠那點皮毛根本解決不了問題,所以要想學好這門編程語言首先要做好充分的心理準備,起碼幾個月的時間在迷糊期度過。至於具備什麼條件才能學好C++,這種沒有定論很多大學生在學校自學了C++,還沒畢業就通過網絡途徑找到工作了,所以編程語言的學習從來都不是固定的。

在網絡上認識一個大學生,本身對編程很感興趣,特別是對C++感興趣,完全靠着一腔熱血把這門語言給學好了,並且不斷拓展知識面,有關C++的書籍研究了不下五本,並且藉着這種勢頭還不斷通過看書拓展自己編程基本功,還沒畢業去找工作就成了搶手貨,所以不要給自己設置界限,不一定非要參加培訓通過自身的努力也一定可以。由於經常在網上寫點東西,遇到一些大學生經常寫技術文章,開始的時候不會寫,後來堅持的時間長了越寫越有感覺,再加上網絡信息非常發達,有一些獵頭或者技術高手在網絡上發現有可塑的人才也會主動聯繫,所以很多大學生還沒出校門就把自己的工作給搞定了,不要輕易否定自己。

在這裏插入圖片描述
其實做爲一個學習者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C語言C++交流羣1075673198,不管你是小白還是轉行人士歡迎入駐,大家一起交流成長。

遊戲開發,大數據和服務器方面開發,網絡開發,嵌入式開發等,現在很多主流的客戶端都是用C++完成的,安卓內核框架和谷歌瀏覽器絕大部分代碼都是C++完成,不用擔心這門編程語言不行了之類的鬼話,由於這門語言相對比較難入門起來相對費勁。

難也只是相對的,只要覺得感興趣就去全力去學,學的時候不要考慮是不是能找到合適的工作,編程要能學好必須能下功夫,軟件開發講究的水到渠成,功夫到位了自然就能做項目了。

希望能幫到你。

從這個趣事就可以看出C++是非常難學的編程語言,在主流的高級生產級編程語言中可以說是最難學的編程語言了,從入門到精通最難的編程語言,從入門到放棄最簡單的編程語言,可以說是名符其實。

C++語言是C的超集,1982年,美國爾實驗室(AT&T公司)Bjarne Stroustrup博士在C語言的基礎上引入並擴充了面向對象的概念,從此C++編程語言誕生,面向對象的到來、STL標準庫的誕生,以及微軟等大公司的支持,讓C++逐漸流行起來。但是C++從一開始就是一門複雜的編程語言。

從通用性上來講,C++不侷限於一個領域或者少數領域,而且沒有明顯的傾向性,比如PHP最擅長的就是web開發,Java最擅長的就是複雜業務邏輯處理,C#做桌面開發非常方便,而C語言最擅長的就是系統級別的開發,而Python則是最主要的人工智能研究語言。但是C++不一樣,沒有明確的傾向性,並且功能還非常強大。
在這裏插入圖片描述
其實做爲一個學習者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C語言C++交流羣1075673198,不管你是小白還是轉行人士歡迎入駐,大家一起交流成長。

C++可以完成系統級的開發,垂直領域的特定應用開發,甚至在教學科研以及嵌入式等等領域都能夠很好的完成,這就是最大的問題,那麼註定每一個方面都要做得很好。

從多範式來講,C++不是徹底的面向對象編程語言,也不是純面向過程的編程語言,也不是標準的泛型編程語言,這玩意兒是多範式的。也就是反過來說,她即是面向過程編程語言,也是面向對象編程語言,還對泛型程序也有很好的支持。知道什麼問題了嗎?對的,就是她什麼功能都很全!

所以其實C++之難學,難於上青天的關鍵在於C++太強大了,功能太多了。 這樣一個通用型、多範式的編程語言,當然是非常難學。但是在很多領域,比如系統級開發,大型遊戲開發等領域C++還有着巨大的優勢,因爲C++畢竟是僅次於C語言的運行效率的編程語言,何況它還支持面向對象。

題主的問題描述中四個“?” 我能回答兩個半。由於本人是非專業人士,所以一下回答僅供參考。

這個問題我不確定。

在我看來既然C/C++能夠“長盛不衰”這麼多年,足以說明它們的價值。單憑這一點就足夠說明問題的了。

不過雖然我不是很專業,但是我也知道不用的領域會更多的應用不同的語言,尤其是題主還是自學,那麼除非你的目的性很明確——比如從事某個崗位的職業,否則還是應該從比較容易上手的、應用比較普遍的語言入手比較好。 所謂先上路,路上在慢慢想! 比如你完全可以先選擇比較容易上手的Python。

能!

這個問題我能回答的原因是因爲我家孩子9歲的時候開始學習的C/C++,我們學的比較慢一週也就是兩次課(前大半年一週一次),縱然是如此,目前爲止孩子基本上也已經把語法部分(即編程語言的本身)都學完了。 只要不是算法太複雜的問題,孩子大都是可以做出來的。 目前孩子正在開始學習各種算法。

我之所以說“能”是基於這近一年來孩子的表現以及二十年前我學C語言時候的一些經驗總結出來的。

但是,我必須要說名兩個問題:

1、能否學的好,完全取決於你的努力程度而不是“理論上的可能性”。

很簡單的道理,當你看書學或者看視頻學(網上資源跳多了)的時候,你僅僅是照着課程內容敲打一邊代碼就行了還是會做筆記、會找相關題目練習這兩種學習的方式直接決定你後面的學習效果。 就我孩子的學習情況來看,孩子的掌握程度基本上取決於投入練習的時間長短(當然,還有動腦程度)。

2、語言僅僅是一個工具。

編程語言僅僅是一個工具而已,當你工作時候更多的是要用這個工具去解決具體的問題。舉個最最容易理解的例子:學習數學、物理的時候各種公式的本身並不難理解,但是當你應用的時候就會發現“ 我去!這題怎麼做? ”。同樣的道理,語言你可以短時間內(兩三個月足以達到入門級)學個七七八八, 但是當你真的想用這個東西來解決問題的時候,往往會發現無從下手,甚至連點思路都木有!

因爲我和孩子學習C/C++是因爲我們想試試參加一下NOIP,所以我們的經驗有限,但是這些道理也是很多老師、朋友跟我分享過的,我覺得是有道理的。 比如我家孩子每節課聽的都自認爲沒問題,但是一旦開始做題了,尤其是稍微複雜一些的問題時候,基本上就跪了!

老師、朋友們跟我說解決這個問題沒有什麼捷徑可以走,就是多練、多讀(讀程序)、多想、多交流!

這個問題不難回答,但是我說不全,所以只能藉助網絡儘可能的把它主要能做的事情給你羅列一些:

C/C++主要用於操作系統軟件底層開發比如開發操作系統,各種協議軟件,硬件驅動,嵌入式,服務器,或者算法研究,遊戲開發,還有各種圖形處理,總之那裏的性能需求和運行速度比較高的,那就用C/C++。可能這麼說覺得太籠統了,我再直白點比如手機,飛機、動車、機器人、大數據、人工智能、仿真等等都能用的上!

無論你的規劃、計劃是如何,你都要先“出發”,只有在前進的路上你纔會發現各種各樣的問題,也才能更有針對性的解決。認真學、多練、多交流你一定行的。

最後給你講一個我覺得還不錯的案例: 我的一位超級遠房的親戚孩子,高中畢業啥也沒考上,最後去了我們這裏的一個還算老牌的計算機培訓機構,學了2年多的編程,後來推薦工作之後認真努力的學、做,幾年下來這孩子現在一年收入也是很不錯的。 當然,這種事兒不具有“普遍性”,是否“成才”很大程度上還是要取決於個人的努力情況。如果你有這個毅力,那麼就去做吧!

加油!

對於正在學習C/C++的同學來說,C語言可能不難,但是當自學C++的時候,總會出現各種問題,就像是一個惡性循環不懂所以不想看,關鍵是沒有·一個由淺到深的過程,剛開始就讓人無力,那怎麼樣從淺到深學習C++呢?

首先,C++面向對象式的編程對開發者隱藏了很多細節,而面向過程的思維方式是一下子不能適應這粗象的思維方式。先把C語言打紮實了,着手練習用C語言實現各種常見算法和各個課後習題,等到算法研究了些時候,慢慢的不再代碼注意細節(細節已達到編碼時隨手可寫出的程度)之後,再來看C++語言,頂多幾天就能適應,完全可以像學C語言一樣的容易,那時可深入學習C++。

學習C++可以從《C++編程思想》開始,學習基本語法和麪向對象程序設計思想。然後如果有項目可以跟着項目學習,借鑑前輩的經驗。如果沒有項目則可以借鑑書籍,例如《深入淺出MFC》等,通過一段時間的演練,相信對抽象,封裝,多態,繼承等就會有較深的認識了。

接着可以接觸下《C++ primer》,《Effective C++》,《More Effective C++》等書,借鑑大家的經驗,修正自身的一些毛病和問題。再往後就可以瞭解下設計模式相關的一些書籍,然後在實踐中靠自己多積累。

不必爲C++的某個語法問題而慌亂,不必爲不懂C++某項技術而迷茫,選擇一個領域,選擇一個範式,專注於C++的一個子集。在此過程中,努力去領悟C++編程的思想,一旦頓悟定將妙用無窮。

C++是廣博的,它涵蓋面如此之大,讓它如何能簡單。希望各位都能善待自己所學的C++

C++很多人學到後面都放棄了,但只要學過這門語言的人,編程意識都會比同一階層的人來得更好一些。比如我就有看過java編程的人在內存這塊完全沒有任何意識的,但學過C++的人,或多或少會去留意一下有沒有釋放內存,是不是內存可以共用等等。

我從指針跟內存這兩塊來說說爲什麼C++很多人認爲是最難的編程語言吧。C++用的人多,罵得人也多。學起來不容易,用起來出起問題來,也是不帶含糊的,排查的時候那是更崩潰的。所以現在很多企業都不大願意去碰C++,真的是對員工的技能要求比較高。

指針跟內存,基本上是分不開的兩塊,指針指向一塊不被分配的內存地址時,天知道會怎麼樣,崩也不一定就崩在那一行,自己創建內存,釋放內存,這個必要從一開始要耶刻到腦海裏的習慣,不然只創建不釋放,哪天程序掛得不知所措。

總之能用好C++的人,都是一個挺好習慣的人,細節的注意會比較好一些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章