『沉浸式Github 使用指南 』

github-ten.png

你要问我这个世界上什么学习方法是坚持下去最有效果 -- 模仿。

深度模仿。


2014年9月,正式来到上海,不为别的,为了读书。为了获得更高的学历。

那时,我没有想好,未来到底应该从事什么工作。也许搞电器、电机吧。因为专业是这相关的。

大学四年的学习,大概让我明白。我可能不太喜欢这门专业。

读研的一段时间下来,发现也不是太喜欢科研,尤其是导师的科研偏向理论化,内心没有太大的想要提高科研水平的想法。

之后的时间内,我开始了摸索。

如何可以只有一台电脑就可以掌握技能,并找到工作呢? 如何只要有网络就可以连接这个世界?

于是,我开始了学习编写代码。

摸索了一段时间,初步确定职业向程序员方向发展。

于是我像小白一样,开始了自学的道路。

github-ten.png

2015年3月17日,注册加入Github, 那时的我远没有发现这个代码托管平台的好处。甚至我远没有理解到整个Github 的功用。

后来自己想要学习Git 这个分布式版本控制工具而注册Github,伊始Github 完全是个人的代码备份空间。

和网盘的功能类似:备份个人代码。虽然代码都是些零零碎碎。不值得看的代码。

渐渐学会了Git 的使用。回头看来,其实知识是无穷无尽的。但是常用的其实并多。

学习需要使用 二八法则

2015年11月,加入一家创业公司实习,正式开始从事写代码的工作。

因为创业公司比较小,碰巧这家公司又给了我这个机会,于是就这样踏上了程序员的道路。

在工作中开始频繁使用 git 和 github。

开始了解 github。 实习时间不是很长,但我渐渐意识到:

  1. 软件行业是一个需要不断学习的行业,这一点也不夸张
  2. 软件行业的学习一般都是靠自学

不管你是在学校、小公司、大公司...,谁都不可能手把手教你。你需要的知识,你想要了解的技术,无一不是靠自学习得。

初级程序员想要学习,会在网上收集大量教程,收集大量PDF 电子书,搜索各种各样的代码实例。

到了一定的阶段,回过头来会发现,其实网上的二手知识,实在是太多了。因为程序员行业的自学的人特别的多,加上程序员又是一个非常喜欢分享的群体。

会出现这种情况:

  1. 高手不愿意分享,或者分享的都是整体思路(架构领域),离初级,中级程序员太远了
  2. 初学者喜欢分享,多是一些代码示例

各种各样的人对知识的不同的理解而产生的二手、三手、四手等知识不断的在网上传播。

包括我自己也产生了很多二手知识。但只要有一点能对人产生帮助,我就不会停止分享。更何况我是抱着真实的态度在分享文章。

工作一年后,我对程序员有了新的认识。我对开源有了新的认识。

我更加热衷程序员的职业,我更加喜欢开源。我更加喜欢官方的知识。一遍看不懂,就多看几遍,随着你看的次数多了,相信我,你会越来越懂。

Github 则是这个世界上最大的开源代码托管平台。有着无数的喜欢分享的程序员在分享接近一手知识的开源代码。有着无数的开源代码可以让我们模仿。

找到几个自己从事行业相关的,坚持阅读下去。坚持模仿下去。坚持创造一些稍有不同的轮子。

即: Github 是程序员的金矿,我们可以模仿任意轮子,优化自己思维,提高自己水平。

1. Github 历史

  • 2008 年 Github 上线
  • 2009 年 BTC 源码开源,之后成为各种币的重要参考
  • 2009 年 Nodejs 源码托管在 github 上
  • 2010 年 Rails Girls holds its first workshop
  • 2011 年 Travis CI 持续集成
  • 2012 年 JavaScript 成为在Github 上最热门的语言
  • 2013 年 Github 用户突破 300 万
  • 2014 年 Docker 发布
  • 2014 年 Django workshop
  • 2014 年 .Net 开源
  • 2015 年 Unreal Engine 开源
  • 2015 年 GitHub Classroom
  • 2016 年 Apollo 11 code takes off
  • 2017 年 The Python team opens their first GitHub pull request
  • 2017 年 30,000 nonprofit accounts created
  • 2018 年 10 年

