随笔-341  评论-2670  文章-0  trackbacks-0
    今年事情比较多,第一个是自己终于从本科毕业了,第二个是自己找到了工作,拿了一份offer。虽然当初为了去Microsoft实习错过了一大堆其他公司的面试机会,只投了Microsoft,Google和百度。不过最后还是进了Microsoft,在这危机四伏的日子里,虽然说自己写了10年代码总归有点功力,但是也有运气的成分在。只是面试百度的时候我明明在简历上写了我人在上海,他非要我飞回广州面试,很不爽,拒了他。

    去年下半年几乎都投身Microsoft的实习,到了12月上旬回学校,于是从今年的元旦开始其实就是在学校里面混日子了。其实还好,完成了一个阉割版的Haskell编译器当毕业设计,还做了一个C语言编译到机器码写入内存的编译器,最后重写了Vczh Library++3.0,还把它开源了,虽然还没最终完成。不过开源了之后就得补文档了,因此近期的开发进度可能会慢一点。

    回想大学四年,还是写了不少代码的,也足够拼成一张至少可以留住HR眼球的简历了。当初比较大的转变是我刚上大一,可怜的Borland就不行了,于是很喜欢的Delphi看来也有危机了,所以转去C++。幸好所学的知识并不是绑定在Delphi的平台上,因此刚开始也只觉得是换了个语法。不够C++实在是博大精深,里面可以用各种各样的范式写代码,比较突出的是元编程,虽然这种东西在现实生活中重要性不言而喻不过所占比例还是很小的。

    于是开始拿C++练手了。高中的Delphi时代写了不少游戏,积累了一个2D的游戏引擎,其实也不复杂,不过好歹也到了3.0了,里面有图形图像、音效、数据管理、脚本引擎,还有一个UI。因此C++上手了之后,自然是移植它了。移植的过程中发现C++的写法跟Delphi还是截然不同,因此Vczh Library++ 1.0基本上是失败告终,虽然那个Delphi的游戏引擎大部分都实现了。在开发的途中我曾经写了一个模仿显卡固顶管线的3D软件渲染器,不过最后一个Demo应该是在大二,用OpenGL实现了3D模型的骨骼动画,用的好像还是Halflife 1的几个模型,什么鸟啊,僵尸啊,警察啊。后来觉得实在是找不到美工,而且自己还有一项喜欢的,也就是写编译器了,所以干脆就集中力量搞编译器吧。

    第一个见得人的编译器应该是Vczh Jove Script了。这个东西阉割了Java,然后实现了一次,主要是针对OOP,有继承,有虚函数,还有泛型。当然泛型我实现了跟C#一样的参数约束,也就是可以指定说某个类型参数必须继承与另一个类。数组使用引用计数,其他的都垃圾收集。当然最后发现数组用引用计数是不对的,会导致垃圾收集。

    之后我就对计算机的理论燃起了热情了,首当其冲当然是编译原理。当时受到了CSDN上那个袁泳的一点指导,其实主要不是技术上的,是方向上的,后来给我看了一本很厉害的书叫《Parsing Techniques》。很多知识都从这里面吸收了,然后就要开刀,当然是从最简单的正则表达式引擎下手。第一次写还是有点别扭,到现在一共写了三次,其中第二次是在第一次写完了之后觉得很不爽立刻重写的。写完了就轮到Syngram,是一个将文法写进C++然后自动变成语法分析器的小库。当然后来也重写了。

    上面的事情完成了之后就着手Vczh Free Script的开发了。这是一个“纯”动态语言。为什么说纯呢,因为我坚持所有东西匿名(包括类定义,其实结果就是返回一个类型,像C#的System.Type,然后可以到处传),所以为了给一个东西命名就写一个赋值语句。当然不仅如此,我还实现了函数闭包,然后将之后的所有特性譬如说动态的Multiple Dispatch(虚函数是Single Dispatch)啊,namespace啊,类和继承什么的统统编译到函数闭包上,整个语言是匿名的。当然我还是把它是实现成一个C++的类库,如果你愿意在我的接口下面写插件的话,就可以跟Python一样直接应用到你自己的工程里面去了。

    在这个过程中我学习了很多关于编程语言方面的基础理论,还学了一点数学虽然我还是觉得数学有点难度。完了之后就开发一个小型的IDE,其亮点是就算代码是动态生成的,我也能捕捉到然后给你单步调试。不过这个由于稳定性并不是非常好,第一次将C++跟C#混起来用还是有点力不从心,因此就没拿出来贡献给大家了。

    之后就开始Microsoft的实习之旅了,在实习的过程中我首先封装了一次win32api的GUI部分,尽量达到跟Delphi一样好用,于是有了这个Demo,然后做了阉割版Haskell——也就是Kernel FP了。当初叫这个名称我只是想看看实现一个最小的纯函数式语言的内核要怎么办,要包含多少功能(当然是越少越好,其他的都是语法糖或者库,不过不能让能力下降)。后来又看了一本书好像叫做《The Implementation of Functional Programmang Languages》,也很好看,学到了很多东西。

    于是2008年就结束了,进入2009年,做了一个CMinus,可以把C语言编译到内存里面,搞成x86的机器码,然后就能将一个写了代码的txt文件变成一个函数指针了。然后就毕业了。

    7月13日开始入职Microsoft,虽然说是在开发界面,不过我还是觉得需要自己仍然保持热情,于是工作结束之后自己要继续写自己的代码,也就是Vczh Library++ 3.0了。上面做了很多4个编译器,刚好针对语言的4中特性,这次看看能不能把它们综合起来,变成一个真正有用的脚本引擎。当然这不是重复劳动了,毕竟自己实现给自己带来的质的提高会比你纯粹用别人的要高很多。但至于最后怎么办,其实我还是觉得.NET的潜力比较大,总之挑战它是不明智的,但我还是想自己试一试。

    从第一个QBasic的Hello World到现在也差不多要10年了,初中因为不小心拿到了本QBasic的书然后戏剧性地开始了我程序员的人生,所幸中间没有间断过,而且也将对一贯来编程的激情很好的保存了下来,有增无减。至于说30岁(其实日本说的是35岁)就要转管理什么的,我还是不太相信,或者说我愿意就做一线的开发人员,或者架构师(当然这个跟通常意义上的架构师还是不一样的,有朝一日真的给我做了,我还是想跟一线的程序员一起写代码)。管理还是不适合我,毕竟我对钱(或者是权力?)没那么渴望,够花就好了,虽然我自己没多少钱。

    总之,要有激情,无论是对什么事情。剩下的就是要追求快乐,不同的人对快乐的定义还是不一样的,不过我目前只要能写有挑战性的代码,我就会觉得很快乐了。工作了之后因为在上海,瞬间感到了房价的压力。只是如果要我牺牲写代码的时间和乐趣去换取那些所谓的财产,我还是不太愿意的。
posted on 2009-12-23 21:22 陈梓瀚(vczh) 阅读(14144) 评论(40)  编辑 收藏 引用 所属分类: 启示

评论:
# re: 2005-2009年个人总结 2009-12-23 21:56 | 彭小虎(Tigerkin)
能一辈子从事自己喜欢的工作,是件很幸福的事情。。  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-23 22:00 | LOGOS
毕业了啊
没想到牛轰轰的你,才本科毕业,启蒙早的人总是令人羡慕
继续写博客,我会来看的
  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-23 22:01 | 路过
在msra还是工程院?本科进M$其实不是什么好事  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-23 22:02 | 陈梓瀚(vczh)
@路过
没什么好不好的,高兴就好了,至少生活来源稳定,可以专心写代码。  回复  更多评论
  
# re: 2005-2009年个人总结[未登录] 2009-12-23 23:05 | Davy.xu
还以为大侠读研究生呢,终于了解大侠的经历了,牛!  回复  更多评论
  
# re: 2005-2009年个人总结[未登录] 2009-12-24 03:04 | cc
以后再也不说自己是程序员了  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 09:11 | Kevin Lynx
怎么像临终感言。。。  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 10:06 | absolute
华工的大牛。赞~~~  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 12:10 | 空明流转
小子,你不愿意为五斗米折腰,是因为你还没有老婆呢。
哈哈。当程序员也没什么不好,但是财路也是要找的啊。
希望你能当一个有钱的程序员,当然诚如你所言,需要些运气。
我觉得Martin Fowler就是个很幸运的人,相信你也是。  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 12:17 | Hero
看到了很早就不曾感觉到的"激情"二字  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 13:38 | Tangel
:) 生活本应该是这样,祝楼主更进一步  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 15:01 | 溪流
祝楼主更加快乐、更进一步  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 16:00 | 李佳
哎 只能说佩服....   回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 18:29 | Adrian
喜欢就好,祝福你!  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 22:02 | cdy20
祝福你!  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-24 23:11 | radar
好牛!希望楼主当一个快乐的有钱的程序员!  回复  更多评论
  
