我的第一本C++书

游历C++世界的地图

《我的第一本C++书》:一本培养C++语感的书

一位朋友评价《我的第一本C++书》是“一部C++语法大全”,这个评价太夸张了,担当不起啊      

实际上,我对于C++语法的态度,有点像对英语语法的态度,我们学习英语,聪明的人不会去背一本英语语法书(但是有些不太聪明的人,却去背了),老外们小时候恐怕也没有学过什么英语语法吧,但是这并不妨碍他们说一口流利的英语。学习英语讲求语感,C++作为一门程序设计语言,说到底,它的本质还是语言,同样讲求语感,所以,这本书可能给你讲解的不是某些具体的语法,而是通过一些生动有趣的小例子,讲解C++的应用,就像我们第一堂英语课学习的“Good Morning”一样,以这样的形式来培养大家的C++语感。      

有了C++语感,你就仿佛找到了打开C++大门的钥匙。想入门还是出门,那就随心所欲了

朋友IronBlood的评论如下:

想发财需要什么,《21天海盗速成》?当然是藏宝地图了。
  
  入门 了解C++ 需要什么?我觉得读一下 imcc 同学的《我的第一本 了解C++》书不为过。
  
  我想最让初学者头疼以及对 了解C++ 感到畏惧的原因,主要还是语法书或者教科书让人读得头昏脑胀、昏昏欲睡,学起来没有一点趣味。不妨来翻翻这本书。这不是一部典型的教科书,倒是有点《Head First》系列的风格。书里没有大段大段的语法,相反地,你会觉得作者仿佛一位在 了解C++ 门派里修炼多年的前辈,信手将一些武学精要打给你看,告诉你要想入门得走过哪几步:C++简明历史、开发环境演示、基本语法、OOP介绍、STL编程以及 了解C++ 最新发展动向。
  
  我觉得把这本书归到以下类别都是不合适的:
  
   一部C++语法大全
   一部编程规范的讲解
   一部C++原理的解读
   一部C++速成指南
  
  作者的意图其实相当明确,将 了解C++ 中最主要的内容提炼出来,以通俗的方式讲给大家。书里其实留有大量的后门,作者并未在书里头给出解释,原因我想也是兼顾一下用户体验 ;-) 。因此这本书需要慢读多想,想想有的地方为什么作者会如此解释,一定能把你手上的语法书给串联起来,而让你豁然开朗。
  
  我大概是2007年10月的时候听说这本书的写作意图的,真正起始的策划时间恐怕更早。四年的时间,这本书终于问世了,在此恭喜 imcc 同学,同时期待下一部译作《C++ 0x FAQ》。

posted on 2011-06-19 10:30 陈良乔——《我的第一本C++书》 阅读(1869) 评论(16)  编辑 收藏 引用

Feedback

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-19 10:59 泡菜

《我的第一本C++书》你写的?书我看了,总体上作为入门书还过得去。不过对于俺来说稍微浅了点。100满分的话,俺打85分。因为书的覆盖内容还少了点  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-19 11:05 陈良乔——《我的第一本C++书》

@泡菜
真高兴你能喜欢这本书:)

恩,作为入门书,写得太厚好像不太好,为了减轻读者的压力,有些C++的更高深的内容,我只是提到了,给读者进一步学习指出了方向,并没有展开,本书的重点,就是培养一种C++语感

内容方面,第二版会有所改进和增强

  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-19 11:20 Skill

现在C++经典书籍太多 不经典书籍也数不胜数
我觉得再出这种无味的C++教材没有任何意义  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-19 11:25 陈良乔——《我的第一本C++书》

@Skill
没错,C++经典书太多,滥竽充数的也不少,但是,这本书不是“这种无味的C++教材”,首先,它很有味,同时,他也不是教材,可以说是一本C++的休闲读物,读起来轻松有趣而又有所收获
也许你还没有看过这本书,所以这样说,网上有些试读章节,相信你读了之后,会有不同的观点
  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-19 11:48 Skill

@陈良乔——《我的第一本C++书》
刚看过了目录 对STL的经验总结比较感兴趣 不管怎样是作者辛苦换来的
书没有贵贱之分 最重要的是理解之中的内涵 感谢作者
也祝这本书会越来越被大家认可
  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-19 12:02 陈良乔——《我的第一本C++书》

@Skill
对于你提到的C++书的现状,我也有同感,我想这本书不是有一本一般的C++书

这本书创作大约经历了5年时间,我记得最开始的时候,VS2005才刚刚发行,现在都已经VS2010,如果是个小孩,都已经可以打酱油了。在这五年中,我一直在问自己,现在的C++参考书已经够多了,从经典的C++ Primer,the C++ Programming Language,再到那些C++宝典,C++最新教程,C++完全自学手册等等,我为什么还要再写一本来凑热闹?我的这本书有什么独特的地方,能够在汗牛充栋的C++书中脱颖而出,让读者第一眼就选中这本书?现在,这本书来到了大家面前,我希望自己能够交出一份满意的答卷。

