C++對編程學習的重要性
之前說了C語言的重要性,因為它從底層開始(比如字元串就很原始,可以讓你知道字元串的來源)給你展示出面向過程編程思想。還有一個更重要的編程語言,它就是C++。它的重大意義是讓你看到面向過程的缺陷性,進而引出面向對象,這是根據客觀世界的規律而再一次的編程思想的升級。因為它能更完美的描述和反映客觀世界極其現象。
學C++也就在於學會這種思想,而不是它有多少語法、有多少庫、能開發多少漂亮的界面。因為它自己並不擅長開發很友好的界面,如:它要結合其他的圖形庫才可能開發圖形界面。因為它的定位是內功修為,而不在招式訓練。
學習彙編、C語言和C++是屬於修鍊編程內功心法,學習JAVA,PHP,C#,QT,MFC這些是屬於外在招式學習,招式漂亮,自然觀眾就會被你吸引,因此你找工作的時候用的是招式,而提升你編程內功要用的是內功。所以不要因為C語言C++職位沒有上層語言多就不重要,也不要以為上層某語言你學的很熟悉就天下無敵了,否則你會過的很累。只有辯證的看待編程世界、看待編程語言,才能遊刃有餘的遨遊在智能世界的海洋。
因此:學習C++,同樣不是為了用C++來開發交互性很好的應用型功能,而是學習「面向對象編程思想」的淵源和發展過程,以及表現形態。然後用在其他上層語言(如:JAVA、PHP、js)的快速學習中。
語言之間沒有多少共性,語言開發者之間本來就要做成獨一無二的,誰願意說自己開發的是複製別人的?也只有獨特才會有市場,因此找尋它們之間的不同,這本來就是順理成章的事,也是作者想要給你展示的。那麼找不同點,就不算什麼本事了,找共性點,把它們之間能串聯起來,形成編程領域內的融會貫通的知識體系才是本事,而這共同點,就是編程思想。
很多人迷惑於那麼多的編程語言,無從選擇。其實上層語言只是在不同的領域內的編程思想的應用罷了。雖然衍生出來的各種用法、關鍵字各有不同,但這都只是外在語法的表現而已,要學會透過現象看本質,它們的內在本質其實都受到「面向過程、面向對象」的支配,這些才是它們的本質。所以是:形散而神聚。
要真正學懂編程,C語言和C++是必走之路,也是要經常回頭來看的指導方針。我現在是做移動互聯網(PHP)方向的開發,但學的越多,越感覺到底層語言的重要性,因此又回頭來溫故而知新,每一次的複習都對編程世界有更進一步的認識,這樣很多語法的使用都變得順其自然起來,學習就會越來越輕鬆,實現有一天,你能把C++的知識體系簡化為一兩頁紙的內容,用它來指導別的語言的學習,這不就是一本編程領域內的「九陽神功」嗎?
沒人規定你必須學的暈頭轉向才有可能學好,C++的重要性也就是在闡述「面向對象編程思想」,而不是你有多熟練它的庫(STL)。學習一種思想最好的辦法就是不要太過拘泥於它的語法形式。因為懂了面向對象編程思想,它的庫裡面就是一些已經做好了的演算法和類,你直接用就行了。多用幾次就熟練了,也就會了。因此會用庫裡面的東西並不能說明內功修為有多深,因為你沒有開發過它們。
學習C++也不要把它想的過於複雜,動不動就用抽象的數據結構、複雜的演算法來迷惑自己、嚇唬別人,編程世界其實水很深、知識更新速度也快,所以難是必然的,因此把編程學習說的很難、把初學者嚇的渾身發抖沒有信心,這不是本事。把複雜的東西說的容易,那才叫本事!才是「傳道授業者「值得思考的問題。
同樣學習C++也不是要你用C++去找工作,而是為了輕鬆的學會用來找工作的語言,如:JAVA,C#,PHP,JS等這些。所以:不要膚淺的認為學了C++這一門語言就可以輕鬆找工作,而且還要高薪,隨便找個軟體相關的招聘(更多相關職位可以去比如拉鉤網上搜索),看看它的要求:
招聘職位:軟體工程師
職位描述:開發機房綜合監控、中央空調及停車導引系統軟體。
職位要求:
1、 專科及以上學歷,計算機應用、自動化及相關專業,英語良好;
2、 精通C++語言,內存管理,2年C++後台開發經驗,至少1年以上CS/BS架構軟體開發經驗
3、 熟悉Windows開發平台,能獨立使用Visual Studio開發調試軟體
4、 熟悉Linux開發平台, 能獨立使用gcc,make, gdb開發調試軟體;
5、 熟悉資料庫應用程序開發、SQL語言。
6、 了解TCP/IP底層協議、WebService soap協議,有http服務開發經驗,優先考慮。
7、 了解前台開發,了解JavaScript、json、css/html、jQuery優先考
因此,只有學得編程世界的精髓,練就內功心法,才能擁有快速的學習力,才能勝任未來工作中千變萬化的需求。如果不認識這一點,以後就不知道為什麼你會過的那麼累
推薦閱讀:
※C++ std::set 的實現中對於iterator的這個強制轉換是如何進行的?
※為什麼不能在 std::map 中使用局部類型?
※為什麼說 Scala 是 JVM 上的 C++?
※C++ 中為什麼要有. -> ::這幾種成員訪問操作符?