秋招看到github上不错的项目,但不知道该咋学?

秋招看到github上不错的项目,但不知道该咋学?_第1张图片

作者:阿秀
阿秀的学习笔记:https://interviewguide.cn

你好,我是阿秀。

昨天的文章中提到了校招过程中简历上相对而言比较重要的两个地方:实习经历和项目经历,昨天已经聊过实习相关话题:超级纠结!又想去实习又想全力准备秋招...今天来聊一聊项目经历。

打算找开发技术岗的本科学弟学妹或者研究生师弟师妹的简历上可以没有实习经历,但绝不能没有项目经历,因为项目经历是你在没有实习经历的情况下,证明自己代码能力和实践能力的唯一方式,也是最好的方式,更不要说那些既有实习经历又有项目经历的同学了。

此外有一些项目可以说是"烂大街"的项目,比如Java的电商秒杀项目或者RPC项目,C++的Web服务器等。

话说阿秀自己秋招时简历上的第二个项目也是Web服务器,自己在面试中主要聊的都是实验室的项目,具体详情可以看下阿秀自己的简历迭代修改文章:一份百投百中的计算机校招简历是如何迭代足足26版的?这里就不细细展开了。

今天就来聊一聊:在github上看到了好的项目,应该如何去学习

自己造不出来轮子没关系,可以先看看别人是怎么造轮子的,在看懂别人造的轮子基础上,再加以修改,将某些功能完善、改进后也可以算是自己“新造的轮子"了。

1、疑问

阿秀的学习圈中就有一位本科学弟,他在github上看到了不错的项目,但不知道应该如何开始学习,自己也没有阅读源码的经历,不知道该怎么上手。

以下是这位学弟在阿秀的学习圈中的提问原文:

秀哥好,我最近在Github上找到了一个rpc项目感觉还不错,但是自己没有什么阅读开源项目的经验,不知道从哪下手.

想听听秀哥的建议,从Github上下载下来项目之后应该怎么把它研究明白呢?

研究到什么程度才算明白呢,请秀哥解答一下,谢谢!

2、分析与回答

其实这位学弟的疑问换一种问法就是怎么学习github上的优秀项目?github上的好东西实在是太多了,但有时候"万事开头难"、"万鸟在林不如一鸟在手",先搞定一个再说其他,一个都搞不定就别说其他的了。

阿秀这里简单介绍一下自己以前的学习方法和经验吧,以下是阿秀在学习圈中对这位学弟的回复原文:

github上的优秀项目大致可以分为两种,前端项目或者是后端项目,但不管是前端项目还是后端项目,最重要的就是先跑起来!先跑起来!先跑起来!

重要的事情要说三遍!不管是前端项目还是后端项目,一定要跑起来,跑不起来就不要说其他的了。

让项目跑起来的方法一般都在源目录的README.md文件中,一定要好好读几遍,这里也建议大家多去看一些star数量比较高的项目,因为这些项目往往都是有人在维护着,文档相对齐全一些。

1、第一步就是让项目跑起来!如果是前端项目的话一般都需要安装一些依赖,npm或者yarn就可以,如果是后端项目往往需要先看一下配置,做好本地配置,比如数据库名、表初始化之类的,只有先安装好依赖/配置好文件才能顺利跑起来。

如果你配置不号或者配置不通,那就去项目的issue中看看一些前人提出的问题,看看里面有没有跟你当前遇到问题一样的情况。

这是第一步,先让项目跑起来为算,没有第一步,就不用谈下面的了,赶紧洗洗睡吧。

秋招看到github上不错的项目,但不知道该咋学?_第2张图片

2、第二步就是找到项目入口,然后细化功能,找到自己目前比较感兴趣的模块或者一个关键模块,找到这种key点,从具体的小模块入手,不要妄图一口吃成个大胖子。

