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

简介: 笔记

你好,我是阿秀。

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

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

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

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

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

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

1、疑问


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

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

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

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

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

2、分析与回答


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

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

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

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

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

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

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

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

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

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

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

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

  • 前端按钮点击事件会引起什么后续操作?
  • 数据流是如何导向的?
  • 后端如何接收一个请求的?
  • 如何校验用户名?
  • 如何连接数据库?
  • ....

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

太难我改不出来?

没关系,不会写,我还不会抄吗

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

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

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

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

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

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

3、秋招加油


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

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

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

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

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

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

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

4、结语


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

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

相关文章
|
4月前
|
开发工具 git 开发者
2024最简七步完成 将本地项目提交到github仓库方法
该文章提供了一个简洁的七步教程,指导用户如何将本地项目提交到GitHub仓库。
2024最简七步完成 将本地项目提交到github仓库方法
|
2月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
91 3
|
4月前
|
存储 安全 Java
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
在一次意外中,作者因三年前将测试代码遗忘在GitHub上而遭遇了代码被他人fork的问题。为解决这一危机,作者详细介绍了如何通过GitHub的DMCA下架通知流程安全删除敏感代码,包括处理私人信息和商标侵权的具体步骤。本文不仅提供了实用的操作指南,还强调了及时响应的重要性,帮助读者避免类似风险
70 1
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
|
4月前
|
Java
Java系列之 解决 项目 jar 包无法上传到Github
该博客文章介绍了解决Java项目中jar包无法上传到Github的问题,通过修改`.gitignore`文件来包含jar包,从而成功添加到上传目录。
Java系列之 解决 项目 jar 包无法上传到Github
|
4月前
|
数据采集 编解码 算法
Github | 推荐一个Python脚本集合项目
Github | 推荐一个Python脚本集合项目
|
4月前
|
Rust 前端开发 JavaScript
Github 2024-05-20 开源项目周报 Top15
根据Github Trendings的统计,2024年5月20日当周共有15个项目上榜。按开发语言分类,项目数量如下:Python项目5个,TypeScript项目3个,C++项目2个,Jupyter Notebook项目2个,C、Go、Rust和C#项目各1个。介绍了多个值得关注的项目,包括ChatGPT桌面应用程序、Fooocus图像生成软件、Jellyfin媒体系统等。这些项目涵盖了多种功能和技术领域,值得关注和研究。
76 3
|
4月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
151 2
|
4月前
|
人工智能 Rust JavaScript
Github 2024-08-26 开源项目周报Top15
根据Github Trendings的统计,本周共有15个项目上榜。以下是按开发语言汇总的项目数量:Python项目8个,TypeScript、C++ 和 Rust 项目各2个,Jupyter Notebook、Shell、Swift 和 Dart 项目各1个。其中,RustDesk 是一款用 Rust 编写的开源远程桌面软件,可作为 TeamViewer 的替代品;Whisper 是一个通用的语音识别模型,基于大规模音频数据集训练而成;初学者的生成式人工智能(第2版)则是由微软提供的18门课程,教授构建生成式AI应用所需的知识。
147 1
|
4月前
|
Rust Dart 前端开发
Github 2024-08-19 开源项目周报Top15
根据Github Trendings的统计,本周(2024年8月19日统计)共有15个项目上榜。按开发语言分类,上榜项目数量如下:Python项目最多,有7项;其次是JavaScript和TypeScript,各有3项;Dart有2项;HTML、PowerShell、Clojure和C++各1项。此外,还介绍了多个热门项目,包括Bootstrap 5、RustDesk、ComfyUI、易采集、Penpot等,涵盖了Web开发、远程桌面、自动化测试、设计工具等多个领域。
123 1
|
4月前
|
JavaScript 前端开发 Go
Github 2024-08-12 开源项目周报 Top14
本周Github Trendings共有14个项目上榜,按开发语言汇总如下:Python项目7个,TypeScript项目5个,C项目2个,JavaScript项目2个,Go和Batchfile项目各1个。其中亮点包括开发者职业成长指南、Windows激活工具、ComfyUI图形界面、AFFiNE知识库、易采集可视化爬虫等项目,涵盖多种实用工具和开源平台。
158 1