2年前,我其实是很开心的,人在外企,加班不多,晚上下班后就躺在沙发上电视或刷连续剧。周末除了出去讲课挣外快,一般也时玩游戏为主,经常会一个下午加晚上,先玩游戏再下棋再看片再听歌。结果发现我的能力脱节了,大概比互联网公司里的同龄人落后了3年技术。具体表现是,我当时出去面试,面一个失败一个,而且有些问题里涉及到的框架技术我根本没听说过。而且,我的工资水平也要比同龄人要低。

于是,为了不继续颓废,我最近两年写了两本面试书:Java Web轻量级开发面试教程和Java核心技术及面试指南,而且在扩展其中的一些内容的基础上,在博客园里写了若干篇博文。当时仅仅是想用空闲时间写书挣个外快,但没想到通过写书,不仅提升了我的技能,更提升了我的管理时间的本事,更重要的是,让我也拥有了更多上进的动力。所以现在,我其实也很开心,或者说是充实:换到了一家技术含量比较高的公司,虽然感觉自己能力和大牛有差别,但至少有机会弥补上。虽然工资水平依然落后平均,但至少也能通过提升能力来赶上。

我写本文的目的绝不是自我夸耀自吹自擂,因为一方面,我离开大牛水平还有很大距离,我无法骄傲,另一方面,我更得保持谦逊的心态从而让我更多地提升技能。本文不仅将激励大家的上进动力(鸡汤文),更多地会和大家一起分享写博文和写书的技巧。好了,开场白结束,正文开始。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1 杜绝借口,合理利用碎片时间

如果在标题里所说,要放松总是有理由的,比如今天加班晚了,今天累了,或者今天没心情,或者其它。

对此,我的体会是,只要我们还存有上进心,那么总有时间。比如我现在,平时一般是9点下班到家,周末有时候得出去,而且公司里的活也比较多,但目前我还能保证每周一篇博文,大概20天左右一个新书的章节,外带一些零碎的活,这在2年前是不可想象的。

这里我的感受是,在不同时间段,人的接受能力和疲惫程度是不同的,可以在不同的时间段合理安排不同的事。具体的一些做法如下。

1  上班如果稍有空闲,可以看些将要写的章节的技术点,以便回家上机调试,或者看些学习资料。

2  下班后,回家的地铁或公交上,就可以想下博文该写什么,怎么构思,怎么措辞,或者新的章节里,该放哪些内容。

3  回家后,如果还有精力调代码,那就准备稿件的代码,如果累了,就针对已经调通的代码写稿件,或者写博文。

4  干好活后,可以适当放松,但别睡太晚,准备第二天早起。

5 第二天利用上班前脑子好的时间,可以调代码,或者准备新书章节里比较关键的措辞(比如每个章节的综述性文字或每章小结)。

这样的话,碎片时间都能用上,不过实施起来,一定得给自己定若干个大的目标,然后根据每天可以利用的时间,把目标拆分到每周每天。

2 没目标,再高效利用时间也是白忙

就好比干家务无法达到锻炼的效果,平时的工作最多让我们能在某个行业和某些技术领域成为熟练工,如果要提升,只能靠平时学习。

我的体会是,如果漫无目标,那么有可能本周学python,下周学大数据,再下周学AI,这样每个方面都有涉及,但都不深入,最终学习效果一定很差,个人提升速度一定很慢,要提升,要学习,一定得给自己定个目标。

比如给自己2018年定的目标之一是,利用10个月的时间,从架构角度深入学习Spring Cloud微服务,并在这方面出版一本书。对此,我再拆分若干小目标,比如:

1 用1周联系出版社,准备选题报告和大纲     2 把书拆分若干个章节,比如Eureka,Ribbon,每个章节里,用1周准备代码,1周写文稿,平均1个月2章,全书用7个月完稿    3 用1个月录制视频。 等等。

