c++培訓學習
時間:2019-06-28 00:00:00
來源:信盈達
作者:信盈達
都說Javascript是世界上最受誤解的語言,其實C++何嘗不是。現在網上流傳的錯誤的C++學習方法一抓就是一大把。很多人在學習C++的過程中也走了許多彎路,浪費了不少時間。我自己也是。走了不少彎路。所以在碼農的世界中,java逐漸有了統一江湖的味道。昔日的霸主C++雖面臨失寵,卻一直堅守著自己的傳統領域。若干年前,初學編程的人還會糾結于偏向java還是偏向C++。隨著java技術的快速發展和web應用的興起,這個問題已經很長時間沒有人提起了。
C++的語法靈活豐富,支持底層調用,是大多數操作系統的編程語言,也是游戲開發和圖像處理領域的首選。然而正因為它靈活多變的語法,以及對使用者編程素養的高要求,決定了它不能像java一樣迅猛發展。 你可能不是C++的擁躉。但如果你想深刻地理解編程的技術,讓自己編寫的程序變得更高效,更優雅,C++相關書籍值得花時間去讀一讀。
在學習C++的人當中,為什么會存在這么多錯誤認識?原因主要有三個,一是C++語言的細節太多。二是一些著名的C++書籍總在(不管有意還是無意)暗示語言細節的重要性和有趣。三是現代C++庫的開發哲學必須用到一些犄角旮旯的語言細節(但注意,是庫設計,不是日常編程)。這些共同塑造了C++社群的整體心態和哲學。
單是第一條還未必能夠成氣候,其它語言的細節也不少(盡管比起C++起來還是小巫見大巫),就拿javascript來說,作用域規則,名字查找,closure,for/in,這些都是細節,而且其中還有違反直覺的。但許多動態語言的程序員的理念我猜大約是學到哪用到哪罷。但C++就不一樣了,學C++之人有一種類似于被暗示的潛在心態,就是一定要先把語言核心基本上吃透了才能下手寫出漂亮的程序。這首先就錯了。這個意識形成的原因在第二點,C++書籍。市面上的C++書籍不計其數,但有一個共同的缺點,就是講語言細節的書太多——《C++ gotchas》,《Effective C++》,《More Effective C++》,但無可厚非的是,C++是這樣一門語言:要拿它滿足現代編程理念的需求,尤其是C++庫開發的需求,還必須得關注語言細節,乃至于在C++中利用語言細節已經成了一門學問。比如C++模板在設計之初根本沒有想到模板元編程這回事,更沒想到C++模板系統是圖靈完備的,這也就導致了《Modern C++ Design》和《C++ Template Metaprogramming》的驚世駭俗。
學習最佳編碼實踐比學習C++更重要。看優秀的代碼也比埋頭用差勁的編碼方式寫垃圾代碼要有效。直接、清晰、明了、KISS地表達意圖比玩編碼花招要重要…像C/C++這種系統級語言,在學習的過程中必須要涉及到一些底層知識,如內存管理、編譯連接系統、匯編語言、硬件體系結構等等等等知識(注意,這不包括過分犄角旮旯的語言枝節)。這些東西也就是所謂的內功了(其實最最重要的內功還是長期學習所磨練出來的自學能力)。
所以說。C++零基礎初學者學習C++,不要糾結該怎么學好,其實學習沒有什么捷徑,就是多練習,敲代碼。有時間的時候就跟著老師學習,這樣就少走彎路。不必有時候為了一個問題想了半天,還不得解決明白。