天天看點

我和 HelloGitHub

我和 HelloGitHub

我是一個大學學曆、無大廠經曆,普通的 Python 程式員。

雖然是計算機專業,但是大學玩了四年(Dota)後,發現自己無一技能傍身,要餓死啦!偶然間接觸了 Python 這門程式設計語言,發現程式設計還能這麼簡單!自學了幾個月,然後就光榮的成為了一名 Pythoner,終于能開始自己養活自己,那麼下一步就希望用雙手實作自己天馬星空的想法。

當時我的程式設計能力,不制造 Bug 坑害别人就是萬幸了。談何實作自己的宏圖偉業,索性就開始蒙頭‘打錢’、‘更新’。打’小boss‘卡住的時候,在網上求助,然後就發現很多大牛都在一個叫做 GitHub 的地方‘布道傳技’,本着看看不要錢的心态,我注冊了賬号。

第一次見它的時候,絲毫沒有體會到它的魅力:‘語言不通’、‘高冷’、拒人千裡之外。打了幾次照面之後,我開始慢慢地知道這個網站是幹什麼的,是一個開源項目分享(托管)的平台,就是别人上傳自己的代碼給别人用,使用者也可以送出代碼幫這些項目修複 bug。最開始的時候我隻是在上面遊蕩、瞎看,雖然很多東西我看不懂,但是我知道人以類聚、物以群分的道理。大牛混的平台,沾沾光也是極好的。

就像看遊戲視訊,看久了就會手癢,就想打兩把,然後我就照貓畫虎地學會了 Git。程式設計的東西就這點好,原理啥都不明白也能行,跟着教程一個字母一個字母的輸入完成,隻要沒有抄錯,就能運作成功,達到你預想的結果。

當我能打開這個‘遊戲’,不玩出個樣子,都對不起我之前學 Git 所花費的時間。然後我就開始往 GitHub 上傳自己寫的東西,都是簡單瑣碎的東西,比如:當時我在學 Python 我就把自己的 demo 代碼上傳上去,就算沒人看最起碼還能讓我熟悉 Git 的指令。然後每天都會花一些時間去浏覽别人的項目,發現好的項目我就會收集起來。當時每天都處于兩眼冒光的狀态:這個教程寫的真好、這個工具真炫、這個功能他怎麼實作的、這個...這個...這個大牛的頭像真醜。

👶🏻 你好,GitHub

此時的 GitHub 對我來說就是一個看着很好吃,但又是不知道從何處下口的蛋糕🍰,徒咽口水。

我在上面閑逛的過程中不知不覺,收集了 10 幾個自己覺得很好玩的項目。我就想會不會有人還不知道這些項目、會不會有人還沒發現這個讓人每天眼前一亮的平台?再加上我記性不好,我得找個地方記下來,如果有幸我收集的項目幫助了和我一樣的小白,那真是 give me five ✋。

本着上面的想法,2016 年 5 月,我在 GitHub 上面建立了 HelloGitHub 開源項目。它就是一個分享 GitHub 上入門、有趣的開源項目,沒有一行代碼。名字的含義就是:學習程式設計語言的輸出的第一句話一般都是 ‘Hello World’,Hello GitHub 就是希望新手可以從這裡開始你的開源之旅,傳達開源對新手友好的資訊。

然後我送出了第一個 commit,釋出了第一期月刊。

我和 HelloGitHub

開始的時候 GitHub 上根本就沒人給我留言、star、更不知道有多少看了我的項目。一個月後我意外的收獲了差不多 20 個 star,我特别開心:“嗯,太好了。我寫的項目有人看和關注,搞起來。“

我和 HelloGitHub

然後我每天就固定花 1 個小時逛 GitHub,晚上總結一些學習心得,然後發到我的部落格(部落格園)上。我特别感謝在我第一期月刊下面給我留言的小夥伴,他們對新手真的十分友好,都是鼓勵和點贊的。當然也有沖着我的美女頭像來的🙈,下面這個頭像是樸信惠,不是我!

我和 HelloGitHub

