正是Github。让社会化编程成为现实。本文尝试谈谈GitHub的文化、技巧与影响。

Q1:GitHub是什么

A1:一家公司

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

迄今拥有59名全职员工,主要提供基于git的版本号托管服务。

在此之前。它是由TomChris在本地程序猿聚会中,開始的一个用于托管git的项目。正如每一个伟大的传奇都開始于一场冒险。Tom在这篇文章我怎样辞掉微软30万年薪邀约,创办GitHub中谈到:

当我老去,回想一生,我想说。“哇。那是一场冒险“。而不是,“哇,我真的非常安稳。“

还有一位创始人Chris也具体描写叙述了GitHub初创的前因后果,他说道:

Do whatever you want.

于是,在2008年4月10号这一天。GitHub正式成立。

眼下看来。GitHub这场冒险已经胜出。依据来自维基百科关于GitHub的描写叙述,我们能够形象地看出GitHub的增长速度:

今天,GitHub已是:

  • 一个拥有143万开发人员的社区。

    当中不乏Linux发明者Torvalds这种顶级黑客,以及Rails创始人DHH这种年轻极客。

  • 这个星球上最流行的开源托管服务。眼下已托管431万git项目,不仅越来越多知名开源项目迁入GitHub。比方Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,比如:BootStrapNode.jsCoffeScript等。
  • alexa全球排名414的站点。

Q2:GitHub风格

A2: GitHub仅仅是GitHub

强调敏捷开发与高速原型。而又的确成功的创业团队,常具备一个重要气质:有自己的文化风格。如GitHub,又如37signals。通过他们的高速开发,向用户证明了团队在技术上的能力,而且时常有惊喜。

同一时候。通过强调特立独行的文化。将对半衰期过短的产品族群的信任转为对GitHub团队的信任。

Gravatars的创始人(对。就是互联网最流行的头像托管系统)、Jekyll(对。它就是我近几年用的博客系统)作者、GitHub创始人,现任CTO Tom在GitHub第一年学到的10大教训创业学校演讲中谈到GitHub文化的方方面面。我尝试将这种风格总结为下面要点:

  • 专注创作。高创意
  • 运营良好与较高的内外惬意度
  • 高利润,较低的融资额或零融资

创业公司多半死在钱上,就让我们先从钱谈起:

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

相似于GitHub这种公司,拿到风险投资非常难吗?恰恰相反,创始人PJ Hyett 在Hacker News的一篇评论中提到,自从GitHub创办以来,已与几十个VC沟通过。

可是,直到今天,GitHub的融资额还是为零。并引以为豪。让我们看看GitHub官网的自我介绍:

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

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

GitHub从一開始就运营良好。员工拥有较高惬意度,看看这些不太一样的做法:

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

富有激情、创意的员工使得GitHub得到了社区的广泛认同。从而拥有极高的客户惬意度。并从创业一開始就盈利。一份

survey=2PIMZGU0&rndm=678J66QRA2" style="margin: 0px; padding: 0px; color: rgb(145, 115, 107); text-decoration: none;">早期的调查表明,GitHub非常快成为Git托管首选。

专注创作,高创意

GitHub59名全职员工仅有29名员工在本地工作!不仅仅是工作地点的安排富有创意,GitHub员工Holman, 具体介绍了GitHub的工作方式:

Q3:在GitHub,怎样跟牛人学习

A3:在学习区刻意练习

追随牛人,与他们一起修行

  1. 修行之道:
  2. 关注大师的言行。
  3. 尾随大师的举动。
  4. 和大师一并修行,
  5. 领会大师的意境,
  6. 成为真正的大师。

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

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

GitHub本身建构在git之上,git成为勾搭大师们的必要工具,下面读物成为首选:

假设希望进一步深入。能够阅读已有中文翻译版的材料:

相同。假设希望了解很多其它GitHub自身的知识,GitHub官方文档值得推荐:

牛人在哪里?

关于学习的心理学研究,经常会谈到一个术语:元认知、元学习、元知识。

是的。关于认知的认知、关于学习的学习、关于知识的知识,你对这些信息的偏好与熟练掌握,会让你在学习一门新东西时更加轻车熟路。对一手信息进行回溯,比方作者、创始人、最初文献出处。总是会让你更easy理解知识。

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

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

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

