2011年初,当所有的Graduate正在匆忙的准备自己的简历与忙着找工作的同时,我依然很淡定的在Finish my Java Project。尽管我知道每年这个时候都会有一些好的公司去到学校面试,他们能够给我们带来很多Chance,但是我的朋友们告诉我,IT行业从来都不缺少机会,缺少的是Ability。尽管我有多次想法想去试一试,但最终我还是按捺住了我的冲动,认真的去完成我的项目。
4月底,项目完工了,我又投入了另外一场战争:软考。软考曾是一件让我羞愧的事情。但是这一次,我不再惧怕,任凭心中的魔鬼恣意猖狂,但是它却翻不起一丝的波澜。最终,我通过了这次考试。软考让我明白了:The devil that you fear always in the way. If you get powerful, it will disappear.
5月底,软考结束。我还是离开学校,而是选择了另外的一项学习任务:FileNet。FileNet是可靠的、可扩展的、高可用性的企业平台,它能够帮助我们捕获、存储、管理、保护和处理信息,提高操作效率,降低总体拥有成本。FileNet通过对结构化及非结构化数据的管理,来实现流程流畅化、自动化,访问并管理所有形式的内容,从而实现记录管理的自动化。
FileNet的学习与我们以往的学习是不大相同的,因为我们是在一种纯英文的环境下去学习FileNet,这让我们在学习之初有点吃不消,因为我们对英文Document的阅读速度要比中文慢的多。当时我想把所有的文档都汉化一遍,但是只汉化了一篇,我就放弃了,后来的工作经历表明当时没有继续汉化下去是一种明智的选择。尤其是当你工作时,你看到各种各样的Official Documents时,你就会明白,当时的英文锻炼是多么的有必要。
八月初,我去了一家公司工作,他们给我的待遇是每月5500的薪资,另加工作日30的食补。我觉得这个待遇还是不错的,和我的一些同学比起来,这个待遇能够带给我一丝自豪,这也说明了我的大学没有虚度,当然这一切更不开我们伟大的米老师,他的教学思想和教学理念将深深影响我的一生。我要对米老师说一声:Thank you!
我在公司中接触的第一个项目是CNOOC, 这个项目是基于FileNet平台开发的,使用Flex和Java分别作为前端与后端的开发语言,其中前端使用了Cairngorm框架,后端使用Hibernate与Spring框架来完成编码,Flex与Java是采用BlazeDS协议进行交互的。由于之前所做的项目前端都是采用ASPX或者JSP,这是第一次使用Flex进行开发,所以工作的第一件事情就是快速学习Flex,磨刀不误砍柴工嘛!
Flex是一个入门比较简单的开发语言,我用了两周的时间,熟悉了Cairngorm架构,并且可以去完成一些简单功能的开发。后来我发现,有些公司就把两周内能够快速掌握一门语言,作为对一个开发人员学习能力的判定。那些还在学校的朋友们,如果你们没有在方面做过锻炼,现在可以开始做一些练习了。不过工作中的两周时间,不会让你什么都不做,专心去学习的,公司的领导在工作时间还会给你安排一些其它的任务的,也作为对你的考验。
由于CNOOC的项目处于晚期,整个开发工作基本上都已结束,尽管我已经能够独立做一些功能了,但是由于没有什么实质性的开发内容,我也就只能Mockup一个功能,作为锻炼,或者看看原来的开发人员是如何对一些Util类就行封装的。这种清闲的工作持续了一个多月之后,甲方提出了一个新的需求,由我和同事兼同学J一起去完成。
这个新的需求在实现起来并没有多大的困难,但是令人吃惊的是,这个新需求的需求分析说明书的杂乱是我无法想象的,我从来没有想象过如此不标准的Mockup图以及如此不标准的文字描述。不管我有多失望,但是我依然带着很高的热情去完成这个任务,因为这是我正式工作的第一个任务。我和J经过商量之后开始Work了,第一次正式的在项目上合作,出了点小问题。
我们都是抱着学习的态度去工作的,这样我们在完成任务时,总想着每个人尽可能多的做自己不熟悉的工作,但是这样对于一个项目的进度把控却是致命的,我们耽误了项目的进度。在经过领导的友情提醒之后,我们开始发挥自己的特长领域,不久整个进度的80%。我们很欣喜,胜利就在眼前。
然而,意外的事情发生了,公司又承接了CNNC的项目,急需我们过去开发,而这边的项目还没有竣工。在这种情形下,我与公司的另一个同事L被先派去CNNC项目,剩下的任务由J继续完成。周末的时候,我再来协助完善该模块。周末的时候,当我再去开发的时候,L告诉我,邮件方面的需求搞错了,邮件方面的开发工作暂时不开发了,只完善其它部分的功能就Ok。本来我以为一天把那些任务就可以搞定,但是最终我和J与O总共持续奋斗了37个小时,才勉强交付。那个时候,我明白了什么叫做真正的加班,什么是项目上线前的压力,什么是需求错了的后果,什么是企业解决方案与项目解决方案的区别。
后来的一天,我又去CNOOC解决S测试出来的Bug,总共有七八条。两三条优先级高的,其余都是优先级低的。有些Bug尽管优先级很高,但是修改起来很容易,因为这些只是影响用户的使用方式,并没有涉及到过多的技术。而有些优先级很低的Bug,在修改起来却很困难,它们涉及到很多方面的知识,只是因为用户不容易发现,优先级就放低了。那个下午,我懂得了用户眼中的Bug是不同于程序员眼中的Bug的。
10月初,我正式成为CNNC项目中的一名开发工程师。CNNC是XX集团领导下,三家XX公司共同出资开发的ECM企业内容管理平台。CNNC也是基于FileNet平台开发的,前端采用Dojo作为开发语言,后端采用Java作为开发语言。Dojo是一个强大的面向对象的JavaScript框架,能够非常有效的分离页面中的Structure、Presentation、Behaviour。这使得Dojo在开发前端时,变得非常高效,这也是我们采用Dojo作为开发语言的一个原因。
但是Dojo也有它的弊端,它是一个入门比较慢的语言,尽管你能够通过几行代码就创建出一个Widget,但是如果你不了解Dojo的生命周期以及这些Widget封装在哪个包下,你只能自己去手动创建这样的一个Widget,那是多么的愚蠢与浪费时间。因为在你使用Dojo开发之前,你首先要对Dojo有一个整体的认识,这样不至于你在开发时事倍功半
。
我在CNNC项目上,前期还是有很大的压力的。 因为我去项目的时候,项目已经正式启动了。我一方面要学习Dojo,另一方面要完成每天的开发任务。对于前段开发经验并不丰富的我来说,这是一种挑战。尤其是他们对我说No的时候,那种被怀疑的感觉,那种另样的目光,让我有一种想逃离的感觉。为了能更好的完成工作,为了证明自己能行,白天我要完成项目分派的任务,晚上还要再学习Dojo,那段日子真的很苦,尤其是晚上睡觉的时候,你感觉到浑身酸痛。不过苦日子总是有限的,在用两周的时间看完Dojo之后,工作也变得Easy起来。
如今,我已习惯了项目上的生活,尽管每三天我会加一次班,这些都是小Case。经过这段时间的努力工作,我已经充分得到了他们的认可。“这种设计方案很好”,“你的前端技术进步很快”,“现在咱们的合作越来越默契,开发速度也越来越快了”,这些都是他们对我的肯定评价。尽管现在项目比较轻松了,这个项目依然有很多我需要学习的地方,稍后我将在我的博文中做详细介绍。
2011年,是不同寻常的一年。这一年,我从学校走向社会,从一个学生变成了职场人士。这一年,我从一个主角变成了导演,开始为自己的未来导航。这一年,我从梦中惊醒,开始了我的寻梦之旅。
2011,我的IT我的梦。