2005年3月26日 晴 于 北京交通大学16号宿舍楼

编程是很累的,这是我在日记中第二次提到,但如果你选择了,那请你一定要坚持。这些话,既写给那些我深深佩服的程序高手,也写给现在对编程仅仅是兴趣,还未成为职业的同学们。

如果你学习Java的目的只是想把它作为一种炫耀的资本,或者作为以后找工作时简历上一个华丽的字眼,那我劝你还是放弃Java吧,你承受不了学习过程中的种种挫折和苦恼。你可以有更好的选择,你可以选择VB,或者再简单一些,你可以选择JavaScript,或者我建议你不如学习一下Flash、Html。我在这里并没有贬低这些语言的意思,我只是觉得,这些是相当实用的,也许更加适合你。买本书,比如《21天学会XX》或者《XX快速教程》,你会很快地掌握这门技巧,再花点时间,你会成为朋友中的高手。

但是对于Java来说,你没有捷径可以走,还是一步步地来吧。从哪里入手?先从思想上入手。解决了脑子里面的错误认识后,其他一切都好办了,剩下的,不就是买上一两本好书,坚持下来,花时间研究研究吗?具体怎么做,书要看,这个大家都知道,但是很多时候,他们可能忘记了另外一点,要亲手实践。

我原来写过文章,说我很不喜欢在计算机领域里面实行其他领域中惯用的考试制度。原因很简单,我有很多本校和外校的同学或者学长,他们的C,Cpp考试分数很高,高到令人吃惊的地步,但是却没有写过超过100行的代码,编个简单的循环还要查书,程序调试错漏百出。这样的学习还能称之为学习吗?的确,动手能力的前提是理论知识,但是不能光有理论知识却忽视了动手能力。也许有人会在这里鄙视我了,认为我吃不到葡萄说葡萄酸,批判现在的考试制度什么的。我可以把我的专业课成绩告诉大家,现在大二,编程学完3门,pascal,C,Cpp,分数分别为99,98,90。相信这些都是不低的分数了吧?但是我可以说,我没有一门科目在考试前突击,当他们挑灯夜背的时候,我已经在平时的积累中获得了足够用于考试的信息,而且考完试后不会忘记。

只有亲手实践才能做到这一点。我也许要在这里,强调一下实践的重要性。已经学习了一年的Java,我想我是有那么一丁点资格发言的。我很深刻地记得高中老师说的一句话,“一看就懂,一学就会,一做就错”。她是教语文的,但是这句话完全可以引用到现在我学的这个计算机领域里面。那怎么才能算懂了?我给自己下的定义是:基本语法可以脱离书本,随手拈来;各种结构、思想能够正确理解,在别人问到的时候能够清晰解释;编程的时候遇到问题可以知道怎样去找到合适的答案。我不知道下这样的定义是否正确,但我一直是这样做。书本说到的,即使很全,也只能涵盖某一个方面。在编程的时候,会出现这样或者那样的种种问题,没有亲身的实践,是永远无法得到答案的。也许有时为了查一个简单的错误而花费了大量的时间,但是当你知道如何解决这个问题之后,你也就永远地把它记住了。各种语法、各种结构,靠背是没有用的,背的结果只能是忘记,否则为什么那么多人考试之后还是不会写程序?要记住,只能靠实践,多敲键盘,写多了,感觉就自然来了。很多人喜欢聊QQ,开始打字的时候速度很慢吧?你们是怎么提高的,靠背汉语拼音吗?打字多了,自然也就熟练了。熟能生巧,道理都一样。

不过我相信,如果你是真正地想学好一门语言,那么你是会坚持下去的。也许就像你当年对某事的执著追求一样,或者像你高三时候奋力拼搏高考那样,或者再差一点,像我一样坚持一年,然后在这一年中努力实践,我相信你是会有所收获的。

。。。(待续)