转眼 2008 年, 我的编程已经有 6 年多 “悠久” 的历史了.

2002 年, 从 Microsoft Visual Basic 6.0 开始, 我走上了编程的道路. 11 岁的我, 从在屏幕上框出一个一个的按钮, 文本框, 图形, 图像, OLE 控件… 到有点样子的屏幕保护程序, 调色程序… 再到像模像样的多媒体播放器, 内存使用量查看程序… 一个小程序员慢慢成长起来了.

2003 年, 还是 Microsoft Visual Basic 6.0, 我开始制作自己的文字处理程序. 虽然格式是 Rich Text Format 的, 控件是 Microsoft 原有的, 程序的大部分还是 Visual Basic 6.0 的应用程序向导自动生成的, 但是添加上去的缩进功能, 项目编号功能和字体, 大小, 颜色, 对齐等等功能, 加上菜单上艰难地添加上的图标, 都是我自己做的.

2004 年, 还是 Microsoft Visual Basic 6.0, 此时我已经接触了一些 Windows Application Programming Interfaces, 能够修改注册表, 进行一些基本的操作. 能够不用控件只用语言给出的标准函数和语句进行顺序文件和随机文件的读取. 年底, 我还自学了 Pascal 语言, 并且也做了一些程序.

2005 年, 我开始使用 Microsoft Windows XP 操作系统. 编程依然是 Basic 语言, 但是此时我已经接触了 Microsoft Visual Studio .NET 2003, 而且意欲学习 C++. 不过还是在用 Microsoft Visual Basic 6.0 在做程序. 这年我做了一些病毒, 其中一个是刷网站流量的, 名叫 RunExe32.exe, 据说被加进了金山毒霸的病毒库; 还有一个是远程控制, 名叫 Remote Control, 但是这个程序没有做完, 只实现了远程命令还有注册表操纵. 做这些程序, 是因为受到了灰鸽子还有 BO2000 的影响… 9 月份的一个星期三, 我发现学校门口有 NOIp 的报名通知. 星期五的电脑课, 我去和老师报名, 他说名单已经报上去了… 我还在步步高电子词典上做了一个可以计算一次函数和画一次函数图像的程序. 年底, 我找到了一个叫 StyleXP 的软件, 可以更改 Microsoft Windows XP 的外观, 其中有一个窗口透明度的功能. 我就做了一个可以让窗口半透明的程序, 名叫 Crystal, 因为它让桌面变得像水晶一样. 受到计算器的启发, 做了一个可以计算常数表达式的程序, 支持加减乘除三角函数和括号, 程序名叫 Expression. 因为制作 Crystal, 我还接触了一些可以获得 Microsoft Windows 屏幕上窗口的 Application Programming Interfaces, 所以我也就萌发了制作一种高级任务管理器的想法, 类似于 Microsoft Spy++.

2006 年, 我使用的语言开始多样化. 首先去年年底的高级任务管理器的计划开始付诸行动, 使用 Microsoft Visual Basic 6.0, 代号就是 Crystal. 过年回老家没有电脑, 我就思考如何枚举桌面上所有的窗口, 其实这个问题的本质是树状数据结构的遍历问题, 当然当时我不知道. 结果我想了近一整天, 想出了一个用平常的循环不能实现的算法. 当然树状数据结构的枚举一般是通过递归实现的, 我当时不是, 竟然想到了烂面条结构 – Goto 语句! 结果我成功了. 我以为我发现了一个惊天动地的算法, 只是后来才发现, 这种算法可以通过递归实现, 它叫做深度优先搜索… 但是 Crystal 没有完成就搁浅了… 这年我也浅显地学了一些 C++. 之后认识了学校计算机老师的老大, 开始走上 Pascal – NOIp 道路. 一开始我星期六下午去学校找老师学, 老师比较低估我的水平, 布置了一道恶心的题目就点上烟出去抽了. 我没等他抽完半根就做完了… 后来我展示了一些以前做的程序, 他才知道我不是好惹的料… 暑假刚开始, 另一个电脑老师就想让我去教他 Visual Basic. 结果他打了退堂鼓… 暑假去学编程, 那个时候才开始学习一些理论知识, 才发现自己的渺小, 也发现了深度优先搜索算法 – Depth First Search, 才发现我那个烂面条算法原来… 已经被发现了… 8 月和 11 月我分别参加了柳州市的 LZOI 和 NOIp, 成绩比较喜人…

2007 年, 步入初三已经快一个学期了, 没有多少时间研究编程了. 受到游戏 神雕侠侣 的启发, 萌发了制作 3D 网络游戏的想法… 寒假在房间里来回踱步, 想着游戏引擎和脚本的思路, 开始使用 Microsoft Visual C++ 6.0. 期近中考, 学习紧张, 做的和电脑的技术相关的东西只是在纸上设计用电磁继电器做成的 CPU… 中考后, 原先计划使用 Microsoft Visual Basic .NET 2005 制作一个 Pascal 的 IDE, 但是发现这样做其实很浪费时间, 所以就放弃了. 之后开始使用 Microsoft Visual C++ .NET 2005, 学习 Microsoft DirectX, 制作 3D 游戏引擎. 结果只弄到一个三维坐标系, 能够操纵 Camera 在里面到处看而已… 继续 Pascal – NOIp 道路, 结果由于评测机和学生机 Pascal 版本号不同, 评测结果存在争议, 所以本来可高考加分 20 分的我, 愤怒之下放弃 Pascal, 开始学习 C++ 语言, 走 C++ – NOIp 的道路…

2008 年, 我开始使用 Microsoft Windows Vista 操作系统. 开始关注共享开源软件阵营. 紧张的学习生活中, 我开始系统地研究算法. 混着混着就到了现在…

原创文章,转载请注明来源:http://euyuil.com/63/coming-noip-2008/