关于Java学习博客的一些说明
刚才看了看这个分类前面发布的博客,这些博客基本是按照我培训的课程体系顺序来写的。如果你已经有一些编程的基础和经验(比如其他的编程语言,c,php等),看起来比较容易,如果完全是初学者一张白纸的话,只对计算机编程了解非常少的话,确实看起来云里雾里不知所云。
事实上这个课程体系设计,当初针对的学群是理工类专业三年级以上的学生,还假定有一定的计算机理论基础。后来该课程转而给初学入门的学生来讲授,也遇到这个问题。用学生的话来说,就是“以来就给我们一个下马威”。听着虚拟机、垃圾回收一头雾水,一下子就把学习的热情浇熄了,产生了畏难情绪。当初我应对的办法就是尽快完成这部分内容的授课,尽量讲的轻松有趣一些,夹杂一些有关Java发展的历史花边八卦之类的,再加上一些我工作中遇到的一些有趣的经历,转移学生注意力,并且暗示学生该部分内容不是很重要,不影响之后的学习。简单来说,就是尽快“混过去”。
所以如果开始看这个分类的博客的话,一开始有点晕不要紧,完全可以跳过去,然后看以后我更新的有关Java编程实践方面的内容了。等通过后续的学习了解之后,在返回来看,就会有不一样的感受了。说到底,这部分内有有点类似武功里面的内功部分,一下子是不可能有深入的了解和高深的掌握,只有在日积月累的练习之后,才会体会到基础的重要性。并且到最后,如果想要有质的提高飞跃,这部分内容是无法跳过的。
学习编程,实践和理论都是很重要的,哪个都不能偏废。
根据我学习的一些经历,再经过培训这段时间的累积。我的意见是(估计这些已经被很多人重复过很多了,但是我当初就是不认可相信,现在有点后悔了,所以我总是在培训过程中不断地重复,尽量少重复这些错误),首先尽快开始变成练习实践,不要抱着书本看,打开IDE,开始敲击你的键盘,让你的练习代码尽快正确的运行起来(哪怕是在命令行窗口输出一个hello world)。这样的话,能降低对学习的畏难情绪,提高学习的积极性(特别是程序运行后的成就感),最不济,也能很快知道自己确实对它不感兴趣,尽早放弃转而做其他,不要浪费自己时间。如果总是盯着书本不动手,一大堆的名词概念,早就把那些信心打击的七零八落了。
在练习过程中,当积累到一定阶段后,可以试着做一些成品的软件,不需要多完美,重要的是学习如何将编程的方法和实际的需求结合起来,完成得到用户认可的软件。这个结合过程有的时候是需要花费很长时间的。自己练习过的一个个小练习,如何组合搭配,完成一个完整的功能模块,这才是学习编程的最实际的目标。
就像是我前一段时间,项目中用到了extJs这个框架(当然它不是一门新编程语言),了解extJs,以及它的基本应用,做出基本的练习demo,很快,但是如何在这个基础上,和软件系统的框架平台结合,做出合格的功能模块,花的时间和精力要多得多的多了。
当这个目标基本达成后,就可以转回来在补一些相关的基础内容,就是再在基础上夯实,争取对编程的学习有一个比较抽象的总体的认识了。就像很多人说的,学习编程语言,当精通一门之后,学习其他的编程语言就感觉非常容易。因为从根本上基本上都是相通的,当你认识到这一点之后,你的技术能力,应该就是又有一个很大的(质的)提高了。
这个过程就因人而异了。如果确实学习起来很吃力(比如底层的计算机运行机理,高深复杂的算法),那么就适当了解就可以了,在必要的时候在花精力在上面。换句话说,如果深度上是在下不去了,那就在广度上做文章吧,多学点总没坏处。可以考虑开辟自己的第二、第三编程语言,以及软件IT行业的其他内容。比如软件的架构平台方面、软件项目管理等等。学习软件架构,平台和算法方面就不说了,很多学生在还不懂编程语言开发的时候,就立志要做架构师了,至于学习信息软件项目管理,并不是我官本位的思想作怪,做软件开发没前途,要做管理层,要当官(虽然在国内绝大部分公司是很现实的情况),最近我在准备信管的开始。通过学习这方面的内容,可以让你从比较狭隘单纯的软件开发人员的思维,有一个比较明显的转换,就是换换脑筋,从而和客户进行换位思考,对软件开发的整体流程有一个明晰的认识,这对于大家来说是有百利无一害的,即使最后你并没有当成什么项目经理。
先写到这。最近和以前的学生聊了聊,有了一些新的想法,就写下来。我的工作经验从软件开发,到半调子的项目管理者一直到it培训师,工作的公司有作坊式的微小企业,到全国数得上规模的软件集成企业,遇到过正规的流程,也有山寨的软件开发做派,最近时间还是比较多,慢慢整理整理这些年的工作心得,记下来和大家共享。
上一篇: 0.Java软件编程开篇
下一篇: 3.Java编程语言独特的运行机制