有了目标,可能最终会进度慢,但至少不会让自己迷失。其实Java零基础学完能到企业干活的初级开发的基本技能,学习时间最多也就一个月,按平均每天1.5个小时学习来算,最多也就50个小时。对于初级开发而言,学习能升级到高级开发的技能,一般来说是2个月,学完后就能出去面试高级开发的岗位了。如果单学一个技术,比如Python,或大数据,或Spring Cloud,入门级学习一般也就1个月,面试级学习(运行通各重要组件的案例,知道一些开发细节)的用时一般也在2个月。

换句话说,用一年的时间学习,能帮我们脱胎换骨(我的真实体会),学好以后的,按目前市场的行情,至少能让我们的月薪涨3k。

3 能留在博客园首页的博文写作模式(包括构思方式,写作方法和写作题材)

上述都是一些技巧,这里就开始给些干货。

写博文能记录下自己升级过程中的心得,也能记录下自己在提升技能时解决的问题,更重要的是,如果能把写博文当成一种习惯,那么还能促使自己不断进步,比如不断学习新的技能,乃至不断提升自己挣钱的效率。

如果自己写的博文能不被移出首页,或者进入各种排行榜,那么自己写作的动力就会更足。其实大牛们的文章不需要什么技巧,所谓一力降十会。这里列些一般的人能做到的,而且能吸引多点击量方法。

1 写作的内容和自己学习的节奏保持同步

比如我在spring cloud,那么每当我学好一个组件,比如负载均衡的Ribbon组件,我就可以开始构思博文里,一般一个组件可以写2到3个。

2 怎么搭建文章的脉络?

先个每篇文章定个主题,比如我要写Eureka和Ribbon整合,实现负载均衡,每个主题其实就是我阶段性学习的目标。然后列每部分的内容,(这对于书而言,就是大纲),比如第一部分写概念,第二部分写Ribbon实现负载均衡的基本组件以及用法,第三部分写和Eureka整合的代码,第四部分写你在调试代码时遇到的坑,如果可以,再加上你的心得,比如对负载均衡的理解等。

博客园首页的标准是,有一定的篇幅,原创而且有质量,上述一篇文章的话,由于分了部分,所以篇幅一定够,原创不用说了,而且有你自己调试通的代码和心得,质量也能有保证,至少能留在首页了。 之前的博文里,我列过用总分总的方式写每个部分的内容和解释代码,这里就不再重复了。

3 叙述概念一笔带过

给出概念的篇幅以能讲明白为止,不能大段摘录,最好是你先看明白,再用你理解的话说出来。如果有现成的流程图或架构图,你可以在贴出来,但一定要给出说明,如果有时间,你也可以用UML工具或Excel的方式再画一遍。

4 代码解释部分是关键

一篇好的博文,乃至合格的书的稿件,一定是基于代码的,如果一篇博文能有一个能运行通的案例,然后针对这个案例解释,那么博文的质量一定不会差。比如我讲Ribbon和Eureka整合,那么我就给出一段代码再解释,那么对其它想学的人一定就有帮助。

那么怎么准备代码呢?在初学阶段,自己通过看API等说明自己搭建,估计也不现实,所以一般可以看3个左右别人已经实现好的项目,先运行通,自己先理解,然后一定得改写,小到改写方法名变量名,大到改写代码的结构,比如重构方法,随着学习的深入,可以再自己加些功能。

很多朋友想写博客,但在写的时候无从下手,其实博文乃至图书不是凭空码字得来的,一定得有代码案例,然后在此基础上外带些概念流程图,再针对代码案例进行说明,这样博文的篇幅想少都不行。

初学的朋友在写博文时,一般会采用如下的思路,列出来给大家参考。

1 比如写设计模式系列,每个模式写个案例,外带自己的解释。

2 找个工作中用到的,或者自己为了跳槽一定得学的技术,比如Python,或redis分布式组件,找本书,或者找个系列视频,刚开始阶段不建议自己到网上搜内容,因为书里和视频里已经包含了学习步骤(该学什么不该学什么),如果自己去探索的话,一定会走弯路,比如学了用不到的技术。

