天天看點

給C++學習的人的50條建議——與有志學好C++的人共勉

今天在網上看到了給C++學習的人的50條建議  :

1. 把C++當成一門新的語言學習;

2. 看《Thinking In C++》,不要看《C++變成死相》;

3. 看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因為他們很難而我們自己是初學者是以就不看;

4. 不要被VC、BCB、BC、MC、TC等詞彙所迷惑——他們都是內建開發環境,而我們要學的是一門語言;

5. 不要放過任何一個看上去很簡單的小程式設計問題——他們往往并不那麼簡單,或者可以引伸出很多知識點;

6. 會用Visual C++,并不說明你會C++;

7. 學class并不難,template、STL、generic programming也不過如此——難的是長期堅持實踐和不遺餘力的博覽群書;

8. 如果不是天才的話,想學程式設計就不要想玩遊戲——你以為你做到了,其實你的C++水準并沒有和你通關的能力一起變高——其實可以時刻記住:學C++是為了編遊戲的;

9. 看Visual C++的書,是學不了C++語言的;

10. 浮躁的人容易說:XX語言不行了,應該學YY;——是你自己不行了吧!?

11. 浮躁的人容易問:我到底該學什麼;——别問,學就對了;

12. 浮躁的人容易問:XX有錢途嗎;——建議你去搶銀行;

13. 浮躁的人容易說:我要中文版!我英文不行!——不行?學呀!

14. 浮躁的人容易問:XX和YY哪個好;——告訴你吧,都好——隻要你學就行;

15. 浮躁的人分兩種:a)隻觀望而不學的人;b)隻學而不堅持的人;

16. 把時髦的技術挂在嘴邊,還不如把過時的技術記在心裡;

17. C++不僅僅是支援面向對象的程式設計語言;

18. 學習程式設計最好的方法之一就是閱讀源代碼;

19. 在任何時刻都不要認為自己手中的書已經足夠了;

20. 請閱讀《The Standard C++ Bible》(中文版:标準C++寶典),掌握C++标準;

21. 看得懂的書,請仔細看;看不懂的書,請硬着頭皮看;

22. 别指望看第一遍書就能記住和掌握什麼——請看第二遍、第三遍;

23. 請看《Effective C++》和《More Effective C++》以及《Exceptional C++》;

24. 不要停留在內建開發環境的搖籃上,要學會控制內建開發環境,還要學會用指令行方式處理程式;

25. 和别人一起讨論有意義的C++知識點,而不是争吵XX行不行或者YY與ZZ哪個好;

26. 請看《程式設計實踐》,并嚴格的按照其要求去做; 27. 不要因為C和C++中有一些文法和關鍵字看上去相同,就認為它們的意義和作用完全一樣;

28. C++絕不是所謂的C的“擴充”——如果C++一開始就起名叫Z語言,你一定不會把C和Z語言聯系得那麼緊密;

29. 請不要認為學過XX語言再改學C++會有什麼問題——你隻不過又在學一門全新的語言而已;

30. 讀完了《Inside The C++ Object Model》以後再來認定自己是不是已經學會了C++;

31. 學習程式設計的秘訣是:程式設計,程式設計,再程式設計;

32. 請留意下列書籍:《C++面向對象高效程式設計(C++ Effective Object-Oriented Software Construction)》《面向對象軟體構造(Object-Oriented Software Construction)》《設計模式(Design Patterns)》《The Art of Computer Programming》;

33. 記住:面向對象技術不隻是C++專有的;

34. 請把書上的程式例子親手輸入到電腦上實踐,即使配套CD光牒中有源代碼;

35. 把在書中看到的有意義的例子擴充;

36. 請重視C++中的異常處理技術,并将其切實的運用到自己的程式中;

37. 經常回顧自己以前寫過的程式,并嘗試重寫,把自己學到的新知識運用進去;

38. 不要漏掉書中任何一個練習題——請全部做完并記錄下解題思路;

39. C++語言和C++的內建開發環境要同時學習和掌握;

40. 既然決定了學C++,就請堅持學下去,因為學習程式設計語言的目的是掌握程式設計技術,而程式設計技術是跨語言的;

41. 就讓C++語言的各種平台和開發環境去激烈的競争吧,我們要以學習C++語言本身為主;

42. 當你寫C++程式寫到一半卻發現自己用的方法很拙劣時,請不要馬上停手;請盡快将餘下的部分粗略的完成以保證這個設計的完整性,然後分析自己的錯誤并重新設計和編寫(參見43);

43. 别心急,設計C++的class确實不容易;自己程式中的class和自己的class設計水準是在不斷的程式設計實踐中完善和發展的;

44. 決不要因為程式“很小”就不遵循某些你不熟練的規則——好習慣是培養出來的,而不是一次記住的;(勿以善小而不為)

45. 每學到一個C++難點的時候,嘗試着對别人講解這個知識點并讓他了解——你能講清楚才說明你真的了解了;

46. 記錄下在和别人交流時發現的自己忽視或不了解的知識點;

47. 請不斷的對自己寫的程式提出更高的要求,哪怕你的程式版本号會變成Version 100.XX;

48. 儲存好你寫過的所有的程式——那是你最好的積累之一;

49. 請不要做浮躁的人;

50. 請熱愛C++!

       看完之後才發現自己有很多要學的,c++的威力真的很強大,如果認為不是的人,隻怪自己沒有掌握好。到現在為止,自己看過了《Essential C++》、《The C++ Programming Language》、《Inside The C++ Object Model》和《Effective C++》确實有很大的收獲。以前覺得可能C++學這麼多也就夠了吧,可現在看了這50條建議後,有很多的感觸,可能是自己浮躁了。以前做界面總喜歡用 C#,因為很友善,要什麼控件隻須用滑鼠點點,拖拖就好了,覺得C++沒這麼快速;可是當我用了一次C++來做界面後,才發現C++也能做出很漂亮,華麗 的界面,隻要你用心。

      在做項目時,一般都會考慮要子產品化,可是怎樣去子產品化,子產品化的“粒度”,以及子產品之間的互動,這個我還不是很 清楚,自己感覺很難把握,雖然在子產品設計時也會用模式來減少子產品之間的耦合,但在決定用哪種模式時也很難決定。在各個子產品實作時,為了滿足要求,有時不得 不改寫接口,甚至增加。這些都是自己對C++掌握的不夠啊。

      從今天起,看書,看書,再看書;程式設計,程式設計,再程式設計!