熟悉我的朋友都知道,我十年前用三个月时间自学了JAVA开发语言,并成功转行找到了一份程序开发工作。
这么多年过去了,最近因为学习有关如何高效学习的方法,想起了曾经自己这段自学java开发的经历。
想想真得很神奇,当时自己并没有刻意的研究如何学习java开发,但却不知不觉运用了很多现来看仍然比较高效的学习方法,也许我就是传说中的大师吧,无招胜有招。
1、我为什么要学习JAVA开发
我为什么要选择JAVA开发,是因为我对程序开发非常感兴趣吗?当然不完全是。
这个原因很简单,因为我刚辞掉了工作,急需找到一份新的工作,开启新的人生篇章,当时JAVA开发比较热门,学会了能掌握一门手艺,能够在我喜欢的北京找到一份工作,所以我就选择学习JAVA开发。
所以选择学什么不一定是因为感兴趣,可能就是为了完成某个任务,快点找到新的工作就是我的一个任务,因为有这个任务的驱动才让我开始学某个新的东西。
以后千万别说,我对某某不感兴趣,所以我不想学,有兴趣当然好,没有兴趣就创造个任务,通过任务来驱动你去学习。
就像当初自己从研发转需求,需要学会原型设计,学会了才能胜任这个工作,所以就有很强的驱动力去学,不管你有没有兴趣。
另外我为什么选择自学JAVA呢,原因也很简单,培训学校额学费实在是太贵了,而且时间周期太长,我等不起。
所以说兴趣驱动学习是个伪命题,任务驱动学习才是王道。
2、我采用了什么学习方法
(1)简单模仿
第一步很简单,就是在网上找了一个比较基础的入门教学视频,大概有几十个课时,下载下来跟着学。
从最开始的安装开发开发环境、到学习基本的语法、对象、算法,教程里的每段程序,我都原封不动的写了一遍,调试直到编译通过。
从学习J2SE的这些基础类,到学习Web编程,基本上的套路就是不断的模仿,直到能熟练的写出来。
就像卖油翁里说的,我亦无他,唯手熟尔。
(2)高级模仿
高级模仿不再是模仿这些比较基础的知识和零碎的算法,而是要要模仿一个系统如何设计?如何通过程序把这个系统写出来。
我当时模仿的是一个学生成绩管理系统,所有的数据库表设计、类设计、前台页面设计都有完整的讲解和代码,页面不算多,基本上就是些增、删、改、查,涉及到单笔操作和多笔操作。
这么一个不算复杂的小系统,全都模仿写出来,难度要比模仿那些零散的算法大的多,最关键的是出了问题,不好找。
有时觉得自己就是抄写了一遍程序代码,不知道为什么还是会有问题,可能是前台页面的问题,也可能是后台的了类写的有问题,也可能是数据SQL语句写错了,总之问题难找多了。
通过这种方法,模仿几个案例下来,进步是很大的,你的脑子里会有一个完整的系统架构,从前台到后台,再到数据库。
(3)开始创造
所谓创造就通过对所学基础知识进行整合,自己设计一个小系统,我当时自己设计了一个图书借阅系统,虽然也很简单,但完全是个人制造,每一行代码都是自己敲出来的,这比模仿的难度高了一个层级。
虽然有难度,但这种方法却让你有一种十足的控制感,感觉自己是在创造一个作品,非常有成就感。
通过这个过程的磨练,使的你对知识的掌握更加深刻,过程中遇到问题,因为没有参照物只能自己想办法解决。
通过这种创造的方式,我对学到的编程知识进行了一次实践应用,这个过程才是真正把知识学透的过程。
通过从简单模仿、高级模仿,到创造的过程,实际我运用的正是刻意练习的学习方法,是一个不断精进的过程。
简单模仿是刻意的练习我不懂的基础知识,高级模仿是避免大脑自动化的过程,这个过程加深对知识的理解,创造过程就是一个对所学知识的应用、反馈的过程,通过这种方式,将所学的知识再加工,通过自己的理解正确表达出来,这才能证明你真的学会了。
3、如何对待学习拖延的问题
我有三个小妙招可以防止拖延:
(1)时刻保持压力
有压力才有动力,压力能调动人的最大潜能,人在有压力的情况下才能尽快行动起来,想想自己还没有工作,口袋里的银子也快花光了,给自己设置的Deadline也快到期了,一想到这些哪还敢拖延。
(2)定个能够到的小目标
假如一开始我的目标就是要设计一个图书借阅系统出来,可能很快我就会有挫败感,所以刚开始我给自己定的目标就是先学会一些常见的算法,这样实现起来比较容易,学会个冒泡排序还是很容易的,这样也就不会拖延了。
(3)找些好玩的程序写
写程序很枯燥,所以我为了学习J2SE的基础知识,专门模仿写了一个坦克大战的小游戏,感觉特别好玩,不但能模仿,还能在原来基础上改造程序,这么好玩的事,自然不会拖延。
网友评论