在这个基础上,针对每个内容,比如Redis实现缓存等,调试通人家的代码,再按我之前提到的方法自己理解下,然后针对这个内容写博文。

3 解释底层代码。因为在面试时,如果能解释通一些底层代码,这绝对是个加分项。底层代码,小到ArrayList等集合的实现类, 再大一点的可以是ConcurrentHashMap等复杂对象的实现方法,再大一点可以是Spring IOC, AOP,MVC的底层实现。

这类文章,代码不用自己准备,但最好Debug跟踪进去看下关键性流程,同时针对流程上的重要类和重要方法做解释,如果讲透彻了,一定是个深度好文。

4 或者写一些平时针对技术和职场方式的感悟,比如我经常写如何面试,也可以写你对你当前用的敏捷开发模式有什么想法等。这类文章只要内容能引起大家共鸣,比如写的事是程序员平时一定会遇到的,那么也一定也能收获不少点击。

4 写书的门槛比想象中要低很多,要出版图书,更多的靠的是毅力

写博文能给大家带来的收益是间接性的,未必能直接来钱,但写书的话,就有钱了,当然要求就高了。

我这里无意为出版社或者图书出版公司站台,虽然写书的挣钱效率不高,刚开始平摊到一个月也就2千,但对于初学者(也包括我)而言,可能未必有其它挣钱的途径。

记得我写第一本书的时候,是毕业一年后,很多人在大学阶段就出书的了,所以写书最大的阻力不是能力,而是毅力。

出版书需要多少技术积累呢?大家可以想象下,比如要写本Oracle SQL优化,或者SSM框架的书,或者Python大数据,其中会全面性地用到该技术里的组件,但哪怕是大牛,绝对不可能是都懂了以后再写,一定是边整理边写,往往书也出了,能力也上一个大台阶了。

写完一本图书需要多久?一般来说,一个章节估计20到30个小时,包括调通代码写稿件,一般书就以12个章节来算,估计400个小时左右,如果按每周最低10个小时来算,一般10个月一本,我知道的人里,能在保证质量的同时,做到6到8个月出一本。

但一旦出了书就不一样了,至少在这行业就可以说比较少熟悉了,面试时底气就更足了。而且,你出了书以后,就可以去做些挣钱效率更高的活了,比如跳槽进个大公司,如果不跳槽,也能凭这个去外面讲课了。

钱还是小事,更重要的时,在写书的时候,还能到各个技术社区里接触到各位大牛,和他们交流,得到他们的指导,绝对能少走弯路。

5 版权说明和欢迎交流

本文欢迎转载,转载前请和本人说下,请全文转载并用链接的方式指明原出处。

本人最近一直在想如何做畅销书,但出于工作和视野的局限性,想到的方法也是有限的,欢迎各位大牛告诉我一些写畅销书的选题方向和技巧。在此谢过。

转载于:https://www.cnblogs.com/JavaArchitect/p/9749803.html

