写给还没看这本书的人的小小建议_Accelerated C++书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 科技 > Accelerated C++ > 写给还没看这本书的人的小小建议
Ar_Cherno Accelerated C++ 的书评 发表时间:2017-04-13 14:04:36

写给还没看这本书的人的小小建议

先说一下我个人的感受,除去代码中一些印刷错误,该书完全符合作者大大们对它下的定义——迅速掌握+实例练习。从这个角度,我个人能给5星。

我个人读完之后觉得它虽然确实称得上是绝佳入门作,但并不是适合所有人的入门作。如果把没有读过本书并准备读本书的人分个类的话,我觉得大概是:

1.没有C和C++两者中任何一门语言基础的纯新手。

2.有C基础,但没接触过C++。习惯并且基于过程编程,对抽象概念理解不是很好的人。

3.有C和C++基础或者只学过C++(我感觉只学过C++的人非常少),但都十分理论化,却不知道怎么练习——所谓的“伪新手”。

其实第一类还可以再分成两类,但这个分法就不是看语言基础了。而是看读者对于学习中“难度梯度”的抗性。有的人(1A)有抗性,有的人(1B)没有。

这本书最适合1A和3类的人读。首先是因为难度梯度的问题。它的难度曲线对纯新手来说,大概是在第5章末尾的图形连接和第六章直线上升。对一个连函数可能都还没有熟悉使用的人来说,到6.2部分处理学生成绩中值函数的各种版本,搅合着几个单元前的grade函数和迭代器一股脑砸上来。如果读者还没做前四个单元的习题,那感觉想必是很酸爽的。没一定的抗性和毅力应该坚持不下来。我看的这本事从图书馆借的,从书的新旧程度就能明显感觉到前5个单元脏兮兮,全是笔记。我看到第9单元的时候,书干净得像一片净土,仿佛都没人翻过。

所以如果是1A类的人,那么就可以高高兴兴地开读了。对难度有钝感是一件好事~然后再说第二类。第二类和1B类人要读的话,可能真的会很受挫,就像作者大大们对本书概括:“迅速掌握C++中最有用的部分,重点不是讲解C++基础,而是C++程序设计,并且一开始就直接使用抽象的高级数据结构,在熟悉使用之后再对数据结构所依赖的基础进行讲解。”

很直白,作者希望将C++的精华,也就是抽象思维和如何进行编程设计交给我们。前几章对接触过C++的人来说很熟悉,但如果没有,而且习惯C的编程风格可能很憋屈。我刚开始也是第二类人,在学校是一般是用C语言写嵌入式程序的。几乎用不到C++的那些高级特性。读到后面就很浮躁,看不下去。前几章看起来觉得很麻烦,一直在想为什么要到第十章才介绍指针。直到读完C++ Primer之后,才又来读这本书。而对指针的忽视我个人觉得并不是作者们的失误,反倒应该是他们刻意为之。到10.6的内存管理那里,他们还举了一个无效指针造成灾难的小例子。第一次读这本书的时候我没有读到这儿,第二次看到的时候还笑了笑,感觉他们真的是用心良苦。毕竟指针用不好确是是很大的隐患,不管是内存泄漏还是指针释放错误直接导致程序爆出一个failure的窗口警告,对一个debug经验几乎为0的新手来说肯定是无从下手。所以他们才尽可能教我们避开指针,用C++的标准库来解决问题。

所以,如果因为一上来就是标准库的各种练习觉得有些不适,不妨先去读完C++ Primer的前七章。熟悉了基础概念再用这种练习和讲解来巩固。

最后,再说一下我个人对这本书的整体感受吧。我自己除去没有读完的那次,算是读了两遍。第一遍就是通读,并且练习讲解时给出的代码。第二遍是通过做习题,不会的就往前翻讲解(不过说真的,我比较小白,有些题目想了好久还是不太会)。因为这本书难度梯度的问题,我不是全部读完一遍之后才读第二遍。而是:1-5章(迭代器的各种使用)读一遍,然后做习题读第二遍,读6-9章(关于类的学习)第一遍,然后做习题读第二遍。第10-15章,同理。这里的梯度相对于6-9章又涨了不少,因为是自己开始写类,并且又系统地讲解了5.8部分的图像,派生啊,接口啊,全都上了。可以说大综合。

以上是我的一些浅见,希望能给还没读这本书的人一点帮助~w

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读