25

我和 HelloGitHub - 削微寒

 5 years ago
source link: https://www.cnblogs.com/xueweihan/p/11049956.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我和 HelloGitHub

759200-20190619095342033-1020323333.png

我是一个本科学历、无大厂经历,普通的 Python 程序员。

虽然是计算机专业,但是大学玩了四年(Dota)后,发现自己无一技能傍身,要饿死啦!偶然间接触了 Python 这门编程语言,发现编程还能这么简单!自学了几个月,然后就光荣的成为了一名 Pythoner,终于能开始自己养活自己,那么下一步就希望用双手实现自己天马星空的想法

当时我的编程能力,不制造 Bug 坑害别人就是万幸了。谈何实现自己的宏图伟业,索性就开始蒙头‘打钱’、‘升级’。打’小boss‘卡住的时候,在网上求助,然后就发现很多大牛都在一个叫做 GitHub 的地方‘布道传技’,本着看看不要钱的心态,我注册了账号。

第一次见它的时候,丝毫没有体会到它的魅力:‘语言不通’、‘高冷’、拒人千里之外。打了几次照面之后,我开始慢慢地知道这个网站是干什么的,是一个开源项目分享(托管)的平台,就是别人上传自己的代码给别人用,使用者也可以提交代码帮这些项目修复 bug。最开始的时候我只是在上面游荡、瞎看,虽然很多东西我看不懂,但是我知道人以类聚、物以群分的道理。大牛混的平台,沾沾光也是极好的。

就像看游戏视频,看久了就会手痒,就想打两把,然后我就照猫画虎地学会了 Git。编程的东西就这点好,原理啥都不明白也能行,跟着教程一个字母一个字母的输入完成,只要没有抄错,就能运行成功,达到你预想的结果。

当我能打开这个‘游戏’,不玩出个样子,都对不起我之前学 Git 所花费的时间。然后我就开始往 GitHub 上传自己写的东西,都是简单琐碎的东西,比如:当时我在学 Python 我就把自己的 demo 代码上传上去,就算没人看最起码还能让我熟悉 Git 的命令。然后每天都会花一些时间去浏览别人的项目,发现好的项目我就会收集起来。当时每天都处于两眼冒光的状态:这个教程写的真好、这个工具真炫、这个功能他怎么实现的、这个...这个...这个大牛的头像真丑。

👶🏻 你好,GitHub

HelloGitHub

此时的 GitHub 对我来说就是一个看着很好吃,但又是不知道从何处下口的蛋糕🍰,徒咽口水。

我在上面闲逛的过程中不知不觉,收集了 10 几个自己觉得很好玩的项目。我就想会不会有人还不知道这些项目、会不会有人还没发现这个让人每天眼前一亮的平台?再加上我记性不好,我得找个地方记下来,如果有幸我收集的项目帮助了和我一样的小白,那真是 give me five ✋。

本着上面的想法,2016 年 5 月,我在 GitHub 上面创建了 HelloGitHub 开源项目。它就是一个分享 GitHub 上入门、有趣的开源项目,没有一行代码。名字的含义就是:学习编程语言的输出的第一句话一般都是 ‘Hello World’,Hello GitHub 就是希望新手可以从这里开始你的开源之旅,传达开源对新手友好的信息。

然后我提交了第一个 commit,发布了第一期月刊。

759200-20190619095420527-400494164.png

开始的时候 GitHub 上根本就没人给我留言、star、更不知道有多少看了我的项目。一个月后我意外的收获了差不多 20 个 star,我特别开心:“嗯,太好了。我写的项目有人看和关注,搞起来。“

759200-20190619095436820-647692351.png

然后我每天就固定花 1 个小时逛 GitHub,晚上总结一些学习心得,然后发到我的博客(博客园)上。我特别感谢在我第一期月刊下面给我留言的小伙伴,他们对新手真的十分友好,都是鼓励和点赞的。当然也有冲着我的美女头像来的🙈,下面这个头像是朴信惠,不是我!

759200-20190619095445660-548374536.jpg

