即使在恶劣的环境中也不要放弃自己-我的程序员生涯总结 不指定

Else , 2006/07/11 18:20 , 积累些,自己也写些 , Comments(0) , Reads(3809) , Via Original

   这是一家对日本外包企业,公司规模很小,项目也并不大,主要工作是从日本那边拿项目照着式样书实现。因为公司的规模很小,所以同事们很容易就都认识了,加上我原来就有两个朋友,同事间互相引见加上中午都要一起吃饭。几顿饭过后大家都熟了。这家公司成立不久,人员方面也没有什么技术牛人,大家都是初级水平,好在日本人的项目都是些简单项目,更重要的是日本人会把详细设计写好了拿来做。可以说,对于新手来说,学习经验是很有帮助的。

   我要做的第一个项目是一个在linux上面跑的应用程序,主要是用电脑去控制一些设备的。我对linux非常感兴趣,一直以来都憧憬作unix相关系统的开发,终于有一天可以实践了,于是买了一大堆书学习,我要做的其实很简单,只是去实现一个串口通讯的模块,因为没有任何人明白这一块,所以我只能自己去学习和摸索,幸运的是我在深圳时曾经读过相关的书籍,所以很容易就搞定了那个模块。在这里容我再碎碎念一次,工作中学习也是一个必须的活动,好多时候这些学习可能会对你的工作很有帮助,并且帮助你获得其他人的认可和信任。

   因为有了这个项目的成功,我的能力被领导和其他同事认可了。在接下来的下一个项目我成为小组的领导,这个项目和上一个非常类似,只不过这一次是在windows系统上的实现,这一回我除了负责自己的模块之外还要协调所有的团队成员一块完成整个项目。这是我第一次充当一个项目管理者,这次的项目经历也给我留下深刻的记忆。之所以有很深刻的印象是因为这个项目我自己完全是个管理新兵,中间犯了很多常见的错误,每次回想起来都觉得很汗颜,对于同事们和公司来说,我们虽然最后成功提交了项目可是中间付出的代价太大了些。犯的错误也太多了些。

   这个项目的管理可以说是很粗放,很糟糕的管理,那个时候我还没有听说过敏捷编程这个概念,如果我那时候知道这个,我一定会去努力实践一下。根据我的判断,这个项目其实是非常典型的适用敏捷编程方法的。而那个时候,我对项目管理太陌生了,完全不了解管理方面需要注意些什么。和同事之间的沟通出现了很多问题,以至于项目进行的不顺利,团队的士气也不高。其实这个项目的难度是很低的,如果我更有经验些完全可以做的很漂亮。我要总结的几点失误是:
