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