关于《0 bug-C/C++商用工程之道》一书出版前后的故事

简介:
 最近我的新书《0 bug-C/C++商用工程之道》在推广过程中,遭到了一些阻碍,很多甚至是比较恶意的攻击,本来我想置之不理,但攻击有越演越烈的趋势,所以我这个作者,不得不出来说点话。
 既然是我一家之言,大家信就信,不信也无所谓。呵呵。
 目前,出版行业其实也是市场化竞争了,大家出书,都还是讲究个经济效益,这和我们程序界写商用代码,写赚钱的代码,道理其实是一样的。
 最开始,我没有想写书,在2008年的11月份的时候,有个出版社的编辑在网上发帖子,征求稿件,我当时想了一下,也确实想把自己过去10年的一点技术心得分享出来,就和他联系。
 这位编辑呢,就不直接点名了,姓张,是某个国家级A级出版社的编辑,QQ号:107061xxxx,电话:010-6353xxxx。这个呢,在网上google一下,应该能找到。
 不过,当时我在做个项目,09年春节从海南回来连续忙了差不多两个月,直到3月18号,他通知我出版社要做出版评审,才匆匆写了个目录和一篇样章给他,就是书里面大家看到的讲debug工具模块那一章。
 当然,评审是顺利通过了。之后,待4月份我工作告一段落,就开始正式写作。
 但是,合作不久,我们之间就发生一点问题。
 我们通常用QQ交流,可能这位编辑太忙,经常是我一个问题过去,半天,甚至第二天才答复。而且,在关键的版式,格式这块,他语焉不详,我一直没有搞懂他到底要什么格式。只有闷着头写。嗯,有些朋友批评我的书,中间使用非等宽字符写代码,以及使用灰度底色描写关键信息和代码段,看起来很费眼,其实就是他命令我这么做的。我第一次写作,也不知道出来后效果如何,结果保留到现在被大家骂,呵呵。
 不过,这还好,在5月份,我差不多完成了一半的时候,他突然命令我停下来,说出版社新规定,作者要一次性排版排好,否则拒收。
 这下麻烦大了,我都写了几十万字,要回过头一点点改格式,中间为此耽误了差不多二十天,弄得我这个作者苦不堪言,写作受到重大障碍,甚至,很多原来想好的段落,都搞忘了。
 在这种情况下,我经过思考,决定取消和他的合作,另外找一家大型出版社。就这样,我在网上查到电子工业出版社的网页,进去找到通信分社的联系电话和负责人email,发邮件咨询对方这件事情可不可行?
 电子社接待我的这位编辑,大家可能都认识了,就是我书现在的编辑,电子工业出版社通信分社副社长窦昊先生。
 窦先生热情回复了我的咨询,表示只要我这个作者原意,他们当然可以为我服务。在这种情况下,我们开始谈合作细节,要说电子社还是严谨,不管我前期写得如何,窦先生还是严格走了一遍审批流程,差不多一个月,才确定要出版我这本书,请我继续写,大家注意没,仅此一条,我差不多损失了两个月的创作时间。
 但后面的合作就很顺畅了,窦先生首先表示,编辑编辑,天生就该干编辑的活,排版是他们的事情,当然,出于尊重起见,我拍好的版式他们一般不动,还有,我所有的图,我只管绘制草图,由他们安排专人重绘,保证美观性,等等。这样下来,我写得就比较愉快了,后面的事情大家都知道了,一本书在那摆着呢。
 因此,我这里作为过来人,还是提醒各位技术图书作者,出书,出版社和编辑的服务很重要,这甚至是出的成与出不成的关系。
 当然,我这么做,自然不会给前一个编辑交稿了,大家猜猜他会怎么想啊?是不是很不爽?
 所以,在2009年12月初,书正式面市之后,我开始发现一些不好的现象,首先是china-pub开始出现读者的质问,我刚开始还很有耐心地回复,但对方揪住细节就是不放,关键是,他揪的细节自己都是错的。我的书是讨论跨平台开发,本来不讨论Windows相关,中间仅仅有个例子,我说钩子程序可以考虑使用dll实现两个进程间数据传递,这本来也是业界常规做法,对方硬说我这是错的,我帮他找资料,甚至msdn原文抄给他看,还是不认,这明显就是对人不对事了,我就开始怀疑有点问题。
 而且,对方没有署实名,几个ID骂我书的话如出一辙,都是在纠缠dll问题,我后来分析,这很可能是一个人的多个马甲号,这位老兄呢,可能C++学的少,别的地方找不到刺,只有dll可能学点,就揪住这个点玩命骂。
 刚开始我以为是几个愤青,也就不打算管了,可对方挑刺的地方,确实不是我公开的前两章样章,是第三章以后的内容,这说明对方至少看过。但对方这么对人不对事,又确实不像一个正常的读者所为。
 我就分析了,当初我和第一家出版社合作的时候,我按照约定是给对方定期交稿的,前面差不多一半的章节,他手里面是有的,因此,即使不买书,他能就前几章提出问题。我心里有了这个念头,就做了一个判定,一个读者提问,首先要看态度是不是“对事不对人”,其次,要看他问题的范围,如果是后面几章,这应该是真正的读者。
 不过,这事显然没完,从今年元旦开始,不断有人在网上攻击,进而发展到攻击我的书和人,不过,有趣的是,到目前为止,所有给书挑刺的人,提出的问题点都在前面几章,后面几章不是没问题,笔误还有几处呢,但居然到现在没有一个人提出。嗯,有位陈硕先生提出了对后面几章的看法的。
 其实就算我不说,大家可能也知道,网上由于都是匿名,或者换马甲,没有心理负担,PK或攻击起来,话很难听的,这里我摘录几段,大家可以看看:
 --“你完蛋了,真的没救了。”
 --“我在xxxx都买了接近3000块钱的书了,好书烂书都有不少,但是从来没见过1个作者像你这样的,真jb猥琐。”
 --“10年来水平一直都没这样垃圾,真是佩服佩服”
 --“算了,你这种人就在这儿意淫吧。”
 --“强烈建议初学者不要买这本书,以免被毒害。这是一位“野路子”程序员写的山寨C++书。”
 --“我知道本书的作者是非常好为人师的,但是我由衷的希望这样的山寨老师还是越少越好,这样的野路子老师实在令人对中国的计算机教育产生担忧。”
 --“土逼,我骂你怎么着?你好意思出书挣钱就要有被拍的觉悟,管被几个人拍,拍的就是你,怎么了,谁让你出书了?你出的书傻不傻逼都拍你,就拍你!我本来就是觉得你没肚量罢了,原来你就是一傻逼,我连Hello  world都不会写我就敢肯定LZ说的肯定是对的,你肯定是错的,因为你TM脑子少根筋。 ”
 --“别TM装可怜什么狗屁弱势群体,郭敬明虽然遭人唾弃至少还有芸芸教众为他护法,你在你自己的书目下面都吸引不到力量来帮你,这是一种什么样的国际主义精神?这TM叫自作孽不可活!什么叫“做人不能无耻到这个地步”,Programming界的无极,Programmer界的陈凯歌。”
 嗯,大家都看见了吧,我遇到的一种怎样的对手,呵呵。应该说,这几位朋友骂得还是比较有创意的。至少,我骂不到这么精彩的地步。呵呵。
 我重新回顾了一下这段时间的网上骂战,发现几个特点:
 1、对方一般不理会本书的宗旨,即“宣导商用化和工程化开发,提倡各位程序员写0bug的并行程序”,而一味揪住书中针对C++语言某个细节与主流观点不符在做文章。
 2、对方所有的讨论,均未脱离前面几章,即我给第一位编辑交稿的部分。
 3、论战中,只要对方一开火,无论我怎么平和解释,几千字几千字地写解释文稿,均予以无视,而一味坚持自己的观点谩骂。
 4、对书中内容有恶意性曲解,断章取义,比如一段文字,我是说A这件事,他非说这个说法在B这个观点上不对,然后开骂。
 因此,我最后也火了,也就不打算再回复这类恶意攻击性言论。
 其实,诚恳的读者也有的,比如陈硕先生,他站在他的立场,堂堂正正和我PK技术,我非常欢迎,我们有来有往沟通,都有收获,我也视陈硕先生为好朋友,还专门在博文中将我们的沟通细节写出,供大家参考。
 因此,我这里说句话,各位读者批评本书,可以到本书读者俱乐部里面去发帖(网址就在书最后印着呢),大家平和点,就事论事,我非常欢迎讨论。但胡乱PK,肆意谩骂的,恕不接待。
 嗯,我的书上市一个半月,卖了2500本左右(出版社数据),目前攻击我的人十几个ID,就算全部都不是马甲,是真人,在读者中,也还是占少数而已。
 因此,我在这里正式列文,请各位读者和准读者了解一些细节,避免受到无谓的干扰。
 
 这里我也摘录一段文字,是美国纽约一个朋友,邮购了我的书后发来的email:
  “我刚刚把你的书大致看了一遍。因为有的章节需要仔细研究,所以还要花时间再看。
 我有以下感慨,假如我刚毕业时看这本书,我一定认为你是大师,即使是工作了六七年后我也会认为你是专家,因为书里包括了非常多的内容。我跟你的职业轨迹十分相似,所以我可以理解到内容的深度和广度。
 除了一些C++的用法可以改进之外,比如用一些前人总结出来的经验和用法,或者说艺术性的使用C++, 书中所谈到的经验都是非常宝贵的。如对我来说我很想知道内存池和线程池是怎么实现的。比如在公司的时候我曾和同事争抢一项实现读写锁的任务,我最后没有拿到。我一直在后悔。现在我可读一下你的书就可以知道它的关键之处。当然现在什么都有开源,但是我想大家都希望有一本书可以把它的精华提炼一下。
 在同时我也感到很悲哀,因为技术发展得太快,很多技术已经标准化了,如线程池的库,在。Net里面有soft thread (user level thread)和hard thread(os level thread)之分。同时boost库里也有很多类似的类。这一来给程序员创造的机会也相对少了。
 但这并不会降低这本书的价值。
 另外我下载了你的webcast。感觉到很有哲理性。如果能有给职业程序员讲一下内存池和线程池的原理和实现的webcast,我想对书的销路会很有帮助。”

