前言
如果领导某一天突然给你一个新的任务让你做,而你又完全没有接触过这方面的知识,你会怎么做?先看书,把未了解的知识点形成体系,然后再做?NO,那样太慢了,你需要的是一个快速学习的方法。
概述
文章会从三个方面来叙述:
反馈式学习:建立一个反馈环境,在环境中探索各种反馈;
结构化思想:把零碎的知识点结构化整理;
给时间以文明:时间管理法则,固定时间段内只去学习不玩其他。
反馈式学习
反馈式学习是以反馈信息作为一种学习。你首先搭建好一个有信息反馈的环境,然后在里面探索,在探索过程中逐渐形成知识体系。此时的你应犹如一个新奇的小孩走进了糖果屋一样,到处探索,无拘无束,你想要的一切都能从探索中获取到。
我这里假设你不会Android开发,你想开发一个社交类的APP,你会怎么做?你可能会想到先看书,看四大组件,UI,存储,网络......但是这样做有个问题是,你需要个把月来学习你才能形成知识体系,而且你要面对厚厚的书籍。你不妨换一种方式来做,先用搜索引擎搜起来,搜索APP开发的相关概念,环境搭建,案例,你想到知道的都可以放到网上来搜索一下。对于网络信息如此发达的时代,在网上找个知识点介绍并非难事。了解过大概的流程后,你可以找一个Demo程序先跑起,形成一个感性的认知。这个Demo不需要过于复杂,你只需要它基本的功能就好了,并且最好有相关的详细的讲解。程序跑起来其他就好办了,你只需要把你需要的东西放到环境里验证即可,比如说你要添加用户注册登录功能,你就直接做就好,你做对或错,环境会给你即时的信息反馈。
反馈式学习形成需要两个条件,一个是自身,另外一个是反馈源。自身是指现在已有的认知框架,反馈源是对照组。“自身——反馈源”形成反馈回路。当自身的认知和反馈源存在误差时候,根据反馈来修正偏差。反馈不限形式,一切反馈都可以当作一种学习。对于上述例子来说,上网搜相关知识概念时,“自身——网络”形成一个反馈回路。运行Demo时,“Demo代码——运行环境”形成一个反馈回路。每个错误有相关的信息提示。再比如,平时复盘项目时候,“新的认知——(旧的认知、答案)”形成一个反馈回路。这里说明一下,复盘是指重新经历当初心路历程重新做一遍原来的项目。这时候,你是在跟以前的自己对比,也跟标准答案对比。在学生时代,“自己做的答案——标准答案”也是一个反馈回路。
当你在反馈环境里面探索中,错误的会被纠正,正确的会被夯实。反馈环境也最好是一个安全、不怕破坏的环境,这样你才能毫不顾忌地在里面试错。
结构化思想
这个是一个辅助性的思维方式。你从网络上获取到信息大部分是零碎的,你需要把他形成知识体系。结构化思想的总体大意是:自顶而下套框架,自下而上提炼框架。
先说一下怎么提炼框架,提炼框架分为五步:
(1)搜罗信息
搜罗信息,故明之意就是收集信息。在网络搜索到的信息是一种信息。你在书本上看到的知识点同样是一种信息。你在调试bug时候,运行环境反馈出来的信息也是一种信息。Demo能运行,其所有代码也是一种信息。总之在信息搜罗阶段你尽你所能及地搜刮出第一手信息。这个阶段是你的拓荒阶段。后面的信息处理就是依靠的是前面的搜罗到信息。当然了,你推理出来的信息也算一种信息。
(2)罗列信息
好了,经过第一阶段拓荒后,你把你搜罗到的战利品罗列出来。你可以在一张纸上写满你要处理的,不限形式,你想到什么就写什么。如果你能记得住得话,在脑袋里罗列也行。我这里打个比方吧!程序员出路有哪些:做架构师,做管理,接私单、做测试、做金融经理、卖奶茶、开饭店,公务员、写书、做讲师、创业。
(3)分组分类
根据信息的差异性和共性,把各个信息分组分类。
继续程序员出路:(做架构师,做管理,接私单、做讲师、创业、写书、做测试)(做金融经理、卖奶茶、开饭店,公务员)
(4)提炼框架
根据分类出来的信息提取框架。
(行业内:(做架构师,做管理,接私单、做讲师、创业、写书、做测试);
行业外:(做金融经理、卖奶茶、开饭店,公务员))
(5)完善框架
根据框架不完善的地方继续补充完整。
在上面的程序员出路可以继续补充为:
(行业内:(主业:(做架构师,做管理、做讲师、创业、做测试),副业:(接私单,写书);
行业外:(开店:(卖奶茶、开饭店),其他:(做金融经理,公务员,啃老)))
在运行过Demo过后,你可能需要更加详细的信息来填补细节,如果只停留在Demo层面,你的知识是不够系统的。这时候需要到官网上看更细节化的知识点,甚至看源码了解。这个过程也是一个框架完善的过程。
接下来说下套框架
套框架的意思是心里有个认知框架,在学习的时候往框架里面填充内容,并且完善框架。
套框架分两种,另外一种是别人的框架,一种自己的框架。
别人的框架好理解,就是别人总结好的框架,你直接把它拿来用。那样的好处就是清晰明了,就好比你有个导航软件,你能看清你到目的地的路线,心理有个谱,走起来也方便很多。但是坏处能就是具体提炼细节被屏蔽了。
自己的框架就像上面所说的那样提炼框架,然后再套框架。自己的框架可能不完备,但是实现细节是很清楚的。
在实际使用时候,一般是两者都用,相互不断印证。再上面说的例子中:搜索概念---运行Demo---填充功能---官网查细节---源码探究,其实已经是在“套框架------完善框架”的路上行走了。
你在网上搜索知识概念时候,你已经在心理形成一个很小的认知框架了,然后在运行Demo时候,已经在套着这个框架了,后续在这个Demo上添加注册登录等其他功能时候,都是在为这个框架完善。
认知框架的形成过程是由小到大的,一开始先快速形成一个残缺的框架。在整个学习过程中就在不断为这个框架填充和完善。
给时间以文明
这是一个时间管理的方式,意思是说,给自己固定一个时间段,在这个时间段里只专注于学习,不玩其他。在这个过程中无需焦虑什么,只要是在学习,你都会有所成长的,你的成长交给时间就好了。给时间以文明,这个名词借鉴了刘慈欣《三体》小说的话,“给时间以生命 ,给岁月以文明”。按字面意思是给时间给自己学习。这里隐含了一个关键操作,在安排学习任务时候不要排满,给点盈余时间给自己沉淀。因为如果是像赶项目那么赶的话,那么自己的框架将很难提炼出来。
假如你今天晚上有4个小时可以用来学习,而你今晚打算敲代码。那么你只需要把代码量敲够3个小时就可以了。那不是还剩下一个小时吗?剩下那一个小时你也只能去学习,不能玩游戏。那还能干嘛呢?这个时间主要是给自己提炼框架用的。有盈余的时间自己方会想这些知识框架的。最后提示一下,每个人的学习时间不同,这个根据自己实际情况来修订。
给时间以文明主要是两个方面:1.规定时间内专注于学习;2.时间安排留有冗余,作为事后总结。毕竟刚做完,很多细节都会保留在头脑里,即使是稍微回顾一下也能收到很好的效果。