如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛
如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客。看起来很唯心,但这就是事实。有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单。就是不停地训练,慢慢地,你自己就能找出规律和技巧。所以,要写出高质量的技术博客,首先要解决为什么要写的问题。
为什么要写
我一直很喜欢的一个学习方法是
Learning by teaching
一个课题,如果你能给不懂的人解释清楚,说明你对这个课题的理解足够深入。把一个课题展开来写,你可能会发现某些方面你还写不清楚,这往往说明你对这个课题的某些方面理解还不够透彻,这样从侧面会给我们一个机会去把这部分补上。所以,写出来实际上是帮助我们发现我们对知识理解的偏差,纠正我们以为自己真的已经掌握了的假象。写的目的不是为了教,而是帮助自己学习。本质上讲,写只是学习的一种手段,本质上是利己的,顺便利他而已。
写带来的另外一个好处是可以让我们有意识地减慢学习速度。减慢学习速度是为了长远意义上的快,即真正地掌握一个课题。我们在看一本书,或研究某个技术的时候,很容易有个错觉:原来是这样,我懂了。但实际上,在遇到一个类似甚至相同的问题,需要用我们学过的一个方案来解决的时候,你就会发现原来这里有一些细节没搞懂,原来只有在某个前提下,这个解决方案才是有效的。这个时候我们不得不倒回去重新研究一遍问题,然而由于上次没有研究透,所以这次研究本质上省不了多少时间。这无形中让学习的效率降低了。所以,有时候慢是为了提高效率。就象不是所有的文章都需要精读一样,不是所有的问题都需要研究透,策略选择的问题是另外一个话题了。
刚学 C 语言的时候,看到书上的 hello world 程序感觉好简单。可真上机在 Turbo C 上写的时候,感觉脑袋一片空白,最典型的就是连 include 怎么写都忘记了。第一次学一门编程语言的人一定对这样的体验印象深刻。
写还有一个好处就是打开了一扇与外界连接的窗户。很多人喜欢程序员这个职业的一个重要原因是人际关系简单。但这带来的一个弊端是社交关系链太少。价值往往都在一些弱连接上碰撞产生的。而写是广泛产生弱连接的一个有效的途径。很多人通过高质量的技术博客,通过 GitHub 上的写出来的一些高质量的开源代码,与更大的世界,更好的平台建立了连接。
怎么写
战略问题想清楚之后,战术问题相对就比较简单了:就是不停地练,不停地写。写得多了,自然就写得好了。
假想读者群
每篇文章都应该有个假想的读者群体。假想一个读者群体有两个好处,一是让你写的时候有的放矢,可以很容易决定哪些详细写,哪些一笔带过。另外一个好处是,增加成就感。因为你内心认可,总会有一群人认为这篇文章有价值,这会带来长期激励。
不少人写的博客,看得云里雾里,象流水帐一样,只有他自己看得懂。为什么会这样?一个简单的原因是没有假想读者群,人家就根本不想写高质量的技术博客,而只是在记技术流水账和技术备忘录而已。假想读者群要求写作者清晰地定义哪些是看懂这篇技术博客所需要的基础知识。虽然这个前置条件不一定写出来,但在写作过程中一定是牢记在心里的。
还有不少人不想写,觉得这个东西写出来没人看。这个想法的错误在于,写的目的不是给人看,而是让自己更有效地学习。换个角度来看,你分享的任何一个知识点,几乎都有读者。因为这个世界上总有人还不懂,需要阅读这样的东西。而总会有另外一群人已经懂了这个东西,所以他们只是不是你的假想读者群而已。还有一些人不敢写,觉得自己文笔太差。我想这就是技术博客的好处,你不需要华丽的词藻依然可以写出高质量的技术博客。
选题
理论上讲,技术博客不需要选题,只要你认为对你的学习有帮助就可以写。但并不是每一个课题都适合写一篇高质量的技术博客。高质量是个外在属性,意味着高价值。什么样的课题价值高呢?有一个很简单的判断标准:你花的时间精力越多,说明价值越高,越值得写一篇博客。这也容易理解,因为别人如果也来学习这个课题,也要花很多时间精力,如果你的博客能帮助假想读者群节省学习时间,就创造了价值。
当你研究了大量的资料才搞懂的一个课题,做一个高质量的参考资料索引就是一篇有价值的博客。但这个方式不利于自己学习。如果把资料消化后,通过自己的语言描述出来。再在适当的地方引用原资料。这就不但有资料索引价值,还帮助自己学习。在哪些地方重点着墨呢?把你学习过程中最难理解的点解释清楚,解释透了,价值自然就出来了。
模仿
另一个技巧是模仿。找到高质量的技术博客,分析它的结构,基础知识铺垫,重点着墨点,然后模仿它写出一篇相同课题的博客,回过头再对比,看哪些方面没模仿到位。怎么判断一个技术博客的质量?一个简单的原则是,你在研究某个课题,搜索后发现某一篇博客把这个课题的所有内容都解释得很清楚。这就是一篇高质量的技术博客,因为它包含足够多的资料,足够合理的解释,让研究这一课题的你看懂了。
结论
有一个结论,说的是在网络上,只有 1% 的用户贡献了内容,10% 的用户比较活跃,会评论和点赞,剩下的都是网络透明人,他们只是默默地在看,即不贡献内容,也不点赞。我无法对这一比例数据进行求证,但从我的简书文章的阅读/评论/点赞数据的统计来看,大致符合这一结论。
这篇文章希望能让你成为网络上贡献内容的 TOP 1%。如果暂时做不到,那就先点个赞吧,成为活跃的 10%。
如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛的更多相关文章
- 100个高质量Java开发者博客
ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表.欢迎你也参与推荐优质的Java开发博客.(声明一下:我们的数学不是体育老师教的!:) ...
- 转:100个高质量Java开发者博客
原文来自于:http://www.importnew.com/7469.html ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表.欢 ...
- 【伯乐在线】100个高质量Java开发者博客
本文由 ImportNew - 夏千林 翻译自 programcreek.欢迎加入翻译小组.转载请见文末要求. ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博 ...
- 如何写一篇好的技术博客or技术文档(转链接)
如何写一篇好的技术文档http://yunli.blog.51cto.com/831344/168352 程序员怎样才能写出一篇好的博客或者技术文章?http://www.zhihu.com/ques ...
- 学习:100个高质量Java开发者博客
谷歌关键字搜索:100个高质量Java开发者博客. Java开发牛人十大必备网站.
- 如何写出高质量的JavaScript代码
优秀的Stoyan Stefanov在他的新书中(<Javascript Patterns>)介绍了很多编写高质量代码的技巧,比如避免使用全局变量,使用单一的var关键字,循环式预存长度等 ...
- Mysql写出高质量的sql语句的几点建议
CleverCode在实际的工作也写过一些低效率的sql语句.这些语句会给数据库带来非常大的压力.最基本的表现就是sql语句执行慢,后来逐渐的去优化和尝试. 总结了一些高质量的sql语句的写法.这里C ...
- 如何写出高质量的Python代码--做好优化--改进算法点滴做起
小伙伴你的程序还是停留在糊墙吗?优化代码可以显示程序员的素质欧! 普及一下基础了欧: 一层for简写:y = [1,2,3,4,5,6],[(i*2) for i in y ] 会输出 ...
- 如何组织css,写出高质量的css代码
!如何组织css一:css的API 属于基础部分,这部分的能力用“对”和“错”来评判. 比如说把文字设置为红色,只能用color:red:这种写法是对的,其他任何写法都是错的. 二:css框架 不能用 ...
随机推荐
- AngularJs2与AMD加载器(dojo requirejs)集成
现在是西太平洋时间凌晨,这个问题我鼓捣了一天,都没时间学英语了,英语太差,相信第二天我也看不懂了,直接看结果就行. 核心原理就是require在AngularJs2编译过程中是关键字,而在浏览器里面运 ...
- 【UWP开源】图片编辑器,带贴图、滤镜、涂鸦等功能
目录 说明 功能 实现原理 使用方法 效果截图 说明 最近空余时间研究了一下Win2D,它能为我们在UWP中提供一种类似GDI那样的绘图方法.就像传统Winform.MFC中那样重写OnPaint相关 ...
- ASP.NET MVC Model元数据(一)
ASP.NET MVC Model元数据(一) 前言 在我初学的时候对Model元数据的概念很模糊,或者说是在大脑中没有它的一个模型,作为小白的我去看网上的一些文章还是两眼一黑啥都看不明白,然后我想退 ...
- 页面中调用系统常用的对话框需要用到的classid
■打开■ <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开> < ...
- JS设计模式(二)
5.迭代器模式 先实现一个简单的迭代器,类似于JQ里的$.each方法. var each = function (arr, callback) { for (var i = 0, l = arr.l ...
- C#设计模式-策略者模式
状态模式是对某个对象状态的抽象,而本文要介绍的策略模式也就是对策略进行抽象,策略的意思就是方法,所以也就是对方法的抽象,下面具体分享下我对策略模式的理解. 一. 策略者(Stragety)模式 在现实 ...
- 解析大型.NET ERP系统 多国语言实现
实现多国语言有许多种实现方案,无外乎是一种字符串替换技术,将界面控件的文本标签替换成相应语言的文字..NET Windows Forms实现多国语言的方法有以下几种: 1 .NET的方案,使用资源文件 ...
- springmvc+jpa实现分页的两种方式
1.工具类 public final class QueryTool { public static PageRequest buildPageRequest(int pageNumber, int ...
- react+redux教程(五)异步、单一state树结构、componentWillReceiveProps
今天,我们要讲解的是异步.单一state树结构.componentWillReceiveProps这三个知识点. 例子 这个例子是官方的例子,主要是从Reddit中请求新闻列表来显示,可以切换reac ...
- C# Excel数据有效性
C# Excel数据有效性 在Excel中,我们可以使用数据有效性功能来定义哪些数据可以被输入到工作表的单元格中,例如,限制输入的数据为一定范围内的数字或使用下拉列表来限制用户可选择的数据等.这篇文章 ...