回 帖 发 新 帖 刷新版面

主题:[讨论]学习c++的50条忠告(初学者必看)

学习c++的50条忠告(初学者必看)
1.把C++当成一门新的语言学习(和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.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;

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++!

回复列表 (共40个回复)

31 楼

新手,请多多指教!COME ON!COME ON!

32 楼

新手,请多多指教!COME ON!COME ON!

33 楼

新手,请多多指教!COME ON!COME ON!

34 楼

新手,请多多指教!COME ON!COME ON!

35 楼

这样学会不会太死了

36 楼

好贴

37 楼

把时髦的技术挂在嘴边,还不如把过时的技术记在心里;

精辟啊~

38 楼

哥儿们,你真的懂C++吗?我做C++/C开发已经有8年了,刚出道时就用C++,几年后从事通讯行业的工程研发,几乎整个通讯行业是纯C的天下,我开始改用标准C开发。直到我从事H.323、H.263、H.263+、H.264、TCP/IP协议层、信令层的开发5年后,我才真的感觉我已经很精通C++,你说的那些东西我都在使用。而且我还可以告诉你,<<设计模式>>才是真正的思想和对你写程序有真正意义的东西,无论他是否以面向对象的概念包装和阐述,这些都只是一种阐述问题和理解的方式,本质上跟语言没有任何关系你用汇编都能使用<<设计模式>>,所以不要受一些书籍的误导,尽信书不如无书。但是,如果你没有三到五年的程序开发经验,如果你悟性很高,那么你可以在这期间使用<<设计模式>>,但有时候问题会变得更糟,因为事实上你根本不可能理解并且很深地领悟<<设计模式>>,你也不知道到底在你工程的实施和设计的各个阶段该如何使用,从而带来的问题越到后期越明显。尤其是当代码量越来越大,越来越让人难以掌控的时候,你会发现你前期以为正确的东西其实是错误的,而且根本不合理,这时代码的冗余你几乎完全失去控制的时候,大概你要抱怨的很多东西中其中就有<<设计模式>>,你会恨他想要烧掉他。然而,当你成为一名真正掌握技术并有丰富工程实践经验的工程师后,你会赞美<<设计模式>>,因为<<设计模式>>会让你少走很多弯路,他往往可以预示并控制一个良好的设计、施工方法、方向和结果。
  面向对象的思想的确影响很深远,面向对向的思想本质上也不受语言是标准C或C++的约束。这是一种理念和方法,跟你用C或C++根本没有什么关系。说白了C++也是用C开发出来的,C++能做的C都能做,标准C是最自由甚至是比C++更完美的语言。
  你最好记住我的一些劝告:
1、C与C++其实是同一种东西,只不过C++更适合面向对象初学者,更贴近面向对象的思维方法。
2、给自己更多的时间去写各种各样的程序,不要沉浸在各种各样的书和无聊的忠告中,你指望不摔跤就能学会走路是不可能的。你看的东西再多,在高手面前,也无法掩饰你没有写过程序或写得不多的事实。与其搅尽脑汁去理解<<设计模式>>那些让你不明白的东西,不如写几行代码,真的用用c的库函数。如果我在面试一个程序员,我宁可要一个很了解strcpy和memcpy的区别和特性却对“工厂模式”为何物毫无所知的年轻人,也不要一个对二十几种经典模式滚瓜烂熟还能熟练背出每种模式的用法而对标准库函数很生疏的年轻人。因为你若出道不到6年要求你深刻理解并应用<<设计模式>>就如同中国现在很多IT企业只有空壳花架子没有实际内容是一样的,没有意义。所以,你先要学会怎样写程序才去谈别的。
3、真正的高手用C语言去写真正的而不是图有其表的基于面向对象的结构和理念的程序。
4、若你并不精通C语言,你只能成为一个真正的熟手,并不能成为一个真正的高手。事实上高水准的C++程序员到了后期对C语言是非常精通的。

39 楼



     楼上的GG太深刻了,

40 楼

嗯,模式是关键

我来回复

您尚未登录,请登录后再回复。点此登录或注册