百科问答小站 logo
百科问答小站 font logo



怎么用好《C++ Primer》(英文版)? 第1页

  

user avatar   pezy 网友的相关建议: 
      
  • 这本书是好书,而且适合作为第一本入门书籍

请见

c++ faq - The Definitive C++ Book Guide and List

这个经典的书单上面的第一本。我一直不明白人家外国人可以把这个作为第一本书入门,为什么中国人就不建议初学者把它作为第一本书看呢,英文不好?有

中文版

啊。觉得翻译的不好?天天在知乎上受

@Milo Yip

@vczh

等大神的熏陶,而这本书就是他们审校的啊。为啥不先去看看呢。

另外,据我所知,

@script Newil

提到的那个repo的作者也是通过此书入门的(严格意义上讲,我也是)。为啥总有人非要挑三拣四的呢。非常好奇。

  • 怎么用好这本书

我没啥资格说怎么用好,但有些教训倒是可以分享下:

  1. 你买的英文版,挺好。我以前总是通过各种中文版的书学C++,很多名词之间的区别都是含含糊糊的,譬如变量对象,管某对象也叫变量行不行呢?管匿名对象也叫匿名变量行不行呢?从中文的角度来看好像也无可厚非,反正意思差不多嘛。这种例子很多,但其实很妨碍你在Stackoverflow上问问题,名不正则言不顺,试试提问说个anonymous variable?保管一大堆老外给你挑刺。而更关键的是,你会很容易放弃深入思考这些名词之间的差别。一上来就从英文版学起,就天然避免这些问题。有种根正苗红的感觉。(上述内容在2.2. Variables就有说明)
  2. 别当成案头书,花功夫完整的看完一遍。我以前就把各种大砖头作为案头书,用到的时候在看呗,一直这么想。结果呢?就是解决问题总是要比别人花更多的时间。究其原因,是我总需要去一遍又一遍的复习基础知识,总想着多看几遍就记住了。结果呢,还是反复在看。要知道,学编程语言不是背语法,记住语法有用吗?c++11又多了好多语法,c++14也出来了,又去记?真的是一辈子“学C++”吗?这种办法学编程,换种语言就嗝屁。完整的看一遍书的意义在于理解这个语言的思路,为什么要有这种语法,为什么c++11要引入新的语法机制?为什么引入类,为什么引入模板,范型?看完书,就能够理清楚这个思路,把握一个脉络。遇到问题,就能够迅速抓到关键,不去纠结那些语法细节。
  3. 做习题,别以为看懂了就万事大吉了。我以前从来不看习题,或者就是扫一眼,觉得应该会,就放过去。其实这是大忌,习题是检验你是否掌握核心知识最好的工具。看完一小节,把书扔一边,认真写出每一道题的答案,你就会发现你到底是不是真的掌握。别笑,我经常看到某些概念分辨题,不知所措,觉得很显然,但就是说不清。这就是没掌握。习题的另一个功效就是,可以帮助你摆脱牛角尖。我曾经看书看的过细,好像一本书就能把整个C++的诸般神技都能讲到似的,这样的后果就是:停滞不前,看不下去。典型的:“想的太多,看的太少”,其实很多面对初学者的疑问,看到后面就引刃而解了(如新手如何阅读《C++ Primer》?里面,这哥们读了几页就开始纠结this指针了)。如何让自己别想太多呢?习题。只要习题没涉及的知识点,完全可以跳过去。
  4. 善于利用stackoverflow,请看习题答案 及 StackOverflow上的讨论 ,这个技巧被很多人忽视(包括我)。首先你能提出问题,而在SO上不被vote down,表示你深入思考了;其次SO上的各位大牛,面对基础题,几乎都是抢答,你只需狂按F5,然后慢慢消化他们的评论及答案就好了,他们的只言片语,能够让你学到本书以外的很多东西,如编码习惯,一些术语(jargon)等等。而且讨论本身就会很自然的让你记忆的更加深刻,实在是有诸多好处。

我说的啰嗦,但都是我的血泪史,人蠢真是没办法。。。你尽量少走些弯路吧。

最后说可能有的疑问:

  1. 看不下去?你也看到了,最上面那个书单里,这本书是第一本,如果都看不下去,请直接放弃C++。
  2. 看完我会很牛逼吗?请见这个答案:认真学完 C++ Primer 后,C++ 语言到了什么水平?恭喜你,已经入门了,但仅仅是入门而已。

======

更新:

  1. 评论里有人不知道中文版的审校都有谁,封面右下方就有嘛。其实还有一位非常有名但不怎么上知乎的: @刘未鹏
  2. 有人提到第四版,第四版和第五版区别还是蛮大的,连章节都有点对应不上了。第五版着重介绍 C++11 的理念,长远来看,这些很值得了解的。从我个人来讲,四、五版都有,曾看完第四版,但再看第五版的时候,还是感觉在看一本新书。如何选择,自己权衡,反正开卷有益。



  

相关话题

  怎么用好《C++ Primer》(英文版)? 
  有人对 C++ 基本数据类型采用 int x{5}; 的方式进行初始化吗? 
  c++11如何实现单例模式? 
  刚过完年手上有点压岁钱,不知该买游戏机还是买四大名著? 
  计算机大牛们,看C++有关书籍是不是一遍就看懂了,总感觉自己笨,有些地方需要看几遍才懂? 
  各领域有哪些「能当小说看」的教材? 
  想问问各位大哥们一开始都是怎么克服看英文文档/书籍的难题的? 
  C#中有什么是与C++的setw()、setfill对应的呢? 
  CodeBlocks 的强大之处在哪里? 
  以前看过的书,现在记得书名一点细节都记不起来了,那看书的意义是什么呢? 

前一个讨论
2k屏幕与普通屏幕的区别?
下一个讨论
阿里巴巴和TP-LINK的OFFER应该选择哪一个?





© 2024-05-23 - tinynew.org. All Rights Reserved.
© 2024-05-23 - tinynew.org. 保留所有权利