就是这些鼓励评论和 star,后来决定每个月 28 号发一期,因为不管是平年还是闰年,每个月都有 28 号,不给自己不发月刊找借口。下面这个截图是博客园上面的一位读者——马三小伙儿,他从第一期开始几乎每期都会来评论和支持 HelloGitHub 月刊,让我一度以为他是机器人🤪

759200-20190619095455062-992493360.png

第一行代码

写完第 01 期,我觉得我应该写一个模版,开头啊、结尾啊。好歹我也是个程序员,重复性的工作就应该会用编程来解决。然后我就写了个生成月刊内容的脚本,其实就是开篇和结尾是固定的,每期的内容我按照固定的格式编写好,运行脚本生成最终的月刊。下面就是我的模版:

兴趣是最好的老师,而《HelloGitHub》 就是帮你找到兴趣!
xxxx

简介
最开始只是我自己浏览github过程中收集的一些有中文介绍,通俗易懂,简单容易上手的项目。后来一想,如果每个github都有个简单的效果图,或者一些通俗易懂(中文的介绍)。这样应该更容易让我这样的新手接受。

所以,我就想做一个月刊的形式,面向新手的github月刊,月刊的内容主要包括:中文项目、少许英文项目、翻译的书籍以及教程。项目越容易上手越好,看起来越cool越好!主要是能动手用起来,我觉得这样会有助于编程能力的提高。《HelloGithub月刊》这个项目就诞生了!😄

内容:
bala 吧啦啦啦啦啦啦

声明
xxx

然后第 02 期开始就是用脚本生成的,当时我就觉得自己把自己给坑了。那个脚本太难用了,修改、调试脚本的时间比写月刊的内容还长😢!但是自己的写的程序,含着眼泪也要用。

自动收集项目脚本

就这样坚持每个月更新,第 03 期更新了下月刊的模版,差不多也就是这个时候 star 数破百啦!🤩

759200-20190619095508807-319448032.png

慢慢的我发现自己看能懂的项目越来越多了,所以推荐的项目数量能维持在 10 个左右。后来有人也在文章下面留言给我推荐项目,但是处理起来不是很方便。

我就想通过 issues 来接受其他小伙伴发现的有趣的项目。我就增加了可以通过 issues 给我推荐项目,其实这个功能应该是提 Bug 用的 😂。这是第一个通过 issues 给我推荐项目的人——zhbzz2007

759200-20190619095517031-1277260782.png

但是推荐项目的还是很少,因为每期要推荐 10 个以上的项目。我每天都要花一部分时间去收集、整理项目,我想能不能每天汇总项目然后给我发邮件。这样就不需要轮询的去看 GitHub 首页了(一方面也是工作上任务多了)。然后我就写了一个每天汇总,我关注的大牛 star 的项目,然后发一封邮件给我。这样我就又回复自由身了,可以摸鱼了(低调、低调)

第 05 期的时候,朋友帮我制作了第一个版的月刊封面:

759200-20190619104013548-1733331798.jpg

第一年,我自己说的算的网站

不知不觉,维护 HelloGitHub 这个项目已经到了第一个年头,月刊也来到了第 12 期。项目的 star 数竟然破千了,我当时以为这个项目需要 2 年才能有 1k 个star,激动之余我开始头疼以后项目该如何维护和编辑项目

759200-20190619105126012-909968189.png

因为当时数据的还是通过文档维护,我有时都不知道自己新收集的项目,是不是之前推荐过。就在这时候,我程序猿的 Web 开发技能点亮了!当时我都是在别人搭建好的项目下,进行模块开发。我工作中使用的 tornado,但是我没有用它写,我选用了我之前没用的 Flask 框架。因为它够小,那就说明我需要从头开发一个 Web 项目,ORM 的选择、中间件的选择、项目的结构等。

这个项目一方面为了我编辑项目方便,另一方面是为了让我练习从头开发一个 Web 网站。网站分前台展示月刊,后台编辑管理项目。我不知道打鸡血是什么状态和感觉,我就记得当时白天上班,晚上下班写自己的网站,有的时候写着写着听见早晨的鸟叫了、有的时候一抬头发现天亮了、还有的时候想功能和实现方法想的太兴奋,导致睡不着觉,睡不着就爬起来写代码。

我发现自己真的热爱写代码,写自己的代码。