怎样进行自我监督?

借助于GitStats,我们能非常好地统计自己的每一个项目的工作量,从而看到工作进展。

使用方法例如以下,

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

下面为生成结果示范:

每周代码提交次数:

每天代码提交行数:

假设Fork别人的项目或者多人合作项目,最好每人都拥有一个独立分支。然后由项目维护人合并。怎样建立自己的分支?

  1. # 分支的创建和合并
  2. # git branch yourbranch
  3. # git checkout yourbranch 切换到yourbranch
  4. # 开发yourbranch分支。然后开发之后与master分支合并
  5. # git checkout master
  6. # git merge yourbranch
  7. # git branch -d yourbranch 合并完后删除本地分支

怎样将牛人的远程分支更新到自己的本地分支?

  1. # 查看当前项目下远程
  2. # git remote
  3. # 添加新的分支链接。比如
  4. git remote add niuren giturl
  5. # 获取牛人的远程更新
  6. git fetch niuren
  7. # 将牛人的远程更新合并到本地分支
  8. 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:server各类安装shell,比方安装nginx等。

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

A4:回归创作的初始

写作

早在2008年。就有技术图书作者通过Git来写作,下面是示范:

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

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

暖色调的灯光,足够宽度的工作台,听着清脆的键盘声音。基于Git、GitHub、Markdown与Jekyll来写作。不操心写废与排版,仅仅关注最纯粹的写作。是一种享受。

我有时候会想,假设Git、Github、Markdown、Jekyll,再加上Yaml、Json的作者,让这些作者们又一次来设计今天互联网基础架构偏文本的部分。会诞生一些什么?

个人博客

借助于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站点username就可以。

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

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

正是由于GitHub上的代码无法造假,也easy通过你关注的项目来了解知识面的宽度与深度。

如今越来越多知名公司活跃在GitHub,公布开源库并招募各类人才。比如:FacebookTwitterYahoo ...

開始有了第三方站点提供基于GitHub的人才招聘服务,比如:

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

Q6: GitHub还在影响一些什么

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

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

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

这段对话来自《失控》。牛人A是明斯基。他最喜欢将人类看做有血肉的机器,他的框架理论成为认知心理学、人工智能入门基础。

牛人B则是恩格尔巴特

当明斯基1961年发表他著名的文章人工智能走向时,恩格尔巴特还籍籍无名。

直到次年,恩格尔巴特发表宏文:人类智力的增强:一种概念框架。提出不同于明斯基的还有一条增强人类智力的道路:不要尝试发明自己主动打字的机器,而是尝试发明鼠标,而且他真的发明鼠标成功了!

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

从git与GitHub设计与解决的问题本质来看,明显加速了代码生产流程,促进了卓越智力产品的诞生。

这就是一种典型的web2.0对智力生产流程的改良与人类智慧的增强。相同。某种意义上,小说写作站点也起到相似作用。

可是,学术界尤其是社会科学类的智力产品生产似乎还停留在一个古老阶段。

在开源领域。好想法层出不穷,极客影响极客,终于产生的是酷玩意。这些酷玩意抛弃浮华,直奔问题本质。那么。有没有科学界的GitHub?

相似问题层出不穷。下面为其它领域产品不全然名单。

学术研究

数据

科学计算

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

教育

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

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

A7:nil

由于进化的须要,多数裸猿存在选择强迫症:哪种程序语言更好?哪个web开发框架更好?当然,最令宅男技术男们羡慕的问题是,高白瘦御姐还是青春小萝莉好?:D

除了GitHub之外,

  • 中国山寨品是不是更好?(为什么不写他们名字。你懂的,山寨品总是善于争论谁是第一个山寨的,各自的排名先后:D)
  • 免费的BitBucket是不是更适合Python程序猿?
  • 作为一名折腾族。我不自己搭建一个gitlabhq。是不是对不起自己?

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

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

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

请记住施瓦茨的演讲要点:

  • 很多其它的选择不代表很多其它的自由;
  • 很多其它的选择导致决策的延迟和减少的惬意感;
  • 快乐之秘诀。在于减少自己的期望值。

转自:http://www.yangzhiping.com/tech/github.html

