原文链接,我的主博客http://wargrey.yo2.cn/2009/05/22/30387/
此处不再更新
博文视点的周筠老师最近在做一本书,讲述一些业内朋友走过的路。突然接到这个约稿通知还是很经张的,尤其是看了一些其他朋友讲述的故事,感觉压力好 大,毕竟自己还呆在象牙塔里,我的成长模式还是前景未卜的。不过临近大学结束,自己也确实计划要好好总结一下,希望能给学弟学妹一些借鉴。呵呵,写出我的 特色来!加油,暴龙。
====================================================================
题外话一:
即使是到现在的2009年,我仍然比较喜欢看动画片,打算一直保持这颗童心。好吧,也说说我喜欢看动画片的理由,其实动漫跟神话、传说具有很多的相似之处,都是采用比较艺术化的方式来表达自然和社会本身,或者这其中的某些特性(集)。同时,动画片面向的群体一般都处在成长的启蒙阶段,但是动画制作者则刚好相反,如此看来动画创作的正真难点是如何内在信息以一种浅显易懂的方式表达出来,正所谓”没有简单的东西,只是看不到深度“。并且这样的艺术化方式往往更适合解释一些与众不同的思维方式,因此在人际关系方面还能取得意想不到的效果。当然不排除这又是一个”不知道其他可选方案“的陷阱。下文要提到的《数码宝贝》则是导致我接触编程的直接原因,同时其内容是将数据资料实体化,鲜活的表达了人工智能和人类环境的矛盾。
题外话二:
如果说受限于小学时候的认字水平,很多想法只能通过画图、设计、手工制作等游戏方式进行,那么初中在书面表达能力提高的前提下,很多东西可以转化为文字来表达。于是我开始写小说,其实我根本不知道文学上的小说是如何定义的,但确实写得不亦乐呼,呵呵,输出正是小学那个严重违背K.I.S.S原则的”浩大工程“,这篇文稿总共写了三次,最后已完成的量总计66页(普通软面抄),喜欢武侠的读者同学的评价是”你这东西写的比小说还好看,赶快接下去写“。那个时候我也开始看诸如《水浒传》这样的名著,而我的作品的特点是详细的动作环境细节描写,这对于无法在小说文字上看到具体动作的武侠迷来说的确是吸引点。这个跟编程没有直接的关系,但确使我更加热爱写作,以至于即使是在高三时我仍然继续”堕落“,其他老师估计已经放弃我的情况下,我的语文老师还一直鼓励我”你应该是班里的前几名的,加油“。这也是我现在不怕写博客和项目文档的基础。
题外话三:
跟大多数男孩子一样,我也很喜欢捣鼓我的小玩意,尤其是电子产品。而且很快的,我发现我与周围人的一个最大的不同点,就是我特别喜欢看说明书,因此像什么电子宠物、计算器、文曲星之类的东西,我都会花上一段时间来研究它们的说明书,直到我能随意玩转它们的所有功能(哈哈,这样的一个最现实的好处是在数学考试时编程应对烦琐的计算任务)。初中时我已经知道有电脑这种东西了,但是我想自己私有还是黄粱一梦。而学校交得那些东西很无聊,五笔打字,虽然有上机课,不过需要另外交上机费(还每次只有一半的人能去上),那钱我乱花了,不敢再跟家长要。让老师很疑惑不解的是,像我这个五笔掌握最好的人竟然不喜欢玩电脑,甚至还说”如果家里有困难,我可以帮你“。呵呵,其实这也隐含了我的一个个性因素,即使是到现在,不是我的东西我轻易不去碰,似乎很难解释,为何在后来我看到别人的电脑时能很好的控制住兴奋,但对于自己捣鼓的玩意却很容易沉迷。初中终究没能好好学电脑,不过却跟我的计算机老师成了朋友,她借给我一本书《数字化生存》,作为我的第一本计算机方面的书,其具体内容已经不太记得了,只知道那些预言现在已实现的差不多了,不过它却是我正式确立兴趣与方向的因素之一。
初恋对于每个恋爱过的人来说都是非常难忘的,不过似乎有点遗憾,已经快大学毕业了的我,还没有正真恋爱过。呵呵,不过我也有难忘的”第一次“,这个便是我与编程的邂逅。
由于小学时参加的活动较多,兴趣也很广,初中我一直在纸上记录着搜集到的各种各样的数据资料。当年,日本动画片《数码宝贝》在国内流行,较之其他动画片比如《神奇宝贝》之类,它则更彻底的吸引了我,以至于我想将众多数码宝贝的资料收入我的数据库,然而很快的,我发现相对于那些常识性的数据资料,这些资料经常需要修改,因为不同的书上的描述不一样,跟动画片里表现的也不一样,记录在纸上很不方便。一次偶然的机会,我知道了有文曲星一物,它可以保存我想要的资料,并且非常便于修改,于是很快的我也有了一台。很幸运,我的文曲星具备GVBASIC编程能力,当时没有程序的概念,看说明书上讲得出神入化,可惜只关注在如何创建和运行程序,而对如何编程只字位提,联机帮助倒是有完整的API文档,呵呵,我只当那是天书了。如此诱人的东西怎能轻易放过?天真的我开始输入"请以简便方法计算 1+1=?",可想而知,我得到的总是"Syntax Error"。次数多了,我也就不再去管他了,直到有一天,意外的发现小霸王学习机里也有GVBASIC,更意外的是它的说明书介绍了一个典型的用GVBASIC求一组数的最大值的程序。看完它的解说恍然大悟,原来程序是要从最小的行号开始运行,每行都要写它认识的英文单词!看到电视屏幕和文曲星屏幕上产生的相同的输出,我知道我的”第一次“,一段略带传奇色彩的邂逅,已经发生了,它将是我今后方向的起点,也是我的学习方式由”他教“变位”自学“的起点,后来的历史也确实见证了这点。
说起后来的文曲星编程,跨度还是比较大的,从初二一直到高考结束,这期间我自身发生了诸多天翻地覆的变化。编程其实并不是什么高深的事,自从理解了那第一个程序,再翻看联机帮助的API文档,解理起来很快,以至于我不明白为何一开始会看不懂。几乎是本能的,符合我现在行为的编程动机在那时就已经很明显了,不外乎两点:一是做对自己有帮助的小东西,一是做自己感兴趣的小玩意。我既是开发者又是最终用户,没有压力不需要担心需求频繁变更。总得来说,主要分为三大块,数学计算、图形动画和音乐。由于不得不考虑的GVBASIC本身的能力和限制,数学计算那快基本没有什么价值,基本上是一次性脚本的方式来验证我的数学作业;音乐能力则更有限,大多数时候不知道它发的是什么音,偶尔在晚上睡觉、周围都很安静的时候摧人入睡。重头戏就落在图形动画上面,当年的电子宠物还是比较流行的玩具,宠物现成的点阵图案刚好省去了自己绘制的麻烦,《数码宝贝》理所当然的成了我创作灵感的来源。也就是在此时,我停止了对小说的更新,全部精力都用来做动画。很快的,我发现了文曲星的限制,对于那些不用多少代码量的计算、音乐程序来说,动画程序却是不可避免的超长了,亦或是在执行过程中是不是出现恼人的”OUT OF SPACE ERROR“。于是乎后续的精力转移到优化代码上,才总算保住了动画的完整性。GVBASIC是个非结构化的编程语言,程序里到处都充满了GOTO、GOSUB和ON ERROR GO这样的无条件跳转语句,这正是文曲星带给我的最宝贵的财富,相对于现在的编程爱好者,我更深切的亲身体会到了”GOTO有害“、”牵一发而动全身“的痛苦经历。顺便说一下最后的结果,基于数码宝贝题材的完整短小动画共计6部,受第一部的影响,所有的6部时长大致在2min47s左右,最快的开发周期是3天/部,若干学习测试小动画、特效不计。
小插曲
当时的文曲星是靠纽扣电池来维持电力的,不仅降格贵,电量还小。为了不至于在这种小事上纠缠,我楞是将电筒充电器和文曲星对接,供电问题得到解决了,但是也发现文曲星不再稳定了。哈哈,那段时间我最怕的就是有人在我写程序的时候来打扰,搞不好半天的程序都会因此丢掉。坚持了一年多,换了个高级点的文曲星,可以直接使用外接电源和干电池的那种。
那时也已经高中了,就文曲星里的动画片都丢掉了。而且也不想再继续做了(要不然别人会认为我幼稚),不过文曲星编程还是一直没有停止,只不过做得事情更高级了,最终完成了两部大作。一个是任意复杂度的函数图象绘制程序,可以调整坐标精读和绘制区间的那种。一个是绘图工具,除了没有颜色和鼠标外,可看成是一个简单的”windows画图程序“,还能保存图片呢,当然对文曲星里的其他程序没有什么价值。我倒是想做个模拟GUI的程序,像windows桌面那样的东西,不过也快高中毕业了,文曲星被淘汰了,那个计划最后只完成了”图标编辑器“和模拟的鼠标指针。高中的那段文曲星编程,其实没有带来更多颠覆性的价值,一方面自己长大了,文曲星的限制越来越让人不爽(其实可以尝试Lava的,只可惜Lava的编程要在电脑上进行),一方面我进入了下面要说的编程阶段,文曲星其实只是用来解渴的。