正如题目所说,这是个老套的话题。很多新手在网上问,也有很多热心人给予了很好的回答,笔者本人对此也发表过高见(详见《关于该不该上JAVA培训班的一点看法》一文)。由于本学期2011级学生的JAVA教学要由我来承担,因此我认为有必要针对你们对我的观点做出补充。如有雷同,纯属英雄所见略同。

    第一,保持强烈的好奇心。好奇是探索的动力之源。对于天空的好奇,推动了现代天文学的发展。天文学的进步又被航海家用于海上导航,这是海上贸易繁荣的有力保证,人类自此步入了现代文明社会(虽然充满了血腥和野蛮)。由此可见,好奇,推动了人类社会的发展;自然,也能推动你的进步。

    想一想,为什么计算机能做这么多的事情?它是如何完成的?程序是如何实现的? 我能做出来吗?好吧,要回答这些问题,就请开始我们的探索之路。

    一个功能要求实现时,或者看到别人实现了一个功能时,是不是应该想一想:这个应该怎么实现呢?别人是怎么做的?OK,要回答这个问题,请多思考、多学习。

    第二,重视基础。很显然,要想学好程序设计,需要掌握大量的基础知识。基础牢固,才写得出程序,才能更好地理解程序运行的机理,为后续知识的学习打下坚实的基础。有人对于布置的程序无从下手,学到后期时,程序完全看不懂。为什么?基础太差。我见过有人用class做变量名,却找不出错在哪里。为什么?基础不扎实。显然,学好基础知识需要大量的付出,我希望这不会吓到你。不过,要想把一件事情做好,就必须得付出。浮躁的人不仅学不好程序设计,他们做什么都不会做好。

    第三,要确认自己的确弄懂了。比如我们读书上或别人写的程序,如果我们能够合上书本自己把程序写出来,或者清晰、完整地把别人的思路复述出来,或者程序执行到任意一行,你都能够知道它的某个变量值时,这说明你真的懂了;对于某个知识点,我们若能够灵活地应用,这表明我们真的懂了。否则,请仔细检查自己在哪些知识上还有遗漏。我曾经问一位同学某个知识点懂了没有,得到了肯定的答复,不过相关的题目却不会做,这说明他其实没有真懂。要主动帮助别人,给别人讲解、帮助别人排错的过程,不仅是复习、归纳知识的过程,也能帮助我们发现自己实际上还没有弄懂的知识点。因为你不懂的东西,你是讲不清楚的。顺便,还能收获友谊,何乐而不为呢?

    第四,一定得自己动手写程序,这是最为核心的。通过写程序,可以巩固已学到的知识,发现知识上的缺陷,掌握新学到的知识,培养灵活运用知识的能力。不动手写,铁定学不好程序设计。刚开始可以先掌握书本上的例子程序,然后尝试着按照自己的设想修改这些程序,为它们实现新功能。课堂上布置的程序设计任务当然是要完成的,不过有精力的话完全可以主动多写一些程序。

    第五,耐心、仔细。当一个功能不知道该怎么完成的时候,请耐心查找资料、耐心思考;当程序出错时,请耐心排错。这都是你学习的最佳机会。为了少犯错、犯错后及时排错,除了打好基础之外,仔细也是必不可少的。有的同学把String写成了string,却自己找不到错误,这就是不仔细的表现。这些过程都是痛并快乐着的过程。在我们没有找到答案前,我们会着急、甚至生气。但是我们又急切地想亲手找到答案,因此我们又想迫切地回到这个过程。当我们找到答案时,那种欣喜若狂的心情、成就感是不言而喻的。请学会享受这个过程,这自然会激发你更大的兴趣。你当然也可以选择偷懒,让别人去摸索,但同时你也就失去了享受这一过程的权利。

    第六,程序排错时要善于利用编译器提供的错误信息。有的同学找不出错误,但实际上编译器已经给出了很明确的提示,而且是中文的哦!对照这些错误信息,我们就能够发现自己知识的遗漏,从而加以弥补。

    第七,反对初学者使用IDE。诸如eclipse之类的IDE提高了熟练程序员的开发效率,对初学者却是有害的。且不说这些IDE本身的用法就足以让部分初学者望而生畏,更重要的是IDE会帮你做很多事情,甚至是在你不知道的情况下,而这些事情涉及的知识点也许就是一个初学者应该掌握的基础知识。换言之,IDE部分剥夺了初学者通过写程序巩固知识的权利。再说,初学者一般写的程序都比较简单,犯不着用那么多花哨的功能。因此,本学期JAVA课程的学习将坚持以命令行+文本编辑器的形式来编写程序。

    第八,善于求助。如果一个问题自己实在无法解决,要及时求助,避免耗费过多的时间,自信心受到过大的无情打击。写程序的时候,由于我们局限于自己的思维,某些错误很难察觉。而旁人却没有这种局限,可能一下子就发现了错误。或者先放几天,让思维跳出这种局限,然后再来面对这些错误,也许就能恍然大悟。

    第九,要善于分享。把自己的心得体会、对知识的理解、运用写出来,让大家来分享。写的过程,其实就是对知识归纳、总结的过程,也能够发现自己知识上的遗漏。写的时候,可能需要参考相关资料,学习新知识。这对培养我们搜集信息、自主学习的能力,是大有好处的。写得好,自然能得到大家的认可,这样学习的动力也就更足了。

    同学们若有什么好的经验,也可以拿出来和大家分享。预祝同学们学习顺利!

     猛戳这里全面系统地学习MyBatis 3