再看到给初学C++的人推荐C++ Primer的我就要揍人了,真的!

被他妈这帮装逼犯给误导了,耽误了无数的功夫!

就是听这帮傻逼的谣言,说C++ Primer讲解更深入什么的,初学也应该啃这本书,老子买了本C++ Primer纸质书,电脑上也有英文电子版,花了好多精力,差不多关键章节啃了2/3,我自学能力算是很强的,但是看这本书会真的会被带歪!

看了带Plus的(C++ Primer Plus),嗯,感觉对了,看起来才真正的感觉到了踏踏实实的收获,并且能够自己动手写代码。

这里列举这本书的几个致命缺点,它的缺点恰好就是带Plus的那本书的优点:

  1. 太多太多的细枝末节。用一个朋友的话说,就是你这辈子可能都碰不到的细节问题,这本书讲的很多。就像个机器人一样平铺直叙,把所有细节统统铺出来,没有任何初学者最需要的“经验之谈”,没有告诉你哪些坑需要暂时绕过。要我说这本书更适合作为参考书,真的是在工作中遇到了奇葩的问题,再翻翻相关章节仔细研究比较好。但是作为学习用书就非常非常非常不合适,相信我,这是一个自学能力很强的人对你的忠告。而带Plus的这本书(C++ Primer Plus)就做的很好,看它的感觉就像一个行业高手在对你循循善诱,一步步把问题提出来,逐渐带你登堂入室,其间还能带你避开各种坑,让你以最高的效率掌握这门神器。
  2. 范例代码太少。不敲代码只看文字描述想学会一门语言根本不现实,但可惜这本书似乎就打算这么做。讲解章节中没有完整的范例,只有一些片段。 Plus这本书几乎每个小节一段完整代码,还有代码解析,用代码说明问题,用代码解决问题,而且难易程度适宜,学习的人可以跟着敲出来,敲的过程其实也是思考的过程,因为敲的过程常常可以先看一部分,剩下的自己先尝试去完成,例如只看函数原型,然后实现自己去根据描述的功能去尝试写。我有不少简单的章节就是直接看描述,然后自己把代码写出来,觉得完全没问题,简单瞄一下后面解析中重点提出来的点,就直接过了,学习的效率很高。
  3. 章节安排奇葩。第二章就讲解了顶层const和底层const,第七章刚接触类就讲了“返回*this的成员函数”,"友元","委托构造函数"....我作为一个不算很资深的程序员(但好歹也是公司程序主管)看的也是他娘的一口老血喷屏幕上!这他妈的什么安排?我不是说我看不懂,只是真的很扰乱学习思路和学习重点,就好比一个游戏第一关刚开始还没搞清楚基本操作呢,就给你一个boss虐你,你是不是想杀了这个游戏策划?

喷了这么多,肯定有大神看到了会认为我Too young too simple, 自己能力不行还喷C++ Primer,这充其量只能算一本入门书,进阶的和高阶的还有其他的例如xxx xxx 和 xxx,我对这种人只想说要毒害人请滚远点,我说的就是入门,而且入门C++ Primer很不适合,我们需要的是高效快速的入门,而不是跟一些细节纠缠,C++只是个工具,我是使用者,不是造工具的人,不需要像老学究一样研究细枝末节。

关于书的语言,能看英文尽量看英文,这两本书中文翻译普遍反应比较糟糕(我没看过plus的中文,不好评价,只能转述别人的评价)。C++primer 第五版的翻译个人感觉还过去的去,不算太遭,我是中英文混合着看的,在电脑前就看英文电子版,没开电脑就看纸质中文版。而Plus我只看了电子版的英文版,没花钱买书。

另外我也不是新手,虽然C++接触不多,但是其他程序语言还是熟悉一些的,也有几年的开发经验。这行装逼的人我见的太多了,就像一次面试一个号称把opengl宝典当枕头的人,结果连一个基础的blinn shader都写不出来。既然我看这本书都觉得很困难,我相信这本书对于其他初学c++的人也是个很糟糕的选择。各位如果是这个群体,建议C++ Primer Plus,好了,废话结束。