怎样高效利用GitHub(非常多资料可供下载)的更多相关文章

  1. 从 0 到 1 合理高效使用 GitHub 的资料

    来自:https://github.com/xirong/my-git/blob/master/how-to-use-github.md 说明 作为一名开发者,Github上面有很多东西值得关注学习, ...

  2. 如何高效利用GitHub

    是Github,让社会化编程成为现实.本文尝试谈谈GitHub的文化.技巧与影响. Q1:GitHub是什么 Q2:GitHub风格 Q3: 在GitHub,如何跟牛人学习 Q4: 享受纯粹的写作与演 ...

  3. 【转】如何高效利用GitHub——2013-08-28 22

    http://www.yangzhiping.com/tech/github.html  正是Github,让社会化编程成为现实.本文尝试谈谈GitHub的文化.技巧与影响. Q1:GitHub是什么 ...

  4. 如何高效利用github提升自己

    作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户,是开发者打开程序开源大门的一扇窗口,也是开发者快速提升自己的一个重要途径.本文将从两个方面介绍github的使用方式. 和逛微博 ...

  5. [No00005D]如何高效利用GitHub

    原文地址:http://www.yangzhiping.com/tech/github.html 正是Github,让社会化编程成为现实.本文尝试谈谈GitHub的文化.技巧与影响. Q1:GitHu ...

  6. 如何高效利用 GitHub

    正是 Github,让社会化编程成为现实.本文尝试谈谈 GitHub 的文化.技巧与影响. Q1:GitHub 是什么 Q2:GitHub 风格 Q3: 在 GitHub,如何跟牛人学习 Q4: 享受 ...

  7. 转: 如何高效利用GitHub

    注:写了很多使用哲学,有意思 from: http://www.yangzhiping.com/tech/github.html

  8. 高效使用github

    下面两个资料是我在github上面整理出来的repo,不断进行更新,将遇到的有帮助的文章尽量整理到上面,方便初学者也方便回顾学习.如果恰好你也有一些资料文章,欢迎fork - modify - pul ...

  9. 利用Github免费搭建个人主页(个人博客)

    之前闲着, 利用Github搭了个免费的个人主页. 涉及: Github注册 Github搭建博客 域名选购 绑定域名 更多 一  Github注册 在地址栏输入地址:http://github.co ...

随机推荐

  1. LR采用的Sigmoid函数与最大熵(ME) 的关系

    LR采用的Sigmoid函数与最大熵(ME) 的关系 从ME到LR 先直接给出最大熵模型的一般形式,后面再给出具体的推导过程. \[\begin{align*} P_w(y|x) &= \df ...

  2. HDU——1205吃糖果(鸽巢原理)

    吃糖果 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submis ...

  3. HDU-1529 Cashier Employment

    据网上说这是到差分约束四星题... 可我觉得难吗? 比推DP方程容易... 两种约束方式,当然实现到程序就变成六种了... #include <cstdio> #include <c ...

  4. APUE 学习笔记(八) 线程同步

    1. 进程的所有信息对该进程内的所有线程都是共享的 包括 可执行的程序文本.程序全局内存.堆内存以及文件描述符 线程包含了表示进程内执行环境必需的信息,包括线程ID.寄存器值.栈.调度优先级和策略.信 ...

  5. SharePoint 2013 Custom MasterPage

    <%@Master language="C#"%> <%@ Register Tagprefix="SharePoint" Namespace ...

  6. HDU1071 The area

    Ignatius bought a land last week, but he didn't know the area of the land because the land is enclos ...

  7. 转 Vim操作

    传送门 vim全局替换命令   语法为 :[addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行.如:“1 ...

  8. Android组件实例化问题

    对于Application. Activity. Notification. BroadCast. Service 这些组件的使用,对象的实例化问题各有不同,如何实例化以及在什么时候实例化也所有不同. ...

  9. /sys/class/gpio 文件接口操作IO端口(s3c2440)

    http://blog.csdn.net/mirkerson/article/details/8464231 在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的 ...

  10. 转:c++ Oracle OCCI 编程

    原地址http://blog.sina.com.cn/s/blog_53a72add01015zj4.html 找不到具体的出处,只好不写了. OCCI数据库ORACLE编程步骤1. 配置环境(1)  ...