如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客。看起来很唯心,但这就是事实。有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单。就是不停地训练,慢慢地,你自己就能找出规律和技巧。所以,要写出高质量的技术博客,首先要解决为什么要写的问题。

为什么要写

我一直很喜欢的一个学习方法是

Learning by teaching

一个课题,如果你能给不懂的人解释清楚,说明你对这个课题的理解足够深入。把一个课题展开来写,你可能会发现某些方面你还写不清楚,这往往说明你对这个课题的某些方面理解还不够透彻,这样从侧面会给我们一个机会去把这部分补上。所以,写出来实际上是帮助我们发现我们对知识理解的偏差,纠正我们以为自己真的已经掌握了的假象。写的目的不是为了教,而是帮助自己学习。本质上讲,写只是学习的一种手段,本质上是利己的,顺便利他而已。

写带来的另外一个好处是可以让我们有意识地减慢学习速度。减慢学习速度是为了长远意义上的快,即真正地掌握一个课题。我们在看一本书,或研究某个技术的时候,很容易有个错觉:原来是这样,我懂了。但实际上,在遇到一个类似甚至相同的问题,需要用我们学过的一个方案来解决的时候,你就会发现原来这里有一些细节没搞懂,原来只有在某个前提下,这个解决方案才是有效的。这个时候我们不得不倒回去重新研究一遍问题,然而由于上次没有研究透,所以这次研究本质上省不了多少时间。这无形中让学习的效率降低了。所以,有时候慢是为了提高效率。就象不是所有的文章都需要精读一样,不是所有的问题都需要研究透,策略选择的问题是另外一个话题了。

刚学 C 语言的时候,看到书上的 hello world 程序感觉好简单。可真上机在 Turbo C 上写的时候,感觉脑袋一片空白,最典型的就是连 include 怎么写都忘记了。第一次学一门编程语言的人一定对这样的体验印象深刻。

写还有一个好处就是打开了一扇与外界连接的窗户。很多人喜欢程序员这个职业的一个重要原因是人际关系简单。但这带来的一个弊端是社交关系链太少。价值往往都在一些弱连接上碰撞产生的。而写是广泛产生弱连接的一个有效的途径。很多人通过高质量的技术博客,通过 GitHub 上的写出来的一些高质量的开源代码,与更大的世界,更好的平台建立了连接。

怎么写

战略问题想清楚之后,战术问题相对就比较简单了:就是不停地练,不停地写。写得多了,自然就写得好了。

假想读者群

每篇文章都应该有个假想的读者群体。假想一个读者群体有两个好处,一是让你写的时候有的放矢,可以很容易决定哪些详细写,哪些一笔带过。另外一个好处是,增加成就感。因为你内心认可,总会有一群人认为这篇文章有价值,这会带来长期激励。

不少人写的博客,看得云里雾里,象流水帐一样,只有他自己看得懂。为什么会这样?一个简单的原因是没有假想读者群,人家就根本不想写高质量的技术博客,而只是在记技术流水账和技术备忘录而已。假想读者群要求写作者清晰地定义哪些是看懂这篇技术博客所需要的基础知识。虽然这个前置条件不一定写出来,但在写作过程中一定是牢记在心里的。

还有不少人不想写,觉得这个东西写出来没人看。这个想法的错误在于,写的目的不是给人看,而是让自己更有效地学习。换个角度来看,你分享的任何一个知识点,几乎都有读者。因为这个世界上总有人还不懂,需要阅读这样的东西。而总会有另外一群人已经懂了这个东西,所以他们只是不是你的假想读者群而已。还有一些人不敢写,觉得自己文笔太差。我想这就是技术博客的好处,你不需要华丽的词藻依然可以写出高质量的技术博客。

选题

理论上讲,技术博客不需要选题,只要你认为对你的学习有帮助就可以写。但并不是每一个课题都适合写一篇高质量的技术博客。高质量是个外在属性,意味着高价值。什么样的课题价值高呢?有一个很简单的判断标准:你花的时间精力越多,说明价值越高,越值得写一篇博客。这也容易理解,因为别人如果也来学习这个课题,也要花很多时间精力,如果你的博客能帮助假想读者群节省学习时间,就创造了价值。

当你研究了大量的资料才搞懂的一个课题,做一个高质量的参考资料索引就是一篇有价值的博客。但这个方式不利于自己学习。如果把资料消化后,通过自己的语言描述出来。再在适当的地方引用原资料。这就不但有资料索引价值,还帮助自己学习。在哪些地方重点着墨呢?把你学习过程中最难理解的点解释清楚,解释透了,价值自然就出来了。

模仿

