为什么你应该试试Github?

在我大四找工作的时候,试图去寻找一份硬件、物联网相关的工作(ps: 专业是电子信息工程)。尽管简历上写得满满的各种经历、经验,然而并没有卵用。跑了几场校园招聘会后,十份简历(ps: 事先已经有心里准备)一个也没有投出去——因为学校直接被拒。我对霸面什么的一点兴趣都没有,千里马需要伯乐。后来,我加入了Martin Flower所在的公司,当然这是后话了。

这是一个残酷的世界,在学生时代,如果你长得不帅不高的话,那么多数的附加技能都是白搭(ps: 通常富的是看不到这篇文章的)。在工作时期,如果你上家没有名气,那么将会影响你下一份工作的待遇。而,很多东西却会改变这些,Github就是其中一个。

我与Github的故事

注册Github的时候大概是大二的时候,我熟悉的时候已经是大四了,现在已经毕业一年了。在过去的近两年里,我试着以几个维度在Github上创建项目:

  1. 快速上手框架来实战,即demo

  2. 重构别人的代码

  3. 创建自己可用的框架

  4. 快速构建大型应用

  5. 构建通用的框架

Github与收获

先说说**与技能无关的收获**吧,毕业设计做的是一个《最小物联网系统》,考虑到我们专业老师没有这方面知识,答辩时会带来问题,尽量往这方面靠拢。当我毕业后,这个项目已经有过百个star了,这样易上手的东西还是比较受欢迎的(ps: 不过这种硬件相关的项目通常受限于Github上硬件开发工程师比较少的困扰)。

毕业后一个月收到PACKT出版社的邮件(ps: 他们是在github上找到我的),内容是关于Review一本物联网书籍,即在《从Review到翻译IT书籍》中提到的《Learning Internet of Things》。作为一个四级没过的"物联网专家",去审阅一本英文的物联网书籍。。。当然,后来是审阅完了,书上有我的英文简介。

一个月前,收到MANNING出版社的邮件(ps: 也是在github上),关于Review一本物联网书籍的目录,并提出建议。

也因此带来了其他更多的东西,当然不是这里的主题。在这里,我们就不讨论各种骚扰邮件,或者中文合作。从没有想象过,我也可以在英语世界有一片小天地。

这些告诉我们,Github上找一个你擅长的主题,那么会有很多人找上你的。

Github与成长

过去写过一篇《如何通过github提升自己》的文章,现在只想说三点:

  1. 测试

  2. 更多的测试

  3. 更多的、更多的、更多的测试

没有测试的项目是很扯淡的,除非你的项目只有一个函数,然后那个函数返回`Hello,World`。

如果你的项目代码有上千行,如果你能保证测试覆盖率可以达到95%以的话,那么我想你的项目不会有太复杂的函数。假使有这样的函数,那么他也是被测试覆盖住的。

如果你在用心做这个项目,那么你看到代码写得不好也会试着改进,即重构。当有了一些,你的技能会不断提升。你开始会试着接触更多的东西,如stub,如mock,如fakeserver。

有一天,你会发现你离不开测试。

然后就会相信: 那些没有写测试的项目都是在耍流氓

为什么你应该深入Github

上面我们说的都是我们可以收获到的东西,我们开始尝试就意味着我们知道它可能给我们带来好处。上面已经提到很多可以提升自己的例子了,这里再说说其他的。

方便工作

我们可以从中获取到不同的知识、内容、信息。每个人都可以从别人的代码中学习,当我们需要构建一个库的时候我们可以在上面寻找不同的库和代码来实现我们的功能。如当我在实现一个库的时候,我会在Github上到相应的组件:

  • Promise 支持

  • Class类(ps:没有一个好的类使用的方式)

  • Template 一个简单的模板引擎

  • Router 用来控制页面的路由

  • Ajax 基本的Ajax Get/Post请求

获得一份工作

越来越多的人因为Github获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。

因而,在Github寻找合适的候选人,已经是一种趋势。

扩大人脉

如果我们想创造出更好、强大地框架时,那么认识更多的人可能会带来更多的帮助。有时候会同上面那一点一样的效果。

其他

实际上,这也是一个和影响力有关的话题。只有更多的提高自己的曝光度,才有机会去接触更多的人。

Github项目分析

对于Github来说,你并不需要创造一个特别好的框架,你只需要一个好的主题,或者你一个好的Demo。目测,当前在国内最受欢迎的就是各种Android、iOS的库。

之前曾经分析过一些Github的用户行为,现在我们先来说说Github上的Star吧。(截止: 2015年3月9日23时。)

用户 项目名 Language Star Url
twbs Bootstrap CSS 78490 https://github.com/twbs/bootstrap
vhf free-programming books - 37240 https://github.com/vhf/free-programming-books
angular angular.js JavaScript 36,061 https://github.com/angular/angular.js
mbostock d3 JavaScript 35,257 https://github.com/mbostock/d3
joyent node JavaScript 35,077 https://github.com/joyent/node

