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