本文转自 

tonyxiaohome

51CTO博客,原文链接:http://blog.51cto.com/tonyxiaohome/271531 ,如需转载请自行联系原作者

相关文章
|
25天前
|
程序员 API 数据库
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
59 0
|
17天前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
30天前
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
21 0
|
30天前
|
数据可视化 算法 C++
C++ cmake工程引入qt6和Quick 教程
C++ cmake工程引入qt6和Quick 教程
32 0
|
4月前
|
C++
[C++] 获取工程路径、解决方案路径和.exe路径
[C++] 获取工程路径、解决方案路径和.exe路径
50 1
|
7月前
|
IDE 编译器 开发工具
善用 vs 中的错误列表和输出窗口,高效查找 C++ 多工程编译错误
善用 vs 中的错误列表和输出窗口,高效查找 C++ 多工程编译错误
|
7月前
|
传感器 IDE 开发工具
排错实战 —— 解决 c++ 工程编译错: error C2059 'string' illegal token on right
排错实战 —— 解决 c++ 工程编译错: error C2059 'string' illegal token on right
|
8月前
|
编译器 Linux 测试技术
【C/C++】C语言工程转C++工程,去除旧代码中的警告和错误
将 C语言项目转为C++项目更新维护,处理旧代码中的警告和错误
249 0
|
10月前
|
JavaScript 前端开发 C++
JavaScript 调用 C++/Qt 工程(附有代码 + demo)
JavaScript 调用 C++/Qt 工程(附有代码 + demo)
|
10月前
|
区块链 C++ 计算机视觉
C++工程封装成安装软件.exe(非常实用)
C++工程封装成安装软件.exe(非常实用)