【51CTO独家特稿】技术专家们的起步之路是不近相同的,今天我们要介绍的衣明志老师是从一个简单的小游戏开始。尽管当时遇到了不少的困难,但是努力坚持自己解决问题让衣明志老师在技术之路上有了自己的特点。
人物介绍
衣明志,蝉联五届微软MVP,烟台.NET俱乐部主席,现主要从事.NET平台下的Web应用开发、解决方案、构架设计及技术培训等工作。
照片居中者为衣明志老师(51CTO编辑注)
1. 您是什么时候开始接触开发技术的?当时有什么技术理想?这么多年过来, 对这个技术理想有没有过调整?
小时候主要从《科学画报》之类的杂志以及电视电影上对计算机进行一些概念性的了解,觉得它是很神奇的东西。后来邻居家的买了一台小霸王游戏机,而我发现有能写basic程序的卡带,于是开始抽空去他家玩的时候总是会尝试写一点及其简单的程序,能通过程序计算两个数相加的结果就感觉很激动,但那时对真正的开发技术并不清楚,只是觉得有创造东西一种快感。上高中开始接触286、386计算机,学校每周2节计算机课,一节理论一节实践。大概是因为迷恋上了计算机,所以基础课程学的很快,而且很快感觉老师讲的都不够学,于是经常跟班里几个同学抽空一起讨论计算机买一些略微深入点的计算机书籍,并初步了解计算机网络、计算机病毒等的事情。大部分同学在计算机课上都会偷偷玩一些游戏,我们几个也玩,比如超级玛丽、俄罗斯方块、波斯王子等。
但是我觉得如果能自己写个游戏就好了,于是自己在那极为有限的条件下(每周只有45分钟的上机时间),尝试编写了一个简单的剪子包袱锤的小游戏,带有音乐和简单的图形,因为用到了浮点basic等老师不了解的知识,所以遇到问题问老师的时候,老师的回答是“看不懂你的程序”,所以问题都是得自己解决,大概喜欢钻研计算机问题的习惯也是那时候养成的。那个dos为主流操作系统的时代,我们几个人把我们烟台的计算机名人——王江民 奉为英雄,希望成为他那样的技术牛人。对于自己的未来那时候已经明确了,就是从事IT行业并创办自己的计算机技术公司。高考报志愿我的专业方向都在第一项上写的是计算机,后来顺利地在济南大学(原为山东建材工业学院)读上了计算机科学与技术专业,毕业后也一直从事IT行业的工作,现在则已经走在了创业的道路上。
2. 刚接触编程的日子,最难忘的是什么?现在来看对当时的自己有什么建议吗?
刚接触编程的时候,其实最难忘的还是自己动手开发那个小游戏的时候,几次晚上做梦都在写代码,而代码中还充斥了大量的goto语句,呵呵。如果有现在的计算机条件,我大概会希望当时的自己写个更复杂的,更完整的应用,而且一定要坚持自己先努力思考多遍再尝试询问他人。
3. 什么时候在编程上有一种真正“开窍”的感觉?有没有什么事件加速了这种脱胎换骨的巨变?
我对计算机编程的开窍过程也是蛮有意思的。那时还在大学二年级,当时flash非常流行,自己也喜欢做flash动画,但是发现世面上并没有一个我认为好的Flash播放器,因为adobe的flash player只是能播放和一点几点的功能,没有像豪杰的超级解霸那样类似的功能,比如列表顺序播放、截图、快进、快退、全屏等。于是自己开始尝试编写一个属于自己的播放器,而第一个支持的格式就是flash。但是这时候自己所掌握的编程技术还没有一项直接属于windows编程领域的,汇编、Tourb C、PASCLE 都不适合直接做这个软件的开发,那么怎么办呢?于是经过比较,决定自己学习一下Visual Basic 6.0,然后使用VB6来开发自己的这个软件。因为之前自己已经通过自学掌握了ASP,所以学VB6的时候也相对容易一点,但是可悲的是周围的同学没有会的,自己只能拿着一摞子软盘去网吧把资料下载回来学习,当然也有买书,是讲Windows API的。
因为整个学习的过程是有目的的,所以边学边开发:为了让Flash播放窗口能跟控制面板分离并带有磁吸等效果,学习了钩子 (HOCK)、多线程等技术内容;为了能够让播放器能够知道FLASH视频的真实大小,背景色、时长等信息,学习了Flash的文件结构,尤其FLASH文件的头数据;为了支持自动播放(不需要点视频中的按钮),深入学习了FLASH的Action Script ;为了支持在线流式播放深入学习了HTTP等协议;为了支持不同版本的windows操作系统,又学习了不同版本windows对软件开发的影响点,例如有点版本获得的路径包含最后的斜线有的没有…… 后来发现当时的金山影霸等播放器工具对一些格式的视频支持的并不理想,而且对一些老旧的机器不支持或支持不够好,于是自己的播放器后来加入对常见音视频格式、电影字幕以及视频纠错等功能的支持,当然也因为对内存的很小占有,赢得了学校里不少旧机器用户的喜爱。虽然这个我起名为闪航的播放器,当时只在学校内部发布,并未对外公开,而且也并没因此获得任何的经济利益,但是它对我在软件开发方面的积极推动力却是很大的,现在谈起那段小历史仍然觉得非常自豪。
4. 最近还在关注哪些技术?有没有什么印象深刻的事儿?
最近主要关注ASP.NET MVC 3、Windows Phone 7以及NOSQL数据库等技术,个人对Windows Phone 7的未来很看好,希望微软加油努力在手持设备领域能够重创佳绩。ASP.NET MVC 3的Razor 非常不错,建议大家关注和学习。NOSQL领域的东西越来越多,也许它能在WEB领域颠覆关系型数据库的地位,我个人非常看好。
5. 心中是否存在一个技术偶像?这个偶像起到了什么样的作用?
我想每个技术人心中都有一个技术偶像的,他可能是比尔盖茨、乔布斯也可能是求伯君、王江民或者丁磊、张朝阳。我心中的偶像不是他们具体的某个人,而且是他们的精神集合体,我希望从这些人身上学习到适合我的东西,要知道成为他们中的任何一个人都需要一些特定的必要条件,有时候不是你努力就能成为比尔盖茨的。所以个人认为努力做最好的自己才是正路,不要过分追求金钱利益,踏踏实实做一些更有意义的事情,我们会更优秀。
【编辑推荐】