个人成长 - 学习方法

来自程序员鱼皮的编程学习方法经验分享。

如何学习新技术

  1. 基本了解
  • 了解该技术是用来做什么的?优缺点?适用场景?
  • 通过网上的经验分享帖来对怎么学习这个技术有个大致的认识,或看大佬的介绍视频
  • 进一步,上网看别人的完整视频/书籍教程,或者官方文档,别人的技术文章等等来进行系统学习。
  1. 快速上手
  • 跟着教程或官方文档(Get Started)快速跑通这个技术的 Demo,
  • 比如学习Spring Cloud框架,想在Idea里搭建一个项目,跑简单的程序demo, 有个大体的认识。
  1. 系统学习
  • 跟着教程或官方文档完整学习,并能够被动使用这个技术来完成项目或解决问题。
  • 除了以视频/书籍教程学习为主线外,需要更加注重实践。
    • 多写代码、遇到问题多利用搜索引擎自主解决、同时可以多看别人的经验和技术文章,持续积累和写笔记总结。
  1. 主动运用
  • 在能够使用技术完成项目后。
    • 进一步了解该技术的特性,并做到熟练运用,主动 用该技术去解决对应的问题。
    • 可以通过阅读官方文档、进阶书籍等进行学习。
  • 多自主思考,使用该技术做一些有意思的项目,在项目中巩固所学知识。
  1. 了解原理
  • 上帝视角来了解该技术的核心思想、架构设计、关键模块、各模块的联系和作用等。
  • 可以通过百度、阅读官方文档、技术文章、进阶书籍等进行学习。
  1. 深入源码
  • 阅读该技术的源码,由整体到局部逐渐深入。
    • 对于初学者,不建议自己去啃源码,可以和用开源仓库或进阶教程进行学习,掘金小册或极客时间都是不错的。
  • 如果对基本框架还不熟悉,或者语言特性还不够了解,还是不建议直接阅读源码。
  1. 修改源码
  • 能够在该技术源码的基础上修复一些 Buq、修改部分源码、或者定制开发新功能。
  • 可以多和原作者、项目的issues 区讨论交流,最好能给该项目贡献代码,写在 GitHub 上也是很加分的经历。
  • 给知名项目贡献代码,比自己做一个完整项目还要亮眼
  1. 推陈出新
  • 在把一门技术(框架)吃透后,可以尝试自己实现类似的技术框架。
    • 弥补原技术的缺点,使得你自己的东西也能拥有一席之地。

该学到哪一步?

  • 如果是找一般工作,前两步即可,很多时候,应该先注重广度,再去深耕某个内容。
  • 如果想进大厂,至少完成前四步
  • 在做项目时,如果需要用到某个没学过的技术,也是建议先百度,去搜一下这个技术怎么最快使用起来?怎么最快满足我们的需求?而不是任何新技术我们都要看完整教程去学习。

高效看网课

  1. 如何选择网课
  • 了解技术全貌,确定目标
  • 倍数 + 跳过(一些熟悉的点,快速跳过;不熟悉的点,放慢速度)
  • 记录 + 回想 (可以记录笔记,不要过于详细)

高效搜索

即时搜

搜索习惯:

  • 搜学习资源:B站,CSDN,网盘聚合搜索平台
  • 搜学习路线:知乎、掘金
  • 搜项目:GitHub、Npm 官网、掘金、Gitee、百度开发者搜索
  • 搜资讯:InfoQ、掘金、开源中国、微信搜一搜、51 CTO
  • 搜图片:百度、Google、Bing、Pexel、Pixiv、识图软件
  • 搜 Bug:百度、官方文档、Stack Overflow、GitHub Issues 区、百度开发者搜索、CSDN