# re: 2005-2009年个人总结[未登录] 2009-12-25 10:47 | xu
祝福,相信当一个程序员不被钱所牵引着他的发展会更好  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-25 11:32 | MaR.sHaNe
你是华工里面第一个影响我的师兄,那时我还没正式进入华工。
直到你毕业了,到了微软,还是一直影响着我。
每个人都有自己喜欢的事,有人希望通过写程序达到某些金钱的目的,
但有的人却乐在开发过程和结果的成就感。
无论做什么,只要做喜欢的事,就是幸福的。
MS里面一开始可能很少会让本科生做比较核心的开发。
不过相信以你的一直热情,一定可以找到你想要的东西。
祝你成功~  回复  更多评论
  
# re: 2005-2009年个人总结[未登录] 2009-12-25 13:33 | jc_ontheroad
做好你想做的事,其它的东西都是附属品,会随之而来的。  回复  更多评论
  
# re: 2005-2009年个人总结[未登录] 2009-12-25 13:36 | sun
很牛,很佩服啊,虽然年纪比我小,但比我强多了,佩服佩服。  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-25 16:32 | phoenixbing
有当年云风的影子.  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-25 19:03 | coder
真的太强了,老牛  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-25 19:10 |
看到你之后,我感觉自己根本不是程序员  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-26 10:09 | yzq
能在那么早就坚持一件事,你真的很幸运,我是从大学才开始接触编程,才知道有这么个东东,呵呵,到大三才开始意识到,自己可能喜欢,到现在才知道原来自己喜欢编程。我也是今年刚毕业的,比起你来,差远了。。。。非常赞同你说的一个词,激情。加油啊。  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-27 20:58 | radar
师兄,我爱你!  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-28 11:32 | 侠客西风
跟楼主比,自惭形秽...

