【威哥说】在我的QQ上经常会收到小伙伴们的留言,诉说他们学习过程中遇到个各种问题,由于磨砺营的课程比较紧凑,威哥不仅仅要上课,还需要辅导同学们,所以不能及时的回复线上大家提出的问题,今天针对一个在校大学生的留言,我想和大家简单的聊一下。
你好,留住少年,很高兴我的视频可以帮助到你,自学的历程是艰辛的,你能坚持下来非常不错,也希望你能继续坚持下去,编程的路很长,最后能从事这个工作并持续多年的人都是好样的,因为选择编程就意味着选择了要不断学习,很多人从事了几年后就转行了,不愿持续去学习新技术是很大的原因。技术是不断更新的,在这个行业,“学无止境”这个词,我认为最能表达切身体会,也是很能体现自我价值和成就的工作之一。社会在发展,国家在转型,正所谓“科技是第一生产力”,未来一定是通过高新技术来拉动社会经济发展的,而不是靠传统的高密度,低成本的劳动力,那个时代已经过去了。好了,不扯蛋了,进入我们的正题吧。
关于你的问题
你的问题我想是很多在自学路上的人都会遇到的问题,很多人都跟我交流过,通过看视频自学,然而效果不尽人意,代码也跟着敲了,就是记不住,很快也忘记了,说实话,这样能坚持下来的,对于自学来说也是很棒了,在10几年的工作与教学中,我总结了一些经验,我经常跟学员们说,“孰能生巧”,这四个字说起来简单,道理谁都懂,但真正去执行的一定是优秀的,千万切记“自以为”会了,其实还是不会,下面我总结了9条建议,供大家参考,学习方法各式各样,我说的也不一定适合所有人,但我们的目标是一样的,就是尽可能多的理解和记住,并可以应用到开发中。开始了,小板凳准备好了没(^^开个玩笑)
我建议的学习方法
1、听懂
通过视频来作为入门学习,是一个很好的方法,尤其是有一整套视频最好(有需要的童鞋可以在公众号联系我哈),这样可以比较好的系统学习整个知识结构,学习技术视频可不要跟看小片一样,一遍过后就完事,这样是不行滴,我班里有个童鞋,在学习磨砺营内部视频时,那家伙,太细太细了,里面的每一句话的表达都要深究,我有时难免口误,或漏了几个字,他特意记下来找到我,清楚的告诉我哪一节视频的几分几秒说的哪句话他认为有问题,或不理解,这给我印象很深。我想强调的是,他这种细致入微的方式一定是被鼓励的。学技术,就得要抠一点,抠一抠,再抠一抠,这跟做人刚好相反哈,做人抠,你会没有朋友,但学技术,抠——能让你知道更多东西,从这一点上看来,还是自私一点好。听懂讲什么,是学习的第一步。
2、理解
学Java/Android,是需要较好的逻辑能力的,几个步骤回合下来就云里雾里的,多遍下来还没有改善的,就可能怀疑你不太适合了,我经常建议我的学员们,写程序一定要先理解,明白每句代码的含义及作用,然后在理解的基础上再去敲代码,当然有些知识点需要其他未知的知识来辅助的情况,这个时候只需要先用,不必纠结,否则反复无法理解会起反作用,比如,烦躁、被打击、怀疑、最后放弃,直接影响后面的学习效果,当然有人带的好处是,老师会凭经验告诉你什么是必须理解的,什么是了解的,什么是先用就可以了,必竟短期内要学的东西太多,突击重点,然后扩展自己的知识面,才是正确的做法,等你真正工作个几年,时间长了,自然会明白很多东西,因为几年的工作和锻炼,你的理解能力和接触的知识量,足于让你轻松理解更多之前被认为复杂的知识点。这是学习的第二步。
3、模仿
有了前面的理解,接下来就是先模仿了,这是学习任何东西的前奏,你试想一下,学打篮球(为了耍酷)、学游泳(为了看MM)、学武术(为了银熊救美)、学唱歌(为了把妹)、学乐器(装下文艺)、学开车(争做老司机)等等,哪一个不是从模仿开始的,这个道理我想大家都懂,但下一步就不一定了,就是很多人认为跟着敲一遍就会了,要我说,刚学敲一遍就会,那你是神人了,学打个篮球你都会反复练习投三分,来提高命中率;反复练习挂档,来达到不经过大脑就可以自然反应;反复练嗓子才能发出动听的旋律......模仿是前提,但反复模仿很少人能做到,之前带过一个学员,给我印象很深刻,都叫他小海,敲键盘的速度比一般人快很多,人也很聪明,脑瓜子好使,我上课写的代码,在让大家练习的时候,他可以敲三遍,敲一遍删掉,再敲一遍再删掉,最后敲一遍留着,你可以说人打字快啊,那我想问,自学的时间纯由自己安排,你每个程序都可以模仿三遍的话,你一定懂得更多。这是学习的第三步。
4、练习
模仿是纯照着写代码,去理解代码内部的结构和思想、解决问题的思路。这些,需要在不断的学习过程慢慢去建立,说白了,你要学的不仅是代码,还有解决问题的方法,告诉你,在一般的程序实现中,每个问题都有一些固定的解决思路,俗称“套路”,你要掌握的各种各样的套路,并可以灵活运用。说的轻巧,如何达到灵活运用?这就得靠练习了,练习我认为是有别与模仿的,就像我们每天给学员留的作业一样,这个可以称为练习,练习会用到今天上课讲的知识点,但又不是上课讲的代码,需要你根据对知识点的理解,加上举一反三的能力,参考上课的示例,去独立完成,这是跟模仿最大的区别,因为这个过程你需要独立思考,这是学习的第四步。
5、笔记
威哥,我记不住啊,学了后面的忘了前面的,怎么办?这样我能学会吗?是的,这是大家都会遇到的问题,学得越多,忘得越多,不要说刚接触编程的人了,就是老手,一段时间不用某个知识点,也会忘记的,我也一样,这是很正常的情况,对于刚开始学的人来说,更为明显而已,一下子知识点那么多。所以,笔记就来了,在学习每个知识点的时候,做好详细的笔记,是帮助记忆非常好的方法,越细越好,笔记需要包括知识点的概念,作用,使用场景,使用步骤与说明,代码示例,重点强调,知识的小结等。我会要求学员跟我一起做笔记,切勿做拿来主义,把别人的笔记复制粘贴过来,因为做笔记的过程就是在整理思路和梳理重点的过程,复制粘贴根本达不到效果。繁琐的东西让笔记来帮助我们记忆,当然脑子里能记的越多越好,起码要记住思想性的、思路、重点和总结性的东西。这是学习的第五步。
6、反复练习
反复练习,就是孰能生巧的过程,在反复的过程中,你要、而且必须是提高性的反复练习,要问问自己,之前的代码有什么问题吗,是不是有改进的地方(放心,一定会有的,只是你没想到),是不是可以优化性能,是不是可以封装一下,等等,这个过程是你技术得到升华的时候,就像我这么多年讲课一样,如果每一遍都讲成一样的,那我早放弃了,那会是件很无聊的事情,自己也没有提升,所以我每一遍上课都会有不一样的地方。我知道你会问,那我根本想不到有什么可以改进的,有什么可以优化的,有什么可以封装的,代码有什么问题,怎么办?没关系,所以说这是反复练习,可不要理解为跟模仿一样,反复练习是指一段时间过后反复使用之前的学过的知识点,随着你的知识面和代码量的增加,或者查阅资料的方式,只要你想去做,你就会提高。这是学习的第六步。
7、多维思考
多维思考问题是指,你要学会寻找资料,不管从简单的google或baidu,还是泡技术网站,再比如关注我这样的技术类公众号,看看每天的文章(风雨无阻哈),有些看不懂没关系,起码你能拓展自己的知识面,有些东西现在看不懂,那就了解一下,有一天你用到了,自然就会懂了,用不到知道就行了,技术的世界那么大,不是每个技术你都要学会的,如果你真学会了,那也离死不远了,做到知识面要广,技术要专即可,多维思考可以帮助你积累拓展知识面,也会让你对相同的知识用法有不同的见解,这是学习的第七步。
8、记单词
学编程跟英语能力说实话关系不会太大,英语好当然是有帮助的,代码全是英文,跟英文一点关系没有那是假话,但英语不好也不是就学不好编程,有一次我上一个国外技术网站,跟老外聊天,我说我不懂英文聊天,好不容易憋出几个词来,然后他说,那你是怎么学会编程的,我说写代码跟英文聊天是两码事,我懂计算机英语,生活上的无法交流,让他们惊讶不已,感叹中国程序员如此强大(^^),确实,在学习编程的过程,我们当然要记单词了,不然那么多方法,名词不懂,是记不住代码的,这个千万不要拒绝,记多了,你会发现常用的单词其实不多,不懂一定要查,用多了自然就记住了,由其是Android开发中,各种属性、内部方法、源码,你要是都看不懂单词,会给你带来很大的麻烦。想学好,必记单词。这是学习的第八步。
9、总结
学会总结,才是硬道理,总结是学习的精髓,也是要记在脑子里的最重要的东西,细节部分可以靠笔记辅助,精髓要是没有提炼出来,你会很快忘记,总结的方式有很多种,比如脑子里详详细细过一遍今天学习的东西,注意,这里我要强调的详细,只有这样,你才能总结出精髓出来,然后可以记下来,或写成博客,或空间日记,都是很好的习惯,你知道为啥很多人在网上写博客吗,其实他是帮助自己梳理思路,又能帮助到他人,还能备忘,如果写得好,说不定还能提升自己的个人价值,一举多得啊,只是要坚持下来是不易的,但起码你要学会自己去总结。一句说,不会总结的人,成不了老司机。
以上给大家总结了9点学习方法,只是个人的见解,如果某一点能够帮助到你,那我写这篇文章就非常值了,如有不同意见也欢迎一起探讨,必竟学习方法这种东西,各人有各人的方式,好方法能与大家一起分享,帮助更多人,我们就是在发扬互联网的开放、平等、协作、分享精神。
(完)
进入磨砺营官方网网站下载视频与项目