十年 (二)

1993年,我读高二的时候,读了一篇连载,是在一个针对青少年的计算机相关的报纸上, 题目应该是《微软公司传奇》。

当时刚刚接触windows3.1 ,AppleII已经成为了仓库里老古董,学校里都是新的386。

这篇连载提醒了我,这个微软,就是当年DOS3.3的作者。原来他们的操作系统已经变的这么好看了。当年喜欢dos3.3, 是因为用一张5寸磁盘引导一下,就可以在任何电脑上运行很多好玩的游戏和软件。(当时的机器是没有硬盘的)

仔 细的看了好几遍这篇连载。他讲述了bill gates这个小朋友,是怎么在小学里喜欢上计算机和编写“井字游戏”的,是怎么编写的课程安排程序, 然后把他喜欢的女孩子的座位排在他周围的(当时特别不屑他这种利用职权的行径,现在看起来是多么有用啊)。还讲述了他们在“古代”用纸带穿孔机作为输出的 电脑前编写程序,以及后来怎么遇到了paul,去哈佛读经济学,如何翘课去写程序,在考前一晚上突击复习,最后终于不给他有钱的老爸面子,辍学创建微软, 通过和IBM的合作成功开发dos,取得成功等等。故事非常的长,但是非常的有趣,这样的文章,对当时一个啥也不懂,只有一脑袋梦想的傻孩子们来说,所具 有的煽动作用是无法限量的。

高三填志愿的时候,填的是清一色的计算机系。除了提前录取填的二军大,因为家人希望我学医。我并不是不喜欢 医学,而且尤其喜欢中医,气功,周易,八卦等等。因为自幼体弱,所以初一和整个高中基本都在练气功。高中的暑假和好朋友骑车去采草药,其实就是绕城转了一 圈,啥也没采到,不过其时阳光明媚,石桥流水,小鸟乱叫,蛤蟆蚱蜢乱蹦。。。

------------------------------------------------------------------------------------------------------------------------------

不 久上了大学,先接触的是pasal语言,不太喜欢,虽然borland的turbo pascal非常强大,仍然不喜欢他过于严谨的语法。早就仰慕c的流畅和无所不能,终于在大一不知道大二学了,但是意想不到的是,学c的第一个直接后果是 把我家的显示器烧掉了。因为当时想做游戏,那时候游戏程序都是直接写屏的,也就是直接写显存来画图的,用双buffer进行flip提高效率,直接操作显 卡的寄存器来切换模式和修改调色板。当时有很多诡异和经典的做法,比如用调色板寄存器的移位操作实现瀑布等效果,日本的游戏开发者甚至用屏幕的扫描间隔产 生的屏幕“裂缝”来模拟赛车游戏的某些效果。。。不过我为游戏界做的第一个贡献就是写了一个循环不断切换模式,来产生了烧显示器的效果。。。不是效果,是 真的把显示器烧了,我按了一下run,然后去倒开水,回来发现显示器黑了,只有电源灯还一闪一闪。。。

98年我是大三,用静态html 做了一个个人主页。因为拿了一个novell的奖学金,参加了它的网络课程,其中包括html/js/cgi/什么的,所以就申请了一个空间做了个主页, 还是frame的哦,就像现在的blog一样,有我喜欢的文章,音乐下载和其他一些资源。那时候还在用IE3.0和netscape,觉得 netscape很漂亮,IE3好土,其实最后要不是微软耍流氓,在浏览器方面根本打不果netscape的。没办法,微软就是会做生意,以前一直佩服 Bill Gates会写程序,后来一直佩服他了解用户和会做生意。否则苹果也不会被他夺了江山,CP/M(实际上真正的第一个个人电脑操作系统,后来的dos都是 模仿它的,界面命令都几乎一模一样)的作者基尔代尔也不会因为被抢走和IBM合作的机会而一头撞死,netscape也不会被击倒,borland现在也 应该还是编译器巨头。总之市场是无情的,靠近他他才会拥抱你。

然后是毕业设计,在华东计算所,为长征四号火箭的芯片设计一个汇编语言和 汇编语言开发环境。其实很简单,因为汇编语言只是机器语言的符号化而已,只要把汇编语言直接翻译成机器指令就行了,当然要根据语法判断一下寻址方式。然后 用mfc写了一个简单的开发环境,让用户可以编写汇编程序和翻译成机器语言程序。做了一半的时候,导师去发射火箭了。。。

-----------------------------------------------------------------------------------------

大 四下半学期,课程基本没有了,高程也考过了,工作也定了 --- 一家日本的游戏公司。所以除了做毕业设计以外,就是玩Mud,侠客行上海站。玩了mud,你才知道你的自制力有多差。基本上吃饭睡觉上厕所的时候,想的都 是mud里的事,因为拨号上网很贵,所以限定自己每天只能吃饭后玩一小时,但还是经常超时。来到学校里,同学基本分成两批聚在一起 -- 玩mud和不玩mud的,我当然在玩mud的一群里,聊的,笑的,思考的,都是mud中的事。一个人的时候,就是反复阅读前人写的攻略和文选,至今我还会 经常翻翻mud文选,因为这是一种享受,只有玩mud的人才能体会到,我的很多口头语,还是源自当年的侠客行,因为我觉他太经典了。当时很多人和我一样, 对工作后生活的唯一梦想就是,回家后可以抱一台笔记本在床上玩mud。。。

当时为了练功,我还写了第一个木马程序,放到网吧里,这样, 我就可以利用网吧的网络帮我24小时打坐,练功,做job。程序很简单, 就是用socket连server,然后不断的发送命令。mud的客户端zMud是我认为世界上最经典的软件之一,友好性极佳,令windows和其他终 端模拟软件望尘莫及。你可以用它写程序,zmud会帮助你熟悉正则表达式。

从玩mud开始,一直有一个强烈的愿望,就是能做一个图形 mud,因为这一定会是世界上最好玩的游戏。可是直到现在, MMORPG泛滥的今天,我仍然没有资金和团队去做这件事情。虽然说是一个遗憾,却也没什么可抱怨的,因为自己除了会写程序以外,一直就没有什么资本去做 这件事。

大学四年其实要写的东西太多了,第一批购买家用pc的大学生应该就是我们,第一批用14.4k的大笨猫上网的是我们,第一批玩ICQ/QQ,仙剑,红警,金庸群侠传,暗黑破坏神等等经典游戏的差不多也是我们。

-----------------------------------------------------------------------------------

回 顾一下大学课程,学的时候,觉得最有用的是c, 面相对象,汇编,数据结构。工作的1,2年里,觉得对写游戏最有用的是多媒体算法,高等数学,图形学,线性代数,(甚至是物理,因为游戏的物理引擎需 要),人工智能,运筹学。对其他开发,最有用的是数据库,编译原理,操作系统。现在回头看,觉得最有用的课,第一是编译原理,第二是操作系统。因为他们让 你理解计算机。

所以,对于喜欢编程的同学,或有志于成为程序达人的同学,建议好好学习基础课程, 比如由下至上高等数学,线性代数,离散数学,数值分析,数字逻辑,命题逻辑,计算机组成原理,操作系统,汇编语言,编译原理,人工智能,运筹学,数据库。 因为如c/java,数据结构,面向对象之类都是可以自学和容易学会的,但上面那些基础课程,出了学校就基本再也没有机会把他们学好了。他们对你的影响将 更加深远,他们会使你不同于普通的程序员。我一向反对只了解局部的做法,所以我也同样反对有些学校的“软件专业”,只学习c++/java/asp /uml等等开发语言和工具,这不利他们开发真正好的软件,比如说让他们误把uml等同于OOD,盲目的使用面向对象等等。我认为所有学软件开发都应该认 真学习上述基础课程。

另外非常重要的一门课是软件工程。虽然很多学校都有这门课,但我相信大多老师都不认真教它,学生也不会认真地学, 因为这离技术有点远。这是一门充满争议和不断发展的学问,我只能说,你应该脱离表面,去理解软件工程的思想,它不是必须的工具,但是是帮助你把事情做好的 工具。在学习时,思想是重要的,工具是不重要的。 在工作时,工具就是非常重要的,在短期内甚至比思想更重要。

除了大学里的重要课程喜 欢的课程,除了毕业之初为了找工作,除了英语和日语,我基本不参加任何认证培训和考试,更不用说其他的培训了,倒也不是故意不参加,主要还是没空或者觉得 没什么value,不管是在东星,证券之星,还是SAP都是这样。其实我甚至是有一点鄙视那些参加各种“工具培训”和嚷着这个不懂那个需要培训的"程序 员"的,我也鄙视那些以翻译各种国外技术书籍沽名钓誉的人和一些培训讲师的。因为,我的潜意识里,一线的程序员才是最伟大的,真正的程序员(我说的程序员 包括系统分析员和设计人员),是没空参加这些乱七八糟的培训和看完一本“入门”或“精通"的。就像我的很多好朋友一样,所有新的工具或者新的编程语言都是 在开发过程中直接学会并把项目做好的,除非,这是一个没有任何文档和sample的东西。所以,当我面对很多“需要培训”的“程序员”时,我总是一筹莫 展,我看到的所有好的程序员,都是不屑于参加这种"工具培训”的。同样,我也鄙视那些面试时候总是问具体实现细节和要求有xx编程经验的面试官。比如说 socket编程,jsp编程,我虽然没写过,但我花两天时间就一定会达到要求,我花一个星期一定会比大多数”有经验“的人写的好,可是为什么我在做这件 事前就必须有这种廉价的"经验"呢?

越写越有点狂妄了,每个毕业生在找工作时相信都受到过bt面试官的气,不过相信我,好的公司很少有这样的面试官。

大四找工作的时候遇到这样的面试官

一个大概30岁的面试官,长得一幅趾高气扬小人得志的脸。

"你做过什么项目?" 他似乎有点不耐烦,可能面试的人太多了。

"写过游戏"

面试官露出鄙视的表情。"那你凭什么应聘"

"我热爱编程"

“热爱编程什么用啦”,他的语气轻蔑到了极点,完全不耐烦了。

我 很受伤的离开了,“我热爱编程”是我从小学接触编程以来,一直觉得最自豪的一件事。我在每次填写志向或兴趣时,都是写“热爱计算机”或者“酷爱计算机” 的,如果还有更强烈的形容词,我也一定会用它的。因为我以为别人也和我一样理解,只要喜欢计算机就没有什么是学不会做不到的。

当然,我 们不能去强求所有人,所有程序员都是热爱这份工作的。每个人有自己的兴趣和生活方式,大多数人还是仅仅把它当作一份工作的,这没有丝毫的错。我们只是不希 望任何一个喜欢computer science,并且有理想,渴望或正在为之奋斗的人,被平庸所伤害和埋没。

另外建议大家在学校里, 在平时,有机会最好学一下的是艺术和文学方面的课程。作为软件设计者,审美是非常重要的,文学与艺术不但让你的生活变得有趣, 而且也让你的软件更亲切。文学或多或少包含一些历史,前人的事情,对了解现在是非常有帮助的。经济学也是一门很有用的学科。我想Bill Gates比steve jobs,Gary Kildall更有利的就也许是他在哈佛读过的法律与经济课程。

十年(一)

十年(二)

十年(三)

十年(三) 续 之圣战篇

十年(三)续之语言进化论

十年(三)续之游戏世界篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值