C++是最難的語言。這個世界上最難的編程語言可能非C++莫屬了。你千萬不要以為幾天就可以學好C++,C++的學習曲線是相當BT的,C++是一門很自由的語言,自由到了有點BT和恐怖的地步。
基本功
數學(隨著深入學習,你會需要更高深的數學知識)、英語(用于查找最新資料以及養成編寫程序的正確命名習慣)
1. 選書,市面上的書非常多,在此不想作任何推薦,因為意義不大,每本書都因人而異。最重要的是:你要找到你習慣的書,翻開C++入門書后,能夠看得懂或者比較習慣于它里面的文字描述(偶爾出現不懂的專業術語可以暫時留著,繼續往下看)。
2. 選書2,由于C++是一門實踐性很強的語言課程,所以在選書的時候最好找到這種書:書中有詳細關于使用C++上機軟件的步驟(我們稱這種軟件為IDE(集成開發環境),比如Visual C++ 6.0/.Net , DevC++ ,Intel C++ 等等)。
3. 學習之初,買到書之后,就應該按書上去操作IDE,熟悉并能操作基本的功能。比如新建、保存、另存為,以及各種常識性內容:文件后綴的意義.cpp為源文件,.h為頭文件,.c為專門的C語言源文件,以及生成的exe文件放在什么目錄下,等等。
4. 學習之初2,熟悉了IDE的使用后,再繼續看書,把每一段可以編譯并運行的代碼輸入IDE編輯區,編譯運行,看效果是否是預料之中,并小范圍修改代碼,改寫后再看,達到對代碼的一個感性認知與理性認知的結合。
5. 長途跋涉,對書的咀嚼很重要,最好一字不漏,因為對于一個陌生事物,你一旦遺漏,可能要耗費很多精力在搞清楚后續內容上,但,記住,只是讓你不要遺漏書中所描述的內容,不是說遇到實在不太理解的東西后就駐足不前,你把問題都記下,繼續往后看,時刻試圖去用后面的東西聯系前面的困惑,看是否能有所突破。
6. 切記,學C++最重要的是把你所見到的代碼在IDE上寫一遍,運行并反復改動代碼,達到對你遇到的所有代碼都有一個功能-語法的對應。你知道改后的效果,并要以此格式去類推。
7. 思維要清晰,如何能夠清晰?客觀,如何能夠客觀?不要把東西想復雜化了。比如一個語法,你只需要關心它能產生什么作用(盡量用自己通俗的邏輯去接納它),而對于它的其他隱藏作用和未知的東西,你暫時不用考慮。所見即所得。
8. 化簡,化簡很重要,解決問題的時候,當問題對你來說看似復雜,你應該分清主次,并把最關鍵的內容抽象出來,當做獨立的問題,并思考你能否解決。再擴展回歸到復雜問題。
9. 與、或、非、相等、不等;這幾個邏輯術語,能夠讓你的所有疑問都消除,當你寫的程序錯誤率很高時,要學會前因后果分析,以及靈活運用注釋,把不相干的注釋掉,看最后哪條語句才是病句。最后還需要學會調試工具(初期可以用輸出語句來代替出錯點檢測)。
10. 好了,接下來,也是最重要的總結了,只要你能把握,就能夠初難后易,貫通到底:
① 獨立思考解決程序問題,當你的思維能夠習慣性地考慮到足夠多的可能性后,你會習慣越來越容易的解決別人難以把握的問題。
② 逆向思維,由于程序所體現的東西是二元性質的,即不是這樣,就是那樣,永遠不會模凌兩可,所以你從結果可以一步一步倒推到原因。
③ 堅信你所學到的C++內容能夠解決你所遇到的所有你需要解決的程序設計問題。其實僅僅從邏輯上來說,你學完任何入門C++書的前7章基本能解決邏輯上絕大部分問題了。很多高深的經典問題比如TSP和尋路等等(當然,可能你還需要一些數據結構知識),但是
你應該相信,即使你沒學過多少后續理論,也能在一定程度上局部解決你遇到的任何程序設計邏輯題。注意事項
• 初學者常犯的錯誤是:
• 分號忘記
• 大括號不匹配,中括號不匹配,小括號不匹配(你應該先打括號,再填入內容:切記,高手都這樣)。如果你不這么做,會出現這樣的困惑:((()()()((()()((((()()((... 這個右邊你能一眼看出要補充多少右括號嗎?以及哪個括號對應哪個括號?
• 賦值'=' 與等于 '==' 混淆。
• 作用域問題:沒聲明就使用變量,沒初始化就是用變量,變量名沖突(同一個作用域一樣的變量名字被聲明了)等等。
• if語句大括號體內范圍不明確,最好不論是if、for、while,只要涉及到大括號的語法結構,都不要省略,并明確在視覺上對稱,以免混淆哪個應該在哪個包括區域內。
• 指針,要清晰指針和一般變量的區別和使用方法,怎么弄清?不斷的寫代碼,改代碼,測試,所見即所得,至少你寫的代碼得到的結果不會和理論相悖,并能驗證你對它們的理解是否有誤。
• 類和對象,需要通過寫代碼去不斷驗證你對重載、繼承、多態、內聯、友元、靜態、指針對象等等概念的理解和它們之間的正確關系。
• 模板,同樣少不了你要不斷敲代碼改寫代碼去驗證你所認為的是否和實際相符合。改變認知的過程及其重要,學習就是不斷構造認知,以及修正觀點的過程。
|