Github 10 年 Github Ten


如何使用好 Github?

2. 个人项目

  1. markdown
  2. emoji
  3. 创建个人项目
  4. 美化项目
2.1 markdown、rst

大凡热门的项目一定有非常详尽的使用文档。而Markdown 成为 Github README 的标配,甚至成为程序员的标配。

程序员都应该熟悉 Markdown 语法。

对于组织项目的文档说明,另一种比较好的标记语言是 reStructuredText 。

Markdown 入门:Markdown Cheatsheet

reStructuredText 入门:RestructuredText

语法很详尽,看上去很难入门。相信我:

照着下面的流程走:

  1. 标题怎么搞: 一级标题?二级标题....?
  2. 段落怎么搞: 如何分割...?
  3. 文本怎么处理:加粗?斜体?
  4. 超链接怎么处理? 图片? 网址?视频?...?
  5. 表格怎么处理?

好了,想要更丰富的语法? 入手了上面几个问题,可以查文档了。

2.2 emoji

emoji 图形符号, 是一个文字,被渲染成图形。

这里是一份 对照表手册: emoji

Twitter emoji: emoji

twitter-emoji.png

Emoji Search: emoji search

emoji.png

Emoji 在你提交 commit message 、写 markdown 格式文档、讨论 issues 的时候显得更有趣一些。

2.3 项目

github 项目分为个人开源项目和隐私项目,后者付费。对普通开发者而言,个人开源项目即可。

  1. 可以代码托管,比如自己的一些函数封装等
  2. 可以创建轮子,项目的受欢迎程序一定程度上体现作者水平

现在Github 个人的项目一定程度上能体现作者的代码水平。甚至越来越成为程序员面试、跳槽等的指标之一。

2.4 美化项目

即借助一些微图标、图形,美化项目的简介,配合Markdown 语法使用

shields.png

常见微标:

CI : 持续集成

CI

测试覆盖率

Coverage

下载数量

download

文档

doc

版本信息

version

项目语言

Golang

Golang

Golang

等等...

微标地址

注意不是越多越好,一定应该选择的是你项目确实需要的,能说明的你的项目特征的。

给个详细的学习地址: 学习地址

jianshu-go.png

progressed.png

进度示例:

28