我用了两个星期左右,开发完了网站的功能。后端是 Flask + peewee,前端使用 jQuery + Flask 的 template(Jinja),CSS 写的我快疯了我是真的不会写前端。

期间买了域名、服务器,当时是我去办理备案的手续,备份是要拍照的。拍照的时候我尽力憋着不让自己笑出来,我以为拍完网站就能上线了。但是后来发现手续办理速度还真没有我发开的速度快。然后大约一个月的时间等待域名备案完成、部署服务器,我的网站于 2017 年 6 月 15 日 18:44 时上线了—— hellogithub.com。我还和自己的网站拍了个合影纪念(我露脸了,就不放合影了),下面是我的网站第一版样子:

759200-20190619104053090-1137082032.gif

上线后访问寥寥无几,可能部署在我的国外服务器上,访问速度太慢了。我就迁移到了国内,又花了一笔银子💰。然后我就继续出月刊,并在月刊中推广我的网站。

再后来我就把网站的源码开源到了 GitHub 上面,虽然代码写的很不好,但是也有一些人的鼓励性质的 star,让我备受鼓舞。访问量稳健的上上升,从最开始只有我自己发刊用和 Debug,基本没什么访问量。到后来一个月能有近 1 万的访问量,让然有一大部分还是机器人😄,但我也是很开心的,最起码有人访问了。

因为我实在是不会写前端,正好有人联系我要一起做 HelloGitHub 这个网站。我们就一起开发了网站上的收藏功能,便于用户的收集和查看。后来我忘了什么原因,他就退出不一起做了。

之后的一段时间项目每次发布,没什么特别多的关注度,处于平稳上升的阶段。这个时候我也一度想放弃,觉得有些无趣。其实对于开源项目的维护者来说,使用者、关注的反馈真的是特别重要的,这些反馈能证明他的努力没有白费。

当时我就给自己猛灌鸡汤:现在已经开发了自己的网站,我不想自己写的东西没人用。而且已经一部分人关注了我的项目比如:马三同学,我不能就这样‘太监了’,我得坚持做下去,能做一期是一期吧。而且我研究下当下很流行的开源项目,大多数都是一点一滴做起来的,有做 5 年、10 年的才可能被大家认可、熟知和使用。他们最初都是默默无闻的在做,就像维护自己的小菜园。终有开花结果的时候,就算是结出的果实很小,没有‘买’来的品相好、个头大,但是这种味道是‘买’不来的。

可能做开源最难的是坚持吧!

寻求改变,才能激发斗志。我之前一直是被动招募专栏负责人,后来一个偶然的机会我看到这个货 的博客。我觉得他一定是个前端大牛,我要把他拉来拯救我,让我不再写前端。后来他就成为了 HG 的第一位专栏负责人,负责 JS 专栏 —— 小猴,我们一起出刊、想各种方法提高我们的项目知名度、头脑风暴。

每当我和朋友聊起 HelloGitHub 这个项目,我都会告诉别人小猴是一个对我、对这个项目很重要的人,我们荣辱与共。当然还有雷神这个老发“给大佬端茶”表情的大佬负责 Go 专栏,他就跟他的微信头像一样‘猥琐’。

当然还有我们的的设计师远哥,他设计了 HelloGitHub 的 logo,专业的就是不一样:

759200-20190619104104921-1397205424.png

我们一起让 HelloGitHub 重新恢复了活力和继续前进的力量。

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

第二年,信心满满

真是应证了那句:“人多力量大” 的口号,基于我们一直坚持不断的出刊、并在保证质量的情况下更多的推荐项目、各位专栏负责人的加入使得项目内容更加丰富。

从而 HelloGitHub 迎来了第一个迅猛的增长和大量的关注。截止 2018 年 3 月 HelloGitHub 两周年的时候,项目的 star 数增长了 3k。连续 3 天 GitHub 趋势首页、Python 分类名列前茅;一天飙升 300 stars,我的整个首页都被 star 信息填满,往下滑了好几页;HelloGitHub 项目共有 4k 的 stars、《HelloGitHub》月刊系列博文共 4万 阅读量;

759200-20190619104114256-1570346489.png

