GitHub 是怎样的一个存在?

GitHub可以帮我们做什么? 怎样用好它?
关注者
7,041
被浏览
2,706,738

117 个回答

谁说 GitHub 没有萌妹子啊!

不服来看啊 (๑❛▽❛๑)

Ovilia (Wenli Zhang) · GitHub

以下,就这三个问题分别展开:

  • 一个活跃的 GitHub 账号有什么用?
  • 你真的需要一个活跃的 GitHub 账号吗?
  • 如何经营一个活跃的 GitHub 账号?

一个活跃的 GitHub 账号有什么用?


首先,GitHub 会给你更多被看见的机会。

收到过很多创业公司的邮件都说是通过 GitHub 看到我的,一开始我还有点小激动~

其次,一个活跃的 GitHub 账号会给你加分不少。

曾经听朋友转述过一个大神的话:“哇,她 GitHub 竟然比我粉丝还多,我得去了解了解~” 如果这个人是面试官就更好了 (*'▽'*)♪

第三,GitHub 让你更有动力做开源项目。

我的目标是三年内做出一个 200 star 的项目…好吧,乱想而已… 但确实写的代码会被别人看到被点赞以后,就更有动力时常更新了~ 还有那个绿点点啊~~满满的多有动力!反作用是…有时候一天提交太多了,整个变浅了啊~~~不开心不开心 ≥﹏≤



你真的需要一个活跃的 GitHub 账号吗?

我觉得没有必要每个人都如此。

我之所以在 GitHub 上这么活跃,最主要的原因是因为我性格里的外向型。

这里的外向,是说动力、能量的来源来自于别人的肯定和认同;相反,内向型的人来自对自我的肯定和认同。(详见 MBTI,我是

ESFJ

)ESFJ 又喜欢帮助别人(其实真正喜欢的是帮助别人后别人的夸奖吧+_+),所以就连写程序这种很寂寞的事,都会被我玩成带有社交属性的事。

相反,如果你根本不在乎别人的评价,你在 GitHub 上写了代码,估计也就这样放在那里,不会有人看到,偶尔有人搜到,你又没用心写 README(因为你根本不在乎啊),别人下载下来试了试完全不知道怎么用,也就放弃了。这跟你不开源也没什么区别。而且让一个内向型的人去做迎合别人喜好的事也挺辛苦的,最后连对编程仅剩的那些爱好都消磨完了,辛苦经营出来的 GitHub 账号又根本没人来点赞关注,这就是事倍功半。

其次,就是我脑洞比较大,经常有些 idea,所以就会去做出来。

比如学易经变卦的时候,我想知道每一爻的变化会让卦象从什么变成什么,所以做了

变卦·易经64卦

;看到 Gmail 附件折角的效果,想用 CSS 实现,做成一个 jQuery 的插件,所以有了

jCorner

;希望在豆瓣网站上看到可供下载的 ReadFree 上的电子书,所以做了

Chrome 插件 豆瓣 ReadFree 传送门

;经常在网页里看国学的书想查汉典,所以做了

Chrome 插件 汉典划词查询

;等等……

相反,如果你本身并不是一个有很多想法的人,你就会觉得有这么多创意其实要比实现更困难,最后只能是自我否定地觉得为什么别人这么厉害,我什么都没想法。其实不是谁厉害,只是每个人的性格不同所以需要采用不同的激励方法。了解你自己,用你的办法激励自己,让自己变得更优秀。

你看我一年 commit 633 次,就算平均每个 commit 半小时的工作量(通常应该不止,我随便估计的),那也有 316 个小时,平均每天将近一个小时了。如果你的兴趣不在此,与其每天痛苦一个小时,不如把时间花在别的上面,比如对底层知识感兴趣的就去学底层,对设计感兴趣的就去学设计,一年下来你虽然不会有一个漂亮的 GitHub 账号,但是面试的时候这些一样会是加分项。不要今天看着人家 GitHub 厉害就去搞这个,明天看着人家知乎大神又去搞那个。每个人的时间都是有限的,机会成本都很高,我们都知道蛮力通常是程序员最后的选择,要学会剪枝才能事半功倍。

综上,如果你的性格确实比较适合做一些开源的东西,在和别人分享的同时,让自己的 GitHub 变得更好看,那么当然这是一个面试加分项。但是,如果你并不能享受其中的乐趣,只是把这个作为一项需要苦苦经营的东西,那么我觉得大可不必花时间在这上面。



