筆者作前端開發這些年,幾乎天天都會刷 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 上能挖礦的神仙技巧 - 如何發現優秀開源項目,估計不少人都不知道的技巧,甚至不少高級工程師都不知道。