JavaArchitect

    我在刚开始写技术博客时,感觉是无从下手,相信很多朋友都有相同的感受。经过不断的总结和实践,更在一些朋友的帮助和指导下,目前我至少有能力写技术文章。

    我发现,写技术文章不仅能帮助我提高学习的效率,少走学技术的弯路,更能让我清晰地描述出针对某个技术的体会。利用这些在博客园里学到的技能,我还出版了两本书。Java Web轻量级开发面试教程   和  Java核心技术及面试指南,在工作中我也受益匪浅。

    为了感谢大家对我的一贯支持,也为了让更多的朋友快速掌握“通过写博客高效提升能力”的技巧,在这篇博文里,我将分享下关于构思选题,搭建文章结构,组织代码和文字等的技巧。更重要的是,我还将分享通过学技术写博客提升自己能力的感受。

  

1 先给自己指定一个学习的目标,一定是先学技术再写文章  

    目标非常好定,大家思考下,最近学好什么技术后,你就可以通过跳槽等方式提升收入。比如针对3年java开发,掌握分布式框架或大数据分析或机器学习,一定能提升自己的价值。如果大家感觉找不到学习方向,就去看招聘市场上,你从事的方向,哪些技术比较值钱。

    我就拿分布式框架举例,其中包含缓存,消息代理中间件,反向代理,数据库架构等方向,就据此给自己制定一个计划,以半年为大目标,每一个月制定一个小目标,比如半年后,就可以出去面试,每一个月,深入了解其中一个组件(或至少面试时不会被问倒)。

    制定好目标后,大家就可以各显神通地学习了,比如看博客,买书,看视频,甚至参加培训班都行,但关键一点是,得投入大量时间。这里我的体会是,这个目标最好和钱有关,比如学好后能跳槽,或者学好后能出去培训讲课,这样学习动力就非常足了。

2  当你感觉大致了解某个技术时,就可以写一篇初级的文章

    一般学习分如下几个阶段:1 知道这个技术是干嘛的 2 通过运行代码了解这个技术的基本要素 3 通过一个小型综合性的项目了解这个技术的开发步骤 4 通过实践了解实际项目中用这个技术会有哪些坑。我一般在达到第3个阶段后,就出去通过面试去检验学习成果了,毕竟如果在公司里没机会,很少能达到第4个阶段。

    这时,如果你学到第一个阶段,就可以开始通过写初级的文章来归纳总结了。我就拿Spring Cloud里的负载均衡组件Ribbon来举例,在初级阶段,大家可以按如下的思路来写。

    第一,什么是负载均衡,第二,介绍Ribbon,比如可以写有哪些重要的类,一般来公司项目里Ribbon会配置在哪个部分里,第三,通过框架图,说明Ribbon实现负载均衡的效果。第四,如果可以,写一下Ribbon和其它组件(比如Eureka)整合使用的方式。

    上述内容由于不涉及到代码,所以初学者在经过一定时间的学习后也能写,如果再按如下的要求写的话,这篇文章绝对会有质量,比如可以留在博客园首页不被移除了。

    要求1:别大段摘录网络上现成的资料,比如大段摘录关于Ribbon的介绍,如果真的要介绍,先自己看懂,然后用你自己的话写出来。一篇技术文章最低的标准是,随便拿一句话到网上搜,应该是搜不到雷同的(别人抄你的除外),这点要求可能对刚开始写文章的人有些难度,但如果你要提升,这一定要做到。刚开始的话,大家甚至可能无法组织文字措辞,写出来的文章可能质量也不高,但只要写几篇,文字能力的提升就会非常快。

    要求2:必要时,可以放些框架图或者接口图,同样道理,别直接摘录别人的图,如果可以,你用各种制图工具画出来,实在不行就用Excel里基本形状的图画出来。如果再不行,你可以用一些现成的图,但在图的下方,得加上你对这个图的说明。

    要求3:得讲清楚这个技术的最基本的要素。比如之前写语文议论文,先亮出一个观点,再通过若干论据来证明。在写技术文章时,先不要求有多么深入,但在这篇初级的技术文章里,得讲清楚如果要项目里用某个技术(比如Ribbon),我们至少得用哪些组件(比如负载均衡器和策略组件)。

    要求4,这也是最重要的一点,一篇文章里,多少得有你自己对该技术应用的体会,否则,你文章里的内容完全是你搬来的,你就没进步了。比如Ribbon,大家可以写,Ribbon可以给大家带来哪些便利,你安装配置Ribbon时解决了哪些问题。当然,你首先得学习别人的文章,不过,在你参考多篇别人的文章后,多少会有些自己的体会,这时一定要写下来。你的体会其实就是这篇文章的精髓,积少成多,你多写几篇文章后,体会自然就多了。 

