如何自学
如果想成为最好的程序员,就必须懂得如何自学
剖析自学过程
回想一下,上次自学效率很高是什么时候?我近几年在玩一种卡牌游戏,叫做杀戮尖塔,游戏有四种职业,每个职业有近80张卡牌,我根本没有有意识地去记,就完全记住并熟练运用各种卡牌,通过这个例子可以分析我高效自学的特点:
- 感兴趣,好奇心使我轻而易举地记住了这么多信息
- 实践的优先级很高,看完所有知识点再去实践是低效的,谁玩游戏会先去看攻略,再下载游戏打开呢?一定要先实践,在实践中积累的问题,立刻回到书本中去,你就有强烈的冲动去消化吸收其中的内容。实践和学习是一个循环往复的过程,实践到不懂的地方要看书学习,看书学到的东西要在实践中巩固
- 给他人教学也是自学的一部分,应该随时准备将自学所学打包教给他人,教别人其实也很容易,可以和朋友聊天,可以写博客,关键在于,要用自己的语言将知识组织起来,和别人交流。
作者的十步学习法
体系背后的逻辑
如果看一本书,直接从封面看到封底,这样的效率很低,要掌握一门技术,需要了解以下三个要点。
- 如何开始——要想开始使用自己所学的,要掌握哪些知识?
- 学科范围——我现在所学的东西有多宏大?我该怎么做?在开始阶段,不需要了解每个细节,但能对这个学科有个大致的了解,将来就会发现更多细节
- 基础知识——使用一门技术,需要了解这个技术的用户案例和最常见的问题。技术是遵循二八原则的,即20%的功能就能解决80%的问题,我需要了解要学的哪20%
十步学习法体系
- 了解全局——对自己学的内容有个基本的了解,大致范围就行
- 确定范围——利用这些了解,筛选出要自学的范围,保持专注,一次只学一个东西
- 定义目标——尝试学习之前,应该能清晰描绘出自己学成之后的样子,倒推学习计划
- 寻找资源——尽可能获取多的资源
- 创建计划——明确学习顺序,把计划当做自己要写书时候的大纲,要先做什么,再做什么
- 筛选资源——知道学习范围和学习顺序后,去除重复学习资源,只保留精品
- 开始学习,浅尝辄止——只需要了解基本用法
- 动手实践,边做边学——通过实践产生兴趣
- 全面掌握,学以致用——通过实践中发现的How it works等问题,再回头寻找答案
- 乐为人师,融会贯通——将自己学会的教给别人,写博客或者演讲
发现自己的知识短板
回想一下,自己在哪些工作上花费了大量时间,哪些知识点是自己不能回答的,花几个小时时间用心学习直到掌握它,可以使用十步学习法