学习方式

费曼学习法也好,记忆曲线也罢,在于用心、花时间、实践、输出

  • 设定一个切合实际的目标,以激励自己

    • 自律问题
    • 学习的过程不是单纯的学习技术,也需要让自己养成良好的习惯(生活的节奏感)
    • 培养自己的学习、研究能力
    • 培养自己的静心、专注能力
  • 解决问题

    • 不要不带目的的学习
    • 主动用学习到的内容,求解工作中的问题
    • 量化学习的目标
  • 温故而知新

    • 整理笔记(跟着系统教程(老师)学)
      • 好记性不如烂笔头
    • 阶段式学习
      • 不要妄想一口吃成一个胖子,明确现阶段学习重点,忌讳每天什么都学一点
      • 现实中如果有各种压力,要沉下心来
    • 不断的强化复习(每天)
      • 慢慢的把所学的知识,在脑海中形成一个知识图谱。
        • 比如以前端为例,最起码,知道前端,如js中有哪些内容。能够对js,对前端开发有一个系统性的认知
        • 有了知识体系后,逐渐的将每个知识点串联到一起,会梳理出一条主干和若干分支。每条分支和主干的关系,每条分支和其他分支的关系做到心中有数。那个时候别人问你什么都能答出来,问一个东西引申到另一个东西也可以,这样才算是基础知识扎实
        • 只有基础知识扎实了,以后提一个需求,会有n中方案实现这个需求,然后通过实践、尝试或经验发现某一种方案,从性能、结果等角度,各方面是最好的。这样的话,所谓的技术能力就达到了一个很高的地步了
    • 总结梳理后,输出博客(掘金之类),提高个人影响力
  • 学而不思则罔

    • 学习过程中,一定要多思考,脑子绝对不能懒
    • 自己拓展、其他人分享
    • 多尝试
      • 不管对和错,哪怕有一丁点想法,都要写出来
    • 多练习
      • 多敲代码
        • 前三年以内,薪资和敲代码的行数成正比
        • 练就出“手速”和“代码感觉”(不用动脑子了,也可以敲代码,不也会出错,形成肌肉记忆)

输出

  • 输出是一种高效的学习方式

  • 能否准确无误的解释给他人听?能否用通俗易懂的方式解释?

  • 对于从来未实现的功能,如果借助第三方库实现,一定要核对清楚安装的版本是否和当前开发环境匹配,样例去npmgithub上找官网案例,百度只能告诉你,这个库能干嘛,具体怎么干,还得看官方案例。

    • 以及基于第三方库,如果还想实现其他功能,npm搜索下关键字,90概率是已经有了这样的功能库了

入门学习方法

Crash Course < 3h + 文档 + 实战

学习一种技术

  • Crash Couse是什么
    • 时长不是太长
    • 并不是教会你这个技术
      • 或者即使教了,但不一定要完全吸收这些
      • 具体技术可以不从这个教程里学
    • 而是告诉你这个技术的蓝图、大纲,告诉你应该怎么学这个技术
      • 比如学Vue,这个视频得告诉你,要学Vue的基础语法、VueRouterVuex
      • 主要帮助你开拓视野,让你有一个这个技术栈的大局观,当后面真正学的时候,能明白自己学到哪一步了
      • Youtube上搜索React Crash Course,一个多小时的视频肯定是学不会React的,但是通过视频大纲可以知道,学会React需要掌握哪些点
      • 也就是上一小结所说的,了解一下知识树,再去学知识点
  • 文档 + 文字教程
    • 细节,快速上手
    • 官方 + 社区,文档不局限于官网
    • google关键字how to learn ...
    • 可以去看技术贡献者的博客
  • 实战

学习目标

学东西,我一直都强调要首先明确学习目标,这样我们才能去拆解目标,找到一个个最小的学习单元。接下来就看看我给大家学习数据结构与算法确定的学习目标:

确定学习目标

  • 知道有哪些常用的数据结构和算法
  • 能够写出高性能的底层轮子
  • 知道如何进行复杂度分析、性能分析
  • 通过不断训练,具备“算法思维”,提高分析和解决实际问题的能力
  • 能够自如地应付大厂面试

怎么就知道,某个知识点就是我们要掌握的学习目标呢,得去了解一下这个领域的概览,从整体角度去了解一下所有的内容,各自的模块都有哪些

工具类的api先有一个基本了解即可,不要在一开始就想着全部系统的学习,用到哪儿学到哪儿