我和 HelloGitHub
我?
我是一個本科學歷、無大廠經(jīng)歷,普通的 Python 程序員。
雖然是計算機專業(yè),但是大學玩了四年(Dota)后,發(fā)現(xiàn)自己無一技能傍身,要餓死啦!偶然間接觸了 Python 這門編程語言,發(fā)現(xiàn)編程還能這么簡單!自學了幾個月,然后就光榮的成為了一名 Pythoner,終于能開始自己養(yǎng)活自己,那么下一步就希望用雙手實現(xiàn)自己天馬星空的想法。
當時我的編程能力,不制造 Bug 坑害別人就是萬幸了。談何實現(xiàn)自己的宏圖偉業(yè),索性就開始蒙頭‘打錢’、‘升級’。打’小boss‘卡住的時候,在網(wǎng)上求助,然后就發(fā)現(xiàn)很多大牛都在一個叫做 GitHub 的地方‘布道傳技’,本著看看不要錢的心態(tài),我注冊了賬號。
第一次見它的時候,絲毫沒有體會到它的魅力:‘語言不通’、‘高冷’、拒人千里之外。打了幾次照面之后,我開始慢慢地知道這個網(wǎng)站是干什么的,是一個開源項目分享(托管)的平臺,就是別人上傳自己的代碼給別人用,使用者也可以提交代碼幫這些項目修復(fù) bug。最開始的時候我只是在上面游蕩、瞎看,雖然很多東西我看不懂,但是我知道人以類聚、物以群分的道理。大牛混的平臺,沾沾光也是極好的。
就像看游戲視頻,看久了就會手癢,就想打兩把,然后我就照貓畫虎地學會了 Git。編程的東西就這點好,原理啥都不明白也能行,跟著教程一個字母一個字母的輸入完成,只要沒有抄錯,就能運行成功,達到你預(yù)想的結(jié)果。
當我能打開這個‘游戲’,不玩出個樣子,都對不起我之前學 Git 所花費的時間。然后我就開始往 GitHub 上傳自己寫的東西,都是簡單瑣碎的東西,比如:當時我在學 Python 我就把自己的 demo 代碼上傳上去,就算沒人看最起碼還能讓我熟悉 Git 的命令。然后每天都會花一些時間去瀏覽別人的項目,發(fā)現(xiàn)好的項目我就會收集起來。當時每天都處于兩眼冒光的狀態(tài):這個教程寫的真好、這個工具真炫、這個功能他怎么實現(xiàn)的、這個...這個...這個大牛的頭像真丑。
?? 你好,GitHub
HelloGitHub
此時的 GitHub 對我來說就是一個看著很好吃,但又是不知道從何處下口的蛋糕?,徒咽口水。
我在上面閑逛的過程中不知不覺,收集了 10 幾個自己覺得很好玩的項目。我就想會不會有人還不知道這些項目、會不會有人還沒發(fā)現(xiàn)這個讓人每天眼前一亮的平臺?再加上我記性不好,我得找個地方記下來,如果有幸我收集的項目幫助了和我一樣的小白,那真是 give me five ?。
本著上面的想法,2016 年 5 月,我在 GitHub 上面創(chuàng)建了 HelloGitHub 開源項目。它就是一個分享 GitHub 上入門、有趣的開源項目,沒有一行代碼。名字的含義就是:學習編程語言的輸出的第一句話一般都是 ‘Hello World’,Hello GitHub 就是希望新手可以從這里開始你的開源之旅,傳達開源對新手友好的信息。然后我提交了第一個 commit,發(fā)布了第一期月刊。
開始的時候 GitHub 上根本就沒人給我留言、star、更不知道有多少看了我的項目。一個月后我意外的收獲了差不多 20 個 star,我特別開心:“嗯,太好了。我寫的項目有人看和關(guān)注,搞起來。“
然后我每天就固定花 1 個小時逛 GitHub,晚上總結(jié)一些學習心得,然后發(fā)到我的博客(博客園)上。我特別感謝在我第一期月刊下面給我留言的小伙伴,他們對新手真的十分友好,都是鼓勵和點贊的。當然也有沖著我的美女頭像來的?,下面這個頭像是樸信惠,不是我!
就是這些鼓勵評論和 star,后來決定每個月 28 號發(fā)一期,因為不管是平年還是閏年,每個月都有 28 號,不給自己不發(fā)月刊找借口。下面這個截圖是博客園上面的一位讀者——馬三小伙兒[1],他從第一期開始幾乎每期都會來評論和支持 HelloGitHub 月刊,讓我一度以為他是機器人?
第一行代碼
寫完第 01 期,我覺得我應(yīng)該寫一個模版,開頭啊、結(jié)尾啊。好歹我也是個程序員,重復(fù)性的工作就應(yīng)該會用編程來解決。然后我就寫了個生成月刊內(nèi)容的腳本,其實就是開篇和結(jié)尾是固定的,每期的內(nèi)容我按照固定的格式編寫好,運行腳本生成最終的月刊。下面就是我的模版:
興趣是最好的老師,而《HelloGitHub》 就是幫你找到興趣! xxxx 簡介 最開始只是我自己瀏覽github過程中收集的一些有中文介紹,通俗易懂,簡單容易上手的項目。后來一想,如果每個github都有個簡單的效果圖,或者一些通俗易懂(中文的介紹)。這樣應(yīng)該更容易讓我這樣的新手接受。 所以,我就想做一個月刊的形式,面向新手的github月刊,月刊的內(nèi)容主要包括:中文項目、少許英文項目、翻譯的書籍以及教程。項目越容易上手越好,看起來越cool越好!主要是能動手用起來,我覺得這樣會有助于編程能力的提高。《HelloGithub月刊》這個項目就誕生了!? 內(nèi)容: bala 吧啦啦啦啦啦啦 聲明 xxx然后第 02 期開始就是用腳本生成的,當時我就覺得自己把自己給坑了。那個腳本太難用了,修改、調(diào)試腳本的時間比寫月刊的內(nèi)容還長?!但是自己的寫的程序,含著眼淚也要用。
自動收集項目腳本
就這樣堅持每個月更新,第 03 期更新了下月刊的模版,差不多也就是這個時候 star 數(shù)破百啦!?
慢慢的我發(fā)現(xiàn)自己看能懂的項目越來越多了,所以推薦的項目數(shù)量能維持在 10 個左右。后來有人也在文章下面留言給我推薦項目,但是處理起來不是很方便。
我就想通過 issues 來接受其他小伙伴發(fā)現(xiàn)的有趣的項目。我就增加了可以通過 issues 給我推薦項目,其實這個功能應(yīng)該是提 Bug 用的 ?。這是第一個通過 issues 給我推薦項目的人——zhbzz2007[2]:
但是推薦項目的還是很少,因為每期要推薦 10 個以上的項目。我每天都要花一部分時間去收集、整理項目,我想能不能每天匯總項目然后給我發(fā)郵件。這樣就不需要輪詢的去看 GitHub 首頁了(一方面也是工作上任務(wù)多了)。然后我就寫了一個每天匯總,我關(guān)注的大牛 star 的項目,然后發(fā)一封郵件給我。這樣我就又回復(fù)自由身了,可以摸魚了(低調(diào)、低調(diào))
第 05 期的時候,朋友幫我制作了第一個版的月刊封面:
第一年,我自己說的算的網(wǎng)站
不知不覺,維護 HelloGitHub 這個項目已經(jīng)到了第一個年頭,月刊也來到了第 12 期。項目的 star 數(shù)竟然破千了,我當時以為這個項目需要 2 年才能有 1k 個star,激動之余我開始頭疼以后項目該如何維護和編輯項目
因為當時數(shù)據(jù)的還是通過文檔維護,我有時都不知道自己新收集的項目,是不是之前推薦過。就在這時候,我程序猿的 Web 開發(fā)技能點亮了!當時我都是在別人搭建好的項目下,進行模塊開發(fā)。我工作中使用的 tornado,但是我沒有用它寫,我選用了我之前沒用的 Flask 框架。因為它夠小,那就說明我需要從頭開發(fā)一個 Web 項目,ORM 的選擇、中間件的選擇、項目的結(jié)構(gòu)等。
這個項目一方面為了我編輯項目方便,另一方面是為了讓我練習從頭開發(fā)一個 Web 網(wǎng)站。網(wǎng)站分前臺展示月刊,后臺編輯管理項目。我不知道打雞血是什么狀態(tài)和感覺,我就記得當時白天上班,晚上下班寫自己的網(wǎng)站,有的時候?qū)懼鴮懼犚娫绯康镍B叫了、有的時候一抬頭發(fā)現(xiàn)天亮了、還有的時候想功能和實現(xiàn)方法想的太興奮,導致睡不著覺,睡不著就爬起來寫代碼。
我發(fā)現(xiàn)自己真的熱愛寫代碼,寫自己的代碼。
我用了兩個星期左右,開發(fā)完了網(wǎng)站的功能。后端是 Flask + peewee,前端使用 jQuery + Flask 的 template(Jinja),CSS 寫的我快瘋了我是真的不會寫前端。
期間買了域名、服務(wù)器,當時是我去辦理備案的手續(xù),備份是要拍照的。拍照的時候我盡力憋著不讓自己笑出來,我以為拍完網(wǎng)站就能上線了。但是后來發(fā)現(xiàn)手續(xù)辦理速度還真沒有我發(fā)開的速度快。然后大約一個月的時間等待域名備案完成、部署服務(wù)器,我的網(wǎng)站于 2017 年 6 月 15 日 18:44 時上線了——?hellogithub.com[3]。我還和自己的網(wǎng)站拍了個合影紀念(我露臉了,就不放合影了),下面是我的網(wǎng)站第一版樣子:
上線后訪問寥寥無幾,可能部署在我的國外服務(wù)器上,訪問速度太慢了。我就遷移到了國內(nèi),又花了一筆銀子?。然后我就繼續(xù)出月刊,并在月刊中推廣我的網(wǎng)站。
小伙伴
再后來我就把網(wǎng)站的源碼開源到了 GitHub 上面,雖然代碼寫的很不好,但是也有一些人的鼓勵性質(zhì)的 star,讓我備受鼓舞。訪問量穩(wěn)健的上上升,從最開始只有我自己發(fā)刊用和 Debug,基本沒什么訪問量。到后來一個月能有近 1 萬的訪問量,讓然有一大部分還是機器人?,但我也是很開心的,最起碼有人訪問了。
因為我實在是不會寫前端,正好有人聯(lián)系我要一起做 HelloGitHub 這個網(wǎng)站。我們就一起開發(fā)了網(wǎng)站上的收藏功能,便于用戶的收集和查看。后來我忘了什么原因,他就退出不一起做了。
之后的一段時間項目每次發(fā)布,沒什么特別多的關(guān)注度,處于平穩(wěn)上升的階段。這個時候我也一度想放棄,覺得有些無趣。其實對于開源項目的維護者來說,使用者、關(guān)注的反饋真的是特別重要的,這些反饋能證明他的努力沒有白費。
當時我就給自己猛灌雞湯:現(xiàn)在已經(jīng)開發(fā)了自己的網(wǎng)站,我不想自己寫的東西沒人用。而且已經(jīng)一部分人關(guān)注了我的項目比如:馬三同學,我不能就這樣‘太監(jiān)了’,我得堅持做下去,能做一期是一期吧。而且我研究下當下很流行的開源項目,大多數(shù)都是一點一滴做起來的,有做 5 年、10 年的才可能被大家認可、熟知和使用。他們最初都是默默無聞的在做,就像維護自己的小菜園。終有開花結(jié)果的時候,就算是結(jié)出的果實很小,沒有‘買’來的品相好、個頭大,但是這種味道是‘買’不來的。
可能做開源最難的是堅持吧!
尋求改變,才能激發(fā)斗志。我之前一直是被動招募專欄負責人,后來一個偶然的機會我看到這個貨[4]?的博客。我覺得他一定是個前端大牛,我要把他拉來拯救我,讓我不再寫前端。后來他就成為了 HG 的第一位專欄負責人,負責 JS 專欄 —— 小猴,我們一起出刊、想各種方法提高我們的項目知名度、頭腦風暴。
每當我和朋友聊起 HelloGitHub 這個項目,我都會告訴別人小猴是一個對我、對這個項目很重要的人,我們榮辱與共。當然還有雷神這個老發(fā)“給大佬端茶”表情的大佬負責 Go 專欄,他就跟他的微信頭像一樣‘猥瑣’。
當然還有我們的的設(shè)計師遠哥,他設(shè)計了 HelloGitHub 的 logo,專業(yè)的就是不一樣:
我們一起讓 HelloGitHub 重新恢復(fù)了活力和繼續(xù)前進的力量。
人一生都在路上,有的人走著走著就走散了。有的人走著走著就并肩作戰(zhàn)了。
第二年,信心滿滿
真是應(yīng)證了那句:“人多力量大” 的口號,基于我們一直堅持不斷的出刊、并在保證質(zhì)量的情況下更多的推薦項目、各位專欄負責人的加入使得項目內(nèi)容更加豐富。
從而 HelloGitHub 迎來了第一個迅猛的增長和大量的關(guān)注。截止 2018 年 3 月 HelloGitHub 兩周年的時候,項目的 star 數(shù)增長了 3k。連續(xù) 3 天 GitHub 趨勢首頁、Python 分類名列前茅;一天飆升 300 stars,我的整個首頁都被 star 信息填滿,往下滑了好幾頁;HelloGitHub 項目共有 4k 的 stars、《HelloGitHub》月刊系列博文共 4萬 閱讀量;
在 17 年底的時候,這段時間我工作上遇到了很多的挑戰(zhàn)。我們需要重構(gòu)一個很老的項目,老的項目代碼真的很爛、沒有文檔、近 6 萬行。我負責的那部分,還有 Java 的項目重構(gòu)為 Python 項目,當時我連 Java 的基本語法都記不全,但是最終我們(最后就兩個人了)把這個項目啃完了。
當時我才真正的意識到,在做 HelloGitHub 項目時,我的那些能力得到了提升:在篩選項目的時候,我閱讀代碼的能力得到了很大程度地提高、對項目的結(jié)構(gòu)和理解能力提升特別多、編碼和動手能力、學習新技術(shù)的能力、讓我對源碼沒有了恐懼,我還能通過閱讀源碼找出使用的第三方庫導致的問題和解決辦法。這些都是我在收集項目和開發(fā)網(wǎng)站中一點一滴積累起來的,然后在工作中受益匪淺,能夠委以重任。
不積跬步,無以至千里。
第三年,新的高度,重新起航
這一年加入了很多新的小伙伴[5]:喜斌、小飛、小季、小豬蹄、阿龍,負責相應(yīng)專欄的項目篩選和 issues 管理。制定了推薦項目的審核標準、專欄合刊的整個流程。開了知乎專欄[6],歷史內(nèi)容遷移到了專欄,新內(nèi)容也會同步上去。
隨著用戶的增多,我也希望能夠給用戶更好的閱讀體驗。然后網(wǎng)站的功能增加了:搜索、公告欄、RSS、語言排行榜、數(shù)據(jù)庫排行榜、服務(wù)器排行榜、API 接口服務(wù),現(xiàn)在每個月能有近 10 萬的 PV。
與 D2 開源組織合作開發(fā)了推薦項目的?chrome 插件[7],相互取長補短,共同進步。每期同步推薦到阮一峰老師的周刊,但是收錄不收錄要看老師的心情?。
基于上述的努力和合作組織的推薦 HelloGitHub 項目也迎來了高光時刻和斷崖式成長,這一年增了 8k star,成為了 10000 星項目:
我在創(chuàng)建這個項目的時候根本沒想過它會有今天的成就,這只是個推薦 GitHub 上入門、有趣的開源項目的開源項目,我最初為了方便自己收集有趣、看的懂的項目的想法,做到現(xiàn)在的樣子。于此同時 HelloGitHub 也時刻在督促我不斷的成長、用程序解決效率問題。
在這個過程中,我更加深刻的體會到編程是用來解決實際問題的解決方式,它會讓工作流程更加順暢和便捷。
對,是我創(chuàng)建了這個萬星的項目 HelloGitHub,但我就是個只會 Python、本科學歷、無大廠經(jīng)驗的普通程序員。做開源項目不難,我這種普通的程序員都可以,你當然也能行!我們 HelloGitHub 還在路上,加入我們[8]或者開啟自己的項目。
種一棵樹最好的時間是十年前,其次就是現(xiàn)在。
未來
我們希望 HelloGitHub 項目未來能夠成為開源項目發(fā)起者和使用者的溝通的橋梁,后續(xù)會增加月刊讀者的溝通和互動。同時讓更多人知道 HelloGitHub 項目,讓開源的信息更方便的傳遞到程序員的手中。
讓走在開源路上的開發(fā)者不再孤單,讓想進入開源世界的人不再畏懼。
這是我們 HelloGitHub-Team 的愿景和努力的方向,只要前進就會攀登到更高的高峰,看到更美的景色。中途會遇到種種困難和走錯的彎路,但畏懼不能讓人成長。加入開源的世界,你一定會變強,而且每天都會有發(fā)現(xiàn)新大陸的感覺。
路漫漫其修遠兮,吾等將上下而求索。
最后
這就是我和 HelloGitHub 的故事,未完待續(xù)。。。(下次不知道幾年后才會更新,所以需要掃描下面的二維碼關(guān)注 HelloGitHub 的最新動態(tài)和文章,掃描它和我們并肩前行?)
每一個關(guān)注、留言、轉(zhuǎn)載、點贊都是對我們最大的鼓勵和肯定!
鳴謝
感謝 GitHub 上面的貢獻者和項目發(fā)起者們,你們讓世界更美好。
感謝給 HG 推薦項目的小伙伴,貢獻者列表[9],你們讓優(yōu)秀的項目被更多人所發(fā)現(xiàn)。
感謝每期月刊下面的評論、點贊、star、轉(zhuǎn)發(fā)的小伙伴,你們是 HelloGitHub 維護下去的動力。
最后,下面的平臺記錄了 HelloGitHub 成長的每一個階段。特別感謝 GitHub、博客園、掘金、即刻、V2EX 這些平臺,提供了優(yōu)秀的程序員社區(qū)和交流平臺,讓 HG 能夠在平臺的基礎(chǔ)上得到了更多的曝光,幫助了更多的人。
?GitHub[10]?博客園[11]?掘金[12]?即刻[13]?V2EX[14]?微博[15]
References
[1]?馬三小伙兒:?https://www.cnblogs.com/msxh/
[2]?zhbzz2007:?https://github.com/zhbzz2007
[3]?hellogithub.com:?https://hellogithub.com
[4]?這個貨:?https://github.com/ming995
[5]?小伙伴:?https://github.com/521xueweihan/HelloGitHub/blob/master/content/contributors.md
[6]?知乎專欄:?https://zhuanlan.zhihu.com/hellogithub
[7]?chrome 插件:?https://www.fairyever.com/posts/d2-daily-chrome-extension/
[8]?加入我們:?https://hellogithub.com/weixin.png
[9]?貢獻者列表:?https://github.com/521xueweihan/HelloGitHub/blob/master/content/contributors.md
[10]?GitHub:?https://github.com/521xueweihan
[11]?博客園:?https://www.cnblogs.com/xueweihan/
[12]?掘金:?https://juejin.im/user/5677785f60b2298f122fe889
[13]?即刻:?https://m.okjike.com/users/ff31a838-6eb9-440d-9970-dabc5b2c0309?ref=PROFILE_CARD&source_username=ff31a838-6eb9-440d-9970-dabc5b2c0309&utm_source=profile_card
[14]?V2EX:?https://www.v2ex.com/member/xueweihan
[15]?微博:?https://weibo.com/hellogithub
?
總結(jié)
以上是生活随笔為你收集整理的我和 HelloGitHub的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bambook 网页内容下载器
- 下一篇: STK卡