赞
踩
正是 Github,让社会化编程成为现实。本文尝试谈谈 GitHub 的文化、技巧与影响。
Q1:GitHub 是什么
A1:一家公司
位于旧金山,由 Chris Wanstrath, PJ Hyett 与 Tom Preston-Werner 三位开发者在 2008 年 4 月创办。迄今拥有 59 名全职员工,主要提供基于 git 的版本托管服务。
在此之前,它是由 Tom 与 Chris 在本地程序员聚会中,开始的一个用于托管 git 的项目。正如每个伟大的传奇都开始于一场冒险,Tom 在这篇文章我如何辞掉微软 30 万年薪邀约,创办 GitHub 中谈到:
当我老去,回顾一生,我想说,“哇,那是一场冒险“;而不是,“哇,我真的很安稳。“
另一位创始人 Chris 也详细描述了 GitHub 初创的前因后果,他说道:
Do whatever you want.
于是,在 2008 年 4 月 10 号这一天,GitHub 正式成立。
目前看来,GitHub 这场冒险已经胜出。根据来自维基百科关于 GitHub 的描述,我们可以形象地看出 GitHub 的增长速度:
今天,GitHub 已是:
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 很快成为 Git 托管首选。
专注创作,高创意
GitHub59 名全职员工仅有 29 名员工在本地工作!不仅仅是工作地点的安排富有创意,GitHub 员工Holman, 详细介绍了 GitHub 的工作方式:
Q3:在 GitHub,如何跟牛人学习
A3:在学习区刻意练习
追随牛人,与他们一起修行
修行之道:关注大师的言行,跟随大师的举动,和大师一并修行,领会大师的意境,成为真正的大师。
正如这首禅诗所言,与其在墙内仰望牛人,不如直接在 GitHub:
GitHub 本身建构在 git 之上,git 成为勾搭大师们的必要工具,以下读物成为首选:
如果希望进一步深入,可以阅读已有中文翻译版的材料:
同样,如果希望了解更多 GitHub 自身的知识,GitHub 官方文档值得推荐:
牛人在哪里?
GitHub 官方推荐:GitHub 自身的官方博客与 GitHub 员工们的个人博客推荐的项目与开发者
各类社交媒体上提到的的 GitHub 库:尤其是 Hacker News 上提到的 GitHub 库。
关于学习的心理学研究,常常会谈到一个术语:元认知、元学习、元知识。是的,关于认知的认知、关于学习的学习、关于知识的知识,你对这些信息的偏好与熟练掌握,会让你在学习一门新东西时更加轻车熟路。对一手信息进行回溯,比如作者、创始人、最初文献出处,总是会让你更容易理解知识。
在学习区刻意练习:借助 GitStats 进行项目统计
在如何学习一门新的编程语言?——在学习区刻意练习中,我已谈过:
学习编程最好的方式是在学习区刻意练习。
如何进行自我监督?
借助于 GitStats,我们能很好地统计自己的每个项目的工作量,从而看到工作进展。
用法如下,
#复制 GitStats 项目到本地 cd ~/devgit clone git://github.com/trybeee/GitStats.gitpython ~/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 中各类配置文件层出不穷,一些常用的:
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 文档。
我们还可以:
Q5: 代码帮你找工作
A5:GitHub 简历很诚实
NumEricR(非 GitHub 工作人员)基于 GitHub Pages 功能做了一个简历生成器,使用极其简单,登陆网站 GitHub 简历生成器,填入你的 GitHub 网站用户名即可。
fredwu 是 Ruby 中文社区活跃份子,他的开源项目 angel_nest,一个天使投资与创业者对接的网站,适合 Ruby 初学者升级为 Ruby 中级开发者时学习,也在 Hacker News 上被热烈讨论过,让我们来看看他的简历:
http://resume.GitHub.com/?fredwu
正是因为 GitHub 上的代码无法造假,也容易通过你关注的项目来了解知识面的宽度与深度。现在越来越多知名公司活跃在 GitHub,发布开源库并招募各类人才,例如:Facebook、Twitter、Yahoo ...
开始有了第三方网站提供基于 GitHub 的人才招聘服务,例如:
Q6: GitHub 还在影响一些什么
A6:让计算机增强人类智慧
很多年前,在某个名声显赫的学府中,两位先后拿过图灵奖的牛人有一段对话:
这段对话来自《失控》。牛人A是明斯基,他最喜欢将人类看做有血肉的机器,他的框架理论成为认知心理学、人工智能入门基础。牛人B则是恩格尔巴特。当明斯基 1961 年发表他著名的文章人工智能走向时,恩格尔巴特还籍籍无名。直到次年,恩格尔巴特发表宏文:人类智力的增强:一种概念框架。提出不同于明斯基的另一条增强人类智力的道路:不要尝试发明自动打字的机器,而是尝试发明鼠标,并且他真的发明鼠标成功了!
从近些年的发展来看,仍然是明斯基占上风,但是,三十年河东,三十年河西,明斯基的人工智能方向又有多少年没有大突破了?相反,来自恩格尔巴特的群件、集体智慧等思想,逐步成为步入 Web2.0 时代之后的共识。无关对错,可以说,恩格尔巴特为增强人类智力,提供了可行的框架。与其去发明聪明的、昂贵的、功能一体化的智能机器人,还不如发明类似于鼠标这样笨笨的、廉价的、功能单一的人类智慧服务单件。明斯基的机器人很容易陷入死胡同,没有上升到哲学的高度。现在慢慢又回到恩格尔巴特这个方向来了。比如现在 IBM 开始宣传的认知计算。
从 git 与 GitHub 设计与解决的问题本质来看,明显加速了代码生产流程,促进了卓越智力产品的诞生。这就是一种典型的 web2.0 对智力生产流程的改良与人类智慧的增强。同样,某种意义上,小说写作网站也起到类似作用。但是,学术界尤其是社会科学类的智力产品生产似乎还停留在一个古老阶段。在开源领域,好想法层出不穷,极客影响极客,最终产生的是酷玩意。这些酷玩意抛弃浮华,直奔问题本质。那么,有没有科学界的 GitHub??
类似问题层出不穷,以下为其他领域产品不完全名单。
学术研究
数据
科学计算
教育
Q7:除了 GitHub,还可以选择什么?
A7:nil
因为进化的需要,多数裸猿存在选择强迫症:哪种程序语言更好?哪个 web 开发框架更好?当然,最令宅男技术男们羡慕的问题是,高白瘦御姐还是青春小萝莉好?:D
除了 GitHub 之外,
我们可以理解,正是因为无数条分岔路口,让人类不再受制于某种基因、特定疾病、独裁家族,从而拥有无限的可能。但是,这种选择强迫症与远古时代可怜的信息量相比较,
生命如此短暂,为什么总要将青春浪费在不断的选择之中呢?罚你,回头阅读心理学家施瓦茨(Barry Schwartz)的 TED 演讲:选择之困惑——为何多即是少,1 百遍啊 1 百遍。请记住施瓦茨的演讲要点:
最后,让我再抒情一把吧,
美好的事物总是离不开被墙的命运,让我们静静地期待那一天的来临…也让我们在各自行业的努力,让下一代、下一代、下一代…(希望N<=1,如果N>=4,我做鬼也放不过你们!)不再拥有这一天。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。