我和我们实验室是怎么学习的
这几天我一直都在学习一种学习方法,说起来有点奇怪,学习方法有什么好学的,开始的时候我确实是带着这种心态开始了解它的,但是自己反思一下自己的学习方法,再真正用起来的就完全不同了。我先说说我之前是怎么学习的。
就用一个程序的实现来说说吧,作为刚进入程序员这条不归路一年多的我来说。当我拿到一个题目的常态就是打开编译器潇洒的敲出头文件,然后就没有然后了。之后几乎就是边想边写,想不出来的时候也就是做多在纸上画一画。可是简单的题目还可以,到后面综合一点的题目就不行了。也就是我之前的重点在于如何用代码把题目的每一句话都实现出来,并不是透彻了解各种功能包含隐藏功能的实现,就急于去敲代码,不得不承认在写代码的时候,脑子的思路并不是很清晰,并且效率真的非常非常低。越是明白效率低,就越是想尽快写出代码,并没有想过停下来透彻去分析题目,除非真的到无路可走的时候。
接下来就说一下我们实验室的学习方法。具体流程我就不在这里复述了。说说对我比较有启发的部分吧。
首先是小组讨论这个环节,这并不是局限于敲代码,这个环节可以用到很多地方,比如是组织活动,大家协作完成任务等等。之前认为就一个人默默的完成自己的部分就好,但是这毕竟是集体任务。个人的理解也并不是永远都是对的,讨论沟通之后就会发现,对于同一个人任务的理解,功能的实现方法,遇到的问题种种都是五花八门的。但是在这个讨论和沟通的过程中,不但统一了大家的理解,更加提高了团队效率,不用再因为小组意见不和再反复的去重新写东西。并且在讨论过程中,可以听到每位成员对任务的想法,不乏会提到各种功能实现方法,虽然他可能不需要实现这个功能,但是你需要,并且他有比你更优的想法,这就会纳入你的思考范围,这就是间接的提高了效率。
想必画原型图应该是大家会必经的路。接下来对我有启发的第二个部分就是事件列表。在这个内容中需要列出各种可能出现的情况与按下各种按钮的结果。这就和if-else中的各种情况一样。明白了要实现什么再去用代码实现它,至少是带着思路清晰的头脑,如果边想边写很容易陷入自己的逻辑陷阱,以至于花大把时间去改bug。必经列表出来的逻辑思维比一行行的代码好想许多。
第三个部分是写demo。我之前就有一个习惯,就是每一天无论学什么,都将每天遇到的困难与总是反复出现的问题,一条一条的列在笔记本上。这在短时间的学习中确实对我帮助很大,但是时间长了很难再找到,因为我没有将问题的类型分类,而且知识太散碎。但是写demo这个方法,不但可以强迫自己去牢记这个问题,在写的过程中去检验到底有没有学会,并不是为了记住而记住。这对之后再犯此类问题可以随时找到查看。
第四个部分是概念学习。首先,每个人在拿到一个新的知识是,毋庸置疑他会去了解这个是什么。根据老师的讲解,之后是了解怎么用,作用是什么,再去了解他的开创者之类,有什么方法可以代替它的功能,最后是看他的核心内容。之前如果我拿到一个新的知识点,首先我也是通过各种查询通道去了解它是什么。由于我内心默认,我必须系统的了解他包括他的核心之后,我才能明白怎么应用他,而实实在在的忽略了我的目的:明白怎么用它!这是老师给我最大的启发。以后我当然会遇到,明明系统了解了他,但是并没有弄清楚他具体是怎么实现的。但是由于已经花了很长的时间去了解,为了不影响下一项计划的进度,我必须停止学习这个新的知识点,然后去用它,这样我就带着对它迷迷糊糊的了解,继续进行下面的任务。所以,通过实践,老师的学习方法对知识点的实用性有很大的提升。