在 17 年底的时候,这段时间我工作上遇到了很多的挑战。我们需要重构一个很老的项目,老的项目代码真的很烂、没有文档、近 6 万行。我负责的那部分,还有 Java 的项目重构为 Python 项目,当时我连 Java 的基本语法都记不全,但是最终我们(最后就两个人了)把这个项目啃完了。

当时我才真正的意识到,在做 HelloGitHub 项目时,我的那些能力得到了提升:在筛选项目的时候,我阅读代码的能力得到了很大程度地提高、对项目的结构和理解能力提升特别多、编码和动手能力、学习新技术的能力、让我对源码没有了恐惧,我还能通过阅读源码找出使用的第三方库导致的问题和解决办法。这些都是我在收集项目和开发网站中一点一滴积累起来的,然后在工作中受益匪浅,能够委以重任。

不积跬步,无以至千里。

第三年,新的高度,重新起航

这一年加入了很多新的小伙伴:喜斌、小飞、小季、小猪蹄、阿龙,负责相应专栏的项目筛选和 issues 管理。制定了推荐项目的审核标准、专栏合刊的整个流程。开了知乎专栏,历史内容迁移到了专栏,新内容也会同步上去。

随着用户的增多,我也希望能够给用户更好的阅读体验。然后网站的功能增加了:搜索、公告栏、RSS、语言排行榜、数据库排行榜、服务器排行榜、API 接口服务,现在每个月能有近 10 万的 PV。

与 D2 开源组织合作开发了推荐项目的 chrome 插件,相互取长补短,共同进步。每期同步推荐到阮一峰老师的周刊,但是收录不收录要看老师的心情😅。

基于上述的努力和合作组织的推荐 HelloGitHub 项目也迎来了高光时刻和断崖式成长,这一年增了 8k star,成为了 10000 星项目:

我在创建这个项目的时候根本没想过它会有今天的成就,这只是个推荐 GitHub 上入门、有趣的开源项目的开源项目,我最初为了方便自己收集有趣、看的懂的项目的想法,做到现在的样子。于此同时 HelloGitHub 也时刻在督促我不断的成长、用程序解决效率问题。

在这个过程中,我更加深刻的体会到编程是用来解决实际问题的解决方式,它会让工作流程更加顺畅和便捷。

对,是我创建了这个万星的项目 HelloGitHub,但我就是个只会 Python、本科学历、无大厂经验的普通程序员。做开源项目不难,我这种普通的程序员都可以,你当然也能行!我们 HelloGitHub 还在路上,加入我们或者开启自己的项目。

种一棵树最好的时间是十年前,其次就是现在。

我们希望 HelloGitHub 项目未来能够成为开源项目发起者和使用者的沟通的桥梁,后续会增加月刊读者的沟通和互动。同时让更多人知道 HelloGitHub 项目,让开源的信息更方便的传递到程序员的手中。

让走在开源路上的开发者不再孤单,让想进入开源世界的人不再畏惧。

这是我们 HelloGitHub-Team 的愿景和努力的方向,只要前进就会攀登到更高的高峰,看到更美的景色。中途会遇到种种困难和走错的弯路,但畏惧不能让人成长。加入开源的世界,你一定会变强,而且每天都会有发现新大陆的感觉。

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

这就是我和 HelloGitHub 的故事,未完待续。。。(下次不知道几年后才会更新,所以需要扫描下面的二维码关注 HelloGitHub 的最新动态和文章,扫描它和我们并肩前行😁)

每一个关注、留言、转载、点赞都是对我们最大的鼓励和肯定!

感谢 GitHub 上面的贡献者和项目发起者们,你们让世界更美好。

感谢给 HG 推荐项目的小伙伴,贡献者列表,你们让优秀的项目被更多人所发现。

感谢每期月刊下面的评论、点赞、star、转发的小伙伴,你们是 HelloGitHub 维护下去的动力。

最后,下面的平台记录了 HelloGitHub 成长的每一个阶段。特别感谢 GitHub、博客园、掘金、即刻、V2EX 这些平台,提供了优秀的程序员社区和交流平台,让 HG 能够在平台的基础上得到了更多的曝光,帮助了更多的人。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK