我是如何与电脑成为死党的(三:大学一年级)
[email protected] 7/01/2007 2:00am

先补充高中的两件事情(年纪大了果然容易忘记事情,赶快记下来以后就忘不掉了):

  1. 我除了电脑报,还看《电脑爱好者》
  2. 还是想不起来了……

我很幸运,如愿以偿的进入了清华,机械系。

我在大一的感受是:课程太难了,没时间做自己感兴趣的事情。老师在前面讲课都是在那里读课本而已,和我们高中英文老师一样。自己也什么都弄不明白…… 于是决定还是去玩电脑吧,呵呵。

清华的开放实验室,在当年宿舍还没有通网络时候,就是大家的乐园。每天在这里泡到22点关门。

学点什么呢?去清华图书馆看看吧!抱回了一本现在回忆起来,翻译的很晦涩难懂的C++教程。那些什么类,方法,私有,重载,模板……我花费了很大的力气才弄明白是怎么回事。

接下来网上开始狂吹捧Java。到了现在我还是很认同我当年的那个观点:一次写代码,到处运行,这是优秀的BASIC的基本特性啊…… 当然现在JAVA虽然已经走下神坛,但是应该说她是一门很不错的编程语言。

像我这样好奇学习新事物的人,当然希望能够紧跟潮流。于是我开始努力的通过网络学习Java…… 当时我在玩 mud,所以第一个反应是能不能自己写一个向mud这样的server,大家可以登录上来用简单命令做一些事情。于是第一个Java程序是Hello World,第二个就是一个 Socket Server。当时支持了两三个命令吧,好像是学舌什么的简单功能,不过还是使用了线程,可以支持多人同时登陆。写完了这个程序,我就认定了Java是绝对的垃圾。因为在开放实验室是16MB内存的486电脑(586经常抢不到),还装了Windows。一个简单的Java程序编译要一分钟,启动又要一分钟……在这种条件下,我坚持写完了我的Socket程序后,就再也不想用Java了……

于是我就去努力的玩MUD,很沉迷,而且很单纯:帐号是zixia,女性。每天练功的功课,就是偷偷的躲到城墙上去,背着一块大石头蹦啊蹦的练习轻功,希望和人打架的时候能够不受伤或者跑掉。

正因为我不善于玩游戏,所以练功不成,只好去申请当巫师,也就是写MUD游戏的程序。MUD的LPC程序环境是类似C语言的解释型程序,还有OO的概念,很有意思。我从津凯的程序中改造了一个NPC的侍卫,又写了一个巫师坟墓,用来整人的,任何巫师进去后,没有外人的帮忙是无论如何也出不去的,呵呵。做了巫师以后,就没有玩mud的乐趣了。所以说,想让一个游戏对你失去吸引力,就去拥有它里面无限的资源吧!和人生很像:追求的过程才是乐趣所在。

这里也要说说津凯,呵呵,是我大学最要好的一个哥们,计算机能力超强,现在抛弃了本行,做金融去了。在mud里面认识,最开始没有见过面,他以为我是个小mm,在mud里面一直玩到两个角色结婚……最后才知道我是一个男生,很是失望。哈哈。

在还C++的书的时候,又看到了一直崇拜的 Visual C++ 的书。这个语言太神奇了,竟然可以写出Windows程序。于是借来看,却发现还是看起来很吃力。

我的SQL数据库入门,源于选修了一门计算中心开设的数据库课程。课程的老师非常不错,在这门课里面我了解了基本的SQL语法,联查、索引和第一、第二、第三范式数据库设计规范。

我的UNIX入门,源于选修了一门开放实验室开设的Unix课程。它还有专门的上机时间操作。通过这门课程我学会了基本的shell命令,而已。当时最乐于做的一件事情,是设置好自动登录后的脚本,然后写一些打招呼的话,期待着另外一个使用这台电脑的人收到我的问好。

学了一点UNIX皮毛后,就乐忠于研究网上很火的 hacker 是如何再非授权的情况下进入系统的了。看了很多资料,只了解到了通过 web cgi 漏洞找 passwd 文件,然后再通过 hijack 这样的工具进行暴力破解…… 我通过这样的方法搞到了一些 passwd 文件……然后开始 hijack… 却发现如何算都算不出来,后来才知道还有另外一个文件,叫做 shadow… 一无所获后结束了自己的 hacker 梦,哈哈。

接下来我对在Web上收藏图片有了很大的兴趣。我在初中高中很喜欢动漫,家里有全套的七龙珠、阿拉蕾、圣斗士、乱马、寒羽良等,自己也有尝试画过。所以我开始收集这些动漫图片。当时在网上,还很少有这样的资源,我花费了很多力气收集了上百兆的图片,但是,是没有地方存的。首先当时很少有免费的个人主页空间,其次网速都很慢。有一段时间我是借用了UNIX课上的服务器,把这些数据放在了学校的服务器上,但终究不是个办法。

后来在bbs上一个校内的朋友提供了实验室的服务器给我用,给我的几百兆数据安了个家。我很乐于使用 JavaScript 来动态的在 Netscape3 和 IE3 中展示图片:用户通过“上一个”“下一个”的按钮进行切换图片,并且可以使用幻灯片的方式来看,程序都是在用户浏览器中跑的。这个时候我基本上用熟了第一版JavaScript ,并且以后的很长一段时间,自己的JS水平都在这个位置,没有提升。

大一下半年加入了AKA,大家在玩一个 SoftEng Chatter 的项目,希望能用软工的方法大家分共做一个项目的开发实验。我被分到要做一个 Socket 类。这个Socket类是一个很奇怪的类,他对外要提供和标准Socket一样的读写接口,但是用户可能是在内网,并且只能通过 HTTP Proxy 访问互联网。所以,我内部只能通过建立不同的 HTTP Proxy 连接,来模拟一个持久化的 Socket 类,类似是一个 Proxy ,或者 Adapter 。

这个时候我还不会用 VC,大一暑假的时候把VC的那本入门书看完了,自己能写画笔这样的程序了,也能够做一些简单的对话框,当然也凑合着做了一个差不多能用的 Socket 类。MFC的事件回调机制当时帮了我很大的忙。

【待续】