最后,如果你真的想搞个漂亮的 GitHub 账号,应该怎么做呢?

首先,你得有有用或有意思的项目。

GitHub 很明显是基于项目的,如果你的项目本身很无用又很无趣,那么推广是很困难的。这倒也不是说完全没法推广,只是……一个连好的项目 idea 都想不出的人,又怎么想得出推广的办法?

项目的来源很多了,可以是贡献到现有的比较有名的项目,或者你自己生活中碰到一个需求需要解决又突然来了灵感。作为入门者,直接参与到现有的项目并不容易,因为首先你得对别人的项目有充分的了解,所以还是后者更容易着手一点。如果你实在想不出做什么,其实也别太着急,下次当你什么东西用的不爽的时候,及时记下问题即可,再过阵子说不定就想到解决方法了。

其次,你得推广。

好像程序员写一两个有用或有意思的项目也并没有太难,只是很多人把“开源”理解为写完的代码放在那边,“开”着“源”,你的任务就算完成了。其实这只是一个开始。

为什么要让别人看到你的代码呢?为什么要特意推广呢?为什么酒香还怕巷子深呢?为什么不能让别人要用的时候再搜到你的代码呢?因为是你说你要一个漂亮的 GitHub 账号啊!

好,我直接说怎么推广。

  1. 能做成英文的东西,就做成英文的(有时间有精力就做双语行了吧),这样你就能推广到国内外的很多平台了,当然,造福的人更多没什么坏处嘛!
  2. 如果是给别人用的库(而不是展示类的作品),好好写 README 和文档之类的,这会让你看上去很专业(即使你不是真的很专业)。
  3. 做一个项目主页,并添加链接到 GitHub 项目。(有的时候看一堆介绍根本没感觉,看到一个很高大上的项目主页,直接就想点赞了有木有~)
  4. 如果你不是玻璃心,那么 reddit: the front page of the internet 通常是能够带来最多流量的一个平台。上面的人都会给你提很多很尖锐的意见,所以一般如果不是特别拿得出手的东西,我不会轻易往上发,太打击了……相反,Google Plus 上通常都是 +1 和说好听的话的人,粉丝不多的话可以发到相应的 community。但看到的人数和 reddit 相比就差远啦,自己掂量你的玻璃心吧~ 分享到你能想到的所有相关平台吧,包括 SNS,因为你的朋友中可能也有很多程序员或者用户。
  5. 在知乎多回答回答问题,像我这样贴链接:Ovilia (Wenli Zhang) · GitHub

Github 在代码托管领域是先行者,现在强力的竞争对手也有不少,包括 Gitlab(局域网部署)、Bitbucket(免费账号不限 private 项目个数)、GitCafe(对国内开发者来说可能有墙内优势)。

但 Github 从诞生之初,就有着另外两个非凡的使命:

  • 开源社交平台
  • 企业项目管理平台

这两部分业务是最核心粘性最大的,也是 Github 的核心竞争力。代码可以下载下来再传到别处,企业版本控制的安全性和稳定性其他竞争对手也可以做的不错,但只有基于人的社交关系和项目知识经验积累是没办法转移到别处的。

开源社区这一点无需多说,Github从一开始就把开发者的身份、他的关注、他的代码贡献、讨论和活动时间线作为核心功能来做。每个开发者都有一个属于自己的 profile 页面,上面列出了参与和关注的各种项目,和最近一段时间的公开活动(时间线)。通过感兴趣的项目,可以关注感兴趣的人,通过感兴趣的人,又能了解到更多有趣的项目。在这个基础上,Github 成为全球开发者学习、合作、认识基友、甚至消遣(explore 更多项目)的最大社交平台。

接下来,Github 在各种开发者大会上,宣扬 Github 公司自产自销的工作流程哲学:

How GitHub Uses GitHub to Build GitHub

,基于 Repo-Issue-PullRequest 的开发流程不光是为开源社区而生,也适合用来开发像 Github 这样的大型项目。具体什么内容我这里就不赘述了,链接里的演讲说的很清楚,我们团队目前就是按照差不多的流程在执行,是团队成立以来 chemistry 最好、效率最高的项目管理实践方式。