Self-examination
最近自己学习java已经有了一个多月的时间,从一开始对变量常量的概念一无所知,到现在能勉强写几个小程序玩玩,已经有了长足的进步。今天没有去学习,学校里要进行毕业答辩和拍毕业照了,于是请了几天的假,自己也就有了一点空余的时间。回想这一个多月,自己做到好的地方是把大部分时间都用在了看书和码代码上,学习的重点放在了追求对知识的理解和内容的广度之上。书籍方面阅读了《java核心技术》和《java编程思想》,虽然说没有理解全部的内容,《编程思想》一书也只看了300多页,但面向对象部分、集合部分,书上的分析对自己进行理解带来了巨大的帮助。java之外学习了一点数据库和linux的知识,虽然极浅,但脑中对这两方面的知识还是有一些初步的印象了。当然,自己也有许多不足的地方,首先就是java一些技术的运用不够,也就是项目做的不多。经常会出现这么一种情况:自己能说出hashMap底层的运行状况,但码代码时老是想不到用它,结果导致大量的功夫堆砌了很多无用代码。这是自己很欠缺的一个方面,所以自己平常也要多花时间安排一下看书和练习的时间分配了。
Thought analysis
自己想做这个小游戏有几个原因,第一个是希望检视一下自己的学习水平,贪吃蛇虽然是很简单的游戏,但我想能帮自己更好的整理代码的逻辑以及各方面,能看看自己有什么不足的地方(至少现在我弥补了一些知识上的漏洞)。第二个原因嘛,其实是上课的时候有一个同学做了一个坦克大战的游戏,虽然极其简陋(逃,但其中的思想和他的学习精神也让我很佩服。所以我总归是不服,自己也尝试着去理解和copy。 当然,我并没有坐在椅子上,什么也不做凭空想了一个游戏出来,自己水平和思想很有限,并没有达到随手撸代码的地步。自己做这个游戏参考了很多人的代码,其中很多人代码对我帮助很大。大家感兴趣的话可以去网上搜搜,会发现我的代码和某些人的相似程度很高,因为基本上我整个贪吃蛇的思路都是照着前辈的思想来写的,自己并没有什么独创性的地方。这样说其实很惭愧,但转念一想,自己0基础,刚学编程也没有多少时间,参考前人的思想(代码)来学习也没有什么不好意思的。借口一找,心理就平衡多了。
Why do you have so much nonsense?
说了这么多,其实也是想把一些心里的话都写出来,这样自己在思考的时候也会更有逻辑和效率。至于要写这几篇文章,是因为自己在学这个游戏的时候都是自己逐步理解和想的,我发现网上并没有详细的分析。当然这样一个简单的项目,没有用到什么复杂的技术,都是一些很基本、很简单的技术和思想啦。我之前也写过几篇微博,都是一些简单的数据结构和算法的代码。但我后来一想,自己只是简单地贴代码,没有更深入的讨论或者研究,那自己写的东西就没有多少意义。既然写的都是代码,那为什么不去看书呢?所以我想我可以把自己理解的过程都写下来,这样可以帮助和我一样的编程初学者去更快的理解和进步,实践是增强技术(还有信心)最快的方法了。除此之外也可以看看自己还有哪些部分是囫囵吞枣的,毕竟写出来让别人理解要比自己掌握难得多。接下来几篇自己就准备写下整个游戏的分析过程了,希望自己拙劣的表达能传达本意,也希望大神轻喷。
Java Code Analysis of Snake (I.)