就是這些鼓勵評論和 star,後來決定每個月 28 号發一期,因為不管是平年還是閏年,每個月都有 28 号,不給自己不發月刊找借口。下面這個截圖是部落格園上面的一位讀者——馬三小夥兒,他從第一期開始幾乎每期都會來評論和支援 HelloGitHub 月刊,讓我一度以為他是機器人🤪

我和 HelloGitHub

寫完第 01 期,我覺得我應該寫一個模版,開頭啊、結尾啊。好歹我也是個程式員,重複性的工作就應該會用程式設計來解決。然後我就寫了個生成月刊内容的腳本,其實就是開篇和結尾是固定的,每期的内容我按照固定的格式編寫好,運作腳本生成最終的月刊。下面就是我的模版:

然後第 02 期開始就是用腳本生成的,當時我就覺得自己把自己給坑了。那個腳本太難用了,修改、調試腳本的時間比寫月刊的内容還長😢!但是自己的寫的程式,含着眼淚也要用。

就這樣堅持每個月更新,第 03 期更新了下月刊的模版,差不多也就是這個時候 star 數破百啦!🤩

我和 HelloGitHub

慢慢的我發現自己看能懂的項目越來越多了,是以推薦的項目數量能維持在 10 個左右。後來有人也在文章下面留言給我推薦項目,但是處理起來不是很友善。

我就想通過 issues 來接受其他小夥伴發現的有趣的項目。我就增加了可以通過 issues 給我推薦項目,其實這個功能應該是提 Bug 用的 😂。這是第一個通過 issues 給我推薦項目的人——zhbzz2007:

我和 HelloGitHub

但是推薦項目的還是很少,因為每期要推薦 10 個以上的項目。我每天都要花一部分時間去收集、整理項目,我想能不能每天彙總項目然後給我發郵件。這樣就不需要輪詢的去看 GitHub 首頁了(一方面也是工作上任務多了)。然後我就寫了一個每天彙總,我關注的大牛 star 的項目,然後發一封郵件給我。這樣我就又回複自由身了,可以摸魚了(低調、低調)

第 05 期的時候,朋友幫我制作了第一個版的月刊封面:

我和 HelloGitHub

不知不覺,維護 HelloGitHub 這個項目已經到了第一個年頭,月刊也來到了第 12 期。項目的 star 數竟然破千了,我當時以為這個項目需要 2 年才能有 1k 個star,激動之餘我開始頭疼以後項目該如何維護和編輯項目

我和 HelloGitHub

因為當時資料的還是通過文檔維護,我有時都不知道自己新收集的項目,是不是之前推薦過。就在這時候,我程式猿的 Web 開發技能點亮了!當時我都是在别人搭建好的項目下,進行子產品開發。我工作中使用的 tornado,但是我沒有用它寫,我選用了我之前沒用的 Flask 架構。因為它夠小,那就說明我需要從頭開發一個 Web 項目,ORM 的選擇、中間件的選擇、項目的結構等。

這個項目一方面為了我編輯項目友善,另一方面是為了讓我練習從頭開發一個 Web 網站。網站分前台展示月刊,背景編輯管理項目。我不知道打雞血是什麼狀态和感覺,我就記得當時白天上班,晚上下班寫自己的網站,有的時候寫着寫着聽見早晨的鳥叫了、有的時候一擡頭發現天亮了、還有的時候想功能和實作方法想的太興奮,導緻睡不着覺,睡不着就爬起來寫代碼。

我發現自己真的熱愛寫代碼,寫自己的代碼。

我用了兩個星期左右,開發完了網站的功能。後端是 Flask + peewee,前端使用 jQuery + Flask 的 template(Jinja),CSS 寫的我快瘋了我是真的不會寫前端。

期間買了域名、伺服器,當時是我去辦理備案的手續,備份是要拍照的。拍照的時候我盡力憋着不讓自己笑出來,我以為拍完網站就能上線了。但是後來發現手續辦理速度還真沒有我發開的速度快。然後大約一個月的時間等待域名備案完成、部署伺服器,我的網站于 2017 年 6 月 15 日 18:44 時上線了—— hellogithub.com。我還和自己的網站拍了個合影紀念(我露臉了,就不放合影了),下面是我的網站第一版樣子:

