先看再点赞,给自己一点思考的时间,微信搜索【沉默王二】关注这个靠才华苟且的程序员。
本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章。

前几天,看到一位朋友程序员小浩在文章里分享他的开源项目,上了 GitHub 的趋势日榜单,并且成功排名第一。我表示很酸,因为我也想有一个上千 star 的开源项目,到时候就可以肆无忌惮地吹牛逼了。

对于优秀的程序员来说,搜索引擎就该用 Google,找开源项目就该用 GitHub,找答案就该用 Stack Overflow,对吧?

如果能够拥有一个 star 数上万的 GitHub 仓库,那简直就是偶像级的开源作者。出去找工作的时候,在简历上就那么一晒,面试官就哑口无言了。

不过现实往往比较骨干,来看看我的 GitHub 仓库就能感受到了。


最多 star 的还是多年前写的一个二维码分享海报的仓库,仅仅 48 个,惨不忍睹啊,可怜得我一把鼻涕一把泪啊。可能有些读者看到这幅图后会觉得不舒服,“二哥,你可是我的偶像啊,怎么 GitHub 这么弱!”

但在我看来,挺正常的,一个人的精力是有限的,做到全方面优秀的都是屈指可数。况且,我看到了巨大的潜力,对,我的 GitHub 上升空间很大,只要我能拼一拼,超过 48 个 star 的仓库应该能实现吧?!

对于大多数普通的程序员来说,包括我,虽然不能成为优秀的开源作者,但利用 GitHub 找到一些优质的开源项目还是很有必要的。造轮子咱不行,“拿来主义”还不行?那怎么找到这些优质的开源项目呢?

01、GitHub 上直接搜项目

GitHub 主页上会有一个搜索框,直接在里面搜项目的关键字就行了,比如说微信支付这个关键字。


目前能搜到 2754 个仓库,比较多。


这种搜索的方式等同于在搜索框中加了一个 in:description 或者 in:about



那这个 description 和 about 又是什么意思呢?指的是仓库的简介,见下图的红色框区域。


那 in 后的关键字还有没有别的呢?有,可以是 in:readme


对于大部分中文的仓库来说,readme 部分是最详细的。区分一个仓库优质不优质,就看 readme 部分写得够不够认真。

我的个人博客用的 GitHub Pages, 地址如下:

https://github.com/itwanger/itwanger.github.io

我昨天刚把这个仓库的 readme 整了整,比之前看起来高大上多了。自我感觉良好,以后我要花点精力好好维护下,读者朋友们敬请期待啊,我敢肯定,在不久的将来,star 数肯定会超过 48,我敢赌 100 块!


那通过 in:readme 后的仓库数量有点多,达到了 16432 个,也太多了,怎么能精选一下呢?

一个仓库之所以优质,就在于它的 star 数是否足够多,因此可以在后面加上 stars>2000,这样过滤后的结果就少了很多。


02、GitHub 上直接搜作者

重要的参数有下面这 4 个,location 是所在的国家,language 是编程语言,followers 是关注人数,fullname 是作者名。


比如我搜 location:china followers:>4000,注意左侧选中「Users」,排名比较靠前的两位是阮一峰和尤雨溪大佬。


查看一下尤雨溪大佬的主页,头像真的非常清秀帅气,我第一印象知道想到了谁吗?徐志摩。前端框架 Vue.js 的作者, 真的非常牛逼了。


作者牛逼,那自然他的项目也就优质——基本上是个不可推翻的定理。

03、Google 直接搜

还拿之前“微信支付”这个关键字,百度搜到的结果如下所示:


换成 Google 呢?


对,第一个就是我想要的。


star 数高达 20k,可以说非常优质的项目了。我在做商城的时候就用的这个,微信开发的 Java SDK,支持包括微信支付、开放平台、公众号、企业微信/企业号、小程序等微信功能的后端开发。

04、GitHub Trend

对,就是文章开头提到的 GitHub 趋势榜,地址如下:

https://github.com/trending