只要有下面这些类型

  • 库和框架: 和`jQuery`

  • 系统: 如`Linux`、`hhvm`、`docker`

  • 配置集: 如`dotfiles`

  • 辅助工具: 如`oh-my-zsh`

  • 工具: 如`Homewbrew`和`Bower`

  • 资料收集: 如`free programming books`,`You-Dont-Know-JS`,`Font-Awesome`

  • 其他:简历如`Resume`

一个好的主题可容易在短期受欢迎,一个库主要依赖于长期的增长,除非有很高的曝光率。

其他

我的Github: https://github.com/phodal (ps: 已经连击316天,欢迎共勉。)

为什么你应该深入Github相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. GitHub 中 Merge pull request 的 3 中选项说明

    Merge pull request 提供了 3 种 merge 方法: Create a merge commit:GitHub 的底层操作是 git merge --no-ff.feature 分 ...

  3. cannot find package “github.com/json-iterator/go“cannot find package “github.com/modern-go/reflect2“

    1. 问题现象 ../github.com/coreos/etcd/client/json.go:18:2: cannot find package "github.com/json-ite ...

  4. 知名高校共享课程资源GitHub地址

    文章目录 浙江大学 上海交大 北京大学 中科大 清华大学 浙江大学 https://github.com/QSCTech/zju-icicles 上海交大 https://github.com/Coo ...

  5. github下载源码也用命令进行安装包的联系

    2.下载安装 git clone https://github.com/Parsely/pykafka.git 然后将下载下来的pykafka文件夹下的pykafka文件(pykafka的库文件)放到 ...

  6. 快速访问github镜像 wiki镜像重点_github问题小结

    20220331 https://mp.weixin.qq.com/s/7ZFcD9BMB5WQnDAqZUgELg 高效的搜索github 20210821 https://zgc261.com/w ...

  7. github下载慢,轻松提速教程

    20210818 idm 可以快速下载github 获取github的IP地址 访问:https://www.ipaddress.com/ 网址 依次获取以下三个网址的IP github.com gi ...

  8. GitHub无法显示图片问题解决

    在C:\Windows\System32\drivers\etc下的hosts文件后面添: # GitHub Start 192.30.253.112 github.com 192.30.253.11 ...

  9. GitHub上YOLOv5开源代码的训练数据定义

    GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...

  10. GitHub上开源的YOLOv5

    GitHub上开源的YOLOv5 代码地址:https://github.com/ultralytics/YOLOv5 该存储库代表Ultralytics对未来的对象检测方法的开源研究,并结合了我们在 ...

最新文章

  1. 句法分析常用算法框架以及NLPIR、Dependency Viwer
  2. iis php win安装kangle_Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
  3. 查看linux字符集命令,关于Linux字符集的查看及修改
  4. SDNU 1300.转圈游戏(快速幂)
  5. 封装时的权限控制符区别
  6. Python基础班---第一部分(基础)---Python基础知识---第一个Python程序
  7. java 读取 jar properties_java:如何读取properties文件内容
  8. 那些烦人的VC++库、win10中的VC++库(全部)
  9. mysql网络投票系统设计_学生在线投票表决系统设计与开发(JSP,MySQL)
  10. IT人才供不应求,大数据分析程序员今后的发展道路
  11. 内网渗透学习-Windows信息收集
  12. 织梦网站如何上传服务器还原,网站转移教程:织梦系统数据库备份和还原的方法步骤...
  13. PIE-engine 教程 ——使用阈值法加载指定区域的大蒜种植区域并统计其面积
  14. 会编程的孩子有多厉害?8岁女儿写代码哄程序员爸爸开心,网友直呼:破防了!...
  15. 【编译原理】 实验二:词法分析器的手动实现(基于状态机的词法分析器)
  16. 笔记——51控制DS18B20温度控制篇章之终章温度报警
  17. reposync提示Removing *.rpm, due to missing GPG key
  18. 歌谣学前端之React中渲染列表
  19. android 使用FileProvider 兼容apk 在7.0版本无法安装
  20. Linux七牛云批量上传api,使用七牛qshell 本地文件 批量上传到七牛云 已解决

热门文章

  1. 六一欢乐赛 考试总结
  2. luoguP3387 【模板】缩点
  3. python学习第一模块练习
  4. Solaris10 for x86网卡替换配置
  5. 开发自己的Data Access Application Block[下篇]
  6. wireshark从入门到精通(协议排错安全篇)7
  7. Spring Boot + Elasticsearch
  8. 分布式内存数据库 Geode
  9. ODBC访问EXCEL
  10. ***杂记-2013-07-12