程序员如何积累、总结经验?是否要坚持写技术博客?如何才能写好技术博客?写技术文章是否对出版图书有帮助?相信这些问题,是很多入门的程序员甚至是资深程序员都会考虑的问题。
极客邦近期采访了特赞公司的CTO、《轻量级微服务架构(上册)》作者黄勇,黄勇对技术人员如何写博客,怎样利用时间写好博客给出了自己的心得和体会。
(本文经过极客邦与黄勇授权发表,编辑对内容稍作修改)
极客邦:程序员写技术文章与提升专业技能有没有相关性,原因是?
黄勇:写技术文章实际上是对所学技术的再次理解与整理,通过文字的方式让自己的思路变得更加清晰。写技术文章需要不断积累,开头困难,后面轻松,而且积累到一定的量时,会产生质的飞跃,这一点我深有体会,相信写过技术文章的人也会有同感。
极客邦:是什么促使您坚持把写技术博客文章这件事一直坚持下去,从过程中获得的最大受益是什么?
黄勇:前几年我写了一些技术博文,几乎每周都写,最频繁的时候可以做到“每日一博”,而且只在“开源中国”上发表,在此特别感谢“开源中国”给我提供了这个平台。写技术文章不仅是对自己专业技能的提升,而且通过技术文章的分享与传播,还会带来很多“化学反应”。首先,让自己的文章能够帮助更多的人,产生更大的价值。其次,让自己认识更多的朋友,也能从他们身上学到很多东西,包括知识与技能,也包括做人做事的态度。最后,让自己被更多人关注,获得一生中难得的机会。当初我就是通过写技术博客,被电子工业出版社“博文视点”编辑部的陈晓猛老师关注到,陈老师鼓励我写书,两年内出版了两本《架构探险》系列图书。
极客邦:程序员写好技术文档/博客/文章,需要具备哪些技能和技巧,如何坚持,克服哪些困难?
黄勇:我认为写技术文章,首先要具备的能力是结构性思维。我刚开始写技术博客时,一开始并没去列大纲,写到哪算哪,最后发现篇幅很难控制,而且自己都觉得阅读起来不太舒服。后来我加以改正,在写具体内容之前,第一件事就是定义大纲,一级标题、二级标题,复杂情况可能还有三级标题。定义大纲时是有技巧的,可以借助“思维导图”工具来完成,而且大纲标题需要做到言简意赅。第二件事就开始完善每个大纲中的内容,写文章类似于我们写程序,先要定接口(大纲),再写实现(内容)。在写内容时也有技巧,要让读者感受到,阅读这篇文章就像是作者在和读者对话一样,文章中可以用“我”或“我们”来表示作者,用“您”或“大家”表示读者。而且要多用短句,避免长句,目的是让读者阅读起来更加舒服,如果感觉句子太长时,可以在合适的地方用逗号断句。想让读者更有兴趣往下读,可以在正文开头编一个段子,但这个段子最好与文章有些关联性。文中插图要绘制精细,一定不要随意,正所谓“一图胜千言”,图好,文也好,才是真的好。文章结尾时一定要有总结,让读者读完文章后,能够快速抓到重点,产生一种“深入浅出”的感觉。不管对自己所写文章是否有把握,都要在结尾处表明文章还有很多不足,希望得到大家批评与指正的话。最后一件事情是为文章起一个吸引人的标题,一个好的标题会让文章获得更多的点击量和传播率,好文章往往就是内容好,而且标题也好。技巧还有很多,自己动手写起来以后,就会产生很多经验。如果担心自己无法坚持写下去,不妨给自己设置一个计划,比如多长时间可以写一篇文章。如果不知道自己应该写什么,不妨将自己从日常工作中所学到的技能做一个总结,当然也可以写自己的读书笔记或心得体会等。总之,写作兴趣是可以训练出来的。
极客邦:如何从程序员坚持写博客文章到了具备写书的能力,比如用定时定量的方法督促自己完成之类?有什么具体实践方法推荐?
黄勇:记得出版社老师鼓励我写书时,我也担心自己写不出来,毕竟一本书不像一篇博客,书的篇幅较大,前后还有一定的前后关联性,需要较强的内容组织能力,更需要坚强的毅力。我在写第一本书时,一口气写了50多页,然后就写不下去了,因为觉得框架组织有问题。随后卷土重来,第二次写到100多页,仍然觉得不合理,再次放弃。直到第三次才一气呵成,写完了全书。花费了我将近半年的时间,才能写完一本书,可见周期较长,让人心力憔悴。我在写第二本书时,总结了曾经犯下的错误,吸取了教训。一开始我就花了大量的时间做全书的大纲,通过三级标题来展现。第一章作为概述性内容,统领全书中心思想,随后的每一章,分别对第一章所涉及的内容,进行深度描述,每一章都是一个独立的板块,每一节都针对一个具体的问题。每章都按照统一的逻辑来组织,首先讲明白“是什么”,再讲“为什么”,最后讲“怎么做”。每章最后一节再来一个小结,汇总一下本章的要点,以及为下一章做一个铺垫。按照以上方法,不仅让自己的写作思路更加清晰,而且也把写书当成一个项目来管理,这样自己也能更加有毅力地将全书写完。
作者赠言:
不要吝啬自己在知识上的积累,更不要将知识据为己有,知识用出来才是珍宝,闷在肚子里那是废物。