前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何学习源码 | 如何高效学习一个新知识

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

作者头像
scarsu
发布2020-10-22 17:57:22
7420
发布2020-10-22 17:57:22
举报

正文:共1256字

预计阅读时间:2min30s

什么时候看源码

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

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

  • 刚接触一个开源项目,跟着官方文档,运行一些demo实例
  • 在工作项目中应用、实践、踩坑
  • 能够熟练使用,了解它的一些设计思想,但是还不知道设计原理

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

如何看源码

1. 检索收集信息

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

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

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

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

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

2. 宏观了解

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

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

  • 项目的背景
  • 项目解决的问题
  • 浏览代码仓库,了解其Issue报告规则、PR规则、贡献规则、开发环境...
  • 源码的目录结构
  • 项目的元数据。例如package.json,看看项目的依赖/脚本
  • 构建方式,运行环境,入口,构建输出
  • 项目的历史版本和当前版本的区别,未来的发展方向
  • 项目的技术选型:项目的技术依赖,优化方案,类型控制,格式检查,代码规范,API接口设计,单元测试等

3. 重点切入

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

  • 比如这个项目最重要的核心思想,是如何实现的;
  • 比如你在实践中经常踩坑的点,是如何产生的;
  • 比如那道最高频的面试题,面试官到底想考我们什么;
  • 比如那些你在实践中经常用到的特性,是如何实现的
  • ...

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

4. 模仿实现

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

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

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

5. 开源贡献

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

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

举一反三

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

- END -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自律神仙ScarSu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么时候看源码
  • 如何看源码
    • 1. 检索收集信息
      • 2. 宏观了解
        • 3. 重点切入
          • 4. 模仿实现
            • 5. 开源贡献
            • 举一反三
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档