一、前言 通过在教学期间与同学们的交流,发现很多同学学不好,是因为不会学习,从而导致一些同学学习起来吃力,甚至痛苦,所以基于个人想法,对同学们的学习作了一些个人的总结,希望有益于大家。 以下学习方法不一定针对所有人群适用,对于有特别情况的学员,建议与老师单独交流。
1、相信自己,是坚持学习的动力保证。 一个认为自己学不好英语的人不会坚持早起半小时背单词;一个认为自己学不好数学的人,不会坚持花几分钟背公式;一个认为自己学不好编程的人,会不顾昼夜的坚持敲代码,记概念嘛? (对于新手的学习过程,遇到困难本来就应该是理所应当的,但是一些同学因为遇到困难就开始怀疑自己,导致本来循序渐进就能完成的事情,在自己的犹豫和怀疑中,并没有达到预期的效果)
2、学习要先有方法,敢实践,再改进,后得方法。 初学者往往因为缺乏经验,又缺乏正确的学习方法,导致学习走弯路,学习效果不够明显等情况产生! 任何方向的学习都不是能一步到位的,首先要有良好的学习方法,在结合实际学习中遇到的问题,逐步改进加强,从而达到对某一个方向的高效学习。 (每个人的性格习惯都不相同,不可能有一个方法同时适用所有的人,但是知识的学习方法大方向是一致的,有了大方向,这不是你自己的学习方法,大方向只是告诉你要怎么学,而对于个人还要在这个基础上去改进,精益求精,得到属于自己的学习方法)
3、良性对比 在教学期间有同学苦恼旁边的同学不费劲也学的很好,自己很努力也无法达到或超越。 遇到这种问题,我只告诉学员两句话 "来这个班级之前,你心里唯一想着的,是改变自己的未来,你不会考虑你旁边坐的是谁,有多优秀" "你只看到别人学的好,你不曾了解别人是否有基础,是否自己有花额外的时间学习,你脑子里只有,别人比你优秀" 不要问自己,为什么别人比你优秀,要问那个优秀的人怎么变得如此优秀!
4、总结 (1)学习心态要端正,好的态度比好的方法重要百倍,学习方法不好,有好的心态你还会坚持,心态不好,再好的方法,你也不见得敢于实践! (2)学习要有方法,但是别人教你的方法,永远是别人的方法,这个方法能帮助你提高,但绝对不是最适合你的,甚至是不适合你的,最好的学习方法是经过个人的实践和磨练而产生的。 (3)相信自己,永远记住你身边的每一个同学都是与你存在竞争关系的朋友,学会为别人的成长鼓掌,同时去发现和学习别人如何成长!
二、如何学习
阶段1、预习 个别学员花费两三个小时将视频看一遍,在第二天学习过程中,又花费一天在视频上,先不说学习完后复习上的问题,光这就已经花费了8-9个小时在视频上,既造成了重复性学习的视觉疲劳,又使得学习的时间效率降低,还占用了当天的学习时间。 学习本身应该是按部就班,首先学好当天的内容,再考虑预习,如果当天的知识没有学到位,预习就像是猴子捡芝麻。所以不合理的预习不仅会浪费大量时间,还会造成学习的低效乏味! 怎么预习: <1> 预习要建立在学好当天的基础上,所以要明确当天的知识怎么才算是学好,有句话叫心知肚明,学得好不好,自己要明白。如果不知道,记着:让你的学友问你当天内容相关的十个问题,问完我相信你自然明了,建议找学的比你好的人问。 <2> 预习是为了能够第二天更好的投入课程,而不是让第二天的课程变得乏味,所以不要把内容从头到位的过,既低效又无聊,还搞的很累!就三个字:简明快(简单、明了、快速) 简单的看一下当天要学习那些内容,明确这些内容中那一部分是难点。将感觉容易理解的快速跳过,感觉难理解的快速记下,看一下是因为前面的知识忘记还是别的原因造成,做好准备工作! <3> 预习时间:前期,掌握不到要领,可能会慢一些,不要超过一个小时。能够掌握要领,控制在半个小时以内比较合理。
阶段2学习(1)上课勤记笔记不适应现在的学习 由于知识密度高,所以会出现一个走神或者困倦就可能会遗漏知识点,一些学员在听课的时候会奋笔疾书,因为上课不停的在”努力“,试想高度的眼、耳、手一致操作,而过度的不必要的努力,会造成精神压力紧绷,更重要的是,这种学生自我感觉很努力,但是跟别人比还是有差距,所产生的心理上的不平衡更是会让学习陷入一种被动局面。 注意:这里不是说不让记录笔记,而是说你记录的笔记应该是对你有实际意义的。 到底怎么记笔记? 记住笔记的核心是能帮助你梳理知识,记录疑问的,方便你下课复习和寻找问题的,不需要拘泥于形式,只要能达到效果。 比如:老师讲到数据库,你不懂,手起笔落“什么事数据库”,这就是最好的笔记。一些学员,老师讲了一个方法,他就记一个,一节课下来笔记满满的,记得问题都不知道是哪个了。一些学员在听课的过程中会将有问题的地方截图记录下来,也是非常不错的方法,不要过于拘束笔记的形式。
(2)上课听课效果良好,老师讲的都能跟上,知道老师在说什么课。 课后状况1:那么这样,课后就会有大量的时间,怎么办呢,有些同学可能很快就可以做完所有事情然后处于放松状态了,玩玩游戏诸如此类。 课后状况 2:完成了一天的工作,就想赶快做大量预习,好让自己在后面的课程中有更好得到听课效果。 相信来这里的每一位学员都不会是第一种状态,基础差的,你会为此付出代价,基础好的,如果是这种状态,你不会有太大的提升,多数人都是第二种状况,而这往往是没有必要的,为什么?关于预习前面已经强调过,这里不再重申。 来说说另一个问题,就目前学习来看,每个班级都会有一些学员,在学习到十天之后的课程,都会纠结一些知识遗忘的问题,不知道该怎么办。而遗忘知识是一个必然性的过程(见上图),遗忘速度最快的区段是20分钟、1小时、24小时,分别遗忘42%、56%、66%;2—31天遗忘率稳定在72%—79%之间。 随着记忆力的衰减,一些知识不够扎实,造成了知识不连贯,不连贯的东西多了,就会有种“茫然感”,因为想复习都不知道从哪里开始。 所以学习其实很简单:大量的复习和简明快的预习
(3)上课听课效果不好,感觉有时候跟不上老师的节奏。
课后状况1:上课彻底听懵了,课后第一时间把视频拉出来,再看一遍 课后状况2:上课感觉有些东西不会,再去看代码和笔记的时候,知识不连贯,重新看一遍视屏(没办法的办法)! 只要上课效果不好,很多同学的解决方案都是把视频重新再看一遍,而这也确实是解决问题的办法,但问题是看了一遍,还是会出现问题。怎么办?再看一遍?这种重复效率极低! 为什么上课,上课的目的是在最短的时间内,让同学们将每一个知识点搞懂,同时记下自己没能搞懂的地方,方便自己在有时间的时候快速将剩余的内容搞清楚。 对于这些同学,第一时间应该是找出自己看视频也就是听课效果不好的原因,昨晚打LOL没预习好;你爱着他,他却爱着他,最近心情有点抑郁听不进去课;前段时间女朋友闹分手,部分知识遗忘拉下等。 怎么找问题: 当你发现你的学习出现问题的时候,找一个属于你自己的空间和时间,花上也许是一分钟也许是一天的时间,仔细回顾你近期的学习情况,学习中出现了哪些问题,再逐个找出对策,或者让别让帮你找对策,比如你的老师。 只有找到了原因,才能在后续的课程中有条不紊得到学习。而陷入学习困境的学员并没有多少人思考这个问题,更多人都把心思执着于当前出现的问题,学不会,要花时间去补,却从来没想过问题是怎么出现,成了死读书,读死书(一些学员就剩看视频了,这样的学习怎么会有进一步的提升)! 对于上课听课效果不好的同学,单靠课后的努力虽然可以弥补,但是学起来会很累,那么如果有更好的解决方案就应该去尝试,更重要的是对于就业办的课程压力会更大,如果不把这个问题早早解决,到了就业班就会更吃力。 所以,想学习要先会学习,先想好自己要怎么学习一门课程(可能十分钟就够了),再去动手,动手的过程中,必然会发现问题,逐步改进即可,总想着一步到位是不实际的!
(4)学习过程中的二准则 <1>不要以知识简单,而放松。 “唉,还剩半个月,知识乱套了,前面没学好,估计来不及了,先复习前面的吧”,这种话在教学期间,或多或少会出现的一些学员的心声! 那么前面的时间你的付出到哪去了。 这是一个很简单的道理,却是多数中后期同学赶不上学习的主要原因,且容易被大家忽略,人对于过于简单的东西总是表现的过于自负! 举例:第一天 HelloWorld 案例,实际代码就3行(不算大括号),但找一个学完的同学,很少有能按照完整过程(手动创建java文件,不执行)三分钟内敲出来的,原因就是练习太少,而练习太少的原因,多数是觉得简单,没必要,其实多练习两遍就能做到。 举例:java基础语法多少只是一些理论,没有太多的代码练习,感觉看两眼就知道是什么意思,代码也没有很多行,但就是这种心态,导致一些同学在学完面向对象之后,产生了问题爆发的情况(问题爆发:由于遗留的问题太多,导致太多的东西需要同时复习),大幅度影响后续的学习! <2>不要以知识过难,而难为自己 遇到解决不了的问题本身是一件很正常的事情,但是你如果过度在意,就会给自己造成压力,从而可能会因为这一个问题,引发出一系列不良情绪。在遇到一些困难的时候,基本手段要么继续执着(浪费时间),要么干脆放弃(但如果总是这样,学习还有什么意义,学习的目的不就是为了最后能解决问题嘛),都不是好的做法! 问题的出现必有原因,与其追求这道题怎么做,找出为什么这道题不会做才是正道! A:第一时间在较短时间(5-10分钟内)确认自己能否确认解决思路。 a:如果能,继续解决。 b:如果不能,找人询问解决思路(解决问题的思路远比解决问题重要,不要急于追求结果)。 b1:尝试按照思路解决问题,如果还不行,寻求帮助解决问题! b2:没人问就暂时放下,但绝不是放弃,至少要将问题记录下来。 B:结束上述步骤之后,如果出现b中的情况,就应该总结出自己不能及时解决这些问题的原因,从而避免以后的学习中重复类似问题!
阶段3、日常复习
(1)学习不要死跟老师的步伐,学会轻重缓急! 每天的知识量很大,有时候甚至会超出自己的能力之外,这个时候没办法在当天处理完所有的学习任务,再加上晚上可能还会有一些预习工作,这个时候还是一个一个知识点的攻破是不可取的!其实即使当天的内容不多,也应该自己学着去划分知识点。 划分知识的目的是为了让自己更加明确当天学习完后的复习工作: 急:这两天就会用到的知识 重:开发常用的知识,必须会的知识 缓:有用,需要学习,但不会对后面知识造成影响,当天时间紧且非急的知识 轻:几乎不会用到的知识,不求记住,但是要能看懂意思! 根据这四个原则安排放学后的复习工作,即使有遗留的知识,也不需要太担心,在放假的时候补上就是了。另外说明,如果时间充足,预习工作可以放在轻知识点之前,如果时间紧张,则可以放在缓知识点之前!
(2)要会敲代码,敲代码
前期敲代码会遇到的5个问题
第一:总是有一种感觉,理论的东西都懂,敲代码的时候就不行了。 第二:厌烦敲代码,看别人是行云流水,看自己是水流云行。 第三:总是有一种感觉,理论的东西都不懂,敲什么代码,从而花费相对较多的时间在理论上,导致没有足够的时间去练习代码。就像射击,懂的再多都白搭,不真枪上阵,不会发现自己的问题到底在哪。 第四:缺乏经验的学员第一意识都是背代码,这一点是0基础学员最容易走的误区,于是乎费尽心力把代码基本能默写出来,属于低效学习。 第五:缺乏自信,第一时间连背代码都感觉不太实际,干脆代码多抄几遍,而这一点既花费时间,而且作用极低。
怎么学习课上代码 1、课上能听懂,及时记录没听懂的地方,下课问懂 2、课下能看懂,及时记录看不懂的地方,找人问懂 3、给代码加步骤,对代码的每一条语句加上属于自己的注释(解释下:属于自己的是说用自己的话去描述代码整体所表达的意思,这一点对于基础薄弱的学员很有必要,因为刚开始学习编程的学员不会) 4、只留下注释,对着上面的注释,把代码再打出来。(遇到的问题统计总结) 如果能到这一步,已经达到对代码的基本要求 5、把你认为能记住的注释去掉,把代码再打出来,直到你确定不需要注释! 这里要强调一个问题:是打代码,不是背单词,根据注释写代码,如果发现是某个单词不会就去翻看一眼,别应憋着去想这个单词怎么写,背单词是你没事的时候或者早读的时候干的事情!
新需求代码: 1、有了新需求,坚持自己写步骤(思路注释),其实就是思考要做一件事的过程。 <1>如果感觉自己的能力还行,尽量把思路梳理清楚之后再开始写代码! <2>感觉没有方向,根据自己能理解到的程度,想一步做一步,尝试完成,看自己能完成到什么程度,问题出现在哪里。 2、想不到的地方先空下或者询问别人! 3、写代码的过程中不要逼迫自己完成代码,百度也好,让别人提示一下也好,总之利用各种方式让自己在最快的时间将代码写完!(练习的量才是关键,练习的次数多了,才能发现自己的问题到底在哪, 不要对着一个问题死磕) 4、总结完成需求的过程中出现的问题,比如哪个类名没记下,有几步实现不够熟练,某个问题没有解决思路等等。 5、将整理出来的问题解决后,尽可达到能让自己能够流畅完成这个需求! 给出新需求自己却写不出来代码是新手必须经历的阶段,不要自己猜疑自己的能力,从需要思考到看到需求就能快速入手是需要一个思考和磨练的过程。
最后再郑重总结两句: <1>敲代码的本质目的,是要通过去理解解决变成问题的解决思路,代码就是一块砖,而我们的需求就是不同类型的房子,我们只需要知道对于不同的房子如何使用手里的这些砖。 而学习的过程就是为了学习使用这些砖,练的多了,真正用的时候才能得心应手。所以代码必须勤练,至于勤到什么程度,至少应该是勤到你有自信的时候,如果你觉得没自信,那就继续练。 <2>敲代码的时候,一些学员总是叫喊着练了好几遍,第二天就不会了,首先这是正常情况,上面的遗忘曲线相信大家也看到了,所以当天练习代码的目的本身,是为了让大家通过梳理代码将当天的知识联系起来,方便大家理解当天的知识,所以当天的代码你能写出来说明知识你已经会了。 会和熟可是两回事,换句话同学们当天代码多也不过能敲个三五遍,就业班就更不用说了,这样你就想信手拈来,那这个行业的凭什么还有这么高的薪资水准。所以代码也是要复习和阶段性重复练习的。
(3)复习笔记整理的过细未必好 最常见的情况就是一些学员在毕业的时候会整理出来一份非常详细紧密的笔记出来,基本上将上课的知识丝毫不落,必然是一个耗尽心力的过程,然而并没用! 1、老师在上课的时候已经整理出接近详细的笔记,自己花时间完全没有必要! 2、整理笔记的主要目的还是在于复习,一个篇幅庞大的笔记只会让你压力倍增! 3、复习笔记重在梳理知识的骨架,能够快速的帮助学员复习已学的知识! 综上,个人认为好的复习笔记只需要结合详细的学习资料整理出知识的详细骨架,通过回忆的方式去检验自己对知识的理解,方便自己回忆所学知识即可。
补充
英语绝不会是你学习编程的阻碍,多半是自己吓自己。 对于java基础班学习来说,真正要掌握的单词不过390个,且算作400个,其中重点掌握的肯定少于这个数。除此以外,其他剩下的不过是拼音+中英翻译词典就能解决的问题。 不要一个人学习,包括敲代码。
学员在长期一个人学习的过程中,会经常出现的问题就是,不会了不知道问谁,只能自己硬着头皮去解决,导致的结果是懊恼郁闷等不良情绪,尽量投入一个大的学习的环境,大家在一起找编程的乐趣,通过交流去提升自己。 注意:一些学员一投入大环境,老毛病就犯了,没有学习光剩乐趣了,愉快的交流没问题,但是别忘了,你来这个大环境的目的是为了学习!
三句话: 1、最好的学习方法是重复(代码重复的敲,理论重复的看,别说没时间,除非你从来没玩过游戏,没逛过街,没下课后跟同学扯淡,时间是水) 2、当天复习前天的知识(复习知识最好的时候就是快要忘记的时候) 3、当一个知识你不理解底层的时候,就假设一个你想的通的底层过程,即使是错误的(只要能帮助你把这个知识记下来就没有问题)!
给予的这一点建议,是告诉大家,可以根据自己能理解的方式,去猜测某个方法的底层是怎么实现的,如果你的思路能想通,这个问题就过了,因为等你工作在接触这个方法的时候,已经是半年以后了,那个时候,你的理解能力早已经提升了,而且当时你所想的那个理解方式其实也早就遗忘了。一句话就是,你想错了,又不会怎么样。 另外要强调一下,一些有强迫症的学员,总是纠结一些方法的原理,这一点是好事,但是在学习过程中极其浪费时间,所以大家要学会放下一些对于自己当前有用但不重要的问题。比如有一个方法,得到了一个结果,学员就开始纠结为什么就这样了,开始查看源码,一下子就是一两个小时,结果当天的代码倒没时间敲了,直接影响了后面的学习。
三、总复习所有知识结束后的统一复习,有时间可以做一做! 理解知识,应该是通过对代码的理解,去理解知识。 记忆知识,是需要通过梳理知识骨架,去记忆知识。
1、2-3天整理笔记(觉得有必要整理的话) 重点在于梳理知识结构,明确自己会与不会的地方,作为一个复习的引导 (哪里不会复习那里)。 2、不会的知识点,通过练习代码找到具体的问题点 切记:不要总是围绕笔记和视频做复习,费时间。 3、复习(java基础)为主,预习(就业办课程)为辅 基础知识掌握的牢靠性,才是你就业办学习效率的有效辅助。 4、知识轻重点说明 (以下说明不针对点招和面试,而是知识本身的重要性) (1)、IO流、集合、多线程、数组 (从使用的角度来说是基本的内容,因为用的太多,所以许多花时间,从代码入手,熟练掌握) (2)、java编程基础、面向对象、API 常见对象 (学习java前期三个毕竟阶段,编程基础没事的时候看看,面向对象思想没事的时候想想,API文档没事的时候打开看看,见到有意思的就玩玩,有回顾知新的好处) (3)、网络编程 (包含了一些网络通信的理论和代码,对于安卓就业班网络交互及JAVA2EE的学习有一定帮助,建议至少能够理解socket对象两种协议的使用过程) (4)、正则、递归 (实际开发,用的不是很多,但是实际用到的时候能够解决一些实质性问题) (5)、高薪技术、反射、设计模式 (自我提高的必备,高新技术指的是张孝祥老师的高薪技术,反射难度过大,能够明确理解它的用法有助于个人提升,更是考验学员学习能力的一个知识点,设计模式是一个大方向,别想着靠着一个单例模式出去蒙人,设计模式是一种思想,是解决很多重大问题的有效方案,需要随着大家的编程功力和学习逐步提升)
|