我和 HelloGitHub

上線後通路寥寥無幾,可能部署在我的國外伺服器上,通路速度太慢了。我就遷移到了國内,又花了一筆銀子💰。然後我就繼續出月刊,并在月刊中推廣我的網站。

再後來我就把網站的源碼開源到了 GitHub 上面,雖然代碼寫的很不好,但是也有一些人的鼓勵性質的 star,讓我備受鼓舞。通路量穩健的上上升,從最開始隻有我自己發刊用和 Debug,基本沒什麼通路量。到後來一個月能有近 1 萬的通路量,讓然有一大部分還是機器人😄,但我也是很開心的,最起碼有人通路了。

因為我實在是不會寫前端,正好有人聯系我要一起做 HelloGitHub 這個網站。我們就一起開發了網站上的收藏功能,便于使用者的收集和檢視。後來我忘了什麼原因,他就退出不一起做了。

之後的一段時間項目每次釋出,沒什麼特别多的關注度,處于平穩上升的階段。這個時候我也一度想放棄,覺得有些無趣。其實對于開源項目的維護者來說,使用者、關注的回報真的是特别重要的,這些回報能證明他的努力沒有白費。

當時我就給自己猛灌雞湯:現在已經開發了自己的網站,我不想自己寫的東西沒人用。而且已經一部分人關注了我的項目比如:馬三同學,我不能就這樣‘太監了’,我得堅持做下去,能做一期是一期吧。而且我研究下當下很流行的開源項目,大多數都是一點一滴做起來的,有做 5 年、10 年的才可能被大家認可、熟知和使用。他們最初都是默默無聞的在做,就像維護自己的小菜園。終有開花結果的時候,就算是結出的果實很小,沒有‘買’來的品相好、個頭大,但是這種味道是‘買’不來的。

可能做開源最難的是堅持吧!

尋求改變,才能激發鬥志。我之前一直是被動招募專欄負責人,後來一個偶然的機會我看到這個貨 的部落格。我覺得他一定是個前端大牛,我要把他拉來拯救我,讓我不再寫前端。後來他就成為了 HG 的第一位專欄負責人,負責 JS 專欄 —— 小猴,我們一起出刊、想各種方法提高我們的項目知名度、頭腦風暴。

每當我和朋友聊起 HelloGitHub 這個項目,我都會告訴别人小猴是一個對我、對這個項目很重要的人,我們榮辱與共。當然還有雷神這個老發“給大佬端茶”表情的大佬負責 Go 專欄,他就跟他的微信頭像一樣‘猥瑣’。

當然還有我們的的設計師遠哥,他設計了 HelloGitHub 的 logo,專業的就是不一樣:

我和 HelloGitHub

我們一起讓 HelloGitHub 重新恢複了活力和繼續前進的力量。

人一生都在路上,有的人走着走着就走散了。有的人走着走着就并肩作戰了。

真是應證了那句:“人多力量大” 的口号,基于我們一直堅持不斷的出刊、并在保證品質的情況下更多的推薦項目、各位專欄負責人的加入使得項目内容更加豐富。

進而 HelloGitHub 迎來了第一個迅猛的增長和大量的關注。截止 2018 年 3 月 HelloGitHub 兩周年的時候,項目的 star 數增長了 3k。連續 3 天 GitHub 趨勢首頁、Python 分類名列前茅;一天飙升 300 stars,我的整個首頁都被 star 資訊填滿,往下滑了好幾頁;HelloGitHub 項目共有 4k 的 stars、《HelloGitHub》月刊系列博文共 4萬 閱讀量;

我和 HelloGitHub

在 17 年底的時候,這段時間我工作上遇到了很多的挑戰。我們需要重構一個很老的項目,老的項目代碼真的很爛、沒有文檔、近 6 萬行。我負責的那部分,還有 Java 的項目重構為 Python 項目,當時我連 Java 的基本文法都記不全,但是最終我們(最後就兩個人了)把這個項目啃完了。

