开发者学堂课程【顶级大咖教你如何打造技术品牌影响力:《一本技术畅销书是如何写成的?》】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1057/detail/15609
《一本技术畅销书是如何写成的?》
内容介绍:
一、背景
二、写书——时间的复利
三、布局——怎么做到的下笔如有神?
四、畅销书也有套路可循
五、写作带来了什么
本课程主要包括主要是从如下四个方面就是写书——时间的复利,布局——怎么做到下笔比如有神。畅销书也有套路可循。就是写书给带来了什么。
一、背景
1.分享目标
冰河,一名自媒体博主,目前,总共出版了自己的四本个人技术图书,分别是《深入理解高并发编程:核心原理与案例实战》、《深入理解分布式事务:原理与实战》、《海量数据处理与大数据技术实战》、《 MySQL 技术大全:开发、优化与运维实战》。这四本书目前在技术领域,还算是比较畅销的,本节课一起来聊一聊一本技术畅销书是如何写成的,这样的一个话题。希望能够给够带来一点点启发和帮助。
2.确定目标
在正式开始分享之前,想问小伙伴一个问题,为什么想写一本书?为什么想成为畅销书作者?这个答案应该指向你内心深处某个需求,这件事情最终会给你的生活带来怎样的变化?
个人认为是荣誉,认可,也可能是机会,或者说财富。不管需求是什么?希望大家可以认真思考。成为一个畅销书作者能给你带来什么?这从本质上来就能够决定,在结束了一天疲惫的工作之后,依旧愿意学习这节课,以及开始后面创作计划的根本原因,随后把这个原因写下来,同时给自己一个dailyplan,如果你已经决定要开始你的创作,甚至出版一本书的伟大计划。那么,该如何做?在这节分享中,会向大家分享一些经验和写书带给生活的改变。
3.分享目录
首先来看一下,要分享的一些内容,主要是从如下四个方面分享。第一个,就是写书,时间的复利。第二个,就是布局,怎么做到下笔比如有神。三个,畅销书也有套路可循,这一点的相信对很多小伙伴来说也是很有帮助的。那么第四个,就是写书给带来了什么。
二、写书——时间的复利
一本书的写作,它并不是一朝一夕就能够完成的,很多读者都知道作者出错的频率其实还是比较高的,但从个人的角度,出书之前其实已经做了大量的准备工作。比如用写作这件事情来说,在上学的时候,就注册了 CSDN 账号,并且在 csdn 上坚持写作十年,后来也开通了公众号,同时也注册了阿里云 infoQ 等平台的账号,并且在这些平台上持续坚持的创作,可以这么说,其实写的每一本书都经过了近十年的写作沉淀和打磨。
并且涉足大不同的技术领域,比如《深入理解高并发编程:核心原理与案例实战》,这本书它更加偏向于并发编程领域。《深入理解分布式事务:原理与实战》,它更偏向于分布式领域。《海量数据处理与大数据技术实战》更加偏向于大数据领域。《 MySQL 技术大全:开发、优化与运维实战》这本书则更加偏向于数据库领域。它们都来源于在平时工作的过程当中的一些积累和对技术点的思考和总结。所以如果想出书,建议在平时的工作过程中要有意识的去积累,多思考和多总结,做个善于思考和总结的有心人。
1.善于记录总结
这里分享一下,平时总结的一些方式方法,比如在平时的工作过程当中,如果遇到了问题或者技术难点和它们决方案。个人建议,就随时把它们记录下来。然后,自己随时对这些事项进行复盘。写出自己对问题的理解和心得。记录下解决方案。当然最好是成体系的输出一系列文章来系统化的表达自己对这些问题的理解,这样的既能对自己的知识体系进行系统化的梳理,也能将文章分享出来,帮助更多的人。
2.如何兼顾工作、学习
再举个例子,平时的也经常听一些小伙伴的说自己很忙,没有时间提升和学习,也没时间思考和总结,经常遇到一些不会的技术或者框架。总之会忙的焦头烂额,该怎么学习?该怎么思考和总结?其实很多小伙伴有这种问题,也比较理解,毕竟在这个所处的互联网行业里,上层应用知识更新迭代的速度快,随时都有可能出现新的技术或者说框架,跟大家分享下平时的工作过程当中是如何兼顾学习,思考和总结的。
大部分小伙伴在遇到一个不太了解的技术,或者说框架的时候,会先花大量的时间去学习,学习它的用法,原理,各种使用技巧等等,学习的差不多再去项目当中使用。这样的其实前期就花费了很多的时间去学习。但是项目中,还会出现各种各样的问题。其实在平时的工作过程当中,并没有这样去做。
简单聊一下,如何去在工作过程当中一边工作一边学习的,如果遇到一个不太了解的技术故障,会先了解下它的使用场景和基本用法,然后结合项目思考它的落地实践。将这个技术或者说新的框架整合到项目当中之后,就开始不断的去调优和优化,并在过程当中,自己就会去记录相关技术的落地实践方案和调优的过程,对应达到一个预期的效果,这样可能就比其它的小伙伴多了更多思考和总结的时间。送大家一句话就是:很多技术不是你学会了才开始用的,而是用过之后,才开始学会的。
3. 记录思考和总结的工具
这里,给大家推荐几个用于记录思考和总结的工具,如果大家想在工作过程中及时记录自己的思考和总结的话。同时又不想让别人看到,推荐大家使用语雀。语雀可以设置密码,也可以设置为私密文章,只用它记录一些知识总结也比较方便。
如果大家想将自己的思考和总结写成系统化的文章,同时又想让更多的小伙伴看到可以加文章,发不到公众号或者说其它的一些博客平台当然除了这些,也可以记录和总结自己的读书笔记等。
4.出书前准备
接下来的们再来聊聊真正写书之前要做哪些准备工作。出过书的小伙伴,可能都知道出书,它并不像写博客和写文章那样随意,它是一个标准很高,同时流程又比较长的一个过程,并且整本书的内容要系统,前后要连贯,要将书中的介绍清楚,还要对接出版社等等一系列的事项。这里从选题,读者定位,确定书名,规划内容,坚持写作几个方面来介绍下具体要做哪些事项。
(1)、选题
第一个,就是选题。写书之前的要确定好自己所要写的书籍的选题,比如你是写数据库还是分布式,还是微服务,高并发,或者你又想写项目实战等等,这些都是书籍的一些选题,选题的过程当中,大家就可以到天猫,京东,当当等平台上看一下哪些书籍的销量高,受众群体好,并且能结合自身的实际情况,看自己是不是适合写这种类型的书籍,这点的是比较重要的,就是结合自身的实际情况,来看自己是不是适合写这种类型的书籍。这样的能够对自己写出有个大的方向性的指导。
如果你在平时的工作过程当中,善于积累和总结,并且积累了足够多的知识体系,那么写小题的范围就要广一些。如果没有足够的知识积累,并且对想写的选题的知识体系,还不够完善,但是你只想写这个选题或者方向的书籍,那么接下来的一段时间内,就要针对这个方向去沉淀,或者是积累自己的知识体系。
(2)、读者定位
第二个就是读者定位,确定好选题之后,就要思考下这本书的读者是哪些群体,也就是为这本书能定位读者类型,比如读者群体是刚入行的新人,或者只是在行业内工作了一两年的年轻人,那么这本书其实就不能写的太深,不太适合写深入原理性的一些东西,更适合写一些新手入门的基础知识和实战类的教程内容,快速的帮助这些新人能够迅速入门,并且能够快速掌握相应的基础知识,同时,通过书中的案例,能够做到学以致用。
相反,如果读者的群体的是一些工作多年的技术大牛,或者说高级开发工程师,那这本书其实就不太适合写一些基础教程类的一些内容,他们的可能对分层次的原理性的内容,或者说底层一点的源码类的知识更加感兴趣,所以,要确定好读者群体。
(3)、确定书名
第三个,就是确定书名,确定好选题和读者群体之后,就可以给自己要写的书籍想一个名字。书记的名字最好是让大家一眼看上去就知道这本书整体会讲哪些内容。这里举一个例子,比如出版的这本《深入理解高并发编程:核心原理与案例实战》,它从标题上或者书籍的名字上,就能够整到这本书的方向是并发编程领域。这本书的内容,就大致涵盖了一些并发编程的原理和案例,实战的内容。就是读者可以从这本书的名字上可以直观的感受到。
确定书籍的名字时候,建议可以从几个角度去思考,比如说这本书,它到底想讲哪些内容?突出的重点是什么?现在的哪些技术?面向哪些读者?这里举几个比较典型的书籍,《 jav a核心技术圈》、《深入理解分布式事务:原理与实战》、《 MySQL 技术大全:开发、优化与运维实战》,这些书名它们都有一个共同的特点,那就是准确的凸出来书籍大概讲解的内容,突出的重点,涵盖的技术,以及它面向读者群体。
(4)、规划全书内容
第四个,就是规划全书的内容,做好前面的三步之后,接下来们就全书的整体内容了。这里的建议大家将全数的内容,大致列一个提纲,个人写书之前喜欢将全书的内容,提炼成一张脑图,那么这张脑图,就是后面写作的一个内容上的指引,在写作的过程中,如果发现某些内容结构不太好,可以在写作的过程当中,进行不断的优化。
还有一点在全书的内容上。一定要与其它的书籍有差异,一定要写出自己的风格,或者说写出全书的脉络。紧紧的围绕着自己的主题曲。切忌,大家想从哪写就从哪里写。最后都跑题了,这个后面会展开来介绍一下。
(5)、坚持
第五个,就是坚持。写书它本身就是一个非常漫长,也比较枯燥的一个过程。写书最重要的就是坚持,它并不是一朝一夕就能完成。一定要提前做好长期坚持的一个准备,即使最终写完书稿后,也有可能被出版社以及出版社的一些编辑,一次次的打回修改,这个过程它是既枯燥又乏味的。
所以,在写书的过程中一定要注意下自己写的语句是不是通顺,是否有错别字,所使用的一些词语或者说措辞是否准确。书籍当中的图例图表,这些数据是不是正确,在写书的过程当中大家多注意下,能够大大的降低被打回修改的概率和次数。
(6)、联系编辑
介绍完这几点,还有一点没有讲到,也就是在写书之前最好联系出版社编辑,编辑的作用在于一方面会帮助你理清思路,也可以督促你。有些小伙伴,它比较害羞,觉得自己的文章,编辑可能看不上。
其实,对冰河来说,其实第一本书就是编辑在博客上看到内容之后,主动来联系冰河的,所以要对自己的有信心。
三、布局——怎么做到的下笔如有神?
接下来,就分享一下如何通过对全书的布局做到心中有数,从而达到一个下笔如有神的一个境界。
1.章节页数控制
对于书籍每个章节该如何布局个人建议,每个章节的内容的尽量平均在20到40页之间,具体章节视具体的情况而定,但是,不太建议超出范围太大,如果章节内容太多,它就会给人以一种压迫感,章节的内容太少了,可能又讲不清楚某个知识点。如果确定好自己所写的书籍的每个章节内容,如果是在20到40页之间,那该如何尽量确保内容在这个范围内?
2.构思好总体思路
一个方面就是在写书前就要规划好前述的整体结构。和每个章节的内容。这一点在之前介绍过,在写作的过程当中,在写每个章节的时候,梳理好整个思路,定义好章节具体目录。提前构思好整个章节的内容,做好充分的准备之后,再去写,尽量的不要出现写一点内容就去查阅资料,然后回来再写,我个人在写作具体内容的时候,几乎不会查阅任何资料,前期做好了准备,在写具体章节的过程当中段落的一些内容,这样就做到心中有数,这样在下笔去写的时候就有种下笔如有神的感觉。
3.目录实例
最近出版的这本《深入理解高并发编程:核心原理与案例实战》的目录结构,之前也介绍,这本书整体上分为四个大的篇章,分别是基础篇、核心原理篇、实战案例篇和系统架构篇。
(1)、基础知识
第一篇的就是基础知识,基础知识当中包括了两章的内容,内容上面就包括操作系统线程调度和并发编程的概述。
(2)、核心原理
第二篇,就是核心原理篇,核心原理篇的内容,就是从全书的第三章一直到第十四章,在核心原理篇,分别讲解了并发编程的三大核心问题变化,并发编程的一些本质上的问题,并且在介绍三大核心问题和并发编程的一些本质上的问题的时候,也会结合现实当中的场景案例,以方便读者更加清晰的理解并发编程的核心问题。接下来,就会介绍并发编程中非常核心的原则性的核心原理,可见性和有序性的核心原理,对synchronize的核心原理进行了详细的介绍,同时,介绍了aqs的一些原理。介绍lock锁的核心原理,也介绍了乐观锁cas核心原理,最后也介绍了死锁的核心原理,针对于死锁这种现象,在使用的过程当中如何去优化也进行了相应的讲解,接下来又讲解了线程池以及thread local的核心原理,那么这个就是第二篇核心原理的一些内容。
(3)、实战案例篇
接下来,就是传输的第三篇实战案例篇。和第四篇系统架构篇。在第三篇实战案例篇,列举了四个典型的并发编程当中的实战案例。
一个是,手动开发线程池的这样一个实战案例,第二个,就是基于CSS实现自旋锁实战案例,基于读/写锁实现缓存实战案例。最后给了一个基于AQS实现可重入锁实战案例,通过这四个实战案例,可以让读者能够从实战案例的角度更加深刻的理解并发编程。
(4)、系统架构
那么第四篇?挑选了几个在并发领域当中,有非常代表性的两个架构案例,一个是分布式锁架构,一个是秒杀系统架构。
相信学习完这本书,不管是管是从基础上,还是核心原理上,还是实战案例上,以及对于一些高频化系统架构上都有一个清晰的了解,通过对这本书的目录的一些讲解,相信各位小伙伴们对于整体的布局方面也有了一个清晰的认识。