写技术博客那点事
前言
写文章是一个短期收益少,长期收益很大的一件事情,人们总是高估短期收益,低估长期收益。往往是很多人坚持不下来,特别是写文章的初期,刚写完文章没有人阅读会有一种挫败感,影响了后期创作。
从某种意义上说,博客是我最好的学习笔记和个人名片。在IT行业内,技术博客是了解一个开发者最好的方式之一,特别是当你没有一张足够分量的文凭或者一段出彩的工作经历时,你就应该沉下心来好好打磨自己技术,打造自己的博客。往者不可谏,来者犹可追。从现在开始,养成写技术博客的习惯,或许可以在你的职业生涯发挥着不可忽略的作用。
作为一个一年多工作经验的前端小白,本文并不是想炫耀自己在写博客这件事上,有多么的出色,至少我从来不觉得!相反我想以我的切身体会来分享一些诸如如何去写技术博客,如何推广自己文章,以及如何打造个人品牌的一些事。
一、写技术博客的收获
仔细算来,我坚持写博客已经有15个月了,目前在掘金社区上,发表文章50篇,阅读量11w+,点赞数6000+,在segmentfault社区上发表文章39篇,阅读量5w+,点赞数3800+,Github博客上800+star,150+watch,文章也曾被奇舞周刊、前端大全、前端之巅等知名公众号转载过,这里并不是为炫耀这点微不足道的成绩,只是想勉励和我一样默默坚持付出的朋友们—-功不唐捐。
刚开始写文章和大部分人一样,最主要的目的有两个:第一,记录自己阶段性的学习成果;第二,想多结识一些志同道合的人。不管是以什么样的目的开始的,只要坚持写下去,就会渐渐感受到这件事所给你带来的好处:
1. 检验自己学习成果,加深对技术的理解
如果一件事情不能用通俗、简单的语言说出来或者写出来,证明你并没有全面地掌握或者掌握的深度不够。只有通过知识共享才能更好地发现自己在知识理解和掌握上的不足。
2. 提高文字的表达能力
随着我的阅读量的增多,我对自己的文章的要求就越来越高,无论是文章质量还是给读者的阅读体验上我都会花费心思去琢磨,经常在写作过程反复问自己,诸如“如何可以让读者更容易吸收我所写的东西?”“如何表达更让人印象深刻?”等等,此外我会借助思维导图工具xmind
和生成动态图工具ScreenToGif
,因为图像比文字记忆牢固,视觉化记忆可以充分发挥优势。
3. 结交更多优秀的人,获得更多内推机会
乐莫乐兮新相知,通过文章结交新朋友何尝不是快乐的事!况且分享知识的同时还能帮助到别人,也会给人带来成就感!
回复读者留言的时候,可以通过这种方式和五湖四海的技术人在一起交流。素未谋面,但神交已久这是件很酷的事!
4. 打造个人品牌,提高业内影响力
自媒体时代,信息高度流通,是个段子手都可能收获一份事业。通过知识共享可以帮助自己找到更有价值的朋友和合作伙伴,从而协助你打造个人品牌。“让别人知道你知道”,建立你的个人品牌,让别人更愿意跟你合作——传递和共享自己的知识是最简单的方法,通过知识共享,可以促进人们对你的了解和信任,为个人发展开拓新的天地。当你有了足够的名气时,你会收到类似网站广告,(付费)演讲邀请,录制视频,出书等邀请和机会。
5. 得到报酬(稿费/打赏/广告费等)
坚持写优质的文章会带来稿费或者是打赏,虽说可能都是些小钱,但这也是正向反馈一种形式,会刺激你持续输出。等到博客帮你塑造了个人品牌后,这个东西会成为和你日常所做的工作同样有价值,甚至超过你的本职工作。
二、如何写出一篇受欢迎的技术文章?
1. 全力找一个好标题
标题可以说是一个门户的作用,是让读者了解到文章的内容主旨的一个标识。如果标题起得不好,就很难引起别人的兴趣,更不必说高阅读量了,即使是文章的内容质量很好。
标题确定下来后,要多查找些资料,因为不同的人可能对同一个事物有不同的看法,所以通过阅读和整理多个人对同一事件的描述可以让自己更深刻,更多角度地理解这个问题,然后再结合自己的理解,就会理解的很快,也比较透彻。
2. 明确目标和受众
确定好标题后就需要确定你的目标读者群体。了解你的读者群体是极其重要的一步,他们是怎么样的人,有什么背景知识(或者你希望你的读者群体需要什么知识),这些人需要什么思维方式。这是极其重要的一步,最好是能够把你对读者的要求写在文章的前面,这样对你和读者都有好处。了解目标群体就像产品经理了解目标用户需求,切身体会到了才能做出好的产品。
3. 有一个好的开头结尾并且内容翔实
俗话说,巧妇难为无米之炊,事实上要想写出一篇内容翔实的文章,高质量参考文章必不可少!以下罗列一些个人觉得不错前端资料:
- JavaScript Weekly,这是一份相当有名气的英文周报,整理的文章质量都很高,如果你只想订阅一份周报,那就是它了。
- 33 Concepts Every JavaScript Developer Should Know,这份资料讲解了 33 个前端开发必须知道的 JS 概念,内容是英文的,网上有中文版。
- 前端精读周刊,这是一份前端好文集合,每周都会更新,目前已经更新了 84 篇文章。
- 前端性能清单,这是一份前端性能清单,如果你需要优化一个项目的话,可以根据这份清单一个个来检查优化项。
- 30-seconds-of-code,30 秒系列,很短的代码片段让你了解一个知识点。
- 30-seconds-of-css,30 秒系列,很短的代码片段让你了解一个CSS知识点
- must-watch-javascript,这份资料包含了很多高质量的前端相关视频,值得一看。
- css-protips,通过这份资料你可以学习到很多 tips 来提高你的 CSS 技能。
- 奇舞周刊,每周都会整理一份不错的中文文章合集。
如果想了解更多优秀的前端资料,建议收藏下前端英文网站汇总这个网站,收录了国外一些优质的博客及其视频资料。
4. 获得反馈并进行迭代
我有一个毫无根据的理论,并且对此深信不疑:好文章都是慢慢打磨出来的。当有一定阅读量后,跟读者互动交流后,就会发现文章不足之处,此时就应该及时修改过来。等过了段时间,写过的文章也应该经常拿出来温习,此时可能能力较之前有所进步,看问题更深刻,觉得不满意的旧文章也应该进行迭代!这样,你的写作能力才能迅速提高!
5. 添加最后润色:包装,发布和宣传
给大家推荐一个好用的BUG监控工具Fundebug,欢迎免费试用!
三、关于写博客的几个问题
1. 什么时候开始
每个人的心里,有多么长的一个清单,这些清单里写着多少美好的事,可是,它们总是被推迟,被搁置,在时间的阁楼上腐烂。
万事开头难,写技术文章也是,很多人会在起步这个阶段逗留很长的时间,你或许有这样的疑问:开发人员技术到什么程度才有资格去开通自己的博客?种一棵树的最好时机是十年前,其次是现在,开通技术博客同样如此。其实我一年前开始写那些文章,现在再回头看,便觉得当时写得很差劲,对于那些不满意的文章,可以等你能力提高了,再删掉重新写。所以非要等到是技术牛人,才有资格写文章,然而恰恰相反,你可以通过写文章来记录自己成长轨迹,分享文章的同时,打造自己个人品牌,何乐而不为?
2. 如何开始写?
- 从模仿和重写开始
对于一个新手想要一开始就写出一篇高质量文章,往往会觉得无从下手。而我的建议是从模仿和重写开始,虽然你可能还没开始写文章,但你一定阅读过那些优秀的博客文章,不妨先模仿那些优秀文章,学习如何给文章起标题的,如何写开场白,如何阐述他们的观点,以及如何总结的。通过模仿和重写,你会渐渐培养起写作的感觉,并且越写越好的。
- 建议先确定主题,然后再根据主题查找相关资料
根据主题来查阅资料,而不是根据资料来查阅主题。按照主题来阅读,你会发现读的时候不再是老老实实地一本书看完看另一本,而是非常频繁 地从一本书跳到另一本书,从一处资料跳到另一处资料, 从而来获得多个不同的人对同一个主题是如何讲解的。通过对比不同资料,取其精华,去除糟粕,总结成文。
- 养成思考习惯
刘未鹏《暗时间》中提到:“你走路、买菜、洗脸洗手、坐公交、逛街、出游、吃饭、睡觉,所有这些时间都可以称为‘暗时间’。 我们可以充分利用这些时间进行思考、反刍和消化平时看和读的东西, 让我们的认识脱离照本宣科的层面。”
当思考和总结成为习惯之后,诉诸文字以及借助书写来进一步思考就变成了一件自然而然的事情, 就变成了一件“因为你在思考和总结从而必须书写下来”的事情,博客就变成了副产品。
3. 写博客挺花时间,如何平衡工作和学习?
写一篇高质量的文章确实很花功夫,为了可以让读者有所收获,需要从内容,措辞,配图,排版等多个方面下功夫,而这些地方都是需要花时间的。
其实我的大部分的博客的初稿就是我的学习笔记,这主要包括看视频学习或者看书做的笔记,有了这样的初稿,写博客已经成功了一半。接下来你要做的事,就是如何将你所掌握的知识进行深度和广度的延申,最后通俗易懂地讲给别人听。所以如果你不坚持学习,很难持续高产。
程序员可能是加班相对严重的一种职业。对于有工作的上班族来说,写博客就要善于利用小块时间,也就是《奇特的一生》中所说的“时间下脚料”,比如利用中午休息时间,根据主题搜索一些资料,做好前期准备。我一般一个礼拜时间才写一篇文章,从来不是花个几个小时一气呵成,而是有时间就写一部分,写博客对我来说是挺享受一个过程。
4.在哪个平台写
现在可以写文章的地方太多了,所以选择会有很多,反而让人迷茫,哪里才是技术人员真正的聚集地。我发现很多爱写文章的技术人,首先会在一个平台去写文章,慢慢的在这个平台积累了一些名气之后,就会被各种编辑邀请或者是出于推广的目的,会在各个热门的平台下去同步自己的文章,然后引流到自己的独立博客,最后开通自己的公众号。
如果是写作新手,我建议先重点选择一个平台,了解这个平台的规则和技术氛围,如果各方面都和自己比较贴切,那就选择它写作发表文章,平台积累了一些名气之后,再选择开通自己的博客。至于选择什么样的平台,个人觉得最好选择支持 Markdown语法的平台,这样你就不必花心思调整文章的格式,在IT技术平台中,个人最喜欢掘金和SegmentFault社区,两者的技术氛围都很不错,只是前者比后者浏览量来的多!
- 掘金
- SegmentFault
- Github issues
5. 如何推广自己的文章?
好酒也怕巷子深,如今写技术文章而且写的不错的人太多了,如果不太注重推广的话,文章很快淹没在知识的海洋中,阅读量很小,继而影响写文章的动力和激情。就我个人而言,写文章最大的乐趣就是和读者互动交流以及他们带来的反馈,如果阅读量少了,我就会质疑自己文章是否对别人到底有没有帮助,文章质量是不是很差?
到底如何推广呢,第一需要研究清楚平台的规则,熟悉规则,才能玩转规则!接下来以SegmentFault社区为例,你应该仔细研究我们进一步改善了首页的推送这篇文章,里面详细介绍了如何上首页的一些条件:
以文章为例,一篇文章在撰写完成提交以后,系统会判断它是否满足下面的条件之一
作者的分数是否不低于2000分
作者是否参与了专家问答
作者的粉丝数是不是超过了500个
最近发布的5篇文章里,是不是有一篇的赞数达到了5个以上
当满足上述一个条件的时候,这篇文章就会被推送到所有订阅了相关标签用户的时间线上了。这又引出了另一个问题,那就是在撰写文章时对标签的使用,我们建议为了扩大你潜在的文章阅读人群,第一个标签最好选择一个比较广泛的技术标签。
6. 为什么应该采用博客的形式而不是云笔记
上文我们提到,博客源于自己的笔记,这里可能会有不少人有疑惑为啥不直接在印象笔记来记录笔记,而还要花心思来写博客?我认为采用云笔记的局限性如下:
- 记录在笔记,更多的是为自己看,无法进行深入理解和研究
- 无法分享给广大同行,不利于发现自己看待问题的不足和更有的见解
- 无法获得类似知识变现,名气提升等益处,更不用说打造个人品牌了
四、2018年文章列表(50篇)
过去一年,坚持写博客,陆陆续续写了五十多篇,不乏有些不错的文章,被一些前端知名公众号转载过,得到过别人的认可和赞誉,这让我在写博客这条路一发不可收拾,越陷越深!现将所有文章归纳如下,希望对你们有些许帮助。
Vue全家桶
页面性能优化
Javascript
- 深入浅出JavaScript运行机制
- JavaScript预解释是一种毫无节操的机制
- JavaScript的数据类型及其检测
- JavaScript创建对象几种形式
- 细说数组常用遍历的方法
- 浅拷贝与深拷贝
- 深入浅出Javascript闭包
- 你还没搞懂this?
- 原型与原型链详解
- 九种跨域方式实现原理(完整版)
- Dom事件机制
- JavaScript常见的六种继承方式
- JavaScript数据类型转换
- JavaScript线程机制与事件机制
- 前端模块化详解(完整版)
- 浏览器与Node的事件循环(Event Loop)有何区别?
ES6
CSS
Http协议与数据请求
浏览器相关
web安全
工具
实战
五、2019年待写文章计划(暂定)
这部分写作计划参考木易杨大神的进阶系列目录,目前暂定以下主题,个人觉得这些都是前端重难点,有必要深入了解。
- 调用堆栈
- 原型与原型链
- bind、call、apply的实现原理
- 高阶函数
- JavaScript设计模式
- Promise原理及手写Promise
- webpack配置
- webpack原理
- 计算机网络概述
- TCP/UDP协议
- http2协议
- websocket
- 前端监控
- 性能优化
- 骨架屏实现
- Vue3.0新特性
- vue与react对比
- MVVM框架实现原理
- Diff算法
- Virtual Dom原理
- 前端数据结构与算法
六、后记
事实上,理解一件事并不难,难的是如何将一件事通俗分享给别人,并让别人也有所收获。我有个习惯,经常会翻看自己之前写的文章,觉得不满意,便会重新修改,这是我一直秉持的态度:文章的质量要比数量重要得多,每一篇文章,都是像是我的孩子,要认真对待!
上文中提到写文章诸多好处,这里友情提醒大家,千万不要为了写博客而写博客,作为程序员,我个人觉得最重要的还是敲代码的能力,以及工作中解决问题的能力,千万不要本末倒置,捡了芝麻丢了西瓜。
最后打个小广告,如果你想了解前端的重难点、常考面试题和新知识等等,可以关注我的公众号「前端工匠」,一周两篇原创优质文章,旨在用通俗语言带你入门!
参考文章及书籍
- [译]如何撰写精彩的技术博客文章
- 我从写技术博客中收获到了什么?- J_Knight_
- 技术博客那些事儿
- 你也可以写出优秀的技术博客
- 如何开始写技术博客,怎么选择?
- 为什么程序员应该要尝试写一写博客
- 前端面试之道
- 暗时间
- 你的知识需要管理
关于Fundebug
Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用!