序二
十年写一本书
1998年,Peter Norvig曾经写过一篇很有名的文章,题为“Teach Yourself Programming in Ten Years”(十年学会编程)。这文章怎么个有名法呢,自发表以来它的访问次数逐年增加,到2012年总数已经接近300万次。
文章的意思其实很简单,编程与下棋、作曲、绘画等专业技能一样,不花上十年以上有素的训练(deliberative practice)、忘我的(fearless)投入,是很难真正精通的。Malcolm Gladwell后来的畅销书《异类》用1万小时这个概念总结了类似的观点。
那么,写书呢?
说到写书,我的另一位朋友在微博上说过一段话,让我一直耿耿于怀:“有的时候被鼓励、怂恿写书,就算书能卖5000册,40块一本,8%的版税,收益是16000RMB,这还没缴税。我还不如跟读者化缘,把内容均匀地贡献给读者,一个礼拜就能募集到这个数额。为什么要去写书?浪费纸张,污染环境。为了名气?为了评职称?”这位朋友是2001年我出版的国内第一本Python书的译者,当时这本封面上是一只老鼠的书只有400页,现在英文原版最新版已经1600页了——时间真是最强大的重构工具。其实他的话说得挺实在的。这年头写专业图书,经济上直接的回报,的确很低。
可要是真的没人写书了,这个世界会好吗?
我曾经在出版社工作十几年,经手的书数以千计,有的书问世之初就门可罗雀,有的书一时洛阳纸贵但终归沉寂,只有少数一些,能够多年不断重印,一版再版。这后一种,往往是真正的好书,是某个领域知识系统整理的精华,其作用不可替代,Google索引的成千上万的网页也不能——聚沙其实是不能成塔的。Google图书计划的受挫,其实是人类文明发展的重大延迟,对此我深以为憾。
书(我说的是科技专业书)可以粗略分为两种,一种是入门教程性质的,一种是经验之谈或者感悟心得。无论哪一种,都需要作者多年教学或者实践的积淀。很难想象,没有这种积淀,能够很好地引导读者入门,或者教授其他人需要花费十年才能掌握的专业技能。
所以,好书不易得。它不仅来之不易(有能力写的人本来就少,这些人还不一定有动力写),而且还经常面临烂书太多,可能劣币驱逐良币的厄运。最后的结果是,很多领域都缺乏真正的好书,导致整个圈子的水平偏低。因为,书这种成体系的东西,往往是最有效的交流与传承手段,是互联网(微博、微信、博客、视频等等)上碎片化的信息不能取代的。
几天前,我的Gmail邮箱里收到一封邮件:
“还记得2008年我就想写一本书,但是感觉技术能力不够,就只好去翻译了一本。一晃2015年了,积累了11年的技术功底,写起书来游刃有余。这本书我整整写了1年,其中第6章和第9章是自认为写得最好的章节。请刘江老师为我这本书写一篇序言,介绍一下无线App的技术前瞻和趋势,以及看过样章后的一些感想吧。谢谢。”
包建强
包建强?我记得的。一个长得挺帅的大男孩儿,2004年复旦大学毕业,2008年被评为微软的MVP。在技术上有追求,而且热心。多年前在博客园非常活跃,张罗着要将里面的精华文章结集出版成书。很爱翻译,曾找我推荐过国外的博客网站,想要把一个同学WPF/Silverlight系列文章翻译成英文。2009年我在图灵出版了他翻译的.NET IL汇编语言方面的书,到现在也是这一主题唯一的一本。好多年没联系,没想到他已经从.NET各种技术(WPF、Silverlight、CLR等),转向移动客户端开发了。更让人动容的是,他一直不忘初心,用了十年,终于完成了自己的书。
那么,这是一本什么样的书呢?
我将书的几个样章转给身边从事Android开发的一位美团同事,他看了以后有点小激动,给了这样的评价:
“拿到这本书的目录和样章时,感到非常惊喜,因为内容全是一线工程师正在使用或者学习的一些热门技术和大家的关注点。比如网络请求的处理、用户登录的缓存信息、图片缓存、流量优化、本地网页处理、异常捕抓和分析、打包等这些平时使用最多的技术。
我本人从事Android开发两年,特别想找一本能提高技术、经验之谈的书,可惜很难找到。本书不光站在技术的层面上去谈论Android,还通过市场上比较火的一些App和当今Android在国内发展的方向等各种角度,来分析怎么样去做好一个App。
我个人感觉这本书不仅能让你从技术上有收获而且在其他层面上让你对Android有更深层次的了解。我已经迫不及待这本书能够尽快上市,一睹为快了。”
的确,目前国内外市面上数百种Android开发类图书,基本上可以分为两类:
·一类是从系统内核和源代码入手,作者往往是Linux系统背景,从事底层系统定制等方面工作。书的内容重在分析Android各个模块的运行机制,虽然深入理解系统肯定对应用开发者有好处,但很多时候并不是那么实用。
·一类是标准教程,作者往往是培训机构的老师,或者不那么资深但善于总结的年轻工程师,基本内容是Android官方文档的变形,围绕API的用法就事论事地讲开去。虽然其中比较好的,写法、教学思路和例子上也各有千秋,但你看完以后真上战场,就会发现远远不够。
本书与这两类书都完全不同,纯从实战出发,在官方文档之上,阐述实际开发中应该掌握的那些来之不易的经验,其中多是过来人踩过坑、吃过亏,才能总结出来的东西。不少章节类似于Effective系列名著的风格,有很高的价值。
书最后的部分讨论了团队和项目管理,既有比较宏观的建议,比如流程、趋势,更多的还是实用性非常强的经验,比如百宝箱、必备文档,等等。很多章节,不限于Android,对其他平台的移动开发者也有很大的借鉴意义。
看得出来,这里很多内容都是包建强自己平时不断记录、积累的成果,其中少量在他的博客上能看到雏形。如果说多年前,包建强在组织和翻译图书时还有些青涩的话,本书中所显现出来的,则完全是一派大将风度,用他自己的话来说,“游刃有余”了。
我曾经不止一次和潜在的作者说过:“不写一本书,人生不完整。”我说这话是认真的。人生百年,如果最后没有什么可以总结、留之后人的东西,那可不是什么值得夸耀的事情。
而说到总结,互联网各种碎片化的媒体形式当然有各种方便,但到头来逃脱不了烟花易逝的命运(想想网上有多少好的文字,链接早已失效,现在只能到archive.org上寻找,甚至那里也不见踪影)。还是书这种物理形式最坚实,最像那么回事儿,也最是个东西。去国家图书馆看过宋版书的人肯定会有体会。
当然,真正能立住的,是那些真正的好书,那些花费十年写出来的东西。希望有更多的同学像包建强这样,十年写一本书。希望有更多好书不断涌现出来。
我更希望,包建强不止步于书的出版,而是能将书的内容互联网化,让读者和同行也加入进来,不断生长、丰富,不断改版重印,变成一种活的东西。写一本好书,不应该限于十年。
刘江
美团技术学院院长
CSDN和《程序员》杂志前总编
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论