如何学习源码 | 如何高效学习一个新知识


 

正文:共1256字

预计阅读时间:2min30s

 
 

什么时候看源码

对于复杂的开源项目,一上来就看源码是不合理的,可能导致效率低下,适得其反。

往往看一个开源项目源码前,我们会经历以下几个阶段:

  • 刚接触一个开源项目,跟着官方文档,运行一些demo实例

  • 在工作项目中应用、实践、踩坑

  • 能够熟练使用,了解它的一些设计思想,但是还不知道设计原理

经历过以上几个阶段后,就是开始看源码的最佳时期

如何看源码

1. 检索收集信息

如果你不是一个走在行业最前端的人,那么你踩过的坑,一定有前人踩过。你想学的东西,也一定有前辈早已研究透彻。

如果一定有人走过我们要走的路,那么我们就应该利用好这个互联网大世界,在踏出征途前,先从无数优秀前辈身上,汲取一些“旅行攻略”。

不光是学习源码,对于绝大多数我们即将要做的事情来说,检索收集信息都应该是第一步,甚至要放在计划制定之前。

学习开源项目源码之前,带着它的名称 + “如何学习” 作为关键词,检索信息,对于我们程序员,甚至可以先搜一搜这个项目相关的面试题。

这有助于我们用最短的时间,去了解这个项目最值得我们学习的地方,让我们更加清楚我们想要什么;也有助于我们收集学习资料,提高学习效率。

2. 宏观了解

从全局的视角去了解整个项目,这有助于形成整体的知识结构,上来就从细微处硬啃,效率极低。

可以从以下几个方面着手:

  • 项目的背景

  • 项目解决的问题

  • 浏览代码仓库,了解其Issue报告规则、PR规则、贡献规则、开发环境...

  • 源码的目录结构

  • 项目的元数据。例如package.json,看看项目的依赖/脚本

  • 构建方式,运行环境,入口,构建输出

  • 项目的历史版本和当前版本的区别,未来的发展方向

  • 项目的技术选型:项目的技术依赖,优化方案,类型控制,格式检查,代码规范,API接口设计,单元测试等

3. 重点切入

有了你对项目的熟练使用,有了对项目设计思想的了解,有了对项目整体的认知,那么我们就可以开始带着问题细啃源码,去了解这个项目的重点的实现原理。

  • 比如这个项目最重要的核心思想,是如何实现的;

  • 比如你在实践中经常踩坑的点,是如何产生的;

  • 比如那道最高频的面试题,面试官到底想考我们什么;

  • 比如那些你在实践中经常用到的特性,是如何实现的

  • ...

带着这些切入点去看源码,逐一击破,最终就可以建立一个完整的知识体系。

4. 模仿实现

当掌握了项目的宏观结构 + 重点特性的实现原理后。就可以开始自己动手,尝试实现一个类似的简单小项目。

这个项目不需要完整的重复造轮子,不需要完美的关注细节,只需要把我们所学到的结构应用其中,把关键特性模仿实现即可。

这个过程有助于我们查漏补缺,在自己动手踩坑的过程当中,把学到知识融会贯通。

5. 开源贡献

当我们掌握了知识之后,根据费曼以教为学的方法,我们最后应该做的就是输出。比如:

  • 输出学习总结

  • 反馈项目社区:参与共建,做开源贡献,解决issue,做插件开发

举一反三

这套方法其实适用于绝大多数知识体系的学习

- END -

   其他文章   

【认知分享】如何高效舒适的成长——《刻意学习》读书输出

【认知分享】为什么马云能成功而你不能

【效率工具】 Notion为什么能让我放弃手账

【认知分享】无痛提升英语的方法

   我的博客   

www.scarsu.com

“持续高效学习”

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件运行环境: 操作系统:windows server 2008R2 企业版64位或以上版本 数据库:Microsoft SQL Server 2008 .NET:4.0 部署文件安装注意事项: 1.网站文件加要添加上传权限,添加NETWORK SERVICE和IIS_IUSRS,设置完全控制。 1.应用程序池设置兼容32位应用程序,设置经典模式。 2.数据库连接配置正确 3.DB.config主域配置一定要正确,否则学员无法登录,例如网址是k12.weisha100.net,add nane哪里就填weisha100.net,如果是用ip访问,主域哪里填ip。不用带端口。 数据库脚本执行注意事项: 1.建的数据库名称要和脚本里的名称保持一致。(或者修改脚本里的名称。只要保持一致即可) 2.数据库要允许server身份登录。 3.如果使用sa登录,要启用sa用户。 详细的安装教程可登录 www.weisha100.net注册观看详细的视频教程。 网站初始管理信息: 管理员入口:网址/admin/index.ashx 账户:song 密码:1 学员入口:网址/student/index.ashx 账户:13223040250 密码:1 同教师账户 (学员和教师管理员后台可以添加初始账户可以删除) 超管入口:网址/manage/index.aspx 账户:admin 密码:1 (超管主要负责资金及第三方相关接口,不要随意配置里面得权限及管理员分组) 操作手册下载地址:http://vido.weisha100.net/使用手册.rar 码下载地址:GitHub开地址:https://github.com/weishakeji/LearningSystem 技术支持:1558453748 电话:15660957178
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值