面试经:GitHub

GitHub 越来越有名,很多同学都把它作为一个关键字加入自己的简历当中。不过我在面试中,问到如何使用 GitHub,对方通常会答复:上去看源码呀!这个答案完全无法让我满意,具体的原因,一方面可以参考我之前的一篇文章《谈学习:读源码》,源码不是小说,直接看源码收获太小。另一方面,看源码是一个太直接的逻辑推断——上面有源码所以我去看源码——我不认为这是一个细心耕耘慢慢养成的习惯。

接下来我想简单谈一下,我认为应该如何使用 GitHub。

Issues 和 PR

一个 GitHub 仓库可不仅仅是一份源代码那么简单。GitHub 是开发者社交平台,所以每个项目在代码之外,都会有两个非常重要的模块:

  1. Issues 问题,包括 Bug,和其它使用者希望有的功能

  2. Pull Requests(PR) 其他的开发者在这个项目上做出了一些改进,或者修复了一些 Bug,希望能够合并到 master 当中,就会发起 PR

完美的代码是不存在的,越是用的人多的库,存在的问题,或者说被发现的问题可能就越多。阅读其他人提的问题,很多时候可以获得不小的收获,比如,大家开发时都遇到了什么问题?有没有与我类似的情况?他们是怎么解决的?大家最想要的新功能是什么?有哪些值得关注?我能做什么?等等。

以及,可能是更重要的,我们应该怎么样通过 Issues 与仓库的原作者进行交流。

毕竟我们每个人的时间都是有限的,对于大部分开源的类库来说,了解怎么用、有哪些问题、怎么避免踩坑,通常会比你知道它某个函数是怎么写的更有价值。

看文档

好的开源类库通常还会有一个做得非常到位的地方,便是它们的文档,做得通常详尽有价值。通过阅读文档,可以很快的了解这个仓库是干嘛用的,应该怎么用,能解决哪些问题,以及接下来,它的发展方向是怎样的。

据我观察,文档通常分布在三个地方:

  1. README.md,也就是打开仓库页面,默认渲染在文件列表下面的那块

  2. 官方网站,通常在导航下方,仓库简介那里

  3. wiki,通过导航链接可以到达

观察提交频率

并不是所有的仓库,都有开发者在进行积极地开发和维护。如果搜索到几年前的文章,被导引到一些比较古老的仓库,可能出于某种原因,已经没人对它进行维护了,这个时候,该放弃就要放弃。

人生苦短,时间有限,总会有更具价值的仓库供我们学习。

GitHub 热门趋势

GitHub 还有一个热门趋势页面,从中你可以了解到全世界的开发者都在关注哪些仓库,你可以把自己感兴趣的那些加星标记一下,将来不定时的翻一翻看一看它的 Issue、PR 和文档,通常都会有不小的收获。

GitHub Pages

GitHub 还提供给我们一个非常好的静态网站空间,完全免费,全世界都有 CDN,不用白不用。便是传说中的 GitHub Pages。

我们可以用它写博客,做笔记,重点是内容完全可以进行版本管理。

具体做法请自行 Google。

不要放弃提交自己的仓库,也应积极向别的开发者提出 Issue 和发起 PR

我觉得这件事和写博客一样,如果你只是在纸上记笔记给自己看,那多半会不求甚解;但是你想到写成博客总会有人看到,那多半还是会把要写的内容搞清楚,写全面,逻辑清晰可自洽。所以写博客是比记笔记更好的学习方法。以此类推,把自己的仓库推到 GitHub,也理应也是比在本地练习更好的学习方式。

这里绝不鼓励大家乱来,相反,我希望大家对自己的行为负责,重视 Issue 和 PR,毕竟都是提给其他开发者的,或多或少都会对别人造成影响。所以在提之前,十分有必要阅读仓库主人的提交须知,按照对方的代码规范书写代码,写好相关测试,然后再提交。做到言之有物,切不可乱来画猫。


总结

这篇文章不是传授大家应聘技巧的,而是希望分享自己的一些经验,让大家能够通过 GitHub 这个世界上最大的代码托管平台,正确的学习开发技巧。

如果您有相关的经验技巧,欢迎交流。


人肉与 我的博客 同步。


翟路佳
前端为主,包括但不限于 HTML,CSS,JavaScript,移动端,微信开发。偶尔会有 PHP 和服务器相关内容。 ...

爱编程,爱旅游,爱吐槽。

19.3k 声望
7k 粉丝
0 条评论
推荐阅读
四月 AIGC Hackathon 参赛记
春节过后,ChatGPT 彻底出圈,带动整个 AIGC 领域备受瞩目。于是乎各项赛事活动纷纷上马,都想抢先收割一波流量,也抢先开始对未来的探索。我也积极报名参加,一不小心报了三个 Hackathon 之多:

Meathill7阅读 1.1k评论 3

封面图
疫情已过,2023 我的前端面试记录
顺利入职。把我最近找工作的心得记录下来。工作交接确定 lastday整理手头工作,相关对接人、交接人放文档中工作交接过渡阶段。做好被咨询者,该拉人拉人,该拉群拉群平时沟通顺畅的同事如果没有 WX 可以加一个属...

linong11阅读 1.2k

简历上的项目,需要这样描述才有亮点!
每每准备面试,总有些小伙子甩出自己的豆包项目,不是Xxx管理系统,就是某某自动化平台。就像这几年自己的经历都放在 CRUD 编写上了,走的那是加班的道,干的都是体力的活。

小傅哥4阅读 1.2k

封面图
记一次旁观他人的技术面试
最近没有什么面试经历,上一次面试已经是将近一年前了,所以没办法有效回忆到当时面试的状况。好在近期肉大(@meathill)有在做一个模拟面试的选题,就可以另辟蹊径写一篇旁观其他人面试的文章。

陟上晴明4阅读 993

写一个Vue DevTools,让开发体验飞一会
近年来,人们越来越关注开发者体验 (DX)。工具和框架也一直在努力改进 DX,比如这两年光速发展的Vite。在大多数人的印象中,Vite的特点是快,但是在我看来让它发展迅速并在前端构建工具占据一席之地的主要原因是...

null仔2阅读 955

封面图
Laravel入门及实践,快速上手ThinkSNS+二次开发
【摘要】自从ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都说技术门槛抬高了,其实你与TS+的距离仅仅只是学习一个新框架而已,所以,我们今天来说说Laravel的入门。

ThinkSNS1阅读 2.5k

JS核心知识点梳理——正则篇(下)
正则是一个前端必须掌握的知识。但是由于用的少,忘了记,记了忘,导致面试经常坐蜡。这里上篇先介绍正则的规则,下篇结合一些具体题目,带大家重新学习巩固一下正则,争取面试给自己加分。

Runningfyy3阅读 2.2k

爱编程,爱旅游,爱吐槽。

19.3k 声望
7k 粉丝
宣传栏