另一个技巧是模仿。找到高质量的技术博客,分析它的结构,基础知识铺垫,重点着墨点,然后模仿它写出一篇相同课题的博客,回过头再对比,看哪些方面没模仿到位。怎么判断一个技术博客的质量?一个简单的原则是,你在研究某个课题,搜索后发现某一篇博客把这个课题的所有内容都解释得很清楚。这就是一篇高质量的技术博客,因为它包含足够多的资料,足够合理的解释,让研究这一课题的你看懂了。

结论

有一个结论,说的是在网络上,只有 1% 的用户贡献了内容,10% 的用户比较活跃,会评论和点赞,剩下的都是网络透明人,他们只是默默地在看,即不贡献内容,也不点赞。我无法对这一比例数据进行求证,但从我的简书文章的阅读/评论/点赞数据的统计来看,大致符合这一结论。

这篇文章希望能让你成为网络上贡献内容的 TOP 1%。如果暂时做不到,那就先点个赞吧,成为活跃的 10%。

如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛的更多相关文章

  1. 100个高质量Java开发者博客

    ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表.欢迎你也参与推荐优质的Java开发博客.(声明一下:我们的数学不是体育老师教的!:) ...

  2. 转:100个高质量Java开发者博客

    原文来自于:http://www.importnew.com/7469.html ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表.欢 ...

  3. 【伯乐在线】100个高质量Java开发者博客

    本文由 ImportNew - 夏千林 翻译自 programcreek.欢迎加入翻译小组.转载请见文末要求. ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博 ...

  4. 如何写一篇好的技术博客or技术文档(转链接)

    如何写一篇好的技术文档http://yunli.blog.51cto.com/831344/168352 程序员怎样才能写出一篇好的博客或者技术文章?http://www.zhihu.com/ques ...

  5. 学习:100个高质量Java开发者博客

    谷歌关键字搜索:100个高质量Java开发者博客. Java开发牛人十大必备网站.

  6. 如何写出高质量的JavaScript代码

    优秀的Stoyan Stefanov在他的新书中(<Javascript Patterns>)介绍了很多编写高质量代码的技巧,比如避免使用全局变量,使用单一的var关键字,循环式预存长度等 ...

  7. Mysql写出高质量的sql语句的几点建议

    CleverCode在实际的工作也写过一些低效率的sql语句.这些语句会给数据库带来非常大的压力.最基本的表现就是sql语句执行慢,后来逐渐的去优化和尝试. 总结了一些高质量的sql语句的写法.这里C ...

  8. 如何写出高质量的Python代码--做好优化--改进算法点滴做起

    小伙伴你的程序还是停留在糊墙吗?优化代码可以显示程序员的素质欧! 普及一下基础了欧: 一层for简写:y = [1,2,3,4,5,6],[(i*2) for i in y ]       会输出  ...

  9. 如何组织css,写出高质量的css代码

    !如何组织css一:css的API 属于基础部分,这部分的能力用“对”和“错”来评判. 比如说把文字设置为红色,只能用color:red:这种写法是对的,其他任何写法都是错的. 二:css框架 不能用 ...

随机推荐

  1. Jvm --- 常用工具

    jps:虚拟机进程状况工具 JVM Process Status Tool. 可以列出所有目前正在运行虚拟机的进程. jps -l 详细参数: -q 输出LVMID,省略主类名称 -m 输出虚拟机进程 ...

  2. ABP框架 - 仓储

    文档目录 本节内容: 默认仓储 自定义仓储 自定义仓储接口 自定义仓储实现 基仓储方法 查询 获取单个实体 获取实体列表 关于 IQueryable 自定义返回值 插入 更新 删除 其它 关于异步方法 ...

  3. 牛顿法求平方根 scala

    你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...

  4. Android-Drawable、Bitmap、byte[]、资源文件相互转换

    我们在Android的开发中,经常可以遇到图片的处理,当中,有很多是 Bitmap.Drawable.byte[]和资源文件它们直接相互转换. 今天就此总结一下: 1.资源文件转为Drawable 2 ...

  5. redis成长之路——(六)

    redis配置 为了码农在代码上只关心业务以及代码上的统一性,wenli.drive.redis内部使用配置来完成那些不同的场景,也就是说随便填填配置就能适应不同的场景! 当然配置多了码农也会受不了, ...

  6. Linux进程管理及while循环

    目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...

  7. 最好的5个Android ORM框架

    在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式, ...

  8. Python TODO

    参数类型和用法 所有的双划线方法以及特性 类的构建过程 实例的构建过程 元类MetaClass 装饰器 描述符 迭代器 上下文管理器 生成器 lambda 数据结构,集合 垃圾回收机制 类方法,静态方 ...

  9. JavaScript权威设计--JavaScript函数(简要学习笔记十一)

    1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...

  10. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...