零
程序员,都是习惯从0开始计数的。如果不是陈梓瀚撰写了《10年编程》,我不会想起对一个如此漫长的瞬间,做出一个可能并不是恰如其分的总结。某种意义上来讲,这也算是他“改变了我的人生轨迹”的一种方式吧。
壹
2000年,终于考上了当地最好的中学,分数不高不低。那会儿对计算机或者是程序,是完全没有什么念想的。在这之前,如果说启蒙,呃,搜肠刮肚一下,也是有的。
初中时买的学习机上,有一个QBasic的解释程序。啊,真好,程序。虽然要写行号神马的,但是到底是程序啊。可是,我写出来的Code他妈的不能存储!不能存储!不能存储!有鸟用!(据说可以支持录到磁带里,但是我从来没他妈成功的用过我艹)
当然,这用处,也还是有的。用来算算四则运算用神马的。——这算哪门子用处!坑爹呢!
好吧。这些暂且不表。因为还有LOGO语言,传说中的LOGO。伟大的Logo,可以画图的Logo。但是我都忘记了。只是前段时间我师妹让我去看看NetLogo的时候我就想起来满屏幕爬的小海龟来。三角形的小海龟。
哎哟我艹!这是小海龟嘛!你见过三角形的小海龟嘛!
好吧。这些都不重要。高中期间三件事情,“改变了我的轨迹”。第一,我会编程了。第二,认识了初恋,让我赶上了早恋的末班车。第三,Event Code A(有些人知道,有些人不知道。不重要了,但是和编程多少有点关系)。
贰
也不知道怎么就去学编程了。那会儿是以OIer(奥林匹克信息学竞赛)的身份,学Pascal。领我入门的,先是朱老师,后来是胡老师。这么多年我也没回学校去看望二位老师。要不是他们,我大约真的就要冻死街头,饿毙巷角;被城BI管BI追,被土狗咬。——我了个去!这又是神马啊!!!——当然,是他们教会了我Pascal。虽然在有些环节上我是无师自通的(臭屁啊,装逼啊),也因为他们是不错的老师。
00年到01年这段时间里面,我的基础知识是一片混乱。
其实那个时候我已经很牛逼了。一方面,我会Pascal,甚至会一些算法。递归基本上一看就明白了,Delphi学起来也还凑合。到现在我都还有两本Delphi方面的书仍在家里,一本是白皮子的Delphi教程,一本是机工的实用编程100例。还有就是,我每个星期要装上10来次Windows98。什么Ghost,什么PQMagic,什么Norton Tools,都不在话下。
另一方面,在概念上也存在相当多的严重问题。比方说,完全不知道“编译”是个什么过程,妄图把.pas换个exe就期望着能执行,比方说分不清TFrom和TForm1有什么区别。连类型和变量都搞不清楚。我觉得我也是很牛逼了。
但其实编程这种东西,对大部分人,都没什么吸引力的。一开始的时候,大概有30个人参加培训。一个月之后,就剩下我,赵同学和滕同学了。其他人都没了。现在还在IT的,不知道还有几个。
曾经还考虑过,回去带一些小弟弟小妹妹(这个是重点),去给他们讲一些数据结构啊,算法神马的。但是今年一看,奥林匹克竞赛高考一律不加分,心里一下子就冷旺旺的。这下子,搞不好连三个都不剩了。
叁
高二一年,成绩掉的厉害。有多厉害?其中的时候,double了。期末的时候,又double了。对不起,我不是说分数。我是说,名次。
原因很多。但是关键是,我对念书,数理化英语地理生物政治历史,没有那么大了。这要是放在以前,我一定是个博物学家。诺贝尔那样的。呃,好像是叫达尔文。
后来看到过老美们用的历史教案和材料,我觉得我肯定更死翘翘。他们会问阿兹特克人在哪一年遇到了一个什么样的自然灾害死了多少人并对接下来的历史进程产生了如何的影响。
然而那个时候我天真的以为阿兹特克人其实是生活在好望角的。当然,我唯一引以为自豪的,是知道霍尔木兹海峡是黑海到地中海的出入口,而博斯普鲁斯海峡是海上的石油要道。好像我又记反了。真该死。
但是这些都不影响那个时候我继续编程。学会了二叉树,学会了链表,学会了数组。学会了指针的指针的指针的指针。我也不知道怎么学会的,好像就是自然而然的钻到脑子里面去了。但是他们钻地并不深,都给堵住了。所以,现在我的头脑里面很难再钻点什么像样的东西了,都是些明星绯闻,裸体空空神马的。
肆
高三的时候,03年。是最后一次参加OI。认识了三个小盆友,乐乐,敏敏和洋洋。敏敏去学泰语了。乐乐不知道在干什么,只是知道他当年在文曲星PC600上的QBasic玩的是近乎神迹,能用那个破烂到家的MC68000的变种的CPU干很多很多事情。我也有一个,迄今为止也还在手上。后来赵先生也有了一个,PC1020。羡慕死我了。那个时候文曲星的升级大概就和现在手机是一样的,CPU更快,记忆体更大,屏幕分辨率更高。
洋洋玩的也很好。现在好像武大的BBS就是他在维护的。适当的时候我也会关注一下他。不知道他以后会怎么样,但是总之是一路顺风了。几个孩子都很聪明。学校都很好。不像我。到最后的时候,RP超级爆发了一下祖坟上的青烟冒得跟911大火似的,也就考上了一个普通的不能再普通的211。但是我仍然是认为,老天是合理的。高考前我从未系统复习过,也没有做过什么题目。你问我对这件事情自豪吗?Of course!其实说着话的时候,爹浑身正冒出一种傻逼特有的青烟。这叫气场。
03年的时候我就会C++了。用了一本什么成人自考的教材。绿色壳子的书,超薄,还带护翼的,夜用,防侧漏,吸量大。幸亏那个时候没有看Primer这种大部头。要不然死都不知道怎么死的。后来很多人质疑说国内的书怎么怎么烂,说不能误人子弟啊云云。这个时候最好的解决办法,就是找一本尽可能薄的书。这个时候信息量会尽可能少,出错的情况也就会尽可能的少。除非他是文言文写的。
到03年暑假的时候,都是没有自己的PC的。03年暑假,终于买了自己的PC。Athlon XP 1700+,硕泰克的主板(忘了什么芯片组的了,那个时候NV的nForce还是很贵的),256M的内存,80G的酷鱼四。显卡是传说中的Radeon 9100。结果机器买回来,玩了整整一个暑假的游戏,轩辕剑Online。除了画面丑了点,游戏性倒是不差。后来大宇做的网游,倒是越来越SB了。
早在高一的时候,在老胡同学的影响下,我就眼睁睁看着他通关了天之痕和云和山的彼端。自此之后我就有了不玩游戏看录像的毛病。都是好游戏。所以那会儿我特想做RPG。一直到我水平不够做RPG的时候,都是有这个想法的。现在掐自己腿肚子,也算是可以了,只要有美工我就能山寨出一个差不多的RPG来。但是我不再想去做游戏了。
人生理想大抵是如此,等你可以实现理想的时候,往往就会有更远的眼界,想做更大的事情。这个时候,应该回过头来,感念那些在深夜挑灯的时候,给予你温暖的那些好梦。
伍
大学对我来说就只有两个阶段,在江宁的大一大二和在本部的大三大四。
在高考独木桥挤啊挤啊,挤了俩通宵,好不容易才上了开往失业的贼船。很多人以为我以前学编程,现在干IT,我那个时候一定就是所谓的“计算机相关专业”。其实不是的,我学的是测绘。工民建,贱民工。
但是大一大二,大家都知道的,基础课。其实和专业没什么关系。所以那个时候我从来不去上课,天天泡图书馆,就在那等啊。等艳遇。四年等了两个,全是有主的。通过这两个,我还认识了一班哥们。不过我不是Gay,可惜了。事实证明,图书馆不是等姑娘的好地方。人家来都是来看书的,不是来挑郎的。
然后就无聊啊。干嘛呢,抄书。那个时候是把一本清华的图形学教材,一本More Effective C++,一本Large Scaled xxx(就是小贝看的那本没前途的书),一本软件工程,一本COM本质论,抄到了小本子上。当然都只是摘抄,不是全部。才看到MEffC++的时候,惊艳啊!怎么会有那么牛逼的书呢?现在想想,不是那本书牛逼,而是我实在太傻逼了。这个感觉又出现过两次。一次是看到Modern C++ Design的时候,一次是看到Boost里面MPL的代码的时候。
抄书好。好记性不如烂笔头。找两本经典的书抄抄,还是有助于你系统的理解学习一下常识的。寒假回家的时候,装逼的搭了一个Graphic Engine的框架,最后还是不了了之,太监了。但是就是这个只花了我两三个月的东西,在6年之后,我还是写在了我的简历里。因为这是很重要的一步,对我来说。第一步虽然走不稳,但是确实是非常重要的。
陆
时间过得快啊。从初恋把我甩了后,两年一晃就过去了。然后我就到了本部。大三大四,还是过得非常充实的。魔兽练了一个牧师到了60,最后还跌跌撞撞的拿到了祈福;女人,无。然后学业上,虽然绩点烂到要毕不了业,但是好歹发了一篇第一作者EI,两篇第二作者EI。
那个时候,最大的好处是有网上了。大一大二的时候还在gameres和csdn里面混过,后来就再也不混了,发现了两个群。然后在里面天天被一帮狗日的艹啊。艹了个花开花谢。狗叔,猪叔,叛叛,都是那个时候认识的。还有就是壮硕的,也是这篇文章的直接罪魁祸首,陈梓瀚。
S****是迄今为止,我见过水平最好的群。有大牛坐镇,有打手帮喷。不管问什么,都会有答案。虽然有的时候的答案是“您已经被管理员请出xxxxxx群。”但是这也可以学习到,这个问题究竟是多么的傻逼。但是在这之前,我还在一个D****** MVP群里面呆过。在水平上,要差一些。但是对当时我这样的水货而言,气氛更好一些。
所以盲目加牛逼群的人,最好先掂量一下自己有多分量。水平太好或者太差的群,对自己都是不好的。你把一个群的水平拖低了,只会让睾兽们骂累了之后直接把群Mask,不再说话。对谁都没好处。讨论才是持续发展的真正动力,不管是讨论什么,从三体,到三俗,到三急都可以。很多问题,google一下,或者多看点书,你就不会好意思问出来了。
迄今为止,我还在S*****的群里面活跃着,现在这个群除了叛叛和VC,还有出去自立门户单干的猪叔,剩下的活跃用户,几乎都是Autodesk的人了。就连我,也顺藤摸瓜的上了黑车。都是狗叔害的。
临毕业的时候,还做了一把伪学术,发了点Paper,之前也说过了。是和GPU有关的,也和我专业有关的。后来本科论文致谢里面,很多感谢的人,都和这个有关。再次感谢一下猴叔(怎么叔叔们都是禽兽啊)孙凯先生。
本科的时候遇到了后来我硕士的导师。虽然在硕士期间,我和我的同门啊师弟师妹啊什么的,对其还是有些微词的,但是这个毕竟放了我毕业,就算是万幸了。而且那个时候对我也确实是很宽容的。我在和她一起做Paper的时候,她居然就放任我在办公室里面WC3。
柒
这个部分要单独分开来讲一讲。因为很重要。读大学,不完全是为了等失业。也还有一些很重要的事情要去做。比方说破处,比方说学点知识,比方说,认识一些人。认识女人可以一起上床,认识男人可以一起翻墙。认识人妖还可以携手并肩当牛郎。
之前说的两个在图书馆邂逅姑娘,不是终点。最后都成为了中转站。无论如何,谢谢你们,希望你们过得好一点。
籍由她们,我认识了衔哥,老毕(不是拍A片那个老毕),云哥和邦邦。衔哥和老毕,都算是是富二代,人很好。他们比我高一届,一直以来得到他们很多的帮助。衔哥走的那会儿,颇有些难过。很希望以后还可以与他再见面。老毕现在俨然是一个资本家了,开了家小公司,倒买倒卖着什么。云哥和邦邦,那正儿八经都是做技术的人。云哥的技术很好,我还不懂什么叫ASP的时候,他给我分析页面之间怎么传递数据分析的头头是道。有一次他对于AOV网的分析,让我印象极深。我甚至还记得,那个下午将我的老脸晒得滚烫的夕阳。
还有邦邦。很久没有与他联系了,我想他现在应该已经在国外了。他毕业的时候,我留校读研,于是从他那里摸走了近800块钱的书。现在在我枕边的Introduction to Algorithm的影印版,最早便是他的。今天下午和本文的罪魁祸首陈梓瀚在皮扎哈(Pizza Hut)吃着他的软饭,并吹牛的时候,也提到了算法导论。感谢邦邦,是你给我提供了如此多吹牛逼的资本。书上密密麻麻都是你的笔记。不明就里的人,还以为是我刻苦读书的结果。但是实际上我的书从来都比脸干净。
捌
硕士阶段,若干件大事。但是能记录在这里的却很少。头等大事,发生的最晚。是我认识了现在的女朋友。我是在临毕业的时候和她走到一起的。那个时候事情是如此之多,以至于重要的信息全部都被各种毕业前夕的噪音掩盖的一干二净。和我很亲近的师妹都被我蒙在鼓里,上个月还在QQ上很伤心的问起我为什么我一声不吭就甩了和我相濡以沫了多年的他的男朋友暨我的相好,而和另外一个可爱温柔泼辣的MM远走高飞了。我不知道怎么回答她的伤心和无助,只能说等到南京的时候让她一定要请我吃饭。
第二件大事,发生的最早,和技术也有点关系。就是SoftArt项目的开始。是07年底。花了两个多月写了个原型。最后居然也不知道怎么的他妈的就可以运行起来了。如果不是龚敏敏鼓励我,这个东西指不定又要胎死腹中。07年底到现在,项目一直都很顺利,虽然进度有点慢。那不是因为没人手么。08年底的时候,加了一个编译器到项目中。但是到现在这个编译器仍然只是雏形。也是那个时候我逐渐和本文的罪魁祸首陈梓瀚相识相知走到一起去相互掐架。迄今为止,这个编译器也受到了他诸多的启发和鼓励。用一句话来表达我的感激之情,那就是——多谢你的吃屎,让我只用闻屁就够找到茅厕了。
同时也感谢Un-stolen同学,让我可以在伤心绝望痛苦中无形的加快了项目的开发进度。
第三件事情,在测绘局的实习。这大约是我做过的第一个成品项目。感谢领导同志和姐姐哥哥叔叔阿姨们对我的信任和支持,让我有机会再一个数十万行的程序里,当一个不那么称职的Arch。这段经历其实对我之后很长一段时间的作用是巨大的。特别感谢金琳姐,在我发现系统问题并实施重构的日子里,要不是你帮我扛住了主任的压力,我还真有点不知道如何是好呢。不过知道我当时做的成果,现在你们也在用,便觉得除了欠了你一顿面值300人民币的饭外,还是有点点对得起你的。顺便也祝官二代的你工作顺利,早日升职:)
玖
以这样一个数字,我的十年终于可以完满的结尾了。
如今我在Autodesk,算是过的不错。我的Team,我的Leader,我的Manager都很Nice,感谢你们给了我这个可以在团队里历练自己的机会,给了我这个可以开发成熟产品的机会。对王先生和李先生而言,没能去V公司,真是有点遗憾。但是现在看来,我们之间其实是大有合作的机会的。还有MSRA,你并没有能阻绝我全部的路。如果我想去,自信是不会有多少问题的。
在最后,感谢作为本文罪魁祸首的陈梓瀚,是你让我有时间考虑这样一个十年里我究竟是如何成长的。感谢所有在文中出现过的人们。
在机器面前打着哈欠等我写完的我的女朋友张小兔同学,如果不是你一直在等我,恐怕这篇文章又要太监了。不过,我光荣而胆怯的宣布,我已经写完,可以交差了。
我爱你。