"C++ Primer Plus" is WAY FUCKING BETTER than "C++ Primer" (For Beginners)!!!

再看到给初学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,好了,废话结束。

时间: 2024-08-06 03:46:25

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

C++primer知识点(五)(终结C++primer)

二十七: (1)异常使我们能将问题的检测和解决分离开来. 当匹配不到catch时,将调用标准库函数terminate(当异常没有被捕获) 异常对象:编译器使用异常抛出表达式来对异常对象进行拷贝初始化,因此throw表达式必须拥有完全类型(只是声明如class A;不是完全类型),如果是类类型的话,相应的类必须含有一个可访问的析构函数和一个可访问的拷贝或移动构造函数. 静态类型决定了异常对象的类型.如果throw表达式解引用一个基类指针,而该指针实际指向派生类对象,则抛出的对象将被切掉一部分,只有

C++primer(第五版)第九章 顺序容器(容器的运用及其部分习题解答,C++11特性总结,重点章节内容较多)

顺序容器:为程序员提供了控制元素存储和访问顺序的能力.(无序容器)           1.顺序容器的概述           A.顺序容器的类型           vector:可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢.          deque:双端队列.支持快速随机访问.在头尾位置插入/删除速度很快.           list:双向链表.只支持双向顺序访问.在list中任何位置进行插入/删除操作速度都很快.          forword_list

【足迹C++primer】28、额外的string操作

额外的string操作 构造string的其他方法 //n, len2, pos2 都是无符号值 string s(cp, n) //s是cp指向的数组中前n个字符的拷贝.此数组至少应该包含n个字符 string s(s2, pos2) //s是string s2从下标pos2开始的字符的拷贝. string s(s2, pos2, len2) //s是s2从pos2开始Len2个字符 const char *cp="Hello World!!!"; //以空字符结束的数组 char

string Type

Notes from C++ Primer Operations Operations of string support lots of operations of sequential container. string s;          define a new empty string object, named s. string s(cp);    define a new string object, initialized by a C-style string point

POJ2689_Prime Distance【素数】【两次筛法】

Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12644 Accepted: 3369 Description The branch of mathematics called number theory is about properties of numbers. One of the areas that has captured the interest of number theore

C++学习笔记5 容器

1.  使用assign assign 操作首先删除容器中所有的元素,然后将其参数所指定的新元素插入到该容器中.与复制容器元素的构造函数一样,如果两个容器类型相同,其元 素类型也相同,就可以使用赋值操作符(=)将一个容器赋值给另一个容器.如果在不同(或相同)类型的容器内,元素类型不相同但是相互兼容,则其赋值运 算必须使用assign 函数.例如,可通过assign 操作实现将vector 容器中一段char* 类型的元素赋给string 类型list 容器. 由于assign 操作首先删除容器中

C++ 学习笔记之---对象和类

参考自<C++ Primer Plus 6th Edition>和 <C++ Primer 5th Edition> (本博文中知识点较为零散和基础,主要用于本人的学习回顾) 访问所创建对象的公有成员 1. 自动存储类对象:  "句点方法" 2. 动态存储类对象(使用new):  我们创建了一个匿名的对象,并把这个对象的地址传给了一个指针.我们可以使用指针的指向符"->"来访问公有成员,也可以使用"*"对指针进行反引

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

压力才有动力,15年中旬就要准备实习,学习复习学习复习学习复习学习复习……无限循环中,好记性不如烂笔头……从数组开始,为主干. c 的array由一系列的类型相同的元素构成,数组声明包括数组元素个数和类型,c 中的数组参数是引用形式传参(传址调用),而常量标量是按值传递. //[]方括号表示声明的是数组,里面的数字表明了数组包含的元素数目 int states[50];//声明50个整数的数组 double code[365];//声明365个浮点数的数组 char chr[20];//声明20

【编程题】计算器的新功能

题目:计算器的新功能 附上提交通过的Java版代码 题目描述 当你学一些可视化程序设计语言时,老师经常会让你设计并且编程做出一个计算器,这时也许你会仿照windows系统自带的计算器外观和功能去设计,但是现在老师要你多做出一个有新功能的计算器,实现当输入一个数时,能够将这个数分解成一个或多个素因子乘积的形式,并按素因子的大小排列显示出来.大家对计算器中数的表示应该很清楚的.下面显示出了0 — 9这十个数字的表示形式.每个数字都占据5 * 3大小的字符区域 你能实现这个新功能吗?试试看吧! 1 i