×

Loading...
Ad by
  • 予人玫瑰,手有余香:加拿大新天地工作移民诚聘求职顾问&行业导师!
Ad by
  • 予人玫瑰,手有余香:加拿大新天地工作移民诚聘求职顾问&行业导师!

转贴一片C++的文章。对其他语言一样有借鉴意义

本文发表在 rolia.net 枫下论坛给C++初学者的50个忠告
2004-02-17■作者: QQ25209030■出处:桂林老兵站

下面的是学C++时要注意的。绝对经典。!!

  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++!更多精彩文章及讨论,请光临枫下论坛 rolia.net
Report

Replies, comments and Discussions:

  • 工作学习 / IT杂谈 / 转贴一片C++的文章。对其他语言一样有借鉴意义
    本文发表在 rolia.net 枫下论坛给C++初学者的50个忠告
    2004-02-17■作者: QQ25209030■出处:桂林老兵站

    下面的是学C++时要注意的。绝对经典。!!

      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++!更多精彩文章及讨论,请光临枫下论坛 rolia.net
    • 以前读过,很认同.
    • 借自己的帖子,贴几本自己喜欢的书。希望大家补充
      1。APPLE II 彻底研究. 我的启蒙书之一
      2。历届信息奥林匹克竞赛题选。 真怀念琢磨算法的年轻时代
      3。面向对象程序设计。 面向对象的启蒙书
      4。人月
      5。Effective C++、More Effective C++ 可惜没看完。
      6。微软的秘密
      7。术士们熬夜的日子 Internet 发展的简史
      • 改一下,叫IT的书较好,我的转贴list.
        本文发表在 rolia.net 枫下论坛1) 操作系统方面:
        如果你对操作系统原理很好奇,想一探究竟,推荐你必读的几本书,记住不要在汤子赢的书上浪费精力,看过以下的书,就知道什么是水平上的差距了:)
        Abraham Silberschatz的两本书:

        1. 实用操作系统概念(影印版)高教出版社
        2. 操作系统概念(第六版影印版)高教出版社
        这个作者的level是顶尖级的,来自贝尔实验室,是目前世界上操作系统方面的领军人物,我个人认为比坦尼伯姆要强,虽然坦也很强:),这两本书第二本和第一本很多地方相似,区别在于第二本理论偏重一些,第一本实例讨论的更多一些。这两本书别看很厚,但是写的非常流畅,属于比较易读的一类。

        3.现代操作系统---坦尼伯姆,这本书我没完整看过,只是大略的翻过,是第4本书的升级版,里面添加了一些新的操作系统方面的讨论,原理部分比第四本稍有增强。个人认为,是除了前面两本之外的最好的书。

        4.操作系统-设计与实现---这个比较有名了,主要是分析minix源代码的书,顺带着讲了下原理,应该说是偏于实践的,可能当年的linus的教材就是这本,影响较大,可以帮助你了解一个文件系统或系统调用之类是如何实现的。当然,和目前的操作系统来讲,稍简单了一些。想做linux kernel hacker的同学此书可以一读。

        5.操作系统:现代观点(第二版试验更新版)
        Operating Systems: A design-Oriented Approach
        这两本一般,但是还是比国内抄袭的教材强很多,可以作为补充阅读的书籍。

        6.与特定操作系统相关的书:
        understanding linux kernel:千万别买中文版,那叫一个烂
        linux internal:这两本我都有电子版,是打印出来看的:(
        linux内核情景分析:这三本是最nb的linux内核分析书籍,前两本讲2.2内核,第三本讲2.4,好是好,就是钱遭罪,赫赫,要100多块吧。
        4.4BSD操作系统设计与实现:不说少了,原来berkeley那帮写bsd的其中几个人写的,经典就是它了,前几年我恨不得直接花$去amazon买了:(,不过这几年国内出版业发展真快,原来很多梦寐以求的书,现在都摆上书架了,haha,很有成就感呢~~~

        unix操作系统设计:古老的unix设计方面的书籍,应该说这本书在unix世界里面的影响是十分巨大的,很多后来的unix分枝,思想都是缘于此书。里面主要讲解unix各个部分实现时所用的算法,其中一些目前还在使用中。想了解一下unix实现但又没什么时间扣minix或linux内核的朋友可以看看,在这本书上花费几十个小时,绝对超值:)

        2) 计算机系统结构:
        我是搞体系结构的,所以对这方面还是比较了解,不免又要批判一下国内的书籍了,李学干的书,我怎么看都像是上古作品,讨论的东西基本上是80年代以前的玩意儿,看了也是白看,它里面介绍的东西,基本上我们是没有可能遇到的。除非你去计算机历史博物馆。清华的郑伟民有两本书,一厚一薄,都叫计算机体系结构,薄的讲的太浅,反正我看完了还是不清楚体系结构是干啥的,做什么用处。厚的我没全看完,但是感觉和李学干的书一样,不少都是copy黄凯的那本高级计算机体系结构,至少我就看见过一张一
        莫一样的图。讲道这里,不免要推荐一下唐老师的计算机组成原理,(虽然不能是体系结构),这本书相当好,我想这和唐老师严谨认真的治学作风十分不开的,计算机组成原理的书,别的都不用读了,我还没见过比这本更好的。
        国外体系方面的书:
        1. hennessy和patternson的计算机硬软接口和计算机量化研究方法:作者一个是斯坦福的校长,一个是伯克里的资深教授,体系方面最牛会议的审稿人。这两本书可谓是千锤百炼,绝世好书,呵呵。我都推荐给进入体系实验室的师弟师妹们。硬软接口里面讲的是简单的处理器体系结构,最难得地方也只讲到流水线,本科水平阅读应该没有问题。它与国内的书不同,并不是从理论方面泛泛而谈,而是针对某个问题,深入讨论,不弄个水落石出决不罢休,这点使得读起来非常过瘾。第二本量化研究方法比较难读,不
        仅仅是因为英文写的有点晦涩(相对于硬软接口),而且讨论的东西也是最先进的,新接触这一领域的读者比较难于理解,这本书基本上涵盖了2000年以前的微处理器体系结构方面的先进技术,如果你想了解2000年左右微处理器体系结构已经发展到什么程度,可以从这本书读起,它以前的书可以不用读拉。对了,忘了说明,这两本书都是主要讨论微处理器体系结构的,呵呵,这也是它们的新颖之处,我个人也觉得现在还大讲特将什么向量机有点不合时宜。强烈推荐,看完整两本书,你就会知道处理器到底是如何工
        作的。另外,千万别买这本书的翻译版,看着闹心,翻译的往往和原意差出好几百里地,浪费时间不说,也对身心健康不好哦

        2. William stalling的计算机体系结构-性能设计:由于看了前两本书,所以这本就不太起眼了。想比较而言,这本书讨论的问题太过于表面化,缺乏对问题的深入剖析,看完之后没有那种刺破肉皮见骨头的快感。不过我觉得这也很正常,因为william stalling只是个科技作家(别看china-pub上好像对他的吹捧好像是个神,其实他也是人),他和前两位世界级的教授根本不在一个数量级上。不过老威倒是也真够狠,什么都写,os阿,网络阿,体系阿,看着比坦尼伯姆还nb。看过这本书之后,我发誓再也不看他的书了
        。这本书当作科普读物可以,了解一下体系结构。

        3. 黄凯的高等计算机系统结构:这本书影响非常大,国内的凡是体系结构的书,基本上很多都是copy这本的。但是,我不得不说,他太老了,老的已经不再适合做体系的教材了。计算机技术发展多么迅速阿,这个10几年前的东西现在怎么应用啊? 里面讲的机器估计以后没人能见到,呵呵,说到这里不得不向大牛cray致敬(虽然大师已经挂了),他的cray机真是太牛了,不让ibm专美与前啊。Sorry,扯远了,这本书如同鸡肋,弃之可惜(毕竟是好书),但食之无味。喜欢跳出微处理器的圈子,试图俯瞰一下计算机体
        系结构各个领域在1990年以前是什么情况的同志可以look through一下。

        4. 坦尼伯母的结构化计算机组成:这本书不是专讲体系结构的,它连从c程序,到编译,汇编,连接加上硬软接口ISA和处理器内部实现统统讲到。一气贯通,让你了解这个程序是咋在处理器上刺溜刺溜跑起来的,对大家对于计算机系统的宏观认识非常有帮助。

        3)编译原理:
        编译这块我了解不多,应该说不怎么了解,我甚至还打算从头学一边编译原理:(,不过这方面的好书我可是注意好久了:现在隆重推荐:
        1) 编译原理:技术与工具:作者之一就是lalala, ullman,我记得是计算机界目前论文被应用最多的一个活人(fix me),他在编译和数据库方面地位很高,这方面我估计李建中老师的门下弟子比我知道的多多了,我就不说了。这本书据说是讲解经典编译原理的宝典,也被称为"龙书"。想学编译?ok,别的书先抛在一边,把这本先读了再说。但是要提醒一下,目前的编译器基本上和体系结合的很紧密了,有的编译器甚至连程序运行时功耗都考虑进去了,所以,要想一窥现在编译器内部构造,光看这本就不够了

        2) Optimizing Compilers for Modern Architectures: A Dependence-based Approach
        这本书能弥补第一本的不足,讲的都是如何让编译器利用体系结构方面的技术。不过,国内没有出版,不过,别灰心,呵呵,我这里有电子版。如果实在感兴趣,看看编译器是如何根据体系结构进行优化的,可以打印出来读。

        Ok, 累死我了,先推到这里把,对了,希望在别的领域很有研究的同学也推荐些书,让
        我们知识共享,经验共享,共同进步,共同提更多精彩文章及讨论,请光临枫下论坛 rolia.net
        • Thanks for sharing.
    • 其实用C也可以写出Object-Oriented的代码,偶现在正从C++转回C,因为在embedded system里C++ 太overweight了