Robocode让我明白了不少
前几天看《程序员》下载了个robocode,其实这个玩意在前年搞工作室的时候就已经下载过,不过当时也没怎么玩。昨天趁加班(加班写机器人
)写了一个,并没有涉及什么算法,唯一遵循的原则就是打一枪换个地方。sample里除了那个waller机器人,别的都被干了。不过仔细想想,这里面其实有很多文章可作。越分析越后悔自己的数学怎么忘得那么快。一个晚上下来,除了有点体会别无收获。说实话,工作到现在始终觉得实际的开发工作和算法没有太大关系,更别说数学。一直知道一个道理,软件开发真正强的人,数学一定要强。但一直不知其所以然。今天算是领悟了。什么平台,语言,框架,数据库等等这几年积累的一点经验只是工具而已,利用计算机解决问题所需的工具。在工具后面就是解决问题的思维能力。现实世界是如此的复杂,要让计算机来模拟解决现实的问题,就必须用数学,从某种角度说,数学也是工具。后悔啊,后悔当初学数学的时候并不明白,只知道考试,不知道这些数学有什么用。 现在依稀记得当年在电教上数学建模时提到一个解决飞机航班的问题,现在想来多么有趣。可是...
![](http://statices.blogdriver.com/jsp/face/8.gif)
渐渐的我觉得软件设计开发中尤为重要的是几点:
1.解决问题能力(数学分析建模/算法,这一点也许在有的领域中并不那么体现得出来)
2.设计思想(扩展性,复用性,松耦合性等是一个系统而不是程序所无法避免的要素,IT尤其是软件行业唯一不变的就是不停的变化,所以设计思想就变得尤为重要)
3.计算机工具(这部分内容繁多,包括特定的平台,语言,工具,框架等学一辈子都学不完也没必要,如果深陷其中,那么就等着30岁退休吧)
目前身有体会的就是以上3点,还有其他,但没有体会到就不必人云亦云了。等以后体会到自然就会明白。(包括方法学(软件工程),××原理等)
中午,和老翁(几年的同事,曾经的领导,一同经历了跳槽和项目,现在当了SOHO一族,目前在我们公司做一部分外包项目)聊起了这个问题,他也深有感触。听他说现在打算往图像处理和流媒体方向发展,不错!
有自己喜欢向往的领域,就应该去探索,不过这需要一个过程,毕竟还要生活(曾经也有想法辞职回家闭关修炼,不过最终打消了。毕竟现在还有很长一段距离,理想和现实还没有冲突)。