方法得当,写书是个体力活:写在个人书进重印2000册之时

    前一阵子,我朋友圈里,一位图书公司的编辑(编辑是尊称,按能力叫图书中介更恰当)发文征集Java基础书的做者,我想,我以前好歹也出Java书,手头有足够的素材,并且内容也正好对口,是面向初学者的,因而就写了份大纲发过去。html

    以后半天没有回音,因而我主动去问,没多久,直接回复:“你的大纲不行”,惜字如金。再请教,终于肯赐下意见,内容不适合初学者,缘由是编辑本人不熟悉Java,亲身体会,看了个人大纲无法让她理解。本人汗颜,不敢再请教,因而换了家国内某知名出版社直接联系,大纲略做微调后,签下约稿合同。java

    合同签好后开始以为庆幸,幸亏本人以前也出过书,对这方面的需求也稍有了解,也认识了很多正规出版社的计算机图书编辑,不然这本书就悬了。但转又一想,那些已经被该位中介指导过的朋友,若是也是第一次写,也遇到相似状况,会不会就此罢手呢?python

    出书虽然钱很少,但毕竟能对以后找工做、拓展本身影响力乃至出挣钱的视频教程有很大的帮助。博客园里藏龙卧虎,我常常看到有大牛晒本身的书,我也相信有更多的朋友想出一本属于本身的书。因此在本人图书重印之时,结合多位资深编辑和畅销书做者经历,分享下高效写书的经验。读完后你们估计能感觉到:“原来出书不难,大多数场景下是体力活”。web

1  先根据本身的能力选点,再根据读者群选面

    先思考两个问题。第一,要写哪方面?写本身最熟悉最擅长的方面。第二,要写这个领域的哪些内容?定读者群,定目标,以后就能知道该写哪些内容。 面试

    好比Java作了10年,那么能够写Java方面的书。再进一步,Java有核心,web框架,项目案例,架构师等方面的写做方向,该如何选择?就想,这本书该给哪些人群读?好比给零基础初学者读。再思考,读者读好后,能有哪些收获(这就是本书的价值)?能帮助零基础的毕业生或入门者能干些基本的Java项目。数据库

    这样内容大纲就有方向了,目前在公司里,会基本java语法加数据库操做加简单的web ssm框架就能干活,那么就写这些内容,并且写做方法也明确了,因为是面向初学者,因此能够描述基础知识,但绝对不能拘泥于语法,应当在书里穿插描述些0到2年开发会遇到的坑。编程

    或者,某牛人作了若干年Python数据分析的工做,这领域体会很深,想出本Python数据分析的书。而后再肯定,这本书是针对有3年左右Python基础的,那么就能够思考下,3年经验的python开发离开资深python数据分析还有多少技术差距,这就是大纲里的内容。数据结构

2  能够参考其它同类书来准备大纲

    若是大纲里的内容都本身列,那么颇有可能由于闭门造车而致使市场不承认你的内容,因此在准备大纲时,能够到京东或当当等网站,查下目前市面上同类畅销书的大纲,由于这些大纲里的内容是被出版社和市场双重确认过。但参考绝对不是山寨,更不能原样照搬。多线程

    好比要写一本Python入门书,读者群是零基础的毕业生,看了若干本目前畅销的书,发现其中都包含数据结构,语法异常处理,文件读写,基本库等方面的内容,外带介绍些基本的数据分析和图形界面的内容,这就是制定大纲的方向,…?书的内容也应当全面包含这些知识体系。换句话说,找三本同类书,列下章节全集,你要写的内容应该就在其中。架构

    但借鉴的同时要根据本身的状况作些微调,好比一些书里,在介绍字符串时,会全面给出相关的方法,这是别人书的特点,若是写做目的是能帮助读者干项目,因此不能过多拘泥语法,在字符串方面给出些项目里经常使用点便可。    

    这个时候,更多的就是考验做者的功力了,做者能够根据本身的体会,去掉些不适合当前读者群的内容,好比写数据分析方面的python入门书,图形界面这块能够略讲,或者,大多数python高级开发在进阶时,不会过多地用到list元组等数据结构里的API,只会用到些经常使用,那么你在准备大纲时,就能够只讲这些经常使用知识点。 

3  定好大纲后,应当用个约稿合同来确认

    先定大纲仍是先定约稿合同(或干脆出版合同),二者。。,,都行,但在正式开始写以前,应当用合同来确认,尤为对于入门做者而言,不建议写彻底书后再去找编辑,由于这样最后的修改量会很大。

    出版社是会先在编辑会议上根据大纲等状况肯定这本书是否能写,若是经过后则会和做者签合同,若是感受须要修改,这时会把大纲返回做者让修改,修改后再评审。这个过程当中,应当是最能体现出图书公司编辑水平。

    本人以前遇到一位很好的图书公司编辑,他会先把大纲修改意见先过一下,可改可不改的和编辑沟通,只把大纲里须要修改的点告诉我。但若是你们遇到的是图书中介,那么来回改吧,若是中介还对专业知识不了解,致使“传声筒”失真的话,那么这个过程会更加漫长。这方面给你们的建议是:

    1 若是对本身有信心,直接找出版社编辑,联系方式各官网上都有。

    2 若是第一次写,那么能够找图书公司的编辑,出钱买服务。但你感受和你联系的中介水平通常,无法达到指导效果,或者你提交上去的大纲或稿件被反复要求修改,且其中一些点属于可改可不改的,那么能够换个图书编辑,或者干脆直接找出版社编辑。

    3 图书出版社的编辑在定约稿合同时,会充分考虑做者的时间和稿酬,而有些图书出版公司在这方面会卡得很严,缘由你们都知道,遇到这种对本身可能不利的合同,宁肯不签,或者直接找出版社签,毕竟如今图书做者很少。

