在IBM实习的日子

    转眼就到了要离开的日子,回想这半年在IBM中国研究院实习的点点滴滴,有着太多的收获,太多的不舍。我以这篇日志简要地总结一下我在IBM实习时所经历的一切,把这份经历分享给所有人,预祝中国广大的待从业者能在这次残酷的金融危机中能冲破考验,度过寒冬。

    同中国广大的程序员一样,我在刚涉足这个行业的时候,就对名企有着特别大的向往。我所熟知的有两座知名的大厦,一座是被微软称为世界上智商密度最高的办公楼---微软亚洲研究院与亚洲工程院所在的希格玛大厦;另一座是IBM中国研究院CRL和中国开发中心CDL所在的钻石大厦。因为微软主要招的是C++程序员,而IBM主要招的是java程序员,再加上我自诩C++还不错(开个玩笑^.^),所以我刚开始一直都梦想着能去微软的希格玛大厦(也许现在也想),但后来由于机缘巧合,来到了IBM的钻石大厦,也许这就叫缘分吧:)。

IBM钻石大厦

IBM的钻石大厦,我待了半年的地方,怀念ing~~~

    08年的6月17号,IBM最后一轮面试(虽然这天又成为了另一件伤心事的时间);6月22号,我收到offer,当晚我还在家休整,临睡前无意识地看了一眼邮箱,看到了这封邮件,后来兴奋得一晚没睡(这是我第一次因为兴奋而整夜未眠,虽然以后还有没有结果的第二次)。

    6月29号飞北京,7月2号体检,7月7日入职,一切都在有条不紊地进行,但同时还有着跟导师的各种纠纷,也让那段时间的我过得很不容易。

    在7月7日入职的当天,我就感受到自己的工作内容跟相象中的不一样,但幸运的是,内容是比想象中更兴奋。我本以为在一个大型的软件公司都是模块式的开发,就是做什么怎么做基本都定义好了,新招的实习生负责执行,把这些成熟的设计转换为实际的代码就行了。但我所在的部门却不是这样的,在这里实习生跟正式员工一样,会参与到前期项目的设计阶段。虽然方案都是正式员工提出的,但如果你觉得某个部分有问题或不完善,或者有更好的idea,你可以随时提出来,如果合情合理,最终你的想法会被加入实际的项目,当你想到以后的用户在用到这个产品时觉得有个地方设计得非常好,很有创意,而那点创意是你当时在会上力排众议提出来并被确定的,你会觉得很兴奋(至少我当时是这么想的,呵呵)。但后来还发现自己还可以参与到更前面的一个阶段,就是前期对市场的调研,这个阶段将会影响到整个项目的方向,你需要用你的调查数据说明某个方向会非常有市场前景,如果打动了上司,获得了大家的认同,也可能被采纳,当然这个阶段是风险非常高,因此我会觉得更兴奋。

    7月7号入职的第一天,我觉得自己的压力还是很大,也有点紧张,一下子到了自己梦想的公司,一切都是那么新鲜,也是那么刺激,但心里也是那么的没底,也会一遍遍地问自己,我能行吗?我能在一个这么好的公司里站稳脚跟,去实现自己的价值,去为公司带来收益吗?

    从九点十分开始,我就被项目组叫去开会。在被开会前,我只在我的位置坐了五分钟,摸了下鼠标,在对项目完全不了解的情况上去开的。整整一天的会,共有三个正式员工和两名实习生。这个会就是我刚才所提到的与项目的设计相关的,我刚开始完全在摸索我这个项目在做什么,总算听明白我们是在做一个Virtual World虚拟世界的网络游戏,潜在客户是淘宝之类的商家,我们在这个3D的虚拟世界中实现真实的逛街和购物,我当时感觉这是一个很前沿的项目,一种非常刺激的项目。整整一上午,我和另一个实习生都在静静地听着,没有发言,也插不上。到了下午,我的Master说,你们实习生如果有什么意见什么问题随时都可以提出来,鼓励我们多发言。直到出现了一个关键的技术细节讨论,就是用一个读线程和写线程去操作一个队列,因为这牵涉到指针,也许本身的我对指针是最敏感最熟悉的,我当时就直接站起来,说到这两个线程中的头指针和尾指针是相互不可见的,它们可能操作到同一地址,这是很危险的...,当我说完后,提出这个设计的正式员工对我评价很高,说这个问题问得非常好,还开玩笑地说了句让我以后就跟他做了...,一直开到了晚上七点,才得以离开公司回清华去吃饭。

    在这天,还发生了一件事,就是跟入职手续相关的。我才知道与其它公司不同,就是只要到了这边,手续不用自己办,都是上司替自己跑路帮办的,这点我觉得是很为员工着想的。负责办我手续的那位Master说了句话,让我心情更加振奋。他说我是他们Team有史以来招的第一位来自外地的实习生,他们会第一次为我办外地学生专有的住房补贴。那个时刻我就感觉自己代表着整个学校,所有外地实习生在公司的形象,我会更严格地要求自己,让自己把自己的工作完成到最好(也许我后来的表现证明了这点,我很为自己感到骄傲)。总的来说,第一天是很顺利的,从最初的新鲜与紧张,再慢慢融入了自己新的工作,初步的印象也得到了很好的评价,这也极大地增加了自己的自信。

    后来,经过几天开会的讨论,大致把方案确定了,然后就开始写代码了。分给我的是把核心的服务器Scene Server的大致框架写成代码。刚开始由于自己的框架经验不足,第一次的版本很不好(其实也可以算做一次打击),但在经过了一位正式员工的指导后,第二天就提交了第二个版本,所幸很成功。可以很骄傲地说,到如今的项目进行到现在,包括我和别人对这个服务器的代码维护都是基于我提交的那个版本而改动和增加新的函数的,上面的作者还是我的名字:)。这个服务器要求效率最高,是在Linux下用C++实现的,这又是我为什么被招进来的原因。我到现在回忆起我所有的经历,我觉得这段经历是最充实的,我喜欢在Linux系统下疯狂地敲击命令,疯狂地在Eclipse平台下敲击代码的感觉,即使别人说总是写代码的人是没有前途的,也包括我会认同这种观点。但我不可否认的是,虽然我可能会做很多事,但只有当我写代码的时候,我才是最快乐的,我就是单纯地喜欢那种感觉,也许这就是喜欢的含义。正如很多人会认为一个产品的设计师是关键的,但我觉得真正的执行者也是很重要的,而恰恰我就喜欢那种执行的感觉与那种成就,也许是因为我以前看黑客电影看多了,养成这种习惯的,呵呵。

    到后来,因为我的工作总是恰恰处在关键的部分。虽然大家都是分工合作,但别人的工作要顺利进行,必须建立在我的任务顺利完成的前提下,用我们项目组的话说,叫做别人都depend on我。这也使得我的压力越来越大,生怕自己提交的代码会有bug。以致后来出现了一个很神奇的现象,就是我那张本来自己一人用的很小的桌子上,总会有一个正式员工把他笔记本搬过来,坐在我的旁边一起工作,即使要离开位置很不容易需要别人挪椅子,但他们还是要这样做,哈哈。不过我竟然很快就适应了,并且用很高的效率地把我的任务一个个地顺利完成了。

    大概在七月底,完成了Scene Server后,又被另一个正式员工挖过去做其它的好多Server的封装,包括记录用户信息状态和登录服务器的User Server、记录维护所有的代理服务器和场景服务器的World Server,还有Inventory Server等很多很多,这些服务都是别人用J2EE在Websphere下做的,但我需要把它们封装成远程调用的库,给其它的模块调用。刚开始这份任务对我来说是很茫然的,后来终于连通了一次,正确被测试程序调用成功后,其它的代码就一马平川了,就沿着这条固定的路径修修补补就行了,后来这部分工作占用了大量的时间,一直到九月上旬。

    在这期间又发生了另一件事。因为感情方面的挫折,其中的某个阶段我的情绪是非常低落的,根本无心工作。有一次带我的Master找我单独谈话,他说观察了我这段时间的状态,觉得我没有刚来的时候那么投入那么有激情了,问我什么原因。我简要地说了一句,因为感情方面的原因。他又说那希望我能尽快把状态调整过来,更好地投入工作。又说通过他们这段时间对我的评价,觉得我的编程实力挺强的,希望我这两年都留在这边实习(我当时只签了三个月),等我毕业后就推荐我留在IBM的CDL部门,说毕业课题等什么问题都可以解决,即使我每周只来三天也行,还让我有时间把我女朋友推荐过来面试...,我当时听完之后,就只有一个总结,就是我过去所学的知识,所付出过的努力都是值得的,我的能力在一个最好的公司得到了认同,我真的很为自己感到骄傲,为培养过自己的学校感到骄傲。

    不过在我的八月,是我在公司里最忙碌的一月,几乎所有的周末都会加班。但你去的时候会发现,整个大厦都是很空旷的,加班的人是很少的比例,有一种凄凉的感觉。而我们这几个实习生在一起加班,也形成了很好的气氛,很好的友谊。在IBM公司实习,加班是有很高的加班工资的,即使仅凭这一点,我也很怀念当初加班的日子,呵呵。

    九月下旬,我要自己负责我所封装的那么多Server的功能测试,用CPPUNIT的框架,也是我以前从来没听过没用过的技术。(在这里我要重点补充一点,其实我在IBM所做的工作,有好多都是自己本来不会的,并且是很茫然很无助的,在中途又会遇到一个又一个新的问题与难关,但自己需要有足够强的自信和足够好的心态,再加上足够努力的学习,就一定可以顺利地完成所有的任务。)我当时为了搭这个框架,是用了好多天,也一筹莫展,并且当时因为我国庆要回成都,所以时间很紧张。最终在倒数第二天,我顺利使一个简单的代码在这个测试框架中通过了测试,然后后面的工作就很简单了,就沿着这条固定的方式修修补补,一气呵成,完成了大部分的工作。在最后几天,我还一个人完成了一个在游戏中负责即时消息IM通信的Talk Server,也不容易。然后好好地回成都度过一个国庆长假,在当时的我来说,由于感情的痛苦和工作的压力,还是太需要一份轻松了,所幸成都是个好地方,呵呵。

    国庆假结束后,我在10月10号回公司报到,开始了新一轮的工作。继续完成我的功能测试工作,然后把所有的bug上报,由别人修改,我再确认,如此的反复。而我们项目组的第一个版本的作品,也在10月中旬,去上海演示Demo,也非常成功。

    后来的功能测试结束后,又进入了压力测试。因为其它的实习生同事都要毕业了在找工作,好像又只有我一个人在弄,是用LoadRunner工具模拟大量的用户登录,去测试服务器的性能。我也是搞了好久,从不会到会,才总算搞明白了。然后就每天看曲线,总结怎样优化。但曲线看了好几天,总是发现它不以人的期望值为转移的,对我来说它总是随机的,好郁闷。并且在中途偷偷做了一件坏事,用了一个没有license的东西,呵呵。

    在这中间,又穿插了感情的动荡,同事的被迫离职,在北京租房等一系列复杂的问题......反正这阶段经历的事,别人都说我可以写一本书了。

    再到后来十一月底,十二月初,项目组又进入了一轮新的讨论期,开始设计第二个版本的思路。这个阶段对我来说又是很兴奋的,这个版本中会加很多有趣的东西,区别于《魔兽世界》等打怪升级的网游,我们的作品是描述的实际世界的游戏版;区别于《Second Life》等虚拟社区的网游,我们的作品会穿插很多有趣的功能。这些功能包括NPC、任务系统、经验系统等。那个时候的我,真的是把我能想到的游戏,能看到的游戏,全都调研了一遍,重点看它们的特色,它们的收益。我觉得这才是最重要的,这也是区别于学校里面做事最大的本质,就是我们的产品是面向整个社会的,我们需要考虑所有潜在客户的需求,知道他们需要怎样的功能,我们就提供什么样的功能。如果我们的作品不受欢迎,即使再好的架构,再完美的技术,都是没有意义的。我在这个阶段提出了智能NPC的概念,希望能做得很强大,其实不可否认,我也是一个很追求完美的理想主义者,心里还是希望能够做出最完美的设计,因为很有趣。即使不是,我也希望等到哪一天,我设计的NPC能在世界上绝大部分的主流PC上运行着,那也是一种成就。

    再后来调研3D网络购物,3D在线试衣,旅游展示,手机网游等所有跟我们项目的相关结合点,我都在调研这些潜在的市场有没有前途,我在靠我所搜集的数据,专家的分析,网民玩家的评价,在一次次地总结。这个阶段是非常枯燥无味的,但当得出一个结论是却又是如此的振奋人心,因为也许这次调研会决定着一个新的作品将从世界上诞生,然后又将影响人们的生活。(当然这只是我理想的想法,呵呵)

    再到十二月中期,因为多方面的原因,包括我想回成都、感情归宿,还有金融危机的影响、公司的决策,我不得不选择离开。虽然招我带我的正式员工都很肯定我的工作和能力,也向他们的老板建议我留下,但有些事情也是无法改变的。最后,他们说当他们一旦有名额,就会给我打电话。我也觉得如果真的有缘,我还会再回来的,继续我的虚拟世界,继续影响着这个真实的世界,继续像个代码疯子一样工作着。

    在IBM的实习,我收获了很多。不只是一个PSP,一台笔记本,还包括我两个多月的独立的租房生活,学会了一个人住,一个人做饭。也不只是自己编程经验、技术水平的提高,还懂得了一种团队的概念,学会了一个个具体项目的流程是怎样发生的,明白了一个产品要取得成功对市场是如何判断的。更重要的是一种自信,一种底气,还有一种独当一面勇扛大旗的勇气。因为我觉得有很多时候,我们所面对的,我们所经历的都是我们不会的,但我们不能选择退缩和逃避,只要自己静下心来一步步地去学习去实现,没有什么是做不到的。

    在IBM的经历,也留给了我太多的回忆。每中午吃完饭后的公园散步;每周五下午三点的零食聚会QuickLove;大家都喜欢坐的982路公车;IBM的西二旗城铁班车;下午两点半会固定跟几个同事去休息室喝茶侃侃历史(这是秘密行为);还有跟同事吃饭总是跟他们提及成都的话题,也勾引了无数人对成都的向往,哈哈。总之,这其中的经历是非常开心非常难忘的。

    因为有缘,我来到了北京,来到了IBM;如今我选择了离开,但如果再有缘,我会再回来的,其实我也非常舍不得这里,谢谢IBM给过我的一切。

    恐怖的金融海啸,漫长的就业寒冬,看来周围的公司疯狂地裁员,身边的同事一个个地离开,找工作的朋友好多也没有音讯,给了我们很大的压力。但我相信,勇敢的人们终究会勇敢地挺过去的,只要努力,只要自信,只要我们准备地比别人更好,我们就会成功。希望中国的IT在金融危机后会更辉煌,也好希望中国也能做出一款真正影响世界的软件产品。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值