要上进总会有时间的,要放松也总会有理由的——记录2年出版2本书带给我的改变,同时分享写书和写博客的技巧...相关推荐

  1. 【附中秋中奖名单】2年出版2本书带给我的改变,分享程序员写书和写博客的技巧...

    来源 | https://www.cnblogs.com/JavaArchitect/p/9749803.html 2年前,我其实是很开心的,人在外企,加班不多,晚上下班后就躺在沙发上电视或刷连续剧. ...

  2. 写博客小技巧推荐(有简易版动图教程)

    文章目录 颜色 表情 背景 插入图片 思维导图 数学公式 动图 。:.゚ヽ(。◕‿◕。)ノ゚.:。+゚ 事先说明:这篇博客不太适合刚接触markdown的新手. 基础的用法不会提到,本文篇幅也不会长, ...

  3. 【CSDN博客管理】CSDN写博客去水印技巧

    CSDN有强大的一键图床功能 图片上传至图床 由一段网址形式存在 但是会给每张图片默认加上水印 很不方便 事实上 水印也是由一段/watermark附加网址指令附加上去的 只要去除了附加指令 就可以轻 ...

  4. CSDN写博客基本技巧

    第一:文字和图片 直接复制粘贴既可. 第二:代码(eg:.cpp) 把工程中的代码直接复制到<>中选择编程语言,点击确认就好.注意:代码部分会呈现灰色,文字和图片部分是白色,注意区别.

  5. 【暗时间】摘录 - 为什么你应该从现在开始就写博客

    用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处.(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样)reussir-son-blo ...

  6. 长期置顶:作为一个技术人,你为什么有时间写博客?准备应对未来的中年危机

    引言 从开始有规律的写博客以来,我为什么有那么多时间写博客:博主,是每天都写博客写到很晚吗:我又是如何做时间管理的?保证输出的频率. 平时多积累 博主工作的公司弹性工作制,平时工作不是太重工作效率高点 ...

  7. 你为什么有那么多时间写博客?

    从2016年开始有规律的写博客以来,陆陆续续收到一些读者类似的问题:比如作为技术负责人,你为什么有那么多时间写博客:博主,你是每天都写博客写到很晚吗:可以聊聊你是如何做时间管理的吗?感觉输出的频率很高 ...

  8. 【新星计划】技术博客写作技巧经验分享

    序言 写技术博客需要一定的专业知识和写作技巧,它是一个很好的方式来分享你的经验和知识,同时也是一个展示你的专业能力和建立自己品牌的机会. 以下是一些准备和建议,希望可以帮助你写出有用和有吸引力的技术博 ...

  9. 博客写作技巧_35个管理和处理多作者博客的技巧

    邀请其他博客作者和作家成为合著者是扩展自己博客的一种好方法. 假设正在招聘作家,那么您可能面临的下一个大问题就是管理 . 管理一个博客的多个作者绝非易事. 保持共同作者的控制权,使他们按计划编写高质量 ...

最新文章

  1. matlab内存管理
  2. 全面理解Javascript闭包和闭包的几种写法及用途【转】
  3. Node.js 系列:构建原生 Node.js 应用
  4. php滑动换视频,php工具类之【视频变换类】
  5. “禁止大数据杀熟”拟入法!个性化推荐功能也应提供拒绝选项
  6. JVM:gc什么时候开始?System.gc()能保证gc一定发生吗?
  7. 微信获取token服务器处理,微信硬件平台(九) 自己的服务器从微信获取token并保存txt...
  8. Java保留小数点一位的方法
  9. 周末计划-20171028
  10. 简单记录一次ORA-00600 kcratr_nab_less_than_odr
  11. 程序员面试难题,在你结婚的时候领导要求你30分钟归队,你会如何
  12. 【Redis高手修炼之路】客户端工具——客户端工具以及常用命令
  13. MagicDraw建模显示中文问题
  14. 使用FreeCAD进行零件建模
  15. Otsu算法原理与python实现
  16. php错误处理视频教程,PHP错误与异常调试视频教程资源分享
  17. 北航2012年软件工程硕士自主招生简章
  18. 1分钟快速实现高效的扫描二维码,急速识别手机相册二维码
  19. NOI2016铜色记
  20. 逐字稿整理-中/TED演讲:如何训练思维,突破局限?(大花猫冯夏)

热门文章

  1. Linux后台运行命令 nohup command myout.file 21
  2. hdu1874 畅通project续 最短路 floyd或dijkstra或spfa
  3. ESXI5.5添加本地磁盘出错的解决
  4. Codeforces Round #309 (Div. 2) C
  5. 全面剖析linux【bind】服务お理论篇
  6. 浅析应届女生找工作的一些忧虑和困惑
  7. 如何使用 CODING 实践 DevOps 全流程
  8. linux中各种文件的颜色表示是什么意思?
  9. 浅谈Activiti Modeler 的扩展
  10. 键桥通讯4000万投资创投布局大数据