反馈式学习

IT技术快速迭代,一个人很难面面俱到掌握各个领域的知识,总有你不会的知识。如果这时你因为技术需求,需要你运用一个全新的技术,你如何上手呢?这就需要从无到有地把知识变为自己的能力。下面将说一下如何去学。

一、理论

这里的理论主要分四个部分来阐述:反馈式学习、模块化思想、知识库维护和时间管理。其实总的来说这个学习方法名就叫反馈式学习。

(1) 反馈式学习

反馈式学习主要宗旨在于反馈。只要有信息反馈都可以当作一种学习。

首先搭建一个反馈环境,这个反馈环境是作为你探索的地方。
你的每个疑惑都能在这个环境里找到答案。这里反馈环境不限形式。你可以框住教科书上的一段章节来作为反馈环境。然后你就像新奇的小孩进入糖果屋一样,到处探索,任意摸索。用尽自己想到的方法去摸索,然后每次摸索, 你都能得到信息反馈,渐渐地形成自己的知识脉络。

在遇到新技术时候,你可能首先想到的是买书。但当你面对厚厚的一大本书,你往往提不起精神来。按部就班地学往往要花费很多的时间,学起来还没什么感觉。你还不如先做出来,然后再研究,在研究过程中完成知识系统化。如果能在网上找到代码,你就找到最小系统的Demo代码,以最少的配置让它先跑起来。然后你需要什么技术再在里面添加和探索。

debug环境是一个很好反馈环境。如果可以的话,你让你的程序运行在debug里面,然后单步执行,看它的运行情况。

这里有一个很重要的一点是:复盘。复盘是重做一遍,重复经历你当初的心路历程,在重复的过程中细心比较,从反馈中提高自己。如果你画过画的话,你肯定有一个深刻的感受就是:每次画的时候你都能感受到你所画的物体的细节。再小的毛发都能被放大得很大。如果你第二次再画同一个物体时候,相信你也能很明显感受到和第一次画的不同之处。通过比较你能很快得到长进。同样,复盘的作用就是让你再经历当初的心路历程,这样明显知道如何改进。

(2)模块化思想

模块化思想是把对象划分成模块来看,把对象分为各个模块,然后各个模块下继续划分子模块来处理,如此类推。每个母模块对于子模块来说都是一个大模块、大的方向。你所要做的是每次掌握住大的方向没错,然后再去掌握小的方向。

对于反馈学习来说,你一开始探索不是一下子就知道全部内容的。你可以先了解概念知识,然后在继续了解这个概念下的各个知识点。各个知识下探索各种细节。这也是一个循序渐进的过程,你只要每次学会大的知识方向,然后细节方面再去学习。

对于项目来说,先把项目分为各个功能模块,然后再根据功能模块划分子模块来实现。每个模块下划分小模块,小模块下继续划分,划分到最小执行颗粒来实现。如果有变动,只要大的方向没有错的话,可以直接根据实际更改子模块即可。

如果你解决问题没有头绪同样可以采取这种方法。把的思路写在纸上,先画出大致的问题所在方向。然后根据这个方向再取划分细方向去找。

这个模块化思想可以说是反馈式学习的一个很重要的辅助性思想。试想一下,你在一个未知的世界里探索,你要建立起这个世界的地图。你一开始是难以画出一个细致的地图。你可以先描绘一下这个世界的模糊样子,然后再一步步细节化,最终把这个世界描绘出来。

 

(3)知识库维护

知识库的三个方向:记忆力、电子档、纸质。在这几个中最好是记忆力,因为你在探索中首先是在头脑中形成形象,这一层面是始终绕不过去的,而且回忆时候是也以记忆力为主,其他方式肯能后面还懒得看。所以先以维护记忆力先,然后就是电子文档,纸质内容为辅助。即使忘记都能在电子文档和纸质中重现知识。每次根据信息来对这些内容进行修正。

在反馈环境在探索中,你的认知是由浅入深的。在内心会产生一个像树状结构的知识脉络,那是你的知识库。一开始这知识库是颗种子,你每探寻一处便会让这颗知识开枝散叶。那些枝干就是大模块,小模块就是它的分支。大枝干下可以长小枝干,小枝干上可以继续生长小枝干。你从环境里探索应该生出这知识树,那是你探索的收获。

程序员在平时学习工作中一般会有代码积累。有时间就整理一下这些代码,最好整理成模块。这样以后要用到时候就可以直接用。

(4)时间管理

时间管理的方法我给它起了一个名字:给时间以文明。在规定的时间内只专注做一件事。
在平时你可以调一个定时闹钟,比如说40分钟,然后在这40分钟内你就专注做你想要做的事,不做其他,不玩手机,不看新闻等。时间到了,还没做完的话可以继续再调个40分钟继续做下去。在这个时间内是一个不可分割的一个整体,你所能做的就盯着你的目标来做,不做多余动作。

如果可以的话,定一个周时间计划,像课程表一样,每天在固定时间内学习一个固定的方向。不用担心学得怎么样,坚持下去,你的成长交给时间就可以了。

这几个思想,你可以把它当成抽象类来看,每次朝着这些大的方向走既可,实际怎么实现可以各不相同。

二、实践

一开始接触一个新技术时候,你可能连概念都不清楚。这时候借助搜索引擎来搜索你所需要的内容。搜索和这个技术相关的内容。先了解一下这个技术。了解一下有那些技术框架,有那些内容,一般用来干什么的等等。

然后找一下有没有开源代码,先搭建一个环境来跑一下程序。让自己感性感知一下这些代码。有人家写好的博客不妨也可以跟着学一下。这时候需要注意的是这些demo讲解的资料是否够周全。选一个资料多的demo来运行,有助于你的前期探索。

在感知了代码后,开始研究一下更加全面的API接口。可能你靠网络已经能完成你的需求了。但为了更加全面地了解它,你还是需要找到官方资料来看。

如果你用的是第三方开源SDK的话。你可以在了解到API接口后进行更深入的了解,研究其源码及其原理。这个过程中不光能了解技术的知识架构,你也可以从中学到不少。

在研究完技术源码后,你就能了解到很多技术细节,在使用过程中有可能感觉到其技术的局限性,如果你不满现状可以更改源码,或自己创造一个新的技术框架。

对于个人来说其成长曲线就如上图。分别是:进入期、快速增长期、高原期、突破。

一开始是进入期。这时候你还在找着门道来入门,了解其基础知识。然后然后进入快速增长期。这时候你已经入门,可以玩各种框架了,对于你来说各种技术都是新奇的。你有很多没探索的道路。你在这个时期每天都是新鲜的,学着各式各样的框架。等框架玩的差不多的时候,你进入了高原期。你感觉每天干的项目都是在走在以前的旧路上。各种框架都是玩过的,感觉你的工作都是在重复劳动。你的技术就一直徘徊在这一层面。有可能要停留很久。这时候,你可以整理一下知识体系,研究一下技术原理。寻求突破。在研究完技术原理后你明白框架的优缺点后,想要改造框架,这时候你就有所突破了。

 

 

 

 

3 thoughts on “反馈式学习

发表回复

您的电子邮箱地址不会被公开。

粤ICP备17041560号-2