1. 前言
笔者做前端开发这些年,几乎每天都会刷 GitHub,也时不时在上面分享博客和做一些开源项目,也算是 GitHub 的重度使用者了,其中也掌握了一定的技巧,并在一年内收获了 2000+ Star。
因为有读者问过我,想知道我在 GitHub 上做开源项目并获得 2000+ Star 的心得,所以笔者在此分享一下这过程的一些经验与心得,算是给那些关注了我的读者的福利。
2. 为什么要经营好你的 GitHub ?
GitHub 可以说是你的技术名片,你在 GitHub 的贡献可以作为简历的加分项。
据我所知,对于技术岗位,猎头在找候选人的诸多方法中,有一条就是通过 GitHub 来找技术比较好的候选人的,如果你的 GitHub 经营得很好,开源项目收获的 Star 比较多,一般都会为你提供一些好的机会。
为什么笔者知道 ?因为 ta 们找过笔者,所以我知道,哈哈哈。
而且如果某个公司的团队负责人看到你的 GitHub,觉得你的技术不错,也会给你抛来招揽的橄榄枝。这种情况,笔者也遇到过,哈哈哈。
笔者也是最近裸辞并换了工作,最近在找工作过程中,笔者知道了:想通过社招获得好工作或者进大厂,一般都要有如下 4 点中的 1 - 2 个亮点才行。
- 高学历,名校毕业
- 工作年限足,经验丰富(但不是 1 年经验当 5 年用那种)
- 有开源与影响力,GitHub 的贡献或者经常写优质博客
- 本身就有大厂的工作经历
大多数人都是普通人,平时所做工作几乎都是写业务而已,那么只有你具备 1 - 2 个亮点,HR 或者面试官 在筛选简历时,才会选中你,或者好机会才会自动找上你。
找工作时,我简历中的亮点就是 GitHub 的贡献,在开源与影响力的一栏中,我是这样写的:
开源与影响力
- GitHub: https://github.com/biaochenxuying 。
- 本人有 写技术博客和做开源项目 的习惯,乐于分享,坚持写博客和做开源项目的时间长达 一年半。
- 利用业余时间开源和维护了 10 个个人项目,有 博客文章、Vue 源码的思维导图、Vue 版的博客网站前台、React 管理后台、Express 后台、还有一些 js 轮子。
- GitHub 上总共收获 2000+ Star,500+ Fork ,570+ Followers;超过 100 star 的项目有 6 个,超过 500 star 的项目有 1 个。
如果没有这个亮点,估计在这互联网寒冬期间,笔者也很难有好公司的面试机会或者找到工作啊。
3. 如何经营好你的 GitHub ?
你能为他人提供什么样的价值。
想收获到很多小星星,那你首先要想的是:你能为他人提供什么样的价值。
就笔者来说,笔者在 GitHub 上为他人提供的价值有:
- 写的博客文章,他人可以从中吸取到 经验、知识点,或者思维得到提升;
- 把相关知识总结成思维导图,分享出来,他人可以直接学习;
- 把根据自己的兴趣,做了个博客网站,并把源码分享出来,并做了开源,别人可以直接用;
- 自己工作中造的一些轮子,也分享出来,他人可以直接用。
总之,原则就是:你能提供的价值越大越多,收获到的小星星就会越多。
3.1 写博客文章
至于为什么要写博客,我就不说了,很多大神已经写过了,可以参考一下几个大佬们写的 我为什么要写博客 ?
笔者只想说,只要你开始了写博客之路,那基本就是一条一去不回头的路了。因为笔者就是这样,而且我看到很多写博客的人也是这样。
还有就是最好用 markdown 语法来写作,也可以参考阮一峰写的 中文技术文档的写作规范,这样可以更加关注内容本身,而不是样式,多个平台也可以发布。
而且写作这是非常重要的一环,因为后面介绍的方法,多多少少都依赖于写作。
笔者专门在 GitHub 上创建了一个 blog 仓库来写文章的,也是目前笔者收获最多 Star 的开源项目,而且布局和风格什么的,都是比较正规的。如果你也想创建个仓库专门来写文章的,可以参考我这个 blog 项目。
3.2 做开源项目
可能你觉得自己的代码写的不好,没有什么流弊的功能,不敢开源代码之类的,这想法也没错,但你要知道,大神都是从小白过来的,每个人都有是小白的时候。
而且后来者从来都不缺,很多时候,你的分享主要是对那些后来者有用而已;更何况,比你厉害的人可能会指出你分享中的错误或者改进的地方,也是能促进你的进步的。
这个开源项目类型可以是很多种的,有造轮子的、写插件的、高仿某个 app 或者网站的、用某些技术写个通用模版的、总结知识做成思维导图的、提供某个功能的 等等。
虽然类型那么多,最主要的是:要根据自身的兴趣和平时日常工作来选择要做哪种类型的开源项目。
笔者因为平时有写博客,所以想做个自己的个人网站,专门来展示自己的文章的,而且当时想学习 react 和 node ,所以做了个网站的项目并开源了,包含 前台展示、管理后台、后台。
还有一些开源项目是笔者在工作中造的轮子或者插件(ps:如果是公司的机密项目的轮子、插件之类,又或者公司声明了不能把代码外传的,不要随意开源哦)。
我是这样想的:既然自己有这样的需求(比如:做个自己的个人网站需求),那么同理,其他人可能也有这个需求的,所以我做好功能并开源,对他人就可能有帮助。
我开源了之后,也的确给不少人提供了经验或者帮助,因为这个项目,笔者收获了很多的小星星。而且很多人是伸手党来的,你做好了,别人可以直接用,多方便啊。
还有一个项目就是 vue + typescript 版的博客前台展示,当时我已经写了一版 react 版的前台展示了,为什么还写一版 vue 版的呢 ?因为我想学习 typescirpt,所以想在结合 vue 来实践一下,而工作中还没用得上,所以又把我的网站前台展示用 vue + typescript 用了一版。
而且当时 typescript 加 vue 的开源项目还很少的,连相关的博客都少,我想参考一下别人的项目,但是没有啊,所以当时也踩了很多坑。所以我想:我如果开源了的话,肯定很多人会参考我这个项目的,也会带来一定的流量,所以能收获不少的 star 。也的确是这样,这个项目也是我目前的完整项目中最多 star 的一个。
有一点要注意的是:一个人的精力与业余时间是非常有限的。如果是一个人的话,做的开源项目不要太多吧,维护好一个开源项目是很需要时间的,维护多个项目所需要的时间就更多了。
你以为开源了就行了吗 ?太天真了。
那要写 README.md 来介绍你开源的项目的,比如一般要有如下内容:
- 简介:简单说明一下这个项目是干嘛的
- 结果:这个项目的代码达到了什么效果
- 步骤:怎么运行你这个项目,或者怎么使用你写的插件。
- 文章:详细讲解这个项目(可无,最好有)
有了这个 README.md 之后,别人一看到你的项目的 github 就知道这个项目的情况了。
3.3 硬核为王
以做好一个伟大的产品的心态来做开源项目。
做开源项目说白了就是做一个产品,我们要以做好一个产品的心态来做开源项目,这样你的产品质量才会更优,才会够硬核,也就是有料。
我做这个博客网站的时候是有这个意识的,做完第一版之后,也在不断的迭代和完善。
就我做成的成果来看,其实还不够硬核,因为还有一些优化的点和实用的功能的,只是我还没做。
目前,笔者比较遗憾的是:还没有一个达到 1000+ Star、甚至 10000+ Star 的硬核开源项目。以后技术更精进了,或者有好想法了,再开源一个好的开源项目吧。
我知道的一个比较硬核的开源项目是这个:支持自定义样式的 Markdown 编辑器,这个项目就是以一个产品的理念来做的,作者也在不断的迭代和完善。而且更新的速度很快,也很规范。
当然你也可以参考那些做得很出名的开源项目,毕竟做得那么成功,肯定有其原因。
3.4 时间与坚持
做开源项目是很需要时间的。
比如笔者做的博客网站项目就用了 2 个多月的业余时间来做,还好公司的正常的上班时间是 965 的,平时上班只需要 7 个钟,加班的情况比较少,所以业余时间比较多。
但利用业余时间做开源项目时,我的每天真实工作时间可以说是 9117 或者 907,因为晚上下班了,我都会用 2 - 3 个钟来做开源项目,周末的两天也是这样,而且周一到周五的中午吃完饭时,我也会挤出大概 30 - 40 分钟的时候来学习相关的技术,或者做开源项目。
这样习惯了大概两个月之后,终于把网站的第一版撸了出来。
所以时间很重要,没有时间你就做不出好的开源项目。
而且这是一直坚持的结果,如果中途觉得累了,可能就放弃了。
如果你问我难道不觉得累吗,其实我很少觉得累,因为是做自己喜欢的事,兴致比较高,再加上平时有锻炼身体,所以不累。
当然,如果你的工作时间是 996 的,可能没那么多时间了,最好是开源一些工作中开发好的插件或者特定功能的轮子之类的。
3.5 推广自己的项目
有才华很重要,让别人知道你的才华更重要。
酒好也怕巷子深。
当你做好你的开源项目之后,你以为就会有人给你小星星了,那你就太天真了。
想收获小星星,还要自己去技术社区推广的,不然没人知道你的项目,现在这个时代,流量为王,这一点对于开源项目也是一样的,人来了,了解到你的项目,才有可能给你小星星。
而且要推广就要脸皮厚,这叫做自我营销。
所以要写文章介绍你的开源项目,文章的要点主要是突出 效果与功能。
然后就是 宣传 了,到各大技术社区(比如:思否、掘金 等)去发布你的文章,达到引流的目的。
如果想知道怎么写推广的文章,可以参考我写的这两篇文章: react + node + express + ant + mongodb 的简洁兼时尚的博客网站 和 Vue + TypeScript + Element 项目实践(简洁时尚博客网站)及踩坑记。
4. 总结
笔者觉得想做好开源项目,最重要因素是兴趣,不然你可能中途就放弃了,很难坚持到把项目做完和做好。
有时候,有很强的功利心(比如 为了钱、为了名)也是好事,这可是你的一大助力,是可以推动你做完你想做的事的。
最后,要掌握 GitHub 吸星大法,先从写作开始,从现在开始。
推荐阅读:
GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目,估计很多人都不知道的技巧,甚至很多高级工程师都不知道。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。