3  当你运行通代码时,就可以分享步骤了

    学技术一定不能停留在理论阶段。如果仅知道理论,或看了别人的代码但自己不去实践,别的不说,在面试时,这方面一定过不了。 

    话说回来,目前网上信息太多太多,要找某个技术的可以运行的代码也不是难事。我还是拿Ribbon举例,说下我如何运行代码,再如何据此写技术文章。

    第一,多找些书或视频,我知道RIbbon里有哪些组件,以及实际项目里,会和Eureka等组件整合。

    第二,我就找些各组件(比如负载均衡器或iRuler等)的代码,运行通,并从效果里体会这些组件里常用方法的参数的含义。

    第三,找个和Eureka的整合案例吧,并运行通过。

    至此,我就可以写关于运行步骤的代码了,具体的文章大家可以按我相关的博客内容,比如,Spring Clould负载均衡重要组件:Ribbon中重要类的用法

    在这里,我是通过贴代码加针对代码说明的方式,讲述针对Ribbon重要类和接口的说明,自认为讲得比较清楚。而且,写这类带代码的文章绝对要比写刚才提到的初级文章收获大。

4  但别仅仅停留于此,多想下,在实际项目里,该怎么用?该如何避免坑,这类文章最值钱

    我经常在博客园里看到有大牛把解决实际问题的经历写下来,或者写如何在项目里避免一些坑。这类文章是经验的凝结,其实是最值钱的,我也尝试写过关于线程和OOM等的文章。

    这类文章往往要是技术大牛才能写,而且写这类文章很费经历,往往一个月写一篇此类文章就很好了。对于像我这类在学习阶段的人,或许写不出高质量的技术文章,但不代表没法写点击量高的文章,比如,如下几类文章同样可以获得高点击量,而且不难写。

    1 鸡汤文,比如某段时间工作压力大但有收获,可以写篇文章分享下自己的心境,同时给大家鼓劲。

    2 经历文,比如面试经历工作经历等,我经常针对我做技术面试官的经历写文章,这类文章博客园里不少,题材也很多。

    3 热点文,比如目前介绍区块链或机器学习。 

5  总是先学习先调通代码再有技术文章

    台上一分钟台下一年功,哪怕是大牛,不通过学习积累,不调试代码,不去看底层的代码,也没法写技术文章,或者写出来的技术文章会很肤浅。所以如果大家感觉没东西可以分享,那么根源是最近学习少了体会少了,这才没分享的资源,这时候首先要做的是学习。

    比如最近有人要我写大数据方面的文章,刚开始我一定不知道该写什么,这时候就会按之前讲的思路,通过看视频或别人的技术文章,调通若干个python大数据的案例,然后再从网上找些实际的企业级的大数据项目,也运行通,随后写技术文章。当大家运行通企业级的大数据项目后,可以写题材就很多了,比如如何搭建大数据环境,python开发大数据有哪些重要组件,它们该怎么用,或者可以把自己在调试时遇到的坑写下来,照这思路,一定能写出高质量的文章。 