"C++ Primer Plus" is WAY FUCKING BETTER than "C++ Primer" (For Beginners)!!!的更多相关文章

  1. C++ Primer : 第九章 : vector变长、string的其他操作以及容器适配器

    vector变长机制.string的其他构造方法,添加.替换和搜索操作,string比较和数值转换,最后是容器适配器. vector对象是如何增长的 vector和string类型提供了一些成员函数, ...

  2. c/c++ 函数、常量、指针和数组的关系梳理

    压力才有动力,15年中旬就要准备实习,学习复习学习复习学习复习学习复习……无限循环中,好记性不如烂笔头……从数组开始,为主干. c 的array由一系列的类型相同的元素构成,数组声明包括数组元素个数和 ...

  3. 【SPOJ】Transposing is even more fun!

    题意: 给出a.b 表示按先行后列的方式储存矩阵 现在要将其转置 可以交换两个点的位置 求最小操作次数 题解: 储存可以将其视为拉成一条链 设a=5.b=2 则在链上坐标用2^***(a,b)表示为( ...

  4. 【bzoj1300】大数计算器

    题意: 求C(n,m) 如果C(n,m)的位数<=12 那么直接输出 否则按XXX...XXXXXXXXX的形式输出 题解: 这题之前打过 但是昨天又想出一种新的做法 先说下新的做法吧- - _ ...

  5. C 高级编程4 makefile 与 IO

    make 与 makefile .目标的语法 目标名:依赖目标 @命令 @命令 make的命令行使用 make -f make 脚本文件 目标名 .目标的划分 demo.mk demo: gcc -c ...

  6. C语言介绍

    以下东东转自百度百科 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.它由美国贝尔实验室的Dennis M. Ritchie于1972年推出,1978年后,C语言已先后被 ...

  7. 收集整理的一些c++书籍(推荐)

    Accelerated C++中文版 .pdf Beyond the C++ Standard Library(Boost)中文版.pdf Beyond the C++ Standard Librar ...

  8. R语言S3类的理解与构建

    R语言类 R语言的类有S3类和S4类,S3类用的比较广,创建简单粗糙但是灵活,而S4类比较精细,具有跟C++一样严格的结构.这里我们主要讲S3类. S3类的结构 S3类内部是一个list,append ...

  9. string Type

    Notes from C++ Primer Operations Operations of string support lots of operations of sequential conta ...

随机推荐

  1. 解决旋转屏幕闪退在androidManifest.template.xml里,activity项添加:

     解决旋转屏幕闪退在androidManifest.template.xml里,activity项添加:android:configChanges="orientation|keyboard ...

  2. PCB布线设计-模拟和数字布线的异同(转)

    工程领域中的数字设计人员和数字电路板设计专家在不断增加,这反映了行业的发展趋势.尽管对数字设计的重视带来了电子产品的重大发展,但仍然存在,而且还会一直存在一部分与模拟或现实环境接口的电路设计.模拟和数 ...

  3. elementUi--->实现上传图片效果(upload+formData)

    现在谈一下elelmentui中使用Upload 上传通过点击或者拖拽上传文件(图片) <el-upload name="multfile"    //上传的文件字段名 cl ...

  4. spring boot 将对象转换为json返回

    Spring Boot默认使用Jackson将对象转换为json,需要配置以下依赖: compile group: 'com.fasterxml.jackson.core', name: 'jacks ...

  5. vscode怎么修改颜色主题里的某种颜色

    我习惯用深色主题, 齿轮--->颜色主题 ---->monokai是我的菜. 比较精神,又不刺眼. 但是这个主题的注释的颜色太浅了. 几乎和背景重合. 注释很重要, 能体现和记录自己的代码 ...

  6. 在学习linux磁盘管理期间学习的逻辑卷管理笔记

    LVM(逻辑分区)的创建顺序:物理分区-物理卷-卷组-逻辑卷-挂载. 物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备. 卷 ...

  7. Python之文件和异常IO

    文件和异常 读写文本文件 读取文本文件时,需要在使用open函数时指定好带路径的文件名(可以使用相对路径或绝对路径)并将文件模式设置为'r'(如果不指定,默认值也是'r'),然后通过encoding参 ...

  8. 帝国CMS模板中的多条件筛选方法

    需求:点击某一条目,调出与该条目关键词相关的类似词条数据 要点: 1.帝国CMS灵动标签使用   [e:loop= 2.专题关键词筛选  enewszt 3.SQL语句筛选   select * fr ...

  9. JavaWeb基础工具类——BaseDao

    package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat ...

  10. websocket在springboot+vue中的使用

    1.websocket在springboot中的一种实现 在java后台中,websocket是作为一种服务端配置,其配置如下 @Configuration public class WebSocke ...