就如宣传语里说的,了解 GitHub 社区今天最激动人心的仓库或者作者。下图中第四位就是小浩的,牛逼牛逼。


可以选择编程语言,也可以选择日榜、周榜、月榜。

选择作者的话,可以看到一些优质的项目。


05、GitHub Topics

GitHub Topics 展示了最新和最流行的讨论主题,在这里不仅能够看到开源项目,还能看到更多非开发技术的讨论主题。地址如下:

https://github.com/topics

不过,主题这块有个缺点,就是它的排序是按照首字母从 A 到 Z 的排列,这就导致如果我想看 Java 的话,就需要 load more 再 load more,再 load more,嗯,还是看不到。


希望 GitHub 在这方面改进一下,最起码可以选择一下。幸好幸好,load more 下面有一个 popular,里面有 Java 的标签。


点击标签就可以跳转到 Java 的主题了,排名第二的竟然是我的好朋友 guide 哥的仓库,star 已经 84k+ 了,牛逼牛逼。


06、GitHub Explore

Explore 就是探索的意思,它会根据你的喜欢智能化地推荐一些项目。地址如下所示:

https://github.com/explore

我不知道这个探索算法是怎么算的,感觉给我推荐的项目还不够优秀,可能是我自己的 GitHub 还不够优秀吧。


07、牛人推荐

很多大学生读者问我,“二哥,听说现在公司招聘的时候非常看重项目经验,可我在大学的时候没有项目经验啊!怎么办?”

看 GitHub 上那些大牛们的开源项目,就是增加项目经验的一个很好的办法。把开源项目 down 到本地,然后看源码自己研究,顺带在原有的基础上补充一些功能,是不是就有项目经验了?

本身这些开源项目都是非常优质的,但功能并不会非常全面,毕竟作者的精力和时间有限。

虽然我不是 GitHub 上牛逼的作者,但摸着良心讲,开发经验还是非常充足的,所以我推荐的项目还是非常值得去学习的。

第一个,微人事(vhr),我的好朋友江南一点雨的。


推荐很多次了,我觉得有必要找他要一个贡献者的角色,以后我也可以出去吹牛逼了。

第二个,电商系统(mall),我的好朋友 macrozheng 的。


我们公司的商城系统升级的时候,就用了他这个作为地基,真的是非常给力的一个开源项目。

08、最后

发现了优质项目,不只是要去 star 它,最好 fork 到自己名下,去研究研究源码。

如果可以的话,可以尝试去解决几个 issue,提几个 pull Request,如果能混到一个贡献者的名额,就开心了哈,毕竟自己头像出现在 readme 里也是非常骄傲的一件事。

最后,希望读者朋友们都能够玩的开心,毕竟 GitHub 是全球最大的同性交友社区(狗头)。


我是沉默王二,一枚有颜值却靠才华苟且的程序员。关注即可提升学习效率,别忘了三连啊,点赞、收藏、留言,我不挑,奥利给

最近,有很多读者问我,有没有大厂的面经?那问二哥就对了,微信搜索「沉默王二」,回复「面试」就有三份我精心为你准备的刷题宝藏,本文 GitHub github.com/itwanger 已收录,欢迎 star。