你有爱上这本书的这样四个理由:
•内容翔实,坚持以实用为主,介绍了C++中最常用的,必须掌握的绝大部分知识,对于一些很少用到的语法知识,则较少涉及。在讲解的时候,也以实际的应用场景为主,避免孔乙己式的深究C++的语法细节。不过我要善意地提醒一下,利用这本书对付那些C++等级考试,恐怕不太适合。
•讲解丰富形象,避免以往教科书式的呆板面孔。全书以一个C++世界为主线,形象生动地介绍了C++世界中的各种事物。子曰:“知之者不如好之者,好之者不如乐之者。”全书中丰富的比喻,可以让读者对比较抽象难懂的C++知识有一个形象的理解,真正让阅读成为一种乐趣,让读者乐在其中。
•语言生动有趣。不同于那些居庙堂之高的一般的C++教科书,同样是讲解严谨的C++知识,在其他某些一般的关于C++的裹脚布(抱歉,好像对那些作者不太尊敬,不过看过的人都知道,实在是晦涩而冗长)样式的书中,你绝对看不到这样的句子: 
  刚刚听完了HelloWorld.exe的自我介绍,又看到几个C++集成开发环境在一起聊得欢:Eclipse说它使用起来很简单,Dev-C++笑了;Dev-C++说它开发效率高,C++
Builder笑了;C++ Builder说他它资格老,Turbo C笑了;Turbo C说它他粉丝多,Visual C++笑了……
  ——介绍C++ IDE
  
  耶稣先生说:要获得自由,你必须知道事情的真相。而关于C++类对象的全部真相,就在它的内存模型当中。
  ——介绍C++类的内存模型
  
  STL运用到了极致,发挥出了它简洁优雅的特点,这才是让考官满意的满分答案。同时,这道题也告诉我们这样一个道理:代码,就像女人的裙子,越短越好。
  ——介绍STL算法
•坚持理论实践相结合。在讲解知识的同时,结合作者自己多年的实践经验,提醒读者这些C++知识应该如何应用,在应用的过程中需要注意些什么,同时有大量的实例加以示范,这样可以避免读者掌握了C++的语法知识,却没法动手写程序的纸上谈兵式的学习。特别是最后一章收集整理的各大公司的鄙视题目与分析,对读者有很大的实用价值。

  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书[未登录] 2011-06-19 23:53 tom

买了一本捧场,作为国内原创,值得鼓励,很值得鼓励。而且内容与时俱进。

说说缺点。类似
cout << "中文内容";
应该写成
wcout << L"中文内容";
这对于我们中文使用者才是正确的做法。包括basic_string<T>在内,都应该鼓励采用wchar_t形式。今天的世界,任何字符串信息都应该采用UNICODE.

在c++标准支持unicode之前,wchar_t是Windows平台上最近似默认的UTF-16的做法,不仅提高效率(因为不须在内部再转换),更重要的,减少字符串相关算法的潜在错误。

Unix上UTF-8流行,另说。

考虑到此书提到ppl,侧重Windows平台。应当提倡正确的编码风格,尤其对非英文软件编写的程序员。
  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-20 10:24 陈良乔——《我的第一本C++书》

@tom
谢谢你的捧场,谢谢你中肯的评价以及指出这本书的一些不足之处

关于对于unicode的支持,新标准C++11已经开始从标准的层面对unicode提供支持,所以,在本书的第二版中,这一点会得到加强,谢谢你的提醒

关于PPL,并行计算是未来的一个趋势,并且,新标准C++11也从标准上开始支持并行计算,在我正在修订的第二版中,会同时介绍标准库对于多线程的支持,不仅仅局限在Windows平台。
公关于编码规范,我很认同你的观点,在书中,我对编码规范也有一些介绍,希望能给读者一个比较好的示范



  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-20 11:07 空明流转

@tom
是UCS2,不是UTF16,谢谢。  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-20 11:09 陈良乔——《我的第一本C++书》

@空明流转
赫赫,字符编码很混乱,别说初学者了,就是经验丰富的程序员都容易搞错
  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书[未登录] 2011-06-20 11:50 Jcily

有很多书其实只是作者本身的学习总结。写给自己看的。  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-20 12:03 陈良乔——《我的第一本C++书》

@Jcily
恩,即使是这样,也可以从别人的学习过程中获得一些有用的知识和经验
  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书[未登录] 2011-06-20 12:42 tom

@空明流转, Windows不UCS已经很多年了。
See here:
“UTF-16 is used for the native internal representation of text in Microsoft Windows 2000/XP/2003/Vista/CE.[7]”

Cited from http://en.wikipedia.org/wiki/UTF-16/UCS-2.

@陈良乔
新标准C++11已经开始从标准的层面对unicode提供的支持,还是纸面上的,无论GCC还是VC++都还没实现,Clang不清楚。在可以预见的的将来这不是优先工作,毕竟这玩意儿涉及到某种“种族歧视”(不记得哪篇UNICODE的介绍文章里提到过):说英语的人对UNICODE的需求远小于我们。更现实的情况是:现有的API不可能用C++1x改写,我们还得跟这些legacy code交互多年。

再说一句,这本是算是一本真正的关于C++书,希望这种书越来越多。  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-20 14:52 陈良乔——《我的第一本C++书》

@tom
对于 unicode,现在最重要的开发技术还是在西方人手中,他们对这种东西需求不大,大约也就是为什么迟迟没有实现的

这让我想起了好像有一门用中文进行开发的“易语言”,记不太清楚了,大约是,不知道现在如何了  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书[未登录] 2011-06-20 17:28 tom

@楼主,
我说的就是这个意思,除非有中国人在C++ committee 里推动,这个事情的优先级不会太高。所以在c++03的基础上支持UNICODE还会是较长时间里的现实。
这也是我前面的建议的前提。  回复  更多评论   

# re: 《我的第一本C++书》:一本培养C++语感的书 2011-06-20 17:46 陈良乔——《我的第一本C++书》

@tom
C++ committee中没有一个中国人,甚至挨着中国的日本人,韩国人都没有,C++的未来,还是很大程度上把握在那些说english(或类似)的人手中

唉,同学们任重而道远啊
  回复  更多评论   



只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理