4  少堆砌理论,多用代码说明

    在定好合同后,就能够开始写了。好比这章要写Java多线程并发,该写哪些内容?多搜些相关资料,看别人怎么写,而后找些适合你书的内容。

    就拿线程池举例,能够列些经常使用参数,也能够经过案例说明线程池如何工做,能够再经过案例说明项目里线程池的用法。在多线程并发章节里,还能够照此写一些信号量,锁等知识点。在写的时候,别大段写理论,能够采用 具体而言,好比1.1这个小节写线程池,那么1.1.1部分就写线程池的基本概念以及经常使用参数,1.1.2部分经过案例说明如何向线程池里增长任务,如何关闭线程池,在1.1.3里写一些常见的项目经验,好比如何设置核心线程数,如何设置丢弃策略等。

    总之,让你的每页书里,多少出现些代码,截图或表格,你的连续文字描述部分,最好别超过半页,这样你的书就有血有肉了。

    在执行起来,通常的作法是,先找些和当前小节相关的代码,本身理解后,改写一下,绝对避免有版权问题,而后在代码下面写上本身对这段代码的解释,同时经过解释代码来给出针对本部分(好比线程池)的描述。

5  写的内容别“看了都懂,但对工做毫无用处”,应当尽可能加入项目中的体会

    我常常见到一些稿件,其中内容都很对,并且确实也能保证读者看懂,好比在讲Java集合时,用大量篇幅介绍了ArrayList等对象里全部API的说明,并且针对每一个API,用表格列出了针对参数的说明。这是写说明文档,而不是写书。

    写书是要让读者经过看你的书,缩短进阶的时间,因此从这个意义上来说,在讲Java集合时,能够讲项目里经常使用到的,这样Vector能够不讲或略讲,在讲ArrayList时,能够讲它的适用场景,以及在多线程场景下的表现,这些知识点在项目里会用到,而对于 API而言,说明下便可。

    讲得再透彻些,读者为何不经过本身查网上资料来自学而要看你的书?第一你的书里整理得很全面,省得读者处处去找了,第二你的书里确实包含了你经过若干年项目实践总结出来的经验,读者至关于用钱买时间买经验。

    因此哪怕你的书文笔通常也没关系,毕竟这是计算机书而不是文学书,但你得尽可能用能让人理解的文字多叙述你的体会你的理解甚至你走过的弯路,若是你本身体会不够,那么你就先本身多学,把你这部分学过的感觉写到书里,这些都是你书的卖点。

6  不下决心别写书,论写书时的时间安排

    通常来讲,写上手以后,2个星期能完成大概30页的章节,这样一个月能完成60页,按一本书450页计算的话,大概八个月左右能完成一本。个人写书速度大概就这样。

   我感觉下来,一周若是用个8小时写书的话,彻底能达到这个进度,再具体一点,平时一天用1小时,周末用3小时。若是再抓紧些的话,周末两天用5小时也能够,这样速度能更快。 

    但我就见过很多人,在写完最多3个章节后自动放弃了,这样不只以前的努力白费,并且会更放纵本身,之后若是再要汇集些上进心就难了。因此,宁肯不写,要写必定要坚持。 

7  总结,感谢出版社和编辑

    写书自己带来的收益确实很少,这倒不只仅是我我的的见解。但一旦有本身的书,面试时大有帮助,且当前视频教程很是火,有了本身的书,再找相关网站制做并卖教程,难度就会下降不少。

    在找选题方面,本文提出了“按本身能力选点,按读者群选面”的建议,在整理大纲方面,本文提出了“多参照别人而后修改”的建议,在具体写书过程当中,本人提出了“结合代码说明,同时多加自身体会”的感觉,本人再照着这些步骤实施时,只是感觉身体累(由于在工做之余或周末写),并没感觉脑累。

    晒下这本书在京东排行榜里的排名,虽然不靠前,但本人资质平平,拿到这种成绩也算不容易,并且今天出版社老师告诉我,这本书首印的3000册已经快卖完,将重印2000册,而我另外一本书,Java Web轻量级开发面试教程,最近也有重印。

   Java核心技术及面试指南,这本书是在北大出版社出版的,本身感觉下来,其中的多位老师不只能力强,在出版过程当中提了很多意见,并且在推广方面也很是给力,之后有相似的书,也会继续合做。