07年7月毕业了。
带着一脸稚气与高傲的心,我来到了北京。
在学校里,我成绩中下,英语四级417分。但是跟老师做了2年的项目,所以技术上还是十分的自信。
面试的经历十分的漫长,大概10多家单位都给了Offer,但是我心高气傲 ,一般都回了,因为给钱少。大多都是2000-2500,少的只有1800 。
就这样晃来晃去,转眼到了11月份 ,同学们都名花有主了,只有我还在不断面试,11月下旬,一天下午接了个电话 ,对方问我是否在找工作,我说是,然后约了时间和地点,告知了公司名称 ,后天面试。
Google了一下公司名字,呦?是个外资企业。不错,去试试 。
第三天早上,我坐车到了公司。面试很简单,没有笔试题,只有一张试卷, 说24小时内做出来,然后发到指定的邮箱里就可以。我看了下公司环境,建外Soho的民用房 ,几张桌子,几台电脑。人员很简单,只有三个人,2个中国人(一个负责技术,一个负责销售),一个老外。 面试我的人说,老总在欧洲工作,每个月来中国工作一周。
回到家,按试卷上的要求写了伪代码,由于没有做过手机程序,所以写的一塌糊涂。 没想到,过了2天,电话来了,告诉我通过面试了,可以和老总谈谈了 。
老总是典型的欧洲人,我的二把刀英语磕磕绊绊算是把口语关给过了 。老总觉得我还行,第二天就给了offer,月薪3500 。当时真的觉得很爽,一个三流学校的专接本学生,***份工作3500,我们学校的4年制本科生都没有几个比我挣的多的。 当即决定,去这个公司。
报道当天,发现公司不止我一个新人,另外还有3个人是新来的,看样子都是刚毕业 。A是比我大一岁的河南人, B是年龄未知的东北女孩(不是吉林的就是黑龙江的,记不清了),C是北京XXXX大学的研究生,安徽人。D, 我们的领导是招我进来的人,四年的工作经验。算是经理吧
工作就这样开始了。一开始的时候,公司给了一些网站,都是介绍WAP入门的知识的。 虽然我一直在做Java,对 WAP有抵触,但是还是耐下心来学了 。因为公司当时在和用友合作一个XXX的商务平台(其实只是合作意向,就是做一个原型出来让用友评估) ,需要一个WAP程序。一个月下来,基本没做很多工作,学的都是在VS里写aspx的文件 ,然后发布到IIS上,熟悉各类控件的使用。好在C#和Java很多类似的东西,别管谁抄的谁,至少还算入门快 。
磨磨蹭蹭的干到12月底。我们四个新人被分成了2组,A和C做用友的那个XXX平台 ,B学习公司的一套产品的业务逻辑,我负责中兴的一个某某平台的开发的收尾工作。 工作内容其实就是,因为我们的平台使用了自己定义的API和库,但是我们的库不够完善 ,不支持对数据库操作的回滚,所以我要在程序里到处写try catch,在catch里把数据从新update成原来的状态。
转眼就过了08年的春节,我进入公司也4个月了, 对公司的同事也算是有个了解。 A是典型的河南孩子,很老实,实在,心地善良。 B属于人精类型,技术也说的过去,人际关系混的***,领导很喜欢 。C属于典型的目空一切型,4个月的时间已经把我们3个人鄙视了无数遍,话里话外都是对我们的不屑 ,但是貌似技术垃圾的一塌糊涂。API不熟悉也就算了,拿到问题根本就没有实现思路。 而且这人貌似一点人情都不懂,根本不管别人的感受。 比如,公司里仅有的那个老外很喜欢吃爆米花。每天都让C带一包来公司。 老外很开朗,拿了爆米花就分给大家。第二天,C又买了爆米花,他把爆米花给老外的同时,还说了一句蹩脚的英语 虽然蹩脚,大家也听明白了,他说:“Don't give this to them” ,老外很开朗说:“no, I like share” 。中午休息的时候我和A在打KOF,虽然都是菜鸟,但还是很有兴致。 C过来看了看说:“我什么都玩就是不玩KOF,不屑于玩”
A是个实在人,C偷偷问了他工资是多少,然后在吃午饭的时候对我们说 “我现在这个水平,4500的工资,根本不够花。” 公司分配了任务给C,他自己不做,因为他和A是一组的,基本上都是推给A做 A这人实在,什么也不说,闷头就做,但是这样还不行,C还嫌A做的慢,老是催快点快点 。有一次D发现了这个问题,就问C,你把工作给了他,你做什么? C反问:“这是我这种人应该干的活吗?”(当时好像是让C写几个aspx页面)整个办公室一片安静 。
最搞的是,一天C接了个电话,然后问D:“你知道电讯盈科吗?” D说知道,C说:“打电话来叫我去面试,你说我去吗?” 全办公室人,除了那个老外(因为他不懂中文),再次处于无语状态 。
省点篇幅,中间略去1万字,关于C如何如何的话题太多了,可以单开一个论坛了,不再累述。
说真的,按我上学时候的脾气一天抽他八回都到不了天黑,想想现在是工作,忍了,不理他就完了 。再说C的个子比较矮小,打了他也不光彩,落个欺负人的骂名不值 。A和B也同样受过他的气,但是大家还算有涵养。也算是和谐了一把吧 。
转眼到了4月中旬,老总四月的第3个礼拜在中国工作,我记得是周2,他突然要看看我们的工作进度。 我们一一汇报,轮到C,老总问他在做什么工作,C支支吾吾半天也没说出话来 因为C的英语虽然是6级,但是口语基本上是白痴阶段,所以A告诉他,老总要看他最近的工作进度。 这下C更没的说了,***还是老总打开了他的VS,看了他的代码,看完后一脸的暴雨将至表情, 脸色铁青什么都没说,坐到我的位置上给D发了封电子邮件。C有点沉不住气了,过来跟我说:“你能不能帮我看看老总在邮件里说了什么”。 现在才知道用到别人?早就晚了。我说,“这个不好吧?再说我好像看见老总把那邮件给删了。”
当时就感觉C差不多了,走人是迟早的事。 但是没想到老外办事的速度确实是快,那个周五的下班前一小时 ,老总把我和B带到貌似是Soho15号楼的星巴克 ,坐下来说了很多,大致意思我是明白了,就是A和C不是公司需要的人,你们两个会被留下来继续工作 。说真的我很吃惊,C的走是他咎由自取,但是A这个人很不错,虽然技术不是很厉害但是人品没问题。
很不理解公司为什么连A也一起开了。 后来才知道,用友因为对我们的原型不满意,已经取消合作了。 也就是说,公司不再需要这2个人了,尽管A也可以留下,但是没有他的工作 老外是不会愿意给他开钱的。
至此C走了,算是清洁了办公室的环境。团队只有我和B、D还有那个不归D管的老外。 一个经理两个兵,转眼到了08年的6月。 因为我们公司的产品性质决定了我们要适配很多的移动终端。
这次我们要在J2ME平台上开发一个软件,让它在J2ME手机上跑起来。 所以我和B开始学习J2ME,一个礼拜的时间,从Hello World开始,到熟悉各种控件, 使用RecordStoreManage写一个记事本。 然后就开始开发了。后来才知道不光我和B没接触过J2ME,D也一样没接触过 。但是D有自己的一套方法,公司的这套产品在PDA上的平台是一个成熟的客户端产品,D把PDA上的代码拿过来,完全仿照PDA上的代码,做了一个架构。 基本上一点不差的搬到了j2me上。
我和B的工作就是写控件,给控件加判断逻辑代码。 本来我以为可以好好工作了,但是接下来的一段时间发生了一些不愉快的事 。公司本来是没有迟到时间点的,就是说,任务完成了,你随便什么时候来随便什么时候走 一般我都是早上9点45到公司,晚上6点半回家。但是8月份的时候,有一天,D过来问我早上为什么来这么晚 。很诧异,但我什么也没说,D说下次早点吧,我们是早上9点半前到。 我说好,但是因为我和女朋友一起住在上地,公司在建外Soho,所以如果路上稍有意外,就难免迟到。
连续一个礼拜我9点20左右到公司,但是发现D大多数时候9点35才到,有时候9点50才到。 但人家是经理,而且有可能晚上加班,所以我也没话说。 一天早上我在楼下排队买早饭,我看见B从远处过来,因为她没买早饭,所以先进公司了 。我比她晚了5分钟,加上那天早上又起晚了,所以我9点45才到 ,不知道D是不是和B说了同样的话,但是跟我说的是:“你怎么又迟到了?我们不是说了9点半前到公司吗?” 所以我把牙一咬,每天晚上早睡一小时,第二天保证9点半前到公司。但是时间长了我发现 ,B和D根本就不会9点半前到,一般D是9点40到,B更晚一般都是9点50左右才到。 心里不爽了,但是没说出来。忍了。
更不爽的事情在后面,9月初的时候,我们的代码可以运行了。有一天下午,D要求我和B做一个DEMO,就是先写一些假数据,让程序可以跑起来
快下班了,我把DEMO测了一下。跟D说可以了。 D问效果如何, 我看了一下,告诉D,因为我们用的控件是高级API,当一个Form上控件比较多的时候 ,在模拟器上反映就已经比较慢了,到了真机上更慢 。D没抬头反问我:“那怎么办?” 我心想:“架构是你做的,设计是你出的,实现出来效率低下,你却问我怎么办?” 我没吭气,还是忍了。事实证明一再的忍让绝对不是好的办法。
到了9月底,j2me平台上的代码已经完全可以运行了。但是,D把这个东西拿给我们的合作伙伴看,合作伙伴不太满意,因为金蝶和另外一个叫什么名字我忘了的公司也提供了类似的东西,用户认为比我们的好。 用户不满意的地方主要有:
1.是我们的控件都是使用了j2me的高级API,在不同机型上设置参数一致的控件显示出了不同的效果。
2.因为我们用高级API在一个FORM上控件比较多再加上数据存储在RSM里,运行时速度奇慢无比。
3.是高级API控件没有Canvas画出来的好看,竞争对手的产品界面更美观。
此时, D跟我说,你看看金蝶和另外一个公司的DEMO,看看能不能实现人家那样的东西? 我看了2天Canvas,然后说应该可以实现。 D说,好,那你就把界面部分用Canvas实现了吧。 我说时间上能不能多给点,因为Canvas更底层,实现同样功能代码量要更多 ,D说你尽快吧。
我们的控件里有一个控件叫find,就是用户可以输入文本,点击按钮后,控件调用相应的代码查询RMS里的信息,根据用户输入的文本进行匹配,匹配成功的返回一个列表,做成下拉列表。 在j2me高级API里,这个功能实现并不难。以前这个控件是B写的,我看了一下,大概80行代码。当时清楚的记得这个控件分给B的开发时间是一天。
但是到了低级API里就不是80行的问题了,首先Canvas没有中文输入,我要自己到网上找一个字库,根据用户输入的拼音检索字库,如果字的个数过多要根据屏幕宽度换行,支持翻页操作,把用户选中的汉字显示到控件上。而且Canvas里根本没有控件的概念,用户看到的控件都是一个一个像素画上去的方框。而且低级API没有高级API封装的那么好,所有的用户操作都是触发按钮按下事件,然后我自己做处理。还要等用户输入完毕后,把检索结果用表格的形式展现在屏幕上,表格的每个行还都要支持单选。
我用了1天时间,控件没写完,下班的时候我要走,D犹豫了一下说:“那~~~~~~, 好吧”。
第二天早上,我到了公司打开邮箱,发现D给我发了个邮件。写了很多,措辞很严厉。大致意思是说,你没有集中精力在工作上,本来计划是昨天让你写完这个控件的,现在整体进度要推后一天,希望你以后注意。一阵狂晕。什么也没说,利用上午的时间把这个控件完成到80%,中午吃饭的时候,D问,“你看到我给你的邮件了吗?”答看到了。D看着我等我接着说,我说:“头,今天上午我又写了一个上午,现在还没写完,还差20%的样子,你要求1天写完,基本不太可能,因为这个控件代码规模现在就已经1200行以上了”D没吭气,过了一会跟我说:“你以后也可以看看我们整体的代码,其实我们还是用了很多设计模式在里面的。你可以学不少东西”。
08年10月底到11月初,是我最苦恼的时间。
这个时候j2me的代码本来已经可以跑了,但是总是有很多这样那样的问题。说白了就是小BUG。D找到我说,你最近没什么事,把BUG都改一下吧。心里不情愿,但是公司就这么几个人,改吧。这才发现B姑娘写的代码真是没法恭维,到处都是魔术数字和魔术字符串,把人搞的晕头转向。比较两个字符串的值是否相等用“==”.单例模式的类有自己的成员变量,在使用完该单例类之后,成员变量没有恢复初始值导致下次再调用该类的方法时产生稀奇古怪的结果。
最可怕的是,我把BUG改完后提交到SVN,B姑娘把代码更新下来发现她那边不能跑了,根本不找原因,直接把自己的代码Commit了,上帝保佑SVN提供了以前版本的保存功能,要不然,我再次update之后就可以去死了。
还有一次,因为我们的J2ME客户端要与服务器通讯,所以要单开一个线程,进行网络连接。D找到我说,网路连接连不上,要我看一下。后来发现,D的代码里网络连接的代码确实是单写了一个类实现了runnable接口。但是,老先生在主线程里直接调用这个类的start方法,然后紧接着就进行其他操作,居然还问我,为什么程序走到这就不动了。晕死~。找到了Handler类,把API看了一下。用Handler从新调用,问题解决了。
***很搞不明白的是,B和D的关系貌似很融洽,本来,女孩子要是嘴甜点,在职场比较好混,这不奇怪。 但有一次,D要出差去深圳一段时间,居然要带B一起去。当时我和公司里负责销售的那哥们同时对望了一眼,因为B有没有男朋友不知道,但肯定是未婚。D也是未婚。出差到外地多半个月,两个未婚男女一起去貌似不太符合中国人的习惯?也许外资公司不在意这个?
两人把计划报给了欧洲的总部,结果欧洲那边在意,不同意他们俩一起去,只让D自己去。后来回忆,8月份的时候,D休了个年假,我们公司的年假是10个工作日。当时D说要去女友家,因为是***次去,有点紧张。 后来他走了一周以后突然又回到公司了,安排了我和B一下,说自己坐下午的飞机去海南旅游,问他女友呢?答说女友回家了。
到这时我才明白,原来8月份的时候D因为去女友家,女友的父母不同意,所以D自己回到了北京 但是,还有一个多星期的年假没有休加上被人蹬了心情郁闷,所以去海南散心。 回来公司以后,准备发展B做下任女友,才要带B去深圳的。 虽然后面这些只是猜测,但是全都合情合理,没有破绽。想到这里不由的心里一阵阵恶心。 用老外们的说法就是: pretty disgusting。
转眼时间到了11月底,j2me的项目算是马上完了,D跟我说,再写一个网络连接线程就可以了。这块工作量不大,他准备和B一起写,让我准备做BlackBerry上的应用开发,就是把这套产品搬到BlackBerry上。那几天找了很多资料,发现BB上的开发和j2me上的开发根本不一样。心里很怀疑还照搬PDA上的架构是否行的通。但是一时又发现不了什么问题。所以就一直在往下走。
当初学j2me的时候给了一个礼拜的时间学习一下基础的东西。 到了BB上只有我自己在做,结果D根本不给我熟悉BB的时间,写完Hello World就要求开始写控件直接开发。写完BB就准备写IPHONE的客户端。大哥,这行吗?你在j2me里的问题我还没告诉你呢,你把初始化信息写在onStart里, 用户使用软件的时候出现优先级比较高的事件,等处理完毕再返回的时候你哭都来不及。客户端软件没有中断向量的程序我还是***次看到呢,这也太不健壮了。还说什么赶快写,把所有的终端代码都写出来。
说到这里的时候,我心里突然想起了A,兢兢业业工作的人,就因为公司没有任务了,就顺手把人开了。 很担心自己把所有终端写完,然后被公司一脚踢掉。
回想过去的一年,自己做的事无非就是一套逻辑,在各个机型上不断的适配,没有设计,没有业务逻辑,一点技术含量都没有,有的只是按顺序拼控件,全拼完了以后,写下一个终端。 再回想公司的嘴脸。算了,我走吧。
08年11月28日星期五, 下班的时候,按惯例发一天的工作报告,在邮件的***用英语写道 :“I will NOT sign a new contract with company , and if .....”。
四级考试时的英语作文都没这个写的语法正确。
【编辑推荐】