楼上的是什么人啊,汗....

我今年也算是一把年纪了,技术还很菜,同样是09年毕业的,写程序只有2年多的历史,水平菜的要死...

唉,人之间真的是不能比呀...

不然就是现在累死我,也是比不上如楼主这样的人...

加油.  回复  更多评论
  
# re: 2005-2009年个人总结[未登录] 2009-12-28 15:02 | 清风
人要能一辈子这么单纯也不错,只可惜压力逼着我们改变  回复  更多评论
  
# re: 2005-2009年个人总结 2009-12-29 17:05 | 陈梓瀚(vczh)
@清风
这是长期投资  回复  更多评论
  
# re: 2005-2009年个人总结 2010-01-01 11:16 | giant
来华工两年半了,虽然素未谋面,但经常来看你的博客,一直受到师兄那股激情的感染,谢谢师兄!  回复  更多评论
  
# re: 2005-2009年个人总结 2010-01-03 12:08 | 千暮(zblc)
@清风
@giant
- -。谁说行为上表面单纯就单纯了.  回复  更多评论
  
# re: 2005-2009年个人总结 2010-01-08 17:16 | 感叹
看过你的经历,真是感叹  回复  更多评论
  
# re: 2005-2009年个人总结 2010-01-09 00:45 | 刘畅
没想到LZ是华工的,校友啊,同LZ相比,我是自惭形秽啊。LZ也是计算机专业的吗?本科能进微软,真的很牛啊!  回复  更多评论
  
# re: 2005-2009年个人总结 2010-01-09 12:36 | 陈梓瀚(vczh)
@刘畅
我也认识一个华南理工的刘畅(某club前主席)难道是同一个人!?  回复  更多评论
  
# re: 2005-2009年个人总结 2010-01-09 23:06 | 刘畅
@陈梓瀚(vczh)
呵呵,不是,小弟只是一个无名小辈而已,像大侠学习!  回复  更多评论
  
# re: 2005-2009年个人总结 2010-01-28 00:28 | zmy
华南理工确实一个很不错的学校,仰视!  回复  更多评论
  
# re: 2005-2009年个人总结 2010-02-15 03:28 | 烟皑
十年?
不知道博主是啥时候开始写代码的呢?
大学本科四年,感觉你做了好多好多事情,真充实~~
看了你的文章,回望自己,感觉自己什么都没做似的,呵呵  回复  更多评论
  
# re: 2005-2009年个人总结[未登录] 2010-02-22 16:32 | 夜风
你的总结真让人振奋,新的一年 我也得做点什么了,像兄台学习!  回复  更多评论
  
# re: 2005-2009年个人总结 2010-02-22 16:33 | 夜风
你的总结真让人振奋,新的一年 我也得做点什么了,像兄台学习!  回复  更多评论
  
# re: 2005-2009年个人总结 2010-06-07 21:12 | 旱圣
水王一直都是无敌的,以后也将继续无敌  回复  更多评论
  
# re: 2005-2009年个人总结 2013-06-30 22:24 | maval
支持大牛..........
向前辈学习  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理