原则篇
1、不写安装教程类博客
比如Mysql安装教程,Redis集群搭建,Golang在Linux上安装配置教程等等,这类教程网上非常多,也有一定的作用。但是,却不是我写博客的范围。
因为,我觉得这种工具类的软件,其官方会有对应的教程,我不用去写这类教程。另外,纯操作类型的教程仅仅指明如何操作而已,既没有说明底层原理,也没有说明这样操作的目的,反正就是跟着操作就对了。参与者没有多少思考和学习的空间。
但是,可以写某个工具的使用总结,比如它有哪些坑,有哪些优势和缺点,它的常用操作方法,比如我的博客《使用dlv调试golang程序》 、《git使用》 、《tcpdump简明实用教程》。
2、用自己的语言来表达
一些核心概念、设计原理等等,一定要用自己的语言表达出来,不要复制别人的,也不用复制官方的原话。因为只有自己的语言表达出来,才算真正理解某个知识和技术。另外,对自己的语言重述知识的过程会加深你对这个知识的思考,这是一个强制再次理解的过程。
只有用自己的语言表达出来,才表示你真正拥有了这个知识。
3、站在他人的肩膀上
我们都没有发明知识,都是知识搬运工而已,要学会站在别人的肩膀上。在写博客的时候,我们可以引用别人博客的研究成果,然后用自己的语言重述这个知识,当然要加上引用链接。我们没有必要对某个知识从头开始研究,除非某种情况特殊需要。比如我们使用牛顿定律的时候,就是直接使用,没必要自己重新发明和证明一遍再使用。记住那句话,绝大多情况下,我们都是知识的搬运工而已。
方法篇
1、平时注重记录
写出一篇博客,并非一蹴而就,而是要有大量的素材。这个素材哪里来呢?平时要多记录。
记录网上搜索的答案。对于某个不懂的问题,然后去网上搜索,当搜索到答案后,就应该记录下来。因为这个问题,你之前不懂,你现在明白了,如果不记录下来,可能很快就忘了,下次还需要搜索。举例:git如何回滚未push的commit、什么是一致性hash算法,这样问题的答案应该记录下来,包括原文章的链接。
记录开发过程中犯的错误。你犯下的错误,之所以会犯下,肯定是某种思维定势,下次很有可能再犯。把它记录下来,并做说明分析,例如为什么犯,哪里理解错了。举例:Golang中map的遍历不是有序的、slice是值传递,初学者很容易犯这样问题的错误,应该记录下来并分析背后的真实原理。
记录新的理解和发现。以前不理解的东西,现在突然理解,或者有了更新的理解,要记录下来,因为灵感来之不易。举例:突然理解了top命令中的 load average 的含义,突然理解了mysql中索引的含义,突然理解了docker是什么东西,要记录这种新的理解,以备后续翻阅。
这些记录就是很好的博客素材。
2、平时注重总结
对于某个使用一段时间的技术,可以总结下使用心得,包括基本原理、常用操作、要避免的错误、它的优势和缺点、它的使用场景等等。那么,这样的总结写出来就是一篇博客。举例: git常用操作总结、docker常用操作总结,这种技术使用的总结非常有用,为下次再次使用提供宝贵的经验。
3、平时注重思考
对于多思考,就是想知道为什么这样做,为什么这样设计,它到底是什么?背后需要好奇心驱动。只有多思考,才会有更多的发现,才会理解的更深。举例:我们都会使用数据库索引,此时还要思考索引到底是什么东西?是什么数据结构?为什么这样设计?Redis也是很多人使用,那么Redis内部是如何组织数据的呢?Redis内部如何处理网络的?高可用方式有哪些?等等许多疑问。只有在多思考的基础上,才会去探究更多的问题,收获更多。那么,这些问题搞明白了,就可以写一篇博客了。