示例 :![28](http://progressed.io/bar/28?title=xiewei)

按照markdown 语法,再根据文档的示例,很容易写出一个进度条。

比如我要写一个:标题为:Age, 进度为: 27% 示例

27

示例:![27](http://progressed.io/bar/27?title=Age)

美化不是重点,重点的努力提升代码质量唉。

3. 开源项目

  1. 模仿
  2. 借鉴
  3. 阅读
  4. 文档
  5. 测试
  6. 重复

如何借助 github 开源项目提升自己水平。

我一般的步骤是这样的:

  1. 阅读开源项目 Demo
  2. 克隆代码,执行开源项目 Demo
  3. 阅读项目 doc
  4. 阅读项目测试
  5. 执行项目测试
  6. 使用开源项目帮助自己实现业务
  7. 阅读开源项目源代码

这里提三点:

  1. Demo 实例很重要
  2. 测试很重要
  3. 文档很重要

但初学者、自学者一般都不喜欢或者说不太关注测试。

浏览Github 网站,免不了需要阅读源代码,如果不想 clone 下来,在集成开发环境里看,还有什么办法吗?

有的。Chrome 插件,帮你提升阅读源代码的效率。

插件:

  1. Sourcegraph 像IDE 一样操作 github 代码 chrome 商店地址
  2. Isometric Contributions 提交记录艺术化 Chrome 商店地址
  3. Octotree 查看Github 源代码工具 chrome 商店地址
  4. GayHub 查看Github 源代码工具 chrome地址

什么? 上不去 chrome 商店,兄dei 是不是要学习科学上网?

4. Awesome 系列

网络上很多的知识集,搜索成本很大,如果又不会科学上网,那再收集知识这一块需要耗费很大的时间。

  1. 收集
  2. 甄别
  3. 学习
  4. 假如学习资料有误
  5. 推倒
  6. 再次学习
  7. 深入学习 ...

时间就是金钱啊,更何况程序就那么几年。大家都这么说...

那如何借助 Github 找到你想要的知识:

An awesome list is a list of awesome things curated by the community.

Awesome + 关键字

比如: 想要学习 Python

Awesome python

awesome-python.png

比如:想要学习 Go

Awesome Go

awesome-go.png

比如:想看 cheatsheet

Awesome cheatsheet

awesome-cheatsheet.png

比如:想要学习任意知识

Awesome Awesome

awesome.png

好了,知识集有了,可以针对感兴趣的学习了。

当然你也可以使用自己的关键字搜索,但相信我 Awesome 系列一定能满足你

5. trending

假如你想了解当天的,或者近期的Github 热门项目,追追趋势?

没问题:

方法一

  • 掘金浏览器插件

chrome 商店下载地址

掘金.png

方法二

方法一就是调用的方法二的API.

  • Github API3 API

github-trending.png

Github 满足你作为程序员需要的所有知识,你唯一缺少的就是踏实的学习。

6. 分享几个好玩的项目

Follow 下?[1] Star 下?[2]

(完)


  1. Github 个人地址:https://github.com/wuxiaoxiaoshen
  2. Jianshu-go API 地址: https://github.com/wuxiaoxiaoshen/Jianshu-go

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BIT泽清

从3.1.1被拒,到延审,到两次2.1大礼包,到审核人员过审解决办法分享

我们APP从2016年7月开始第一版,到2017年10月,正常更新20多版,中间少有拒绝,偶尔的拒绝,只要根据拒绝信息里修改也会很快通过。

1.2K7
来自专栏python+iOS学习交流

新手可以学Python吗?应该怎么入门?【七天包学包会】

很多人都推荐小白第一门语言选Python,因为语法简单。这句话只说了一半,Python确实容易上手,对初学者的门槛很低。但我发现,对于小白真正的门槛在于系统知识...

1311
来自专栏FreeBuf

这是一款新出的黑客游戏《Hackmud》

近日一款黑客游戏出现在市面上并引发了大量的讨论,下面就来介绍并向大家推荐一下这款游戏。 游戏与现实世界 其实市面上出现的黑客游戏,有网页版的,有客户端版的。对于...

3758
来自专栏张善友的专栏

程序员水平分析

whattofix.com刊登了一篇Daniel Markham的文章《What Level Programmer Are You?》,文内将参差不齐的程序员按...

19210
来自专栏WeTest质量开放平台团队的专栏

数风流人物之《天天富翁》--说说成功背后的准备

? 由腾讯独代的“大富翁”题材作品《天天富翁》于2014年2月18日正式对外封测,上线之后迅速位列IOS免费榜第一,畅销榜前三,引起了一阵轰动。 ? 《天天富...

1232
来自专栏北京马哥教育

我为什么说Python是全栈式开发语言?

Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名。但排在前四名的语言 Python、C、Java 和 C++都拥有广大的用户群体,...

4329
来自专栏Albert陈凯

2018-08-25 学习本身不难,难得是了解该学哪些!

原文地址:https://mp.weixin.qq.com/s/1Suxe08Zq6jsUFNI9PO7xg

963
来自专栏CSDN技术头条

顶尖程序员的五种思维模式,你具备吗?

《THe Effective Engineer》的作者Edmond Lau采访了很多硅谷顶级科技公司的顶尖软件工程师。他发现这些给世界带来巨大影响的的工程师们至...

21410
来自专栏养码场

干货领取!Java架构体系学习路线图,这6点技术人一定要知道!

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

1012

我们如何在大数据时代构建更智能的搜索引擎?

看起来,创新似乎来自意想不到的地方(毕竟,如果它来自预期的地方,那它会被称为创新吗?)。如今,许多事情已经聚集在一起,将搜索及搜索引擎置于全新的角度,来自意想不...

1641

扫码关注云+社区

领取腾讯云代金券