當時我才真正的意識到,在做 HelloGitHub 項目時,我的那些能力得到了提升:在篩選項目的時候,我閱讀代碼的能力得到了很大程度地提高、對項目的結構和了解能力提升特别多、編碼和動手能力、學習新技術的能力、讓我對源碼沒有了恐懼,我還能通過閱讀源碼找出使用的第三方庫導緻的問題和解決辦法。這些都是我在收集項目和開發網站中一點一滴積累起來的,然後在工作中受益匪淺,能夠委以重任。

不積跬步,無以至千裡。

這一年加入了很多新的小夥伴:喜斌、小飛、小季、小豬腳、阿龍,負責相應專欄的項目篩選和 issues 管理。制定了推薦項目的稽核标準、專欄合刊的整個流程。開了知乎專欄,曆史内容遷移到了專欄,新内容也會同步上去。

随着使用者的增多,我也希望能夠給使用者更好的閱讀體驗。然後網站的功能增加了:搜尋、公告欄、RSS、語言排行榜、資料庫排行榜、伺服器排行榜、API 接口服務,現在每個月能有近 10 萬的 PV。

與 D2 開源組織合作開發了推薦項目的 chrome 插件,互相取長補短,共同進步。每期同步推薦到阮一峰老師的周刊,但是收錄不收錄要看老師的心情😅。

基于上述的努力和合作組織的推薦 HelloGitHub 項目也迎來了高光時刻和斷崖式成長,這一年增了 8k star,成為了 10000 星項目:

我和 HelloGitHub

我在建立這個項目的時候根本沒想過它會有今天的成就,這隻是個推薦 GitHub 上入門、有趣的開源項目的開源項目,我最初為了友善自己收集有趣、看的懂的項目的想法,做到現在的樣子。于此同時 HelloGitHub 也時刻在督促我不斷的成長、用程式解決效率問題。

在這個過程中,我更加深刻的體會到程式設計是用來解決實際問題的解決方式,它會讓工作流程更加順暢和便捷。

對,是我建立了這個萬星的項目 HelloGitHub,但我就是個隻會 Python、大學學曆、無大廠經驗的普通程式員。做開源項目不難,我這種普通的程式員都可以,你當然也能行!我們 HelloGitHub 還在路上,加入我們或者開啟自己的項目。

種一棵樹最好的時間是十年前,其次就是現在。
我和 HelloGitHub

我們希望 HelloGitHub 項目未來能夠成為開源項目發起者和使用者的溝通的橋梁,後續會增加月刊讀者的溝通和互動。同時讓更多人知道 HelloGitHub 項目,讓開源的資訊更友善的傳遞到程式員的手中。

讓走在開源路上的開發者不再孤單,讓想進入開源世界的人不再畏懼。

這是我們 HelloGitHub-Team 的願景和努力的方向,隻要前進就會攀登到更高的高峰,看到更美的景色。中途會遇到種種困難和走錯的彎路,但畏懼不能讓人成長。加入開源的世界,你一定會變強,而且每天都會有發現新大陸的感覺。

路漫漫其修遠兮,吾等将上下而求索。

這就是我和 HelloGitHub 的故事,未完待續。。。(下次不知道幾年後才會更新,是以需要掃描下面的二維碼關注 HelloGitHub 的最新動态和文章,掃描它和我們并肩前行😁)

我和 HelloGitHub

每一個關注、留言、轉載、點贊都是對我們最大的鼓勵和肯定!

感謝 GitHub 上面的貢獻者和項目發起者們,你們讓世界更美好。

感謝給 HG 推薦項目的小夥伴,貢獻者清單,你們讓優秀的項目被更多人所發現。

感謝每期月刊下面的評論、點贊、star、轉發的小夥伴,你們是 HelloGitHub 維護下去的動力。

最後,下面的平台記錄了 HelloGitHub 成長的每一個階段。特别感謝 GitHub、部落格園、掘金、即刻、V2EX 這些平台,提供了優秀的程式員社群和交流平台,讓 HG 能夠在平台的基礎上得到了更多的曝光,幫助了更多的人。

GitHub

部落格園

掘金

即刻

V2EX

微網誌

作者:削微寒

掃描左側的二維碼可以聯系到我

我和 HelloGitHub

本作品采用署名-非商業性使用-禁止演繹 4.0 國際 進行許可。