6  技术文章的写作思路:总分总结构

    之前讲的是选题材以及写作方面的一些技巧,这里就详细讲些技术文章的具体操作思路:总分总结构。

    在语文里,还有其它结构,但就用这个最基本的结构,其实就可以写好文章了。

    在技术层面怎么用总分总结构?(以Hystrix组件为例)

    第一,在文章开始,写一下该组件是什么,可以干嘛,最好配上图。这是第一个“总”。同时,列出该技术至少可以包含哪些要素。

    第二,在文章的后面部分,逐一讲述Hystrix的重要组件,比如回退保护方法,缓存,同步异步返回等技术,这所谓“分”,而且,在介绍各部分时,最好结合代码说明。

    第三,在文章结尾,总结下上述组件如何有效地整合到一起工作的。这是第二个“总”。

    在代码层面也可以用总分总结构来说明。

    第一,给出代码后,先说下这段代码是干嘛的。(第一个总)

    第二,逐一讲述代码里各重要代码段的含义,或者关键方法的参数和返回值。(分)

    第三,总结,比如给出运行结果,或者讲下各重要代码段是如何综合起来工作的。(第二个“总“) 

    上述方式很容易操作,而且用这种结构写出的文章,给人的感觉会非常清晰明了。      

7  刚开始写时,不求面面俱到,但求讲清楚一个方面

    我自己出版过计算机书,我见过不少作者,在写书和博客时,往往想一口气吃成个胖子,往往想一下子把这个技术的所有要点都写清楚,这样反而会给别人一种“思维混乱不知所云”的感觉。

    比如Hystrix技术有10个要点,一般项目会用到其中四个(用到基本的熔断保护),高并发项目里会用到其中的七个(外带同步异步缓存),另外三个是不怎么用到的。

    这时,在写Hystrix技术文时,宁可分多篇写,比如第一篇写实际项目里的常见用法,第二篇写hystrix在高并发项目里的用法,第三篇写对hystrix底层代码的理解,第四篇写和ribbon或eureka等组件的整合,这样如果再用之前讲到的总分总协作方式,思路就很明确,且每篇文章都有自己的侧重点。

    而且写的时候,一定得详略分明,比如介绍概念性文字(Hytrix干嘛的)时,以讲清楚为界,一般两三句话即可,别太罗穗,但在结合讲关键技术要点时,一定得讲清楚,如果刚开始写不容易掌握分寸,这部分宁可写多点,把关键方法的参数含义,返回值以及代码结构都讲清楚,多写几篇技术文章后,文字自然就精炼了,而且也容易掌握分寸了。  

8   总结(常写技术文章后,就能出书了)

    总结下这篇文章的观点。

    1 总是先学技术再写文章,而且通过写文章,能很好地促进自己学习,并能让自己在学习方向上少走弯路。

    2 写文章对面试非常有帮助,比如某人在写技术博客,哪怕博客内容一般,面试官就会认为这个人平时会不断学习,而且上进心非常强,况且高质量的博文(或者书)更能在面试时证明一个人的能力。

    3 虽然说在大多数情况下写技术文章没法给自己带来直接性的收益,但与其把时间用来手机和游戏上,那还不如用来学习和写技术文章上,这样好歹我还能不断进步。

    写技术文章,能提升自己的能力,也能扩大自己的影响,这些虽然无法有效地用客观标准来衡量,但能力提升给自己带来的好处是实实在在的。不仅如此,当大家写技术文章到到一定量以后,写作水平会提升,这时就能出书了。

    写书的流程以及写书的技巧,本文在其它博文里写过,这里就不再重复了。但写书绝对是个名利双收的事情,收入是小事,而且能帮助自己找到好工作和好的外快兼职。如果大家对此有兴趣,我会再分享些关于写书出版方面的经验。

    转载本文前,请先和本人联系。转载时请全文转载,并说明文章的出处。

相关文章: