如何高效利用GitHub


Q1:GitHub是什么

A1:一家公司

位于旧金山,由Chris WanstrathPJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。html

node

今天,GitHub已经是:python

  • 一个拥有143万开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。

Q2:GitHub风格


高利润,较低的融资额或者零融资

相似于GitHub这样的公司,拿到风险投资很难吗?偏偏相反,创始人PJ Hyett 在Hacker News的一篇评论中提到,自从GitHub创办以来,已与几十个VC沟经过。可是,直到今天,GitHub的融资额仍是为零,并引觉得豪。nginx

运营良好与较高的内外满意度

在Quora上有人问道,GitHub是否寻找被收购?,仍是PJ Hyett ,他的回答是:No。git

GitHub从一开始就运营良好,员工拥有较高满意度,看看这些不太同样的作法:程序员

  • 每一位GitHub公司的新员工,官方博客将发表文章欢迎。
  • 在GitHub内部,没有经理,需求内容与优先级由项目组自行决策。
  • 选择本身的工做时间、工做地点。
  • 员工来自开源社区。
  • 能开源的尽量开源。

富有激情、创意的员工使得GitHub获得了社区的普遍认同,从而拥有极高的客户满意度,并从创业一开始就盈利。github

专一创做,高创意

GitHub59名全职员工仅有29名员工在本地工做!不只仅是工做地点的安排富有创意,GitHub员工Holman, 详细介绍了GitHub的工做方式:web

Q3:在GitHub,如何跟牛人学习

A3:在学习区刻意练习

追随牛人,与他们一块儿修行

</>修行之道: 关注大师的言行, 跟随大师的举动, 和大师一并修行, 领会大师的意境, 成为真正的大师。

正如这首禅诗所言,与其在墙内仰望牛人,不如直接在GitHub:shell

  • watch、fork牛人们
  • 对他们的项目提交pull request
  • 主动给牛人们的项目写wiki或提交测试用例,或者问题
  • 还能够帮他们翻译中文

GitHub自己建构在git之上,git成为勾搭大师们的必要工具,如下读物成为首选:编程

若是但愿进一步深刻,能够阅读已有中文翻译版的材料:

一样,若是但愿了解更多GitHub自身的知识,GitHub官方文档值得推荐:

牛人在哪里?

关于学习的心理学研究,经常会谈到一个术语:元认知、元学习、元知识。你对这些信息的偏好与熟练掌握,会让你在学习一门新东西时更加轻车熟路。对一手信息进行回溯,好比做者、创始人、最初文献出处,老是会让你更容易理解知识。

在学习区刻意练习:借助GitStats进行项目统计

如何学习一门新的编程语言?——在学习区刻意练习中,我已谈过:

学习编程最好的方式是在学习区刻意练习。

如何进行自我监督?

借助于GitStats,咱们能很好地统计本身的每一个项目的工做量,从而看到工做进展。

用法以下,

</>#复制GitStats项目到本地 cd ~/dev git clone git://github.com/trybeee/GitStats.git python ~/dev/gitstats/git-stats /youproject public

如下为生成结果示范:

每周代码提交次数:

天天代码提交行数:

若是Fork别人的项目或者多人合做项目,最好每人都拥有一个独立分支,而后由项目维护人合并。如何创建本身的分支?

</># 分支的建立和合并 # git branch yourbranch  # git checkout yourbranch    切换到yourbranch  # 开发yourbranch分支,而后开发以后与master分支合并  # git checkout master # git merge yourbranch # git branch -d yourbranch    合并完后删除本地分支

如何将牛人的远程分支更新到本身的本地分支?

</># 查看当前项目下远程 # git remote # 增长新的分支连接,例如 git remote add niuren giturl… # 获取牛人的远程更新 git fetch niuren # 将牛人的远程更新合并到本地分支 git merge niuren/master

生产力小技巧

codeshelver:给git库作标签

观察的项目若是多了,怎么管理?用codeshelver,安装扩展以后,能够对GitHub项目作标签。

gollum:利用git与github作wiki

gollum是一个基于git的轻型wiki系统。

GitHubwatcher: 监测重点项目

GitHubwatcher适用于通知不频繁的情景。

GitHub官方资源

GitHub官方列出了一些有用的脚本与书签

社区驱动的安装与配置文件

GitHub中各种配置文件层出不穷,一些经常使用的:

  • osh-my-zsh:将终端从bash改成zsh以后,可考虑安装社区驱动的zsh配置文件,含有多个插件。可参考旧文zsh与oh-my-zsh
  • gitignore:GitHub官方出品
  • yourchili:服务器各种安装shell,好比安装nginx等

Q4: 享受纯粹的写做与演讲

A4:回归创做的初始

写做

早在2008年,就有技术图书做者经过Git来写做,如下是示范:

你能想到的技术前沿话题,大多能在GitHub找到相应的培训材料或者开源图书。

我的写做照样适用。在前文理想的写做环境:Git+GitHub+Markdown+Jekyll,我已经格外赞美过这些美好事物了。


我的博客

借助于Jekyllbootstrap能够在Github上快速搭建一个基于jekyll的博客系统

除了这个简单易行的办法以外,还存在一些其余方法,例如:

演讲

借助于GitHub,能够享受更纯粹、更酷的演讲。GitHub 2011年收购Ordered List以后,今后能够经过speakerdeck更好的分享ppt文档。

咱们还能够:

  • 使用GitHub著名传教士、Progit做者Scott Chacon开发的showoff
  • 来自开源社区的其余演讲库impress.js

Q5: 代码帮你找工做

A5:GitHub简历很诚实

NumEricR(非GitHub工做人员)基于GitHub Pages功能作了一个简历生成器,使用极其简单,登录网站GitHub简历生成器,填入你的GitHub网站用户名便可。

fredwu是Ruby中文社区活跃份子,他的开源项目angel_nest一个天使投资与创业者对接的网站,适合Ruby初学者升级为Ruby中级开发者时学习,也在Hacker News上被热烈讨论过,让咱们来看看他的简历:

http://resume.GitHub.com/?fredwu

正是由于GitHub上的代码没法造假,也容易经过你关注的项目来了解知识面的宽度与深度。如今愈来愈多知名公司活跃在GitHub,发布开源库并招募各种人才,例如:FacebookTwitterYahoo ...

开始有了第三方网站提供基于GitHub的人才招聘服务,例如:

  • GitHire:经过它,能够找出你所在地区的程序员。
  • Gitalytics.com:经过它,能评估某位程序员在GitHub、LinkedIn、StackOverflow、hackernews等多个网站的影响力。

Q6: GitHub还在影响一些什么

A6:让计算机加强人类智慧

不少年前,在某个名声显赫的学府中,两位前后拿过图灵奖的牛人有一段对话:

  • 牛人A:咱们要给机器赋予智慧,让他们有自我意识!
  • 牛人B:你要给机器作那么多好事?那你打算给人类作点什么呢?

这段对话来自《失控》。牛人A是明斯基,他最喜欢将人类看作有血肉的机器,他的框架理论成为认知心理学、人工智能入门基础。牛人B则是恩格尔巴特。当明斯基1961年发表他著名的文章人工智能走向时,恩格尔巴特还籍籍无名。直到次年,恩格尔巴特发表宏文:人类智力的加强:一种概念框架。提出不一样于明斯基的另外一条加强人类智力的道路:不要尝试发明自动打字的机器,而是尝试发明鼠标,而且他真的发明鼠标成功了!

从近些年的发展来看,仍然是明斯基占上风,可是,三十年河东,三十年河西,明斯基的人工智能方向又有多少年没有大突破了?相反,来自恩格尔巴特的群件、集体智慧等思想,逐步成为步入Web2.0时代以后的共识。无关对错,能够说,恩格尔巴特为加强人类智力,提供了可行的框架。与其去发明聪明的、昂贵的、功能一体化的智能机器人,还不如发明相似于鼠标这样笨笨的、廉价的、功能单一的人类智慧服务单件。明斯基的机器人很容易陷入死胡同,没有上升到哲学的高度。如今慢慢又回到恩格尔巴特这个方向来了。好比如今IBM开始宣传认知计算

从git与GitHub设计与解决的问题本质来看,明显加速了代码生产流程,促进了卓越智力产品的诞生。这就是一种典型的web2.0对智力生产流程的改良与人类智慧的加强。一样,某种意义上,小说写做网站也起到相似做用。可是,学术界尤为是社会科学类的智力产品生产彷佛还停留在一个古老阶段。在开源领域,好想法层出不穷,极客影响极客,最终产生的是酷玩意。这些酷玩意抛弃浮华,直奔问题本质。那么,有没有科学界的GitHub?

相似问题层出不穷,如下为其余领域产品不彻底名单。

学术研究

数据

科学计算

  • opani:雏形中,支持R、Python等多种。

教育

  • OpenStudy:一个社会性学习网络,经过互助来更好地学习,主题涉及到计算机、数学、写做等。
  • openhatch: 经过练习、任务等帮助新手更好地进入开源社区

Q7:除了GitHub,还能够选择什么?

A7:nil

由于进化的须要,多数裸猿存在选择强迫症:哪一种程序语言更好?哪一个web开发框架更好?

除了GitHub以外,

  • 中国山寨品是否是更好?(为何不写他们名字,你懂的,山寨品老是善于争论谁是第一个山寨的,各自的排名前后:D)
  • 免费的BitBucket是否是更适合Python程序员?

  • 做为一名折腾族,我不本身搭建一个gitlabhq,是否是对不起本身?

咱们能够理解,正是由于无数条分岔路口,让人类再也不受制于某种基因、特定疾病、独裁家族,从而拥有无限的可能。可是,这种选择强迫症与远古时代可怜的信息量相比较,

  • 今天这个大数据时代,它还会有助于人类做为族群的总体进化与做为个体的幸福吗?
  • 今天一位一线城市30岁大学毕业生经历的选择与孔子整个一辈子经历的选择,纯论数量,谁多谁少?

生命如此短暂,为何总要将青春浪费在不断的选择之中呢?罚你,回头阅读心理学家施瓦茨(Barry Schwartz)的TED演讲:选择之困惑——为什么多便是少,1百遍啊1百遍。请记住施瓦茨的演讲要点:

  • 更多的选择不表明更多的自由;
  • 更多的选择致使决策的延迟和下降的满意感;
  • 快乐之秘诀,在于下降本身的指望值。

相关参考

相关文章
相关标签/搜索