程序员如何才能写出一篇好的技术文章
文章来源于 @justjavac在知乎上的邀请,要写在知乎上的回答。因为有原创,所以先首发,免得被伪原创。每天有大把的时间刷GitHub,写博客。从我大二的时候,大概六年前开始写技术博客,到现在已经有540+了,大概每年会写一百篇左右。
这个答案由四部分组成:
- 博客的流量来源
- 不同文章类型的写作要点
- 如何写博客
- 如何收集写作的灵感
流量来源
首先,我将技术博客分为下面几种类型:
- 技术细节型。频率: 每天几次,15~30分钟可以写完。
- 干货型。频率: 每月几次,1~2小时可以搞定。
- 实践总结型。频率: 每周1~2次,2+小时以上的时间。
- 杂谈与鸡汤型。频率: 每季度几次,少则几小时,动则上月。
接着,奉献上一章我的博客的用户来源图,分析完大概如下:
前三者可以带来很多的流量,后者可以带来大量的评论啦。
前三者可以让你在Google上有一个好位置~~,后者可以让你在用户心中有个好位置。
通过社交媒体可以让第四种类型的文章,有大量的评论和转载。
干货型和实践总结型的文章通过聚合网站来传播的效果最好。
在Google中有个好位置意味着——第一的位置会有50%以上的用户访问,这一点很重要哦~~。再放出神图:
首先作为一个专业的程序员,我们会用某个关键词去搜索,如“InsecurePlatformWarning: A true SSLContext object is not available.” :如果这时你的标题就是《Python 解决 InsecurePlatformWarning: A true SSLContext object is not available》,那么你就找到了你的用户了。
这是我之前用了5分钟不到的文章写的一篇文章,它在半年的时间里带来了6,599个访问量。它在Google的搜索结果中排第一:
虽然很不情愿地被排名第二的文章抄袭了——但是我还是第一,这该死的伪原创。
而用户不会只访问你的一个页面的:
一般来说,前三种类型的用户获取到他们想要的信息就走了,不会留下评论。至于第四种类型,没有大V的光环,偶尔文章被转企业V转转也能多个几十个粉丝。所以我没有第四种类型的文章太多的经验哈。
不同文章类型的写作要点
接着, 让我们再看看上面的几种类型:
技术细节型
在我的博客里很大一部分文章都是这一类,主要是原自早先对SEO的研究。对于先这种没有光环的人来说,这是我博客的主要流量来源。这也是让我坚持下去的动力,每天有大概三百个用户来自搜索引擎。
这种类型主要来自于日常工作,但是好像写这一类的人不多。每天我们都会遇到不同的技术问题——如某个第三库更新,某个浏览器bug,如何使用某个技术。因此,我们就会用这样的关键字和词去搜索,反正大部分教程序员使用Google的文章就是这么写的。
既然你想要这样的搜索,那我就直接把搜索结果放前面好了,如:
- Mac OS Laravel 安装
- Homebrew versions安装特定版本软件
- brew versions gradle安装指定版本gradle
如果你也擅长用Google的话,我想你就懂了奥秘。标题的前半部分是关键字,后半部分指名意图。
接着,就是贴解决方案和代码咯~~。在这时候需要注意几点:
- 试着去表达一些技术上的细节,也会省去一些技术上的细节。
- 以自己学习的角度去想怎样写可以一步步下来。
- 加入一点点自己的情感,博客和文档是不一样的。(详细见下文)
- 编写更简洁的内容,因为技术博客与此文不同的是,技术博客是面向寻找信息的人。
干货型
一般来说,这种类型的文章更类似于GitHub上的那些Awesome类型的Repo。说说几个标题,大概可能就会有点感觉了:
- 每个程序员必知之SEO
- 作为一个前端工程师你了解你的小伙伴么 - chrome
- App 上架相关事宜、解决技巧
- 20 个非常有用的 Java 程序片段
- Java 开发者不容错过的 12 种高效工具
通常来说,这一类型的文章都是作者一段时间对于某一个东西的总结,非常有收藏价值。故而,这种类型的文章会在GitHub或者聚合网站上比较受欢迎。所以,它也更容易传播。
但是写起来的难度比较大,这依赖于你的使用经验。所以,也不是一天、两天就能搞定的。
实践总结型
看看标题,可能大家都知道这一类文章要怎么写了:
- JavaScript之闭包与高阶函数(一)
- 编辑-发布-开发分离:git作为NoSQL数据库
- 构建基于Javascript的移动CMS——添加滑动
- Android开发从零开始
这通常是一系列的文章,而这一系列的文章一般是连续写出来的。也因此,我们可以发现很大的书都是由这一类的文章衍生出来的。
这一类的文章更像是干货型和技术细节型的结合,面向特定领域的技术,也属于干货。对于这种类型的文章来说,更依赖于代码——读者需要依据代码一步步往下深入。
所以在这一类型的文章中代码往往比较重要。
杂谈与鸡汤型
来几一些标题:
- 为什么整个互联网行业都缺前端工程师?
- 程序员职业生涯中应该思考的10个问题
- 怎么减少编程中的 bug?
- 为什么大公司看起来都那么糟糕?
BlaBla,简单地来说这一类文章基本上是没有技术的,都是一些以理论为主的概括。同时,写这一类文章的时候,也意料着可能在某一领域有一定的水平——写出来才会有人看。而由于偏向理论,这一类文章看的人往往会更多,因为它并不倾向于使用领域特定的技术。
所以这种类型是受众很广的文章,并且也像鸡汤一样容易传播。同时,这种类型的文章,更依赖于社区媒体及聚合网站的传播。因为大部分情况下,用户不会这么去搜索文章的。
如何写博客
对于博客的内容来说,下面几点很重要哦:
- 标题、小标题。一个好的标题会带来更多的流量的。
- 内容。以代码为例的文章,最好有代码。代码可以放在GitHub上,一举两得。
- 图 —— 一图胜千言,如本文第一节中的框架图。,一个框架图可以省去你的很多话语。
- 排版,又可称为UI设计。基本的语法高亮要有,容易阅读也要有。最简单就是白底黑字。
下面有我之前在《招聘笔杆子——成为笔杆子》一文中说到的一些要点:
标题——必须重要,类名
对于写博文的人来说,重点的是如何清楚的去表达他们的想法,标题算是其中之一,这个也就是为什么标题党成为了标题党,而《设计模式》成为了经典。刚开始学编程的时候,更吸引你注意力的可能是《72小时学会Javascript》,而不是《Javascript 权威指南》,兴许让你买前者的原因是因为你能看懂前者,而后者不仅看不懂,而且价格更贵。只是一年以后,《72 小时学会Javascript》被你扔到了垃圾箱,而《Javascript 权威指南》却放在了原来放那本书的位置上。你定义的类难道仅仅应该是class class1么?
小标题——地图,method
小标题有点类似于sitemap.xml,只是他就是站点地图,一点就到了相应的地方。他应该直接了解的说这是开始菜单,标题栏,菜单栏,而不应该是简简单单的第一章,如果你真是那样写的话,你写的函数想必是
def fun1
end
如果你写的是get_data那么,我想你的函数名应该和你的文章一样,告诉人们,你要的是get_data。所以不要吝啬你鼠标的一下,它可以承受上百万字的点击。如果因为那样坏了,你可以告诉我,我可以帮你免费换一个欧姆龙的微动,前提是你的鼠标可以换。如果是HTML那么应该是h2 h3,markdown也就是用得比较多的github上的README.md的##或者是###
内容——函数体
这里可不是让你用一个让人难以理解的Magic Number,你写得越复杂,别人看的时间就越久,通俗易懂,就是一个很好的开始。你可以把一个个复杂的方法分解出来,或者提炼函数,或者重命名。当你相信你看不懂你的文章,正如你看不懂你写的hello,world我想你是时候去重构你的函数了。
复杂的部分,就用段落来解决,一个函数如同一个段落只应该表达一个思想,太长了就如同这篇文章一样没有多少人会认真去看。你需要给你写的一个精美的代码加一个注释,所以你也需要给你复杂的地方加上个(PS)。
在编写内容的时候需要注意下面的几点:
- 代码。必要的时候贴出代码,会是一种快速有效的方法,工作的时候是为了完成某个任务。
- 列表。列表可以简明扼要的说明你想要表达的内容。
- 图表。一张流程图可以说明程序的步骤,一个表格可以作好一个对比。
- 标题。标题的好处,可以让用户快速定位,让用户找到想要的内容。
- 链接。一个好的URL对于使用英文的人来说,可以利于SEO,对于中文,使用的人可以判断出文章的专业与否。
引言——README
我想都会去看的,无论是在破解软件的时候,还是github上面的项目。简单的说说,这篇文章是干什么的,这个程序是干什么的。大家都会,不是么?
没有什么好写的?
说说你是怎么开始编程吧,然后写在你的博客上,你会发现你会爱不释手的。
如何收集写作的灵感
下面是我最近在做的,感觉很不错,推荐一下咯:
一般是先有个论点,然后再论据,最后才写。
第一步,在平时把想到的一些能写的文章用TODO的形式列出来,如我用的是“奇妙清单”。下面就是我最近想写的一些文章的一些标题:
但是有一些还没灵感,只是想到了个大概——所以有的是只是一个标题。这些文章大部分都属于杂谈型的,想到什么就说点什么,但是会有个核心。
第二步,在平时偶然会有点灵感的时候,就用Google Keep创建一个新的记事,稍微写几句,提醒一下自己咯。在这一步,相当于就是找一些论据来支撑自己的观点,等到这些观点差不多的时候就可以写了。
第三步,便是写。写的时候其实没有啥感觉,就如同我之前在《编程同写作,写代码只是在码字》一文中所说的。不得不再说说这个标题,一看就知道要写什么了~~。
真正的想法都在脑子里,而不在纸上,或者IDE里。
所以,其实写代码的时间很短,真实长的是想出怎么写,文章也是如此。
欢迎关注我的微信公众号:
程序员如何才能写出一篇好的技术文章相关推荐
- 程序员怎样才能写出一篇好的技术文章
来源:http://droidyue.com/blog/2016/06/19/how-to-write-an-awesome-post/ 首先,这算是一篇回答知乎问题 程序员怎样才能写出一篇好的博客或 ...
- 如何写出一篇好的技术方案?
近期在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼.于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家. 我们为什么需要写技术方案?总结下来无非是几点,从不同 ...
- 技术人 | 如何写出一篇好的技术方案?
近期在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼.于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家.我们为什么需要写技术方案?总结下来无非是几点,从不同人 ...
- 作为一名 程序员,怎样写出一份漂亮的简历?让招聘者眼前一亮,充满激动?...
今年是最难求职年,希望通过这篇文章能帮大家提高求职成功率. "金三银四"是指每年的三月和四月份,都是求职跳槽的高峰期.此时正是大家挑选职位.投简历.面试的好时机.因为此时从公司角度 ...
- 作为一名程序员,怎样写出高效简洁的代码?
前言: Hello大家好,我是Dream .经常有朋友问我,自己写的代码太乱,虽然功能都能实现但是写的并不简洁,让人一眼看上去就会很难受,那如何去写出简洁优雅的代码呢?那今天我就来和大家分享一下一些写 ...
- 程序员:如何写出杀手级简历
1. 简历里要有你工作的技术细节: 编程语言,你的个人成就和水平. 我有时会看到一些简历,里面的工作描述就只有一行话,像这样: * 在一个3人组成的团队里开发一个 e-mail 插件. 筛选者在阅读你 ...
- 程序员小姐姐写出代码版《本草纲目》毽子操,附上源码 !
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 来源:程序人生 (ID:coder_life) "腰间的赘肉咔咔掉!人鱼线马甲线我想要!",&qu ...
- 对于想创业,想开发APP的程序员来说,这是一篇价值百万的文章!
本文对想做好一款App项目的人,想创业的人,来说这是一篇价值百万的文章!因为这是我们花了几百万试错成本试出来的经验! 我们先来看一下,从事开发行业每天都能遇见的"傻"问题 在从事a ...
- 做好5步操作,轻松写出一篇价值10万的软文
今天,吕杭泽带给大家的是软文的写作技巧,我们全方位.360度的来深度剖析一下:软文到底应该怎么写呢? 软文,软文,首先要软!相对硬性广告而言,软文的精髓就在于一个字"软"!软文是广 ...
- 如何写出一篇优秀得csdn的文章?为什么要写作?有什么好处?(送给正在努力的你们)
大家好,我是铁铁.一个颜值与实力并存的笔者. 一.如何写出一篇优秀的csdn的文章? 如何写出一篇优秀的csdn文章呢?其实每个人对待这个的看法都不一样.小铁就说说自己在写文章的时候都事先考虑什么(仅 ...
最新文章
- git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法
- 《Swift 权威指南》——第6章,第6.7节常量和变量参数
- Linux系统平台上安装和配置Ruby on Rails
- 数字密码输入框对输入内容进行隐藏
- (lucas) Saving Beans
- 生成的头_谷歌新款怪物制造机,用GAN一键生成定制版哥斯拉
- python代码示例-《Python编程:从入门到实践》DEMO实例代码
- 【CV】如何使用Tensorflow提供的Object Detection API --2--数据转换为TFRecord格式
- 数据预处理之独热编码
- Canvas.Top和Canvas.Left属性
- echarts x轴 名称_图例|西门子S7-1200 PLC的轴组态与点动控制详解
- Vue中用到jeDate日期控件,Vue对象中的值滞后,总是滞后当前选择的值
- android创建vcf格式,C#生成vcf 文件源代码 QuotedPrintable 解码支持中文支持Android-vcf文件怎么打开...
- Python爬虫实战之爬取链家广州房价_04链家的模拟登录(记录)
- [从零开始学FPGA编程-4]:快速入门篇 - 操作步骤1 - 常见可编程器件PROM、PLA、PAL、GAL、CPLD、FPGA
- mysql数据库自动备份软件SQLBackupAndFTP简介(图文)
- 品牌设计分析思维导图模板分享
- ROI Align原理及cuda源码阅读
- shell 执行qt生成文件_(原创)如何在QT下执行shell或外部程序(QT4)(shell)(mini6410)(smplayer)...
- 《按自己的意愿过一生》读书笔记
热门文章
- html入门怎么换字体颜色,html怎么改字体颜色
- 深度学习之学习(3-4)YOLOV4
- i春秋——“百度杯”CTF比赛 十月场——Vld(Vulcan Logic Dumper 、php opcode、sql 报错注入)...
- 李嘉诚再次助攻华为 用事实打脸“别让李嘉诚跑了”
- 联想e570c固态接口支持协议_thinkpad e570c15.6英寸笔记本电脑支持什么固态硬盘接口...
- PDF怎么修改,怎么给PDF添加页码
- 【Day42 文献精读】A Bayesian Model of Perceived Head-Centered Velocity during Smooth Pursuit Eye Movement
- shell编程文档资料
- bzoj 4987: Tree 树形dp
- 眼见为实(2):介绍Windows的窗口、消息、子类化和超类化