因为一般比较成熟的项目都是由很多个模块构成的,我用简单的XX管理类项目来做例子,前端项目来说就是一个个的模块,比如登录页面、管理页面、dashboard页面,每个页面上有着各种组件,去看看各个组件之间是如何耦合在一起的;

后端项目的话来说就是由一个个小功能模块结合在结合在一起的,比如登录模块、日志模块、数据操作模块、数据库连接模块等。

先找到一个你感兴趣或者你需要去改的模块在哪里,从这种地方开始你的工作,比如:

  • 前端按钮点击事件会引起什么后续操作?

  • 数据流是如何导向的?

  • 后端如何接收一个请求的?

  • 如何校验用户名?

  • 如何连接数据库?

  • ....

3、第三步就是动手实操,开始动手改,从copy开始。

太难我改不出来?

没关系,不会写,我还不会抄吗594f46b1ffa0ee8919ed516353987e42.png

我先抄一遍,原项目怎么写我就怎么写,最后我要实现跟源项目一样的功能,能够用我现在写的这个模块完全替换之前的原生模块,这个步骤一定不能省!

手会了才是真的会了,脑子会了不叫会了。

秋招看到github上不错的项目,但不知道该咋学?_第3张图片

如果这个你能做到,下一步就是开始魔改了,在项目原有基础上加上你想要的功能,你想实现的功能,前端加个页面,后端再加个接口之类的。

4、第四步就是由点及面,挨个搞定。你搞定了第三步,那就可以去看看跟刚魔改完模块比较接近的几个模块,最好找跟第三步比较贴近一点的模块,因为那样容易有连贯性,主观上也比较容易接受,而不是再次从0开始,慢慢啃。

以上就是阿秀自己在学习github项目的方法和经验!

我就是用这种方法去学习github上比较优秀的项目的,以至于后来新看到一个项目后很快就能抓住该项目的重点所在了!

3、秋招加油

最近阿秀在自己的学习圈子里发起了一项秋招结伴而行、相互监督的活动。

秋招在即,我想圈内的很多小伙伴都有秋招/学习/找工作的需求吧,所以才发起这项为期90天的秋招加油活动。

因为两年前我就是只管学自己的,剩下的全都交给时间了:双非渣硕的秋招之路总结(已拿抖音研发岗SP)、没有什么逆袭,有的只是一点点坚持!

直到如今工作了,我依然保持每天学一点点:坚持充电!我离开学校后坚持学习135天了!可能一天可能做不了什么,但是一周、一个月能做的就有很多了。

如果你能拆解自己的目标到每月、到每周,甚至到每天具体需要做些什么,并且去执行,剩下的就是交给时间了

希望各位圈友能够坚持每日打卡,这样才能积少成多、聚沙成塔、水滴石穿,相互监督、结伴而行,90天后收获胜利果实!

秋招看到github上不错的项目,但不知道该咋学?_第4张图片

秋招结伴而行、相互监督打卡->戳我看活动详情

4、结语

其实如果你项目看的多了自然就会明白有些东西其实是换汤不换药,很多东西都是类似的,你也就知道哪些地方可能比较重要,也知道自己该朝哪个方向使劲了。

我是阿秀,衷心希望各位学弟学妹都能顺利上岸,找到好工作69532dd00e53ca1fd7e3cf99c7e84f58.png

045b8c4310e944f133bb375d29f671bd.gif

推荐:校招求职网站(操作系统、计算机网络、数据库MySQL、Redis等)

推荐:阿秀的学习圈子-总有人在你不知道的时候默默前行

你好,我是阿秀,本硕均于普通双非学校就读,现于抖音旗下担任全栈研发工程师,前后端全能。一路走来,很累也很不容易,希望能帮助到更多像我一样的普通学校的学生。我踩的坑不希望你再踩,我走过的路希望你照着走下来,后来慢慢的组建了一个阿秀的的学习圈子。

你可能感兴趣的:(数据库,java,编程语言,人工智能,react)