回覆列表
  • 1 # 領地傳奇

    C++是從入門到放棄機率最大的語言,但只要有決心和毅力,是可以自學的,學程式語言也跟學歷無關,興趣加努力,再加一點點天賦就行。

    以我個人的觀點,C++這種語言學習成本太高,從會用到成材少則三年,多則五六年,沒有毅力的人還是不要學了。學一門語言不是學個語法,更主要是這門語言的設計方法論和生態,C++語法本身就夠新手學的,加上面向物件設計模式,再加相關的生態環境學習,恐怕很多人都在半路放棄了。

    何苦為難自己?程式語言不是越難學的工資越高,這個是看市場需求的。現在流行的golang,javascript,Python學習成本都比C++低,工資也不見得比C++少。當然,具體怎麼選擇,還是要看提問者的需求和興趣,有些東西還是要用C++來寫,但前提是你能學到那個功力。

  • 2 # 程式設計獅W3Cschool

    關於C++我推薦你讀一本書《C++從入門到放棄》。某軟體工程學生學了四年畢業,他告訴我:“學了四年,只記住hello world了”。

    開個玩笑,C++是公認的,程式語言裡最難的一種,毫不誇張的講,這玩意兒跟考註冊會計師、一級建造師、司法考試有的一拼(當然,毅力是關鍵)至於C++到底難不難,我這裡引用一下輪子哥說過的一句話:

    明明難的是scala。你要連程式設計語言的原理一起弄懂,才能搞定scala的所有語法。C++顯然不需要,C++只要求你背誦(不過其實C++有一點也做得不好,符號實在太亂了,你不能全部裝進腦子裡,就會有一種“好難啊”的錯覺。這隻能說反人類,不能說難。你只要不斷地訓練自己的記憶力,等到有所成就之後,就不會覺得C++難了。

    自學能學會嗎?

    從理論上說,當然可以學會,但這關乎到學習成本的問題。如果你之前已經學過了其他程式語言,學C++會相比其他人快一些,如果你只是初中畢業,數學很差、英語不懂,那學C++一定是非常費勁,但不代表不行。你要面對的困難,將多很多,除了學習問題,將來就業、發展也可能會受到限制,但這完全取決於你的毅力和學習能力。

    至於是不是隻有本科的人才能學會,這個問題肯定是否定的,但跟我前面講的一樣,還是難度問題,本科學程式設計的多、專科的也挺多,中職高中出來的也有,初中的少了,小學的更稀有。為什麼會出現這種現象?學歷月低,面臨的困難越多,對人的意志和學習能力的考驗越大。話又說回來,物極必反,一旦你成功了,學歷反而成為了你的優勢,想想,當一個初中、高中的人學會了程式設計,只要你能力達標,你的學習能力和毅力已經得到了最好的證明。就好像很多人很樂意去說馬雲只是杭師大畢業的屌絲,跟其他網際網路巨頭沒辦法比一樣。

    學會C++可以從事哪方面的工作?

    很多,比較主流的有遊戲開發、ios軟體開發等等。

    下面是w3cshool的一些建議:

    首先,C++並不是非科班出身的最好選擇,它太不容易上手了,而且現在是市場經濟,難不代表需求大,很多簡單易學的語言,待遇也並不低,比如近幾年比較熱門的PHP、Python、java等等。特別是Python,這個程式語言更接近自然語言,學起來相對容易,需求也大。。當然,你要堅持學C++也不是什麼問題,C++會了,學其他語言簡直不要太簡單。

  • 3 # 隨便看看微笑不語

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

    C++是否是最難學的程式語言?

    這個問題我不確定。

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

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

    自學能學會嗎?

    能!

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

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

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

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

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

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

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

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

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

    是不是隻有讀本科的人才能學?

    這個問題我想我已經不需要回答了吧。我孩子今年10週歲。所以你一定沒問題的!我不信你還趕不上一個小學生!

    可以從事哪些工作?

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

    C/C++主要用於作業系統軟體底層開發比如開發作業系統,各種協議軟體,硬體驅動,嵌入式,伺服器,或者演算法研究,遊戲開發,還有各種圖形處理,總之那裡的效能需求和執行速度比較高的,那就用C/C++。可能這麼說覺得太籠統了,我再直白點比如手機,飛機、動車、機器人、大資料、人工智慧、模擬等等都能用的上!

    臨淵慕魚,不如退而結網!

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

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

    加油!

  • 4 # EmacserVimer

    曾經在某個場合C++ 之父 Bjarne Stroustrup表示自己有些看不懂C++了!

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

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

    C++是一門通用的、支援多正規化(multi-paradigm)的程式語言,這就是C++為什麼難學的根本原因了。

    從通用性上來講,C++不侷限於一個領域或者少數領域,而且沒有明顯的傾向性,比如PHP最擅長的就是web開發,Java最擅長的就是複雜業務邏輯處理,C#做桌面開發非常方便,而C語言最擅長的就是系統級別的開發,而Python則是最主要的人工智慧研究語言。但是C++不一樣,沒有明確的傾向性,並且功能還非常強大。

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

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

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

  • 5 # 黃十五

    說實話,我覺得我喜歡用C+,這種高效記憶體的管理模式比有垃圾回收機制的語言給力多了。

    但是不得不說,c+的學習曲線真是讓人望而卻步,一不小心就空指標異常,記憶體洩露。

  • 6 # 一隻快樂的小碼農

    作為java,c,php,python,都略懂一丟丟的小碼農來淺談一下

    三人傳狗的故事大家都聽過把,一個人說難,對另一個人說,這東西真難,別學了,就這麼一點點傳下去,其實大家不用那麼畏懼,c語言也好c++也好,只要你能瞭解他的靈魂,比如c的指標,java的面相物件,c++繼承多型,擒賊先擒王的道理大家都懂,掌握知識也一樣,要深入理解他的核心。那麼學起來就真的順暢多了,有些人所謂的其他語言簡單,無非就是在學java時候會了1+1=2;那麼到了c++變成2-1=1;就覺得好難,好繞啊,其實不要怕,思維開啟一點,發散一點,不要被以往學過的語言固執了思維,我相信如果你能理解我這幾句話,那麼以後你的程式設計之路會像開了掛一樣,學什麼語言都快,希望對大家有幫助。

  • 7 # 深度猜想

    越靠近硬體的語言,是越難的語言。最難的是組合語言,其次是c,再是c++。

    程式設計重要的不是語法,是思維邏輯,是程式設計習慣,程式設計思想。

    培養良好的程式設計習慣,比精通語法要重要的多。

    要學好程式設計,還是從c開始,程式碼之美這本書是必看的,透過c語言明白結構體如何設計更高效更易維護,函式如何設計更合理,函式要如何實現才更健壯,更安全,記憶體要如何分配,執行緒要怎樣更好的協作等等。掌握了這些,再去學c++,就會瞬間明白,c++不過是對c的封裝而已。c++的基礎是類,類就是c的結構體而已,類的成員產量就是結構體的成員產量,類的函式就是結構體的指標函式,類的繼承就是結構體巢狀,類的構造與析構就是結構體的初始化和銷燬。c++不過是c的升級而已,將c的一些程式設計思想,程式設計技巧全部封裝起來,方便了程式設計師的使用。但是這樣的封裝會讓程式設計師變懶,不再去學習程式設計的思想和技巧,也不注重培養程式設計的習慣,然後在開發的過程中,就給自己挖了各種各樣的坑。

    各位在使用c++的過程中,勿必要培養c程式設計的習慣,瞭解c程式設計的思想,掌握c程式設計的技巧。祝大家遠離各種坑。

  • 8 # 嘿咪程式設計專家

    c++是從c升級來的,從C語言的面相過程,開發到c++的面向物件開發,不過它完全相容C語言的語法,也可以這樣說c++是面相過程到面向物件的過度,在c++之上就是存面相物件語言Java和c#,所以綜上所述從歷史發展的角度講,他既相容面向過程又有面向物件,所以難學是可以理解的,但學會之後那可就可宇宙無敵,開源一哥

  • 9 # 李CODER

    學習成本高

    c++ 語言的特性非常之多, 相對於python等指令碼語言, 我說c++的語言特性是其三倍應該是比較保守的。 而且學習c++的時候,你需要掌握很多計算機比較基礎的知識,比如說位計算,位元組, 巴拉巴拉。而且c++ 相對與指令碼語言還需要編譯呢,又得學很多編譯的知識。

    強型別

    c++ 語言效率高是出了名的, 眾人皆知,但為啥用的人少呢?原因很簡單,難用呀, 我舉個例子: 你用js 宣告一個變數, var a = 2; 但是你在c++ 上你得考慮下,這個變數是什麼型別的呀,是int 還是 char,還是要宣告一個指標呢? 雖然c++ 11 後引進了弱型別的概念,但仍然沒法像指令碼語言一樣啊。

    指標

    有的時候,對於指標的考慮,就是一種累贅。但是不考慮呢, 沒準野指標了,沒準空指標崩潰了, 會給你帶來很多麻煩。 每次用指標的時候就會感受到心累。

    垃圾回收

    你產生的一切東西,原則上來講,都要你在解析函式進行銷燬。 總之很煩了, 如果有人能幫我做了這些事兒, 真不願意自己動手了。

    面向物件

    c++ 具備了很多面向物件的優點,但是你木有發現嗎, 每當你寫一個class的時候, 總是內心覺得非常累。 因為要考慮繼承,抽象等等問題, 每寫一行程式碼都是糾結,我假如你是一個追求完美的人。 如果用指令碼語言,函數語言程式設計,輕鬆了,你沒有這些地方可以糾結的,因為你寫程式時的決策模型相對簡單。

    模版

    模版你會用嗎,反正我是不會用模版的,一用模版就腦子亂。

    其實還有很多,我就不吐槽了,比如非同步程式設計等等, 總之,c++之所以難用,歸根結底是因為c++是一門為了描述底層環境, 兼顧執行效率和開發效率的程式語言。

  • 10 # 貓和秋刀魚兒

    從大一到現在寫了8年程式,其它的我不知道,反正C++的template和#define就可以把我搞個半死。

  • 11 # Thomas76

    實際上書或老師不行。比起虐人的數學和理科,程式語言和寫作文難度差不多。很多人寫作文也同樣頭疼。差別就是,錯別字,語法不通,立意不高,結構不完整等問題只會虐閱讀者。C++語法不通,邏輯混亂等問題主要是虐作者,編譯器會拿鞭子狠狠抽作者

  • 中秋節和大豐收的關聯?
  • 如何保護好寶寶嬌嫩的面板?