1)沟通太不够专业,太没有技巧,很容易就会打击成员,导致士气低落,典型的例子就是团队中的一个女孩子负责oricle数据库的sql包的开发,在分派任务的时候大家对于进度方面有些争执,其实这个是很常见的问题,我当时的处理方法是,完全按照自己的想法强加给成员一个进度,这绝对是一个致命的沟通问题,那个女孩子在跟我几次争论后哭了。虽然最后我做了妥协,但是团队的士气已经被打击了,导致了很不好的气氛。
2)团队建设上做的太少,只顾着赶工,赶进度,而忽视了人性化,没有做过任何team的活动(主要指非工作的团队活动,比如一起吃饭,游玩等等),导致成员们没有荣誉感,没有归属感。
3)在遇到协调问题时候处理生硬,没有起到管理者应该起到的协调上下的作用。典型例子是一个团队成员的代码写的质量很差,导致我们公司日本方面的一个经理来信怒斥,我当时昏了头,居然把信转给这个成员,事后想想真是太草率了。结果这个成员和那个经理都很不高兴。
4)流程控制太差,在项目进行过程中,本来是个典型的瀑布模型,但流程控制及其糟糕,没有code review, unit test,也没有很好的进度控制,测试流程也少了很多东西,比如测试用例的设计,测试用例的review,回归测试等等。
总之就是漏洞百出。直接导致项目的质量问题。若干年后,我每次回忆起来都会脸红,这个项目应该是我做过最不成功的了。

   之后的一个项目是一个公司内部的项目,由于不涉及到客户,并且有了第一个项目的经验,这一次我首先制定了若干项目规范,并且在沟通方面也始终注意自己的方式方法,相对来说,这次的项目难度虽然大了,可是比上一次的要成功,可惜因为完全是公司内部的开发,而且第一期的功能并不完善,最后也并没有投入使用。但是有了这一次的经验,我对管理方面的底气也稍稍多了一些。特别是,我的一些团队成员对我的正面评价让我感觉到我做的很多工作是很有价值的,我帮助团队成员们成长自己也会很欣慰。直到好几年后的今天,当初的团队成员依然在msn上很谦虚地向我请教问题,其实他们都已经独当一面了。

   之后的我又继续在那里做了一些其他项目小的模块,在那家公司呆了差不多两年后我离开了那里,因为感觉那里发展前景还是不明朗。我希望能够寻求更好的发展,于是我来到了一家稍大一些规模的国有软件公司。
   这家公司其实不比上一家大多少,人员虽然多了一些,但是多出来的人员都是些行政销售市场人员,开发方面仍然是小规模的。在这一家公司我比起原来来说唯一的好处就是工资多了一些,当然也没多多少,但是环境和文化都难说比上一家更好。这里让我再次碎碎念,原谅我在本文中如此多的碎碎念。我要说的是,跳槽一定要慎重,跳槽其实是有很大的成本的,如果看不到一定的收益一定不要轻易跳槽。我经常能够看到好多师弟师妹们仍然在重复着我曾经犯过的错误,就是从一家一般般的公司跳槽到另一家水平相当没有任何提高的公司,这样的跳槽还不如不要跳得好,失去的比得到的更多。要跳槽就一定要往高处跳。当然我犯下这样的错误很大原因是我没有想清楚自己的职业发展方向,没有弄明白自己想要的是什么。所以对自己有个清楚的认识是规划自己的发展方向的先决条件。

   在这家公司里,我体验到了国企的那种僵化和呆板,其实我们开发部的同事之间关系还是很融洽的,可惜的是公司的领导层完全是国企作风,说事情全是一套官腔,因为体制的关系,这家公司主要是配合它的母公司做一些国家部委的项目。这些项目无论如何都是要做并且项目的经费基本是属于拨款性质,因此商业模式方面很难说算是正规的公司,更类似于那种科研型单位。本来有一个项目面向全国各地区的某文化事业部门的,但其实也算是一种强制性的使用和付费,因为其他的公司是不可能打入到这个市场的。因为不需要面对竞争,所以全都是领导拍脑门说了算,无论任何一个项目,都是领导们觉得脑袋热了,需要降降温,就倏忽蹦出来一个项目。而且官僚习气作风严重,很多东西不是开发人员说了算,而是领导让怎么办就怎么办。当然了,领导是不懂也不需要懂得技术上的问题的,只需要放话就行。

   都说国企加班很少,但我细算一下我的工作经历,在所有曾经待过的公司里面,就属这一家加班是最多的。其实完全是因为进度安排得不合理,我回忆了一下加班最多的那些日子,其加班原因是因为公司的一个项目要赶在某日之前参加一个展览会。那些日子所有的同事都在疯狂加班,包括很多女孩子。当然,这些女孩子不是开发部门的,但因为项目不光有程序,也需要数据的关系,也一样要加班。我还是第一次看到如此大规模的加班活动,大概有两个月时间晚上大伙都是一块吃加班晚饭。女孩子们回家都要男同事送一程,那时候我每天晚上都要披星带月骑着自行车走45分钟回家。领导们是无论如何也要赶上展览会的,所以大家都不用睡觉了,我记忆最深刻的是一个周末我周五加了通宵,周六一直干到下午3点钟,然后回去睡一个小觉,晚上继续来干下一个通宵,然后周日又干到晚上12点,然后回去睡觉。最可气的是所谓的同舟共济,就是一个项目组里如果有一个人的工作没做完,需要加班,大家也都要陪着加班。这种所谓同舟共济说起来好听,其实唯一能说明的是领导脑子里积水了,不过领导也不是完全积水,一个例子可以证明,我们同舟共济加班时候,领导还是睡得很安心的。

   我对国企的印象极差大概就始于这个公司,其间遇到很多啼笑皆非的故事。比如领导没事时候就召集大家训话说我们一起是要做事业云云,问题是我们这些北漂们也需要生存环境亚,如果我也有单位分我的三室一厅和崭新的别克车,我也可以叫嚣我只为事业不为钱。每当这些领导们说出如此高调的时候我只有在心里冷笑。

   展会结束后我骤然发现日子轻松了许多,以至于我每天都没什么事情可以做,项目剩余的部分都没有多大工作量,可是时间大把,于是我就尝试自己看看技术书籍和上网,那时候我还是比较自觉,基本只上水木和csdn,其实csdn也没什么可看的了,但好歹也算是个技术网站。可是领导看我上网看书很有意见,屡次三番的提醒我不能再工作时间上网,也不能看书,看书要回家看!我晕了,好歹我做的也是做技术的,工作时间不能看书那我除了写code岂不是只能对着屏幕发呆了?我想好吧,既然这样就让我闲暇时候睡觉吧。显然的,这时候我的心态出现了问题,开始和领导们消极对抗了,据我所知,上班睡觉应该算是很不职业的行为了,估摸着领导也不会高兴。显然,领导很快就觉得我是个不安分的家伙,在几次交流无果的情况下扣了我的工资。

   勃然大怒之下,我去找领导交涉,最后的结果当然是我屈服。然后我想,既然没有事做,总要找点事情,这样也好,我就开始尝试使用些新技术开始做一些我没做过的小例子,哪段时间我对很多东西都有兴趣,于是有意识的使用这些技术练手做一些小程序。老实说,领导们的一些禁令倒是帮助我找到了继续学习的机会。这些学习的经验没有白费,在后面的面试中很多都用到了。

   在那里待了两年,工资也长了一些,可是始终不满意,应该说那个收入是比较低的。我扪心自问对报酬其实要求并不高,但是在我的努力和回报严重不成比例的情况下我还是会爆发的,特别是如果还掺杂了对其他方面,比如对公司的领导和环境的不满意。在第二年的年底调整工资基数时候,我觉得必须跟领导谈谈工资了,谈判的结果是领导不让步,我也不让步,于是结果很简单,走人。
   感谢上天让我有了那么多好朋友,这次找工作依然是朋友介绍,几乎是顺风顺水的拿到一家外企的offer。笔试主要考察的是C++语言,令我始料未及,因为前面两个公司我都没有做过笔试直接面试完就入职,所以这算是我工作以来第一次笔试。我没有料到的是C++语言会作为笔试的重点,我的想象中,应该算法,数据结构,软件工程,设计模式这些都要考察才行。不过我的C++语言方面还算勉强,笔试的成绩应该是很不错的。面试管是个很和蔼的兄弟,应该比我大几岁,问过我的工作经历后又问了一些java方面的东西,java我虽然做过些东西,但是只是一知半解。好在我知道这个职位应该不太多机会用java,所以应该不是大问题。果然很快offer就到手了,薪水方面自然也比那家国企高了不少,当然只是相对原来的基数。我正式离开了那家国企来到外企。

   要说起来,其实我以前做过的那个对日外包企业也算是日企,但其实它骨子里应该算是个小型私企。而这一家小型的美国公司才是比较正宗的外企性质。工作的氛围相当好,同事们的素质都很不错,而且互相关系很融洽,我的感觉风气一新。完全洗脱了国企那种死板的环境。以前有人说过同事很难成为朋友,但是根据我的经验,这也是因环境引人而异的,至少我感觉在这家公司里,有好多同事最后都变成了我的好朋友。    

   这一家公司最重要的一个和上家不同的地方是,领导的管理艺术是比较人性化的,可以看得出来领导是受过西方的管理训练和熏陶的。我不得不遗憾的说,国内的这些老总们欠缺的管理经验真的是差的太多了,无论你说那是中国特色也好或者是什么别的也好,我要说的就是对于员工来讲,那样的管理真的太差劲了。

   公司主要的业务是一个企业级java应用产品,而我是被招来做brew平台的手机游戏的,并且是这个项目的第一个员工。此前我从未接触过这个东西,而在这个公司里也没有任何人可以帮助我,完全需要我自学自己掌握,还好我以前曾看过一些嵌入式开发的东西,虽然没有做过但是掌握了一些要领只要有C++的底子就可以很快上手。刚开始的那些日子,因为项目的需要,我仍然需要加班,尽管如此,比起从前加班的日子来说已经算轻松很多了。我在这里也曾经通宵过,但那是因为要和美国时间同步,所以晚上上班而白天倒休,而且这样的日子很少,远比当年通宵加班少。我的项目都是从美国外包过来的项目,当时只有我一个人去做,我努力的一边学习一边实践,因为有了语言基础,尽管对嵌入式开发不是很了解,但是经过学习和实践很快就在BREW平台上驾轻就熟了,当然也会遇到很多技术上的难题,但是经过努力的钻研最重能够解决。前面的几个小项目做得很顺手,很快就有越来越多的项目。我的团队也开始逐渐扩充了,团队成员的增长意味着我自己不但要去编码而且开始充当管理的职责了。

   在这个外企环境里,我发现我有很多东西可以学习并且也确实学到了很多东西,还有就是我觉得我在这个公司里面发挥了很多,远比我在以前的国企中发挥的更多。首先就是我的英文交流的能力迅速提升,公司内部所有的邮件都要求用英文,加上我充当了一个team lead,需要和美国那边的负责人经常沟通,还要负责一部分和我们的客户进行交流的工作,在AIM,电话等媒介上都需要我用英文沟通,一段时间下来发现自己的英文能力确实长进了,特别是口语方面。其次就是管理技巧,因为有了高水平的管理者指导,我逐渐学会了系统的流程管理和项目管理,特别的就是人的管理,沟通技巧等等。我们的总监是个有丰富经验的管理者,另外还有不少其他项目组的同事们都有很好的管理经验,在工作中我可以和高水平的管理团队多交流多学习,对我自己的成长非常有帮助。说到这里,我又忍不住要碎碎念了,我记得我曾听过ATC院长张洪江说过的一个讲座,他说他考虑工作环境第一位的就是高水平的同事,可见高素质的同事对于一个员工是由很大影响的。我深表同意,因为我自己的例子就可以说明,在高素质的同事中间绝对是很促进自己的成长的。

   这段时间以来,我们的团队不断扩张,因为前面几个项目的完成情况还算不错,所以后期不断有新的项目,团队的人员也扩展到了8个人,在短短的一年多时间内能扩充的这么快我也觉得很欣慰,因为这是我一手建立起来的团队,我觉得很自豪。

   一年多以来,我一直都很开心的做着,可是这只是工作方面,生活方面我遇到了一些很难克服的困难,以致我必须去找更多的经济来源。在以前的几年中,我从来没有太多的经济方面的考虑,也从未想过自己有一天会因为寻找更多的收入而放弃本来做得很开心的工作,但是现实生活告诉我有时候人必须有这方面的考虑。我想过去找个兼职,可是实际操作性太差,那些兼职的差事基本上都是费力不讨好,很少会有人给兼职的人合理的报酬,特别是编程这种工作。我想我必须去找个挣钱更多的企业了。

   我把我的想法告诉了一个好朋友,他建议我去找人事部门谈一谈待遇的事情,可以酌情提高,但是因为我有了以前谈待遇失败的阴影,我觉得还是先找好下家再去谈提高待遇可能比较有把握。工作很顺利找到了,收入还可以,基本上可以缓解我的经济压力了。我也接受了新公司的offer,原本我打算和公司谈谈提高待遇,但是因为新的这个offer是我特别喜欢并且我认为对我很有帮助的一个好机会,虽然我也喜欢当时的工作环境,可是我更看重这个新的机会,我想直接辞职。

   于是我向公司提出了辞职,没有想到的是公司总监对我的辞职特别重视,几次三番找我谈话,他们十分看重我的能力并且认为我的部门发展的很健康,很希望我作为团队的领导再接再厉把团队进一步扩大。并且告诉我他们完全可以给我加薪到比新的工作更好的薪水待遇。我陷入一个两难境地,一方面我已经允诺了新公司,另一方面我又觉得原来的公司对我着实不薄,而且我原来担心的经济压力在加薪后也不存在了。我想了好几天抉择这两个不同的选择,最后还是决定去新的环境,毕竟这是一个我从来没有接触过的行业顶尖企业。就这样我依依不舍的离开了原来的公司,离开了我那些已经成为好朋友的同事们。
   回忆这几年的路,在写下这段文字的时候,我眼前仿佛又出现了当年的那些场景:在大雪纷飞的晚上,我们若干同事们走到洁白的路上,感受着咯吱咯吱的踏雪声,回望着身后的一串串脚印;在没有空调的夏夜,我一个人孤零零的在办公室里努力的克服这困倦和蚊子的轰炸,奋力的和程序作斗争;在喧嚣的办公室里,我和同事们一起讨论着国际米兰为什么成绩这么衰;在人头攒动的食堂里,我和同事们人手一个饭盒排队在长长的队伍中等待着打饭;在黑暗的夜色中,红色的灯光下,我顶着北风努力的在中关村大街上蹬着我那辆并不好骑的自行车;在麦乐迪,我和同事们一起K歌并且把嗓子直接唱劈的时候还会再有吗?在淡淡的月光下星光里灯光照耀的后海中和同事划船的场景还有机会重现吗?

   过去了,一切都已成过去。现在是新的日子,新的开始。去者日已远,来者犹可追。总结这么多年以来的工作,我觉得以下是我个人的一些浅显看法,希望对大家能有所帮助。

   1第一份工作是很重要的基石,千万不要草率行事,否则吃亏的是自己。多方面的咨询和足够的重视是必须的。在毕业的时候很多同学都是带着学生的思维很难明白自己需要的是什么样的工作,这时候第一份工作往往就是实验性质的,在工作中可能大家才会逐渐了解到仔细适合什么,自己需要什么,在这种情况下第一份工作就更重要了,很有可能试探的方向错了就很难收手,所以在选择工作时候要给自己留有后路。

   2工作中不断学习和提高绝对是一种智力投资,很多时候工作机会同时是个学习的好机会,即使是很轻松的工作也不要把它荒废。试试看学习些自己感兴趣又能和工作沾边的东西,多些智力方面的投资多懂得各个不同的学科有时候会改变自己今后的出路。这就是所谓的机会偏爱有准备的人。

   3做任何工作除了必要的工作技能之外,那些所谓的软技巧才是更加重要的。这方面典型的包括沟通技巧,管理经验,协调能力等等。工作的越久,一个人就越会发现这些东西有多重要,比基本职业技能更加重要。人际关系绝对是工作中重要的一个环节,如果在这方面不注意是要吃亏的,有些时候是很致命的。管理者们相对来说更加需要软技巧。和同事打交道,包括上级下级同级,还有其他部门绝对是个值得重视的学问。任何时候都不要欺下瞒上,保持平和谦逊的态度对待别人只会让别人看待你更高。

   4和优秀的同事在一起工作是自己成长的最好环境,不要害怕工作单位有比自己更强的人,有这样的人其实是自己的良师益友,和他多交流,多请教,自己会少走很多弯路。而且和这些优秀的人在一起往往会是自己督促自己的动力。认真地学习他们而不是排斥他们。

   5即使离开公司也不要和原来的公司闹翻,我前面没有讲过这一点,这里做个补充。好多人都有年轻气盛的时候,和领导有意见就会选择硬碰硬,这样决不是明智的做法,须知伤敌一千,自损八百,虽然表面上看是出了一口恶气,好好的争了一回面子,可是保不住今后会遇到种种麻烦甚至刁难。所以选择和平方式好合好散才是最好的方法,最好是离开后还能和原来的公司领导成为朋友,这样以后都回多条路子。

   6即使在恶劣的环境中也不要放弃自己,我听说过很多例子都是说自己所处的环境如何恶劣,每天无所事事。这种情况下也不要随波逐流,最好能有自己的打算,不要盲从于环境的恶劣也放纵了自己,要知道人生总是有其有伏的,当时的放纵也许就意味着以后会失去机会。
Pages: [1] [2]
Tags:
Add a comment

Nickname

Site URI

Email

Enable HTML Enable UBB Enable Emots Hidden Remember [Login] [Register]