我从事技术写做的时间其实不长,开始写做的时间就是我掘金帐号注册的时间:javascript
到今天(2021年2月23日)也就是一年零一个月,这一年的收获是超过个人预期的:前端
本文想对这个历程作一个回顾,并分享一下我总结的写做技巧以及推广策略。java
在写做以前想清楚为何写做很是重要!由于你最初的想法会决定你往哪一个方向去写,写出的内容的质量怎么样。git
我写做的缘由很简单,就是我前端作了几年了,大部分时间都在写业务代码,技术上一直没有太大的突破,最多也就是换个框架,换个UI库,换来换去始终感受似曾相识。为了避免让几年工做经验成为“第一年工做经验的复制品”,我决定再深刻,系统的学习下前端知识。因此对于我来讲,写做是个人学习方法,个人首要目的是学习知识,写做带来的社区声望只是附带的,有了固然好,没有也不必刻意去刷。github
根据个人观察,社区上的做者写做目的主要分为两种:“为学习而写”与“为刷声望而写”。面试
大部分厉害的大佬其实都是“为学习而写”,就是他们看到什么好玩的,新奇的技术,去学习了,天然而然的总结出文章。或者以为某个知识点你们很容易搞错,想输出本身的观点,帮你们避坑,就将本身的看法写成文章,这个过程做者虽然更多的是在输出内容,可是写做的过程其实也会强化做者本身的理解,其实也是一个学习方法。我我的认为“为学习而写”写出的文章才是正道,是社区良性发展的方向。编程
固然也有少部分做者想在短期内获取更多关注而刻意的去迎合读者口味,也就是“为刷声望而写”。比较典型的一个例子就是,掘金曾经在某段时期被大量的面试题汇总占据。你们出去面试了回来分享下心得实际上是好事,可是刻意的去搜集面试题,类似的内容发了一遍又一遍,里面的答案甚至仍是错的,会致使社区愈来愈功利,低质量面试题霸版,高质量技术文章反而没机会展现,从而形成劣币驱逐良币的现象。我记得那会儿有个做者靠反复发面试题,短期就刷了三四千掘力值,眼看就要到“优秀做者”了,结果被一个社区大佬怼了,而后就没怎么露面了。这样,前面刷的几千声望不是都白费了吗?后来掘金官方也整治了低质量的面试题文章,如今的状况已经好多了。segmentfault
因此我说,写做前想清楚“为学习而写”与“为刷声望而写”很重要,若是是“为学习而写”,那就能够写出本身的心得体会,写出高质量文章,若是单纯是“为刷声望而写”,可能短时间会有点收益,可是也有可能会被大佬怼,被官方整治,前功尽弃。设计模式
在这个“系统学习计划”开始以前,我其实没怎么写过技术文章,甚至都没怎么逛过技术社区。平时若是须要学习一个东西,好比学习React
,那我会直接去它的官方网站,把它的文档所有读一遍,如今这些流行库的文档都写的很好,看一遍基本就能上手了。若是看完了仍是不太知道怎么用,那就去公司看看有没有项目用过,公司没用过,就去GitHub上找找,而后抄抄改改就能上手了。这个过程通常也就几天,复杂的库最多也就一两周就能上手。使用的时候遇到问题就用Google搜,基本都会找到Stack Overflow上,答案拿过来一用就行。性能优化
前面几年个人工做模式基本都是这样的,这样应付工做也没啥问题,可是第一年是这样,第二年是这样,第n年仍是这样。。。就成了“一年工做经验复用n年”,成了名副其实的“API工程师”,作项目没问题,问原理似曾相识,可是却说不太清楚。若是一直这样,技术就会一直原地踏步,在现单位很容易被替代,出去找工做也可能会四处碰壁,或者找来找去找到的始终跟当前的差很少,很难实现大的突破。
我感到,我碰到瓶颈了。我想突破这个瓶颈,可是我不知道怎么作!在没有具体方向的时候,就看看手上能作啥吧,从简单的,可见的开始作。因而,我决定,我要重头整理本身的知识框架,把那些只是似曾类似的技术,原理所有吃透,因而我从网上找了一份“前端知识架构图谱”,决定按照里面的提纲,所有从新学习一遍。只是我再次学习不能是简单的看看书,看看博客,看看视频就好了,这种事情我之前干过了,做为一个有几年工做经验的前端,我对本身有更高的要求:全部学过的知识点,必须本身所有写成文章进行巩固;全部框架的学习,必须学到原理或者源码层面!
因此,“写什么”这个问题的答案已经有了:学习前端知识架构,将学习过程写成文章。
上面说了,我其实并无什么写做经验,我最近一次写做是大学论文,再往前就是高中做文了,写做水平其实不咋地。可是技术写做跟普通做文不同,通常不须要华丽的辞藻,更重要的是要把问题讲清楚,看技术文章的读者须要的是学习技术知识,而不是看风花雪月,因此技术文章的逻辑,层级递进,由浅入深,好理解其实更重要。我刚开始时也不知道怎么写,也是在不断写做工程中,一边写,一边总结,总体来讲,我本身的文章其实都分了好几个阶段:
从小学开始,老师就会让你们记笔记,你们应该都会,这也是最简单的切入点。我刚开始的时候,不会写文章,写的基本都是笔记,好比各类CSS居中方案,这就是我在其余地方学的,而后把他记录下来,也就是个笔记而已。对于“CSS居中”这种问题来讲,面试问烂了,网上资料也是一大堆,这篇文章也没什么出彩的地方,因此关注的人很少。其实对于“笔记型”来讲,获取关注少是很容易理解的,由于你写的东西是笔记,也就是说你也是从其余地方学来的,整个文章的思路其实也是人家的,若是本身记笔记的水平不高,可能写出来的效果还不如原文章。
在写了一些“笔记型”文章后,我发现效果很差,不只仅是没什么人关注,甚至对本身帮助也不大。常常是写了没多久就忘了,须要的时候还要回过头来看看笔记,我开始意识到,这个现象的本质是,你写的东西是笔记,核心思想都是人家的,或者是本身东拼西凑的,整篇文章没有本身的逻辑,没有本身的看法。因而,我开始尝试在文章中加入本身的看法,当时正好组内有小伙伴对“JS原型链”理解的不是很透彻,网上虽然有不少相似文章,可是不少都是从表面来解释“原型链是什么”,画的图也很复杂,不是很好理解。因而我尝试本身写一篇原型链的文章,由于我知道他能够实现“面向对象”的特征,这是不少其余文章都没怎么提的,但倒是设计者最初可能想要实现的效果,因而我类比Java的面向对象,从面向对象的角度讲述了原型链的做用以及他存在的意义,就是这个:轻松理解JS中的面向对象,顺便搞懂prototype和__proto__。这篇文章上了掘金首页推荐,最终得到了两百多赞,一万多阅读,这让我开始意识到,“有本身理解的知识点解析”在掘金可能更受欢迎。
在这以后,我开始有意识的在整理知识架构时加入本身的看法。那对于一个知识点,怎么产生本身的看法呢?这须要在学习时多问本身几个问题!好比,学习HTTPS时,除了跟你们同样搞清楚HTTPS的加解密流程,握手过程外,我问了本身一个问题:“HTTPS有没有可能被破解?假如我是个黑客,若是我想破解HTTPS,有哪些方法和途径?”带着这个问题,我从“破解HTTPS”的角度讲述了HTTPS的原理,这篇文章也上了推荐,得到了一百多赞和好几千阅读:RSA初探,聊聊怎么破解HTTPS。
尝到点甜头后,我更加注意在学习中反问本身问题,加入本身理解了。有时候在学习别人的东西时,我发现了别人没发现的一些点,也能够从这个角度加入本身的独到看法,写成本身的文章,好比某视频课程在讲述JS的事件循环时说:“setImmediate
比setTimeout
先执行”。听到这句话,我敏锐的感受不太对,由于我曾经遇到过setTimeout
比setImmediate
先执行的状况,可是具体是啥状况我一时想不起来。因而我花了点时间把这个问题和原理完全弄清楚了,并写成了本身的文章:setTimeout和setImmediate到底谁先执行,本文让你完全理解Event Loop。这篇文章最终也得到了一百多赞,大几千阅读~
JS知识体系虽然庞大,可是终究是有限的,很快我就写了十几篇JS的文章,内容包含了内存管理,深浅拷贝,面向对象(原型链),this
指向,事件循环,变量类型,做用域等等。这些已经囊括了JS的主要知识点,JS上我已经很难找到新的写文章的点了。
因而个人文章内容开始转向我使用的框架,这几年我主要使用的React
技术栈。因而我准备从新整理学习React
技术栈,固然不是学习他的用法了,毕竟我用了几年了,用法早就熟悉了,此次我要学的是他们的源码和原理。源码和原理相对于JS知识和框架使用方法来讲要可贵多,受众也小的多,对于读者来讲也很难产生直接的收益。由于读者可能看个JS知识点,出去面试就能应付大部分的JS面试了,除了些大厂外,也不是每一个公司面试都会问源码,并且这些受欢迎的开源库是各位大牛努力写做的成果,里面汇聚了各类JS的高级用法,各类高级编程思想和设计模式,因此即便我尽可能写得深刻浅出,层层递进,相较于其余文章来讲仍然会显得更加晦涩难读。因此这类文章在掘金得到的赞和阅读并不可观,我大量的源码解析都只有三四十个赞,这里面还有一半左右是我厚脸求朋友同事们点的(这点我后面在讲推广的时候会说)。
对于做者来讲,写源码类文章须要去读框架源码,也会很花时间。我写一个JS知识点的文章,由于东西都是我熟悉的,可能几天就搞定了,写完了还会有上百的赞。可是一个复杂框架的源码解析,好比Express.js
,我须要一点点的去读,去调试源码,成文可能须要两三周,写完后可能仍然只有三四十个赞。从社区声望增加这个角度来讲,性价比极低!可是我一直没有放弃这类文章,甚至如今成了我主要的写做方向。为何?由于人总要突破本身的温馨区,探索未知的领域,最终才能学习到东西,得到成长!这其实回到了文章开头就提出的问题:“你为何要写技术文章?”对于我来讲,这是我学习的途径,因此若是这个过程我可以学到东西,可以感觉到成长,我就会坚持去作,即便他在其余方面性价比很低!另外个人源码类文章虽然在掘金反响不是很好,可是在其余平台,好比思否,还能够,因此其实也是有回报的。
好了,说了这么多为何要写源码解析,如今来谈谈怎么写源码解析。前面说了,在我从事技术写做以前,我基本不懂源码,是名副其实的“API工程师”,那会儿我也是一提到源码就心慌,彻底不知道从何下手。后来我忐忑的打破本身的心理障碍,屡次尝试以后找到了一个看源码的套路。其实再🐂的框架或库本质也是JS代码,因此咱们能够用一种简单质朴的方法去读,这其实也是你们常常在用的方法。想象这样一个场景,大家公司一个运行好久的项目出了点问题,你领导让你去调查下。因为这个项目你以前没有参与,如今贸然叫你去解决BUG,你是否是要先反复复现问题,而后找到相关的代码块,调试这些代码并找到BUG缘由,而后将它修复。看源码的时候咱们彻底能够用相似的思路去看,先缩小范围,只看这个库的核心代码。好比Koa.js
核心用法其实只有这么点:
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);
你就把它当成你如今须要接手的老项目,为了弄懂他的运行逻辑,看看这段代码里面他暴露了哪些API,而后一个一个去调试下就好了。就上面这几行代码而言,其实只有三个API:
Koa
类app.use
实例方法app.listen
实例方法花点时间去源码里面找到这三个API,并看看他们是怎么实现的,在看的时候,把主要逻辑剥离出来,本身实现一遍,同时把整个过程记录下来。等你把这三个API实现都看懂了,其实一篇源码解析的文章也就出来了,同时还能够产出一个迷你版Koa
:手写Koa.js源码。
其实不少公司都不是技术驱动的,技术只是实现业务的一个手段而已,这就形成不少公司的一个项目都是从另外一个项目抄抄改改就能用,不少人(包括我)在这种环境下待久了,慢慢就成了“API工程师”,最熟悉的实际上是CV大法。可是每一个公司的业务其实在某方面都有本身必定的独到性,否则也活不下来,在实现这些比较复杂的业务时,有时候咱们也会用一些比较有意思的方法,有时候咱们可能花了不少时间去实现他,可是事后又慢慢淡忘了。其实对于这些有必定技术含量的工做,咱们也能够总结下,而后写成文章,慢慢沉淀下来成为本身的技术。我就从工做中总结了三篇文章,有的反响还不错:
有句俗话说:“酒香不怕巷子深”。可是这个并不适用于如今的互联网时代,互联网时代是信息爆炸的时代,若是没有适度的推广,即便你的内容很好,最终也会淹没在信息的洪流里面。好内容的推广对于社区,读者和做者来讲实际上是三赢的。
对于社区来讲,若是有大量优质内容提供给读者,口碑就会很好,读者会愿意长期待在这个社区学习,并可能会主动推荐给朋友。因此不少社区的编辑很大一部分工做就是主动发掘好的内容,并推送给更多的用户。
对于读者来讲,好内容的推广能够学习到更多东西,而不是成天被一些低质量内容霸屏。
对于做者来讲,好内容的推广能够得到更多关注,更多的社区声望,激发创做热情,从而造成正向激励,产出更多高质量内容。
可是推广有一个很大的前提:推广的内容必定要是高质量的内容,否则会起反效果。
因此个人技术写做,我也尝试了多种推广方式和渠道,不一样的方式效果不同,我用过的方式主要有:
下面就这些详细讲述下:
在推广以前,必定要确保你推广的内容的质量,至少要是你用心写的,也许你如今只是一个初学者,写不出高深内容,可是你写的内容必定要是你用心写的,要让读者感觉到你的诚意。若是只是简单的面试题拼凑,甚至里面的答案都是错的,你还拼命去推广,你推广的越多,只会让更多人知道你写的东西很差,没诚意,可能还会被不少人留言怼。就像开头提到的那个例子,若是一味的为了“刷声望”而去拼凑内容,大量推广,你声望可能会涨得很快,可是,同时也会让大量的人知道,你写的东西不行,没诚意,甚至可能被大佬怼到不敢露面。
我开始写文章时喜欢写完了就分享到一些QQ群和微信群,可是效果并很差。常常是分享到一个几百人的群,过一下子去看,阅读量涨了几百,可是赞一个没有。。。固然也多是我早期的“笔记型”文章质量不高,因此获赞很少,好比前面提到过的各类CSS居中方案,我就分享到过不少群,最终有三千多阅读,可是赞只有三十来个。。。因此我如今已经基本不乱分享了,收益过低,还可能被当成打广告的遭嫌弃。
这条主要是针对掘金平台的,由于掘金的赞多了能够升级,升到4级就是“优秀做者”,能够自动上首页。因此我在掘金发布后,会分享给关系好的同事和同窗,由于关系很好,他们基本都会帮忙点个👍。可是这部分老铁人很少,总共也就十几个。
这实际上是效果最好的一个推广渠道,能够联系社区编辑,将写好的文章连接发给他,编辑在审核后,以为能够的会推荐到社区首页,这会大大提升曝光量。以掘金为例,通常我上首页推荐的文章,至少都会有十来个赞,阅读少说几百上千。加上前面朋友点的赞,我一篇文章最少会有三十来个赞,加上阅读量转换的掘力值,一篇文章至少会有四五十的掘力值。有一段时间,我就以这个为基准在那里算:我再写一百篇就能够升4级了,哈哈😃 固然若是出了爆品,某篇文章得到了成百上千的赞,会大大加速这个进程。
其余社区,好比思否,开源中国,找编辑推荐效果也是很是好的,他们有做者推荐群,能够联系编辑加群,有好的内容就能够发到群里求推荐。
中文社区其实仍是挺多的,我最开始是在掘金写文章,可是粉丝最多的平台倒是思否,我的粉丝将近两千,专栏粉丝一万多。因此你文章写好后,能够发布到多个平台,也许这个平台不火的文章在另外一个平台却火了。目前对于我来讲效果还不错的平台有:掘金,思否,开源中国和博客园,下面我就这几个平台的特色来细说下:
掘金最大的特点是等级制度,等级到4级能够解锁成就:掘金优秀做者,而后发布的文章能够自动上首页,能够大大提升曝光量。另外编辑也很负责,会主动寻找优质内容推荐到首页,因此若是你持续输出优质内容,篇篇被推荐也是有可能的。
思否最大的特色是涨粉很快,由于新用户在注册思否时会推荐一些专栏和做者给他关注,若是你足够活跃,就能够进这个推荐列表。思否每一年还会评定“Top Writer”,每一年15人,由于名额少,因此比掘金的“优秀做者”还难点,若是被评上了“Top Writer”,会有一段时间的流量支持,涨粉更快,我评上后最多的一天涨粉上千。另外思否的技术团队也很负责,有什么问题在群里反馈了很快就能获得回答,有时候CEO还会亲自回复👍。
开源中国流量也不错,若是被推荐上首页,至少会有一两千的阅读。另外在他的博客站点首页还有个“精彩博客”栏目,若是出如今这里,能够挂很长时间,下图中这篇文章:速度提升几百倍,记一次数据结构在实际工做中的运用是我1月6号发布的,到今天,2月23号,一个多月了还排在这个栏目第一,单篇阅读一直在涨,已经有4.7万了。
而一样一篇文章我也发布到过掘金,只有三十来个赞,效果很通常,因此多平台发布仍是有好处的,这个平台不火,另外一个平台说不定就火了。
博客园最大的特点是在发布时能够本身选择上首页,固然若是你质量很差,仍是可能会被编辑撤下来的,我之前就被撤下来过。由于能够本身决定上首页,因此博客园的首页刷新很快,一下子就被淹没了,因此单篇阅读量不高,可能只有一两百。可是若是你能得到编辑的特别推荐,出如今这个位置,流量仍是能够的:
我有两篇得到过编辑推荐,最多的一篇有近万阅读,少的也有三四千,这个位置只能待一天,因此其实仍是不错了。
另外,我还试过CSDN,知乎,腾讯云社区等,由于效果不是很好,已经没怎么运营了。你们早期时能够尽可能多发布几个平台,而后看看哪一个平台效果好就重点关注,效果很差的就能够放弃了,由于运营平台过多也会耗费大量精力,选性价比高的弄就行。
由于我写的东西成体系,因此一篇文章B可能会用到之前写的文章A的知识,那我就会在文章B里面引用文章A,这样读者可能就顺着去看文章A了。这样有必定的效果,有时候好久前写的文章会被点赞,就是这么来的。
我写了一段时间后,会有朋友给我留言,但愿转载到微信公众号,这种状况遇到几回后,我就在想,我为啥不本身弄个公众号,因而我就开通了一个公众号进击的大前端。据说微信公众号还能赚钱,说不定我还能赚点外快,到目前为止确实有一点点收入:
这个收入还真是一点点😜,主要是由于我运营比较佛系,发的内容主要是原创,粉丝很少,新增粉丝主要是文章后面的广告和其余号主转发带来的。广告我也只放了文末广告,文中广告都没放,怕影响用户体验。
有一段时间我也想过要不要大力运营,天天转发更新内容,可是天天发内容须要寻找稿子,审核稿子,也须要很多时间。而我目前的主要精力在学习和原创内容上,就没弄了,先佛系运营着吧。
本文总结和分享了我这一年从事技术写做的心得体会,对这一年进行了回顾,同时也但愿给想往这方面发展的朋友提供一个参考。下面再对内容进行一个简短总结:
写做内容能够是:
适度的推广是社区,读者和做者的三赢,可是推广的内容必定要是高质量的,否则可能会起反效果,通常推广手段有:
最后感谢各位读者的阅读,点赞!
感谢各位公众号号主的转发!
感谢掘金,思否,开源中国,博客园等平台的大力支持!
大家的支持一直是我持续创做的动力!
欢迎关注个人公众号进击的大前端第一时间获取高质量原创~
“前端进阶知识”系列文章源码地址: https://github.com/dennis-jiang/Front-End-Knowledges