保姆级教程,如何发现 GitHub 上的优质项目?的更多相关文章

  1. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  2. RocketMQ保姆级教程

    大家好,我是三友~~ 上周花了一点时间从头到尾.从无到有地搭建了一套RocketMQ的环境,觉得还挺easy的,所以就写篇文章分享给大家. 整篇文章可以大致分为三个部分,第一部分属于一些核心概念和工作 ...

  3. 自建本地服务器,自建Web服务器——保姆级教程!

    搭建本地服务器,Web服务器--保姆级教程! 本文首发于https://blog.chens.life/How-to-build-your-own-server.html. 先上图!大致思路就是如此. ...

  4. 强大博客搭建全过程(1)-hexo博客搭建保姆级教程

    1. 前言 本人本来使用国内的开源项目solo搭建了博客,但感觉1核CPU2G内存的服务器,还是稍微有点重,包括服务器内还搭建了数据库.如果自己开发然后搭建,耗费时间又比较多,于是乎开始寻找轻量型的博 ...

  5. Eclipse for C/C++ 开发环境部署保姆级教程

    Eclipse for C/C++ 开发环境部署保姆级教程 工欲善其事,必先利其器. 对开发人员来说,顺手的开发工具必定事半功倍.自学编程的小白不知道该选择那个开发工具,Eclipse作为一个功能强大 ...

  6. 新手小白在github上部署一个项目

    新手小白在github上部署一个项目 一. 注册github账号 github地址:https://www.github.com/ 二.下载安装Git 地址:https://git-scm.com/d ...

  7. 从Github上下载了项目,导入Android Studio,gradle 报错,应该怎么修改

    一.从Github上获取源代码 我这里是直接下载ZIP文件 二.在本机的Android Studio上新建一个空白项目,目的主要是与刚从Github上下载的项目文件结构做对比 三.替换gradle文件 ...

  8. Pull Request的正确打开方式(如何在GitHub上贡献开源项目)

    Pull Request的正确打开方式(如何在GitHub上贡献开源项目) GitHub的官方帮助如下: Fork A Repo: https://help.github.com/articles/f ...

  9. github上传本地项目

    github上传本地项目,分为两个部分: 1.如果建立了ssh key的,直接看第二部分的上传部分就行了 2.如果没有建立ssh key的,就从头开始看吧 ——————————————————我是快乐 ...

随机推荐

  1. JavaScript基础对象创建模式之单体/单例模式(Singleton)

    首先,单例模式是对象的创建模式之一,此外还包括工厂模式.单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3,向整个系统公开这个实例接口 Java中大 ...

  2. SharePoint2013 上传文件到文档库

    SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current. ...

  3. css文字不透明度怎么设置?

    在css中有很多好看的样式都可以实现,css设置出来的样式让整个网页看起来也会非常美观,今天的这篇文章就给大家来介绍一下在css中怎么设置文字的透明度,让你的文字在网页中看起来是透明的. CSS设置透 ...

  4. UVA 11383 Golden Tiger Claw 题解

    题目 --> 题解 其实就是一个KM的板子 KM算法在进行中, 需要满足两个点的顶标值之和大于等于两点之间的边权, 所以进行一次KM即可. KM之后, 顶标之和就是最小的.因为如果不是最小的,就 ...

  5. HBuilder生成证书

    一.安装jdk https://www.oracle.com/java/technologies/javase-downloads.html 二.打开CMD命令到JDK安装目录bin文件夹下 执行命令 ...

  6. 执行ArrayList的remove(object)方法抛异常?

    简介 或许有很多小伙伴都尝试过如下的代码: ArrayList<Object> list = ...; for (Object object : list) { if (条件成立) { l ...

  7. MYSQL 之 JDBC(二): 数据库连接(二)通过DriverManager获取数据库连接

    通过DriverManager获取数据库连接 修改一下配置文件 driver=com.mysql.cj.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/ ...

  8. 数据可视化之powerBI基础(十六)PowerQuery的这个小功能,让你轻松发现数据质量问题

    https://zhuanlan.zhihu.com/p/64418072 源数据常常包含各种差错值,为了进行下一步的分析,我们必须先找出并更正这些差错,做这些工作几乎不会有什么快乐感可言,但却往往需 ...

  9. 邂逅Vue.js

    1.简单认识一下Vue.js Vue (读音 /vjuː/,类似于 view),不要读错. Vue是一个渐进式的框架,什么是渐进式的呢? p渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,带来更 ...

  10. 通过server酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~

    昨天菜鸟小白给大家留了一个课后作业,如何实现天气的定时推送.有没有小伙伴做出来答案呢?今天菜鸟小白给大家分享我的实现方式吧.这个是我今天整的程序流程图,昨天我们还只是实现了中间的通过和风天气API获取 ...