GitHub 是怎样的一个存在?

1.求职时候发现有些公司要附GitHub帐号; 2.自己竟然没听说过; 3.怎样用好GitHub,他可以帮我做什么;
关注者
2963
被浏览
294698
谁说 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