程序员入职锦囊妙计(txt+pdf+epub+mobi电子书下载)


发布时间:2021-03-06 06:55:31

点击下载

作者:徐海峰

出版社:华中科技大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

程序员入职锦囊妙计

程序员入职锦囊妙计试读:

前言

随着软件行业的不断发展,软件行业的入职门槛越降越低。最早的时候,软件开发是一项极其复杂的工作,不是一般的人能胜任的。程序员首先要精通硬件和数字电路部分,然后才是编程命令。虽然这些命令很简单,仅用于执行一些相对简单的硬件运算,但是命令数量很多,要全部记住还是很有难度的。到20世纪90年代后期,各个大学,不管是985大学、211大学,还是普通高校,几乎都成立了计算机系和软件工程系,这些系的学生在经过4年正规计算机科学专业培训后,才能从事软件开发工作。现在,培训机构花1年半时间就能把一个对软件开发一窍不通的门外汉培养成能在IDE的帮助下完成简单业务功能的程序员。越来越简单、越来越方便的开发方式和开发方法吸引了大量的年轻人加入原本就已经浩瀚的程序员大军,软件行业的竞争也越来越激烈。

所有行业对于新人来说都是一只“披着狼皮的羊”,软件行业当然也不例外。现在的软件行业给外界的一个假象就是既容易出名又容易挣钱,“十个程序员,九个廉价劳动力”的现实被掩盖在成功人士的榜样作用和少许居心不良人士的夸夸其谈之下。我们到底要不要加入软件行业淘金甚至开矿呢?

当我们对一个事物充满好奇并蠢蠢欲动时,还是应该先停下即将迈出的步伐,静下心来,冷静地去了解它!但是问题又来了,怎么样去了解软件公司、了解整个软件行业呢?

这本书为新生代程序员提供了一种了解软件行业的解决方案。

作者从大学时代就开始编写程序,满打满算,程序员生涯至今已有8年。现“混”迹于国内一家著名的电子商务公司,任开发部架构组项目经理一职,主要从事该电子商务网站的架构优化工作。

作者总结了自己的从业经验,并使用幽默风趣、通俗易懂的现实版语言为新生代程序员描述了软件行业职场上的“规则”,从不同的角度对软件开发职场的观点进行精细的阐述,并加以总结,将自己的心得有理有据地展现在读者面前。

希望本书能真真切切地帮助刚刚进入软件行业的新手,在对职业目标的追求、人际关系的经营方面助他们一臂之力。徐海峰2010年10月第1章 初识IT企业

离开课堂,进入社会,终于丢掉了书包,你用充满好奇的眼睛看着眼前的世界。就要开始征服这个世界了,你准备好了吗?

不管你是什么学历背景,大家都在同一起跑线上。凭着对计算机、软件编程的喜爱,我们选择了软件行业,进入软件企业去寻找未来。在进入软件行业之前,你了解软件行业吗?了解软件企业吗?了解软件开发吗?1.1 什么是软件公司,什么是软件行业?

什么是软件行业?软件行业就是由很多大大小小的软件公司组成的一个社会环境系统,大家有互助、有竞争。

回想一下,求职者说得最多的一句话是什么?我是来学习的,希望能学到想要的东西。甚至还有人说不在乎能拿多少钱,但是要学到想要的东西,免费都可以接受。听到这些话的时候,是不是觉得这个行业变得越来越惨淡,甚至有些凄凉?作为从业者,连基本的薪水都不敢提了。更为悲哀的是,“菜鸟”对他们目前的处境也没有一个正确的认识和把握。那么,作为不了解这个公司或者行业的人,首先要解决的问题是什么呢?

俗话说,知己知彼,百战不殆。不管走到哪儿,进入哪个行业,首先要做的就是要去了解它的基本情况。作为软件从业人员,你要去了解这些软件公司,了解这个你将会为之工作、奋斗一生的软件行业。案例1.1田光军是A公司的技术总监。A公司是一家小型软件公司,技术人员不超过50人,主营业务是为政府、企事业单位提供信息技术解决方案。目前,A公司正在开拓市场,业务迅猛发展,A公司原有的开发人员人手不足,已经在招聘网站上发布了招聘信息,收到不少应聘者的简历。田光军匆匆看完简历后将简历交给了人事部门。人事部门通知两个应聘者面试,一个叫徐忆然,一个叫张小兵。面试时间定在星期五上午,两个应聘者如约而至。徐忆然和张小兵两人都是名牌大学的应届毕业生,但是所学专业不同:徐忆然毕业于计算机旁支的信息专业;张小兵毕业于计算机科学与技术专业。田光军待他们两人做完笔试题后,开始面试。在面试的过程中,田光军为两个人准备了同样的三个问题。第一个问题:作为应届毕业生,你们对软件开发了解多少?第二个问题:你们为什么要从事软件开发工作?第三个问题:你们为什么来我们公司?对我们公司有什么要求?对于第一个问题,张小兵的回答是“我是一个大学毕业生,虽然刚出校门,从没进过软件公司,但是我从杂志上看到过一些软件公司的介绍。我对软件公司的印象就是,软件公司应该有开放的环境,里面有一大群的计算机软件开发牛人在无时无刻地编写程序”。徐忆然的回答是“软件开发是一项讲求团队配合的工作,现在几乎所有的软件都是由团队配合开发而成的。所以,我认为软件公司应该做好团队配合工作”。对于第二个问题,张小兵的回答是“我从接触计算机开始就喜欢计算机了,所以考大学的时候也选择了计算机专业。大学4年,我学习了计算机的基本理论,并且制作了一些小型的网站,开发了一些小的管理系统。个人感觉软件开发还是蛮适合自己的”。徐忆然的回答是“我是从初中开始接触计算机的,从开始接触就喜欢上计算机了,但是单纯的计算机专业的就业面可能比较窄,考大学的时候考虑到以后的就业,就选择了计算机的旁支专业就读。在课程学习的过程中,我发现自己还是喜欢编程,所以想把编程当成自己的工作”。对于第三个问题,张小兵的回答是“我喜欢软件开发,又看见贵公司正在招聘,看了一下招聘细则,觉得比较符合自己的需求,就投了简历。对贵公司,我没有什么要求。因为我是一个应届毕业生,所以我主要还是来学习的,我想学习一下实用的技术”。徐忆然的回答是“我喜欢软件开发,看见贵公司在招聘网站上发布了招聘信息,看了一下招聘要求后,感觉自己非常符合条件,能体现出自己的优势。说到要求嘛,虽然我是应届毕业生,但是我想我最少要能在这个城市活下去”。面试的结果是徐忆然被录取,张小兵遭到了淘汰。仔细地看看面试的回答,是不是觉得两个人的水平是半斤八两,但是为什么被聘用的是徐忆然而不是张小兵呢?究其原因就在“了解”二字。张小兵显然是喜欢计算机编程的,在大学阶段也非常认真地学习了计算机课程,而且说出了自己心里想的实话,但是在了解软件公司和软件行业方面却不如徐忆然。张小兵对于公司的要求是能学到新东西,但是是否想过一个问题——公司的本质是什么?公司的本质就是利润最大化,没有利润,什么都是假的。公司就是要用最小的消耗换取最大的利润,而不是培训机构或者慈善机构,不是让张小兵来学东西的。张小兵来公司最主要的目的应该是给公司创造利润,这才是他要做的。同时作为一个成年人,在社会上“混”的首要需求是什么?应该是生存。怎么生存?靠自己的努力挣钱。被聘用的人会为公司创造利润,既然他创造了利润,他就有权利去分一杯羹。所以这一点是徐忆然战胜对手的一大杀手锏。他非常明白自己现在的处境——自己是一个应届毕业生,没有经验,公司可能要为自己缴学费,等等,但是他有自己的底线,那就是能活下去,能自己养活自己!请你也要注意了,不要说我是来学习的,而一定要摆正自己的位置,要为公司创造利润。对于软件开发的了解,张小兵还停留在以前的“美式牛仔英雄主义”软件开发阶段,就像刚刚出道的Google一样,靠着两个高水平的程序员,在仓库中就能写出令人惊叹的程序代码。时代变了,方式、方法也改进了。连3岁的孩子都知道,在这个人联合起来力量才更大的信息爆炸时代,软件的“美式牛仔英雄主义”已经没落,取而代之的是团队合作。一些软件行业大鳄的员工数在2000以上,在全球各地30多个国家都设有开发部门的分支机构,每个国家的开发团队都由不同语言、不同宗教信仰、不同肤色和不同生活习惯的员工组成。他们经常为了一个大型软件项目一起奋斗,不讲求团队合作而依靠个人去开发,这个软件能成功吗?就算你凭借自己的能力最后开发成功了,你得花多少时间?等到开发成功时,该软件可能已经不适合这个业务了。现在的社会就是“先进来的喝汤,后进来的连水都捞不着”,你还能分得到这个行业的第一杯羹吗?在这一点上,徐忆然还是比张小兵强,他对软件行业的了解相对比较清楚,充分认识到团队合作对于软件开发、软件企业的重要性。所以他能最后战胜张小兵,顺利被公司聘用。1.2 进入公司的第一件事情——“站队”

以前听过排队,“站队”接触过吗?没接触过也没关系,只要明白在公司里一定会有“站队”,而且这种“站队”一定不能和上学时的做操站队相提并论。两者是有本质区别的。这里所说的“站队”就是跟领导。不管是什么公司,大到国际大公司,小到只有十几人的公司,几乎都有代表不同权力的两派,当然形势复杂的也可能会有更多的派系。各派系分别由不同的领导掌权。公司的高层就是维持权力和利益的天平,他们会通过上层的调控来保证各个团队的权力和利益基本都是均衡的。作为新人的你面对这种情况时该怎么办呢?

显然,你也是要做好“站队”准备的,因为你别无选择。不管你是出于什么态度,欣喜若狂也好,不情愿、不屑也罢,在这个环境下,你终究还是要被执行“一切行动听指挥”的潜规则。有人说:“我为什么一定要‘站队’呢?我就是不去‘站队’!我一个团队都不偏向,保持中立不就完了吗?”职场如战场,在职场上有这种想法不是太傻就是太天真。你觉得在权力争斗场上,这种想法可能实现吗?不“站队”,也只能存在理论上的万事大吉,当你遇到问题的时候,或者犯了错误的时候,谁来出手相助?命好的还能大事化小,小事化了。命不好的呢?已经“站队”的人怎么看你都觉得你像是另外一边的人,然后开始夸大其词、口若悬河,你再有能耐也只有一张嘴,就只能哑巴吃黄连了!为了降低风险,为了你能在这个职场、这个特殊的环境中生存得更好、更久,你必须“站队”。

对我们程序员而言,“站队”还是相对轻松的事情。因为软件行业具有特殊性,一般情况下,人事部门的人是无法进行技术方面的面试的,所以一般的技术团队都采用一个固定的模式招聘员工:哪个团队需要人手,该团队的技术负责人或者代表就去面试,人事部门的人只会在技术人员面试过后和应聘者谈一下工资和福利情况。这样招进来的人也基本上都被放入面试官所在的团队中,因此在面试的时候,你已经基本上知道自己以后的老大会是谁了,也就减少了“站队”的尴尬和风险。案例1.2徐忆然通过面试后,按期到公司报到。办理了入职手续后,他被安排在田光军所在的项目部——教育软件项目部。该部门是专门为教育局、中小学等单位提供信息技术解决方案的。A公司还有一个企业软件项目部,该部门是专门为一些公司提供信息技术解决方案的。企业软件项目部的领导是公司技术副总监——耿笃。他已经在公司待了6年,比田光军还长2年。虽然他在职位上比田光军低半级,但是在老总面前,因为工作年限等资历的关系,说话的分量一点儿也不比田光军差,所以田光军和耿笃在暗地里相互较劲儿。徐忆然刚刚进入公司不久,对眼前的形势并不了解。作为新人的他虽然在面试的时候说来公司是为了养活自己,但是暗地里还是抱着学习的态度。所以他经常在做完本职工作之余,积极向公司的技术人员学习、取经。不可避免地,他和那些被取经的技术人员混熟了。从分工上讲,教育软件项目部和企业软件项目部的工作差不多,但是企业软件项目部有一个历来不成文的优势,那就是企业软件项目部是新技术的试验田。公司所采用的新技术都会先在企业软件项目部试用,然后再进行新技术推广。徐忆然对技术有天生的敏感性,特别喜欢研究一些新技术。当他在取经过程中发现企业软件项目部总是在研究一些新技术的可行性时,他欣喜若狂了。终于找到了目标的他经软件项目部的同事取经,有的时候还参加他们关于新技术的讨论。他和企业软件项目部的技术人员也是一点儿都不见外地称兄道弟,还经常和他们开玩笑说要搬过去工作。因为两个部门的办公室就在一层楼的不同楼区,中间使用玻璃隔着,所以田光军经常能看见徐忆然的一举一动。刚刚开始的几次,田光军也不在意,认为徐忆然是新员工,是好奇心使然,但是时间久了,他发现徐忆然依然没有改变的迹象,工作一完就往企业软件项目部跑。田光军找到徐忆然谈了一次话。田光军(以下简称“田”):你最近工作不错,基本上都能按时完成,有的还提前完成了啊!对于一个刚刚毕业的学生来说进步很大啊!徐忆然(以下简称“徐”):现在的工作都是一些原有功能的小修小改,这个不是太难,自己查查资料,问问同事,基本上都能搞定。田:在这个团队里感觉气氛怎么样?徐:气氛不错啊!大家都互帮互助。如果能再加入一点新技术研究就好了。田:那么你觉得怎么加入呢?徐:如果能和企业软件项目部那边一样就好了。他们的一些新技术的工作对我真的很有吸引力,而且对我们部门也有好处。田:是吗?那么你怎么想呢?徐:我在这个部门还没做出什么成绩呢,还能怎么想啊!我肯定是要先在这个部门做一点成绩出来让大家都看看了!田:有信心就很好,好好干!徐:谢谢!还希望公司能培养我呢!田:嗯!去工作吧!徐忆然出了田光军的门后,倒吸一口凉气。从此,他对于自己感兴趣的新技术也都是自己研究,再也没有去过企业软件项目部。从上面的对话中你看出了什么吗?程序员基本上都是很正直的,对新技术都充满了新奇和向往,但是在一些场景下,不管你是否对这些事情很有兴趣,你都应该做到《三毛从军记》中三毛说的那句话:不该看的不看,不该问的不问。徐忆然完成工作后去企业软件项目部和同事研究新技术,从原则上说,他没有一点问题,只是做了一个程序员应该做的事情,但是程序员也生活在环境中,工作在环境中。徐忆然所在环境的基本情况是两个部门之间有嫌隙,每天都在争夺利益和权力,他还整天到对方的部门去研究新技术。就像是打仗的双方,身为士兵的你还去另外一边讨论应该怎么布阵,怎么使用新式武器,是不是天方夜谭?就这一点,就足以让田光军给徐忆然小鞋穿了。田光军何尝不希望把新技术研究工作放在自己的团队呢?但是上面我们不是刚说过“先进来的喝汤,后进来的连水都捞不着”嘛,他不止一次向老总暗示或者明示过,自己的团队也有能力做新技术的研究工作。老总以前每次都是以企业软件项目部已经开始做这些工作了,他们也有了一些经验,放在田光军那边还要一切从头开始为由搪塞过去了!田光军仍然不依不饶,在一边努力做好本职工作和新技术研究准备工作的同时,一边继续向老总暗示这个事情。老总也看到了田光军的努力,受不了田光军的请求攻势,已经松口:到时机成熟时,田光军也可以试着开工了。这个时候,要是徐忆然再在研究新技术这个事情上出点乱子,自己的辛苦努力眼见就要实现的一丝希望就要变成绝望了。田光军当然要极力阻止这种事情发生了。感觉到了可能不妙的田光军准备看看徐忆然的工作情况,不行就先下手为强。幸好田光军没有直接那么做,而是找徐忆然聊了一下,在聊天的过程中刺探徐忆然的想法。徐忆然的反应也不错。可以说徐忆然是在职场的鬼门关转了一圈。徐忆然在最紧要的关头选择了站在田光军一边,而不是受田光军的诱导要转去企业软件项目部。如果他选择了转部门,那么他永远也等不到转部门的回复单了,等待他的只有卷铺盖走人的通知书。田光军怎么可能让他转过去呢?如果徐忆然转过去,不仅泄露了自己部门的“秘密”,还反映了他带队无方啊!连自己招聘进来的人都要走,老总怎么看待他的工作呢?职场上利益关系太多,但是徐忆然还是保持了冷静的头脑,化解了这场谈话危机。1.3 第一次写代码的困惑

对于程序员而言,写得一手可读性强、执行效率高的代码是每个人梦寐以求的。代码是程序员工作的根本,也是程序员赖以生存的根本。看一个程序员水平的高低,首先就是要看他代码写得怎么样。只有代码写好了,才能往技术型金字塔的上层发展。那么,怎么样才能练就写得一手好代码的本领呢?唯一的方法莫过于在真实的项目中不断地锤炼。没有实战,整天读书看报、纸上谈兵,想要写得一手好代码也只能是一种奢望。

既然实践是唯一的检验标准,那就在项目中不断地犯错,不就能锻炼自己写代码的水平了吗?你想得太简单了!现实往往是残酷的!在开发项目时,客户是不会把你的身份定义为新手的,也就是说,是不会允许你犯错的。在客户看来,你的身份只有一个——商业程序员。什么叫商业程序员?商业程序员可以简单地理解为为了利益而开发软件的人。公司不是慈善机构,也不是培训组织,不能容忍你练手、犯错。公司是商业性组织,以营利为目的。你开发的项目也都是公司接下的商业性项目,它的主要目的是挣钱,赚取利润,而不是让你拿来练手的。你在项目开发中犯错,也就意味着公司要给你的错误交学费,就会有经济损失。所以如果你犯错,公司是不答应的。在这一点上,程序员和公司追求的目标是一致的。

一个目标往往总是由两个相互背离的共同体组成的。商业程序员除了追求自己开发的代码质量好外,还要掌握一样必不可少的技能,那就是控制开发时间。在这一点上,商业程序员的追求往往和公司的追求形成两条永不相交的平行线!公司的目标是追求快速、控制成本,恨不得今天接到项目,明天就出产品。公司还有一个不会给你提供充足时间去完成项目的原因是客户。特别是对于一些开发项目型软件为主的公司,客户要求在多长时间内完成,公司就必须保证在这段时间内把项目开发完毕,并且上线。第一,“客户至上”这条原则在哪里都一样适用;第二,不按时上线,公司将蒙受经济上的损失。所以,怎么样在有限的时间内把代码写到最好,这是一个商业程序员必须掌握的技能。

新人往往在质量和时间上的把握不到位。原因有很多:本身水平还未到家;不熟悉本行业的业务性质;过于努力争取表现自己,等等。案例1.3进入公司后,徐忆然经过初期技术锻炼,已经具备正式上工作前线的能力了。田光军接到公司派下来的一个项目,该项目是为某一市教育局开发教育评价软件。客户对这个项目非常看重,也催得很紧,开发时间只有3个月,但是利润可观,所以公司也比较重视。田光军盘算了一下,找到了他下面的项目经理吴超。吴超是田光军一手带起来的,在以前的项目上也从没让田光军失望过。对吴超的能力,田光军还是比较放心的。田光军向吴超详细介绍了该项目的情况,并特别强调了项目时间紧、任务重的问题。吴超也是性情中人,立刻向田光军立下军令状:保证在3个月内完成任务。吴超也借此机会向田光军提出了项目组加人的要求。田光军也明白此次项目的压力,便决定把新来的徐忆然调入吴超的项目组。这样既解决了吴超的人手紧缺问题,又能让徐忆然在正式的项目开发中得到锻炼。徐忆然就这样得到了第一次上前线实战的机会。听到消息的徐忆然对此兴奋不已,自从来了公司,自己上班就是在改代码中度过的,整天盼星星盼月亮地祈祷能早日去项目组实现自己的价值。这次总算是盼到头了。带着满腔热血,徐忆然雄赳赳、气昂昂地奔赴了吴超的项目组。经过工作分解结构(WBS, work breakdown structure),吴超把项目分解的同时也把模块分配到不同的责任人。吴超考虑到徐忆然是新手,就把难度较低的报表部分分给了他。接着吴超开始对项目组成员进行项目专项培训,把项目的业务要点、数据库表设计、项目中的注意事项,以及各个模块之间的业务接口、数据接口等都一一做了解释和说明。经过培训的徐忆然自认为这个项目还是蛮简单的,自己所负责的那部分难度不是太大。事情往往就是和预想的发展不一样。吴超让参加项目开发的人员自己排时间表,把自己负责的模块再细分,并且把每个人的时间表都写到团队的时间板上。徐忆然稍微思索了一下就排出了一个时间表,并放到了团队的时间板上。时间板上清楚地显示了徐忆然的开发过程:业务层代码—界面层代码—UI。吴超一看,直觉告诉他这里会有问题,便找了徐忆然谈话。吴超(以下简称“吴”):你为什么这么排呢?徐忆然(以下简称“徐”):我以前一直是这么做的啊,有问题吗?吴:我建议你倒过来排,先做UI,再做业务层代码和界面层代码。这样你在做UI的时候能熟悉一下业务,对业务有一个大致的了解,写代码也更快,更容易控制。徐:我感觉报表的业务不难,看过后就已经了解了,这样应该没问题的吧?吴:那么你试试吧,但是到了中途发现不行的话别硬来!徐:好,我会控制时间的。这场谈话下来,吴超就感觉到报表模块如要按时完成就需要赶工了。徐忆然明显是准备不足,还想极力地表现自己。吴超也是过来人,对付这种新手还是有经验的。一些人是非得掉进坑里了才能醒悟的,徐忆然就是这种类型的人。吴超作为项目经理,认为只要不太耽误工期,在可以承受的范围内,给徐忆然交点学费也是可以的。至少徐忆然还是一个比较好的苗子,这点投入也值得。就这样,项目正式开工了。徐忆然开始了他的工作。他的工作分为两个部分。一个是教育局查看所有学校相关数据的一张总报表,这个他排了10个工作日;还有一个是每个学校的详细报表,这个他排了7个工作日。徐忆然按照自己的排期计划,每天都在写业务层代码,不是遇到了数据库表字段理解错误的问题,就是遇到了业务计算出错的问题,写了将近1个星期,才把详细报表的业务层代码搞定。就剩下2天了,还有界面层代码和Html代码没写,徐忆然心想着这次肯定是大祸临头了。徐忆然放弃了双休日,自己加班。最后,徐忆然把页面写完了,也只是完成了功能,离成品还差得很远。图标不对,像素不对,格栅不能达到撑满页面的要求,在某些情况下会出现不应该出现的滚动条,等等,这些细节性问题都没有解决。徐忆然感到很困惑,心想着以前我也是这么做的,为什么这次就不行了呢?他决心不能就这样放弃,又忙了2天,问题依旧存在。无奈,他只能丢下面子去找吴超。徐:我按照自己的想法和流程去做了报表,结果是一团糟,我以前也是这样做的,为什么这次不行呢?吴:你以前是怎么样做的?徐:先设计数据库,然后开始代码开发,我都是从业务层代码开始往前台写,没有出现过现在的这种情况啊!吴:嗯!其实这里有一个比较大的问题你忽略了。以前都是你一个人做,那么你对所有的东西都很了解!现在,你先要理解别人的设计想法不说,还要讲求团队合作开发,除了报表,什么都不是你做的,虽然我们定义了接口,但是在开发过程中会有一些业务的变化,你没有理解完就开始写业务层代码,导致了不停的更改,业务层代码一拖,你页面也就来不及做了,最后你看见时间快到了,又一急,就更慢了。你不觉得你在写业务层代码的时候很吃力吗?徐:是有点吃力!那么就算先做UI,我觉得对了解业务的帮助也不是很大啊,到头来我还是要停下来了解业务啊!吴:这样做就不一样。你先做UI,就会去思考这个UI的元素是干吗的,以后用来做什么,我在程序中要怎么去实现。对这些问题你其实会在做UI的过程中潜移默化地去想解决方案和实现方式。你自己可能没注意到,但是肯定会去想这个!原因就在于不想给自己找麻烦。你一去想业务层代码的实现,就会知道要规避一些问题。这样你代码的bug也就少了很多。我再问你一句,业务层代码写完了做UI的时候,你是不是又觉得业务层代码不能完全适用于UI,需要去改业务层代码?徐:是有这种情况发生,我后面的2天就是因为UI的问题在改业务层代码。吴:你看,你不是在做UI的过程中想业务层的实现了嘛!这个项目还算好!你到现在拖了2天,调整一下自己的想法和做法,从UI往后做,争取在2个星期之内把这两张报表都完成。徐忆然垂头丧气地回到自己的位置上,开始返工。按照吴超第一次和他讲的那样从UI开始做起。虽然开始不怎么顺利,但是徐忆然发现自己确实在做UI的过程中会去想UI元素的作用,并且会预想好这个UI元素的显示方式,等等。经过了徐忆然的努力,虽然这个项目还是拖了2天才交测,但是他学会了应该怎么去写代码。应该说吴超为徐忆然交的学费没有白交!1.4 怎么判断公司是否适合自己?

俗话说:男怕入错行,女怕嫁错郎。由此可见,找一个适合自己的行业是多么重要。从现在的就业市场来看,入对行的首要前提就是选择一家适合自己的公司。

对于程序员这个职业来说,随着互联网行业逐渐归于理性,程序员对于工作机会的选择并不多。从公司的规模上讲,一般程序员的选择只是二选一:500人以上的大型软件公司或者50人以下的小型软件公司。那肯定有人问:50~500人的公司去哪儿了呢?这个就牵涉公司的人才机制问题。

对于500人以上的大公司,它们一般都是大型跨国软件企业,比如IBM、Oracle、Microsoft,等等。它们都有完备的人才引进和培养机制,不管是什么层次的程序员,对它们来讲都不是什么问题,就算是应届毕业生,它们也有相应的校园计划。只要应届毕业生对软件开发有“感觉”,稍加培养就可以上岗。大公司一般资源丰富,能力和耐心也一样都不缺,在薪资和晋升制度上都有完备的方案,所以这种公司不用担心找不到程序员或者出现“为他人做嫁衣”的尴尬情况。

对于少于50人的公司,它们的目标只有一个:生存。为了生存,它们会不惜一切代价。对这种公司来讲,其能力只能维持一定数量相对有经验的程序员,大部分还是没有实际开发经验的应届毕业生或者培训机构毕业的学生,但是对他们稍加培养就能拉上战场。不过这种公司更多的是在“为他人做嫁衣”。不是这种公司想这么做,这种做法实在也是无奈之举。一般这种公司人才机制不完备,薪资制度不健全,资源也不是非常丰富。俗话说:人往高处走,水往低处流。对于有经验的程序员,这种公司不管是薪资、晋升,还是潜力上,吸引力当然都不是太大。对于应届毕业生,那就不同了。这种公司就是一个理想的实践天堂,能在你没有实力的时候收留你、培养你,又会在你有实力后留不住你,是典型的“带薪实践性培训机构”。

对于50~500人的这种公司,它们正在做强、做大阶段,制度、能力、资源也都在改进和完善阶段,它们一般没有多少时间和“闲心”来培养自己的人才。它们更愿意实行“拿来主义”,宁愿多花点钱空降一个有能力的程序员,也不愿意从头开始培养自己的新人。对于新人,它们担不起“零经验”带来的风险;对于有上进心的程序员,它们也不能满足其对于职业目标的追求,所以这种公司其实本身也处于两难境地。它们一般作为有理想程序员的“跳板”,让你在小公司锻炼后再接着深造,从而能让你达到大公司对于高薪程序员或者管理者的要求。你现在处于什么阶段?你现在是什么级别的程序员?你认为你应该进入哪种软件企业?案例1.4徐忆然已经在公司待了快2个月,虽然到现在为止,工作有点磕磕碰碰,但是对于一名刚刚毕业的学生来说,总体表现还令人满意。这几天项目也不是特别忙,徐忆然想起了和他一起来A市找工作的同学刘昊。来到A市以后,他们就各自分头行动了。开始大家都忙着找工作,后来徐忆然开始忙上班,到现在为止,也就是自己找到工作时联系了一次。那时刘昊还没有找到工作,不知道现在他怎么样了。徐忆然还在想着呢,电话就响了。说来也怪,就这么巧。徐忆然一看电话正是同学刘昊打来的,嘟囔了一句:“还真是心有灵犀!”接通电话,那边传来了熟悉的声音。刘昊(以下简称“刘”):最近咋样了?徐忆然(以下简称“徐”):勉勉强强、马马虎虎吧!反正还有口气呢!你怎么样了?工作找到没?刘:别提了,正在发愁呢!不知道去哪个好!唉,选择也是一种幸福的痛苦。徐:混得不错啊!还有得选择。你倒是和我说说怎么幸福?又怎么痛苦了?刘:电话里一句两句也说不清楚,今晚有时间吗?大家一起吃个饭,顺便聊聊?徐:好啊!你约个地方,我一定到。刘:那就晚上7:30,世纪广场那边的烧烤摊吧!徐:没问题。晚上,徐忆然如约而至。刘昊已经在那边等着他了。刘昊看上去一脸的愁云,徐忆然感觉到了刘昊的困惑,坐下后直接打开了话匣子。徐:哥们儿,你这是咋的了?一脸惆怅!刘:别提了,还不是为了工作!徐:怎么了?还没找到工作?刘:那倒不是!人家吧,是找不到工作;我吧,是不知道怎么选择工作!徐:这么说你找到的不只是一份工作了?刘:嗯!两家不同的公司都给了我录用通知,我很迷茫!徐:这有什么好迷茫的!不要选择你认为最好的,而是选择你认为最适合的!刘:说起来当然简单了,做起来就难了。两家公司,一家是MS公司,牛吧!一家是不知名的小公司ZX。对于MS不要多说了,很多人挤破头皮都想进去的。ZX是一家做MIS的小型公司,技术人员也就不到50个人。两家的待遇都差不多。新人嘛,就是这个价!按理说吧,我肯定首选MS公司,但是呢,我听以前的师兄说,大公司做人,小公司做事。如果往技术发展呢,就先去小公司再去大公司;如果往管理发展呢,就去大公司。我呢,你也知道,还是比较适合搞技术,做管理也要35岁以后了,但是我现在又放不下MS公司的诱惑。烦啊!徐忆然陷入了沉思……徐:怎么说呢,作为同学,我只能提供意见!如果换了是我,我会选择我喜欢的那个,而不是最好的那个!最好的不一定适合你,但是你喜欢的应该适合你。因为兴趣和爱好是最好的指路人。刘:理是这个理,但还是那句话:说起来简单,做起来难啊!徐:不难!没听说过吗?面对敌人,不能手软。从我2个月的工作经历来看,我觉得作为一个管理人员,你首先要学会技术,要具备让人家服你的资本,否则肯定是要失败的,就算不失败,也很别扭。再说,就算现在进入ZX公司,你也不是就没机会进入MS公司了啊!以后的日子还长着呢!2天后,徐忆然接到刘昊的短信,得知刘昊放弃了MS而选择了ZX。徐忆然也没有觉得有任何的奇怪,放在他自己身上,也会是这个选择。

从上面的例子可以看出,我们对待自己选择的公司,应该抵制一切诱惑,冷静地选择最适合自己的而不是最好的。刘昊非常喜欢技术,小公司能提供他做技术的机会,并且能开拓他的眼界。虽然大公司也可以做到这些,但是小公司还是更适合技术性发展,因为小公司更讲求成果,可以给技术人员更多的自由。

小公司因为制度不健全,人手紧张,所以会把每一个人都当成全面手,什么东西都会让你去尝试着做。即使你不是全面手,它也会把你培养成全面手。在这段培养的过程中,你得到了历练,得到了前期知识的积累,更得到了开阔眼界的机会,从而让你能更清楚地认识到自己目前的技术地位,和自己对于技术到底需要的是什么!

大公司面临的问题就是“一个萝卜一个坑”。分配到哪个岗位就做哪个岗位的活,你可能会成为这个岗位上的专家,但是要想再继续往技术方向发展,一个岗位的专家级水平肯定是不够的,更需要的是全局的眼光和全面的知识。一般情况下,大公司的程序员一般都会在做一段时间的技术后开始往管理方向发展,比如项目经理、部门经理之类的。而小公司的程序员一般都会往技术方向发展,比如架构师,等等。

就因为如此,选择公司最关键的还是要注意公司给予你的东西是否和自己的目标吻合,或者可以为实现自己的短期目标助一臂之力!第2章 和程序员一起工作

计算机刚刚开始服务于人类的时候,软件开发是一个陌生的行业。这类工作也不是一般人能干的。那个时候的程序员对于非计算机职业的人来说,除了神秘就是古怪,包括神秘的职业、古怪的脾气、让人难以捉摸的行为,等等。成群的计算机工作者组成了一个神秘的团体。著名的黑客就在这些群体中产生。现在,软件企业几乎遍布城市的每个角落,软件园也是遍地开花。不夸张地说,你站在大街上随便抓几个人问问,10个年轻人中就有3~5个从业于软件行业。但是,有多少人能真正了解程序员呢?包括身为程序员的你,是否了解你自己?是否了解和你一起工作的同事呢?2.1 什么是程序员?

程序员有着极其特殊的职业性质。他们既不像生产线上的工人每天上班就是“三班倒”,永远做着同样的工作,又不像坐办公室的领导,整天除了看报表就是开会。如果要细细地比较,职业性质和程序员差不多的也许就只有诗人,以及词、曲作者了。说它们相近,原因是写程序和写诗、作词、作曲一样都需要灵感,需要创造性,需要那种飘逸、文思泉涌的感觉!

程序员很多都是高IQ低EQ的典型,工作能做到99分,但是人际关系可能只有可怜的10分。在工作中,他们不喜欢说话,不喜欢和人交流,只沉浸在自己的世界中,到休息日也很“宅”,都是“宅男宅女”,不喜欢外出。很多程序员都很孤傲并且自负,经常听不进去别人的意见或者劝告。说得好听,那叫执著;说得难听,那就是钻牛角尖、死心眼。在技术上,程序员也往往感觉自己的东西是最牛×的,不能解决的问题都是根本不应该考虑的问题;别人的东西就恰恰相反,是一堆垃圾,不能解决的问题都是问题,实在是连看一眼都觉得在浪费时间。还有一个奇怪和两难的现象:在工作中,自己的东西怎么测试都不会有bug,但测试别人的代码,一测试一大堆bug。不知道作为程序员或者即将成为程序员的你怎么看待这些现象?

程序员还有一个比较好的特质——不争帮结派,但是这群人往往太过于追求自由,喜欢独来独往、自行解决问题,所以也就不喜欢团队协作,更不喜欢使用奉承领导、溜须拍马、政治斗争等职场手段来提升自己的影响力。如果有人在团队中使用了这些手段来争取或者维护自己的利益,那将会引来其他程序员鄙视的眼光。案例2.1徐忆然来公司已经2个多月了,和公司的同事也都基本混了一个脸熟,和同组的同事因为经常需要合作的关系,有一些已经开始称兄道弟了。但是一直有一个问题困扰着徐忆然,他想起了他的同学刘昊,于是就打电话给刘昊谈谈心。徐忆然(以下简称“徐”):最近我感觉我们公司有些人很奇怪。刘昊(以下简称“刘”)(打断了他的话):别八卦了,行不行?徐:真的。你看,我已经进公司2个多月了吧,至少也混了一个脸熟,但是我们组有一个人从来没有和我正面说过一句话。每天上班,带上耳机就开始工作,所有的交流都是通过QQ、MSN或者E-mail进行的。刘:不奇怪啊!人家为什么要和你说话呢?徐:不是啊!你说大家都是同事,就不能交流交流?不过有一次倒是挺奇怪的,我们在一起开会的时候,他说了很多,而且还和领导争,场面那是相当“壮观”啊!刘:那他和你们还是有交流嘛!徐:不是这个意思!你难道不觉得他很自我吗?给人的感觉就是他的是最好的,而别人的都是垃圾!刘:你还不是一样,想当初大学的时候……徐(打断了他的话):得了,得了。过去就过去了!刘:又不让说了?!我和你说,这些都很正常。最近你看cnblogs的帖子没,上面就有很多关于程序员的讨论,和你说的一样!徐:真的?刘:我骗你干吗!有时间上去看看。这是程序员的通病,可能和程序员的工作环境、工作性质有关吧!你慢慢地也可能会变成这样的。当然最好不要变成这样,那会妨碍你的职业发展。徐忆然陷入了沉思,难道程序员这个职业就这么可怕?

其实也不完全是这样的,也有非常开朗的程序员。人们对程序员的印象变成这样确实是其工作性质造成的。程序员每天都在写代码中度过。程序就是代码,代码就是命令,计算机对于命令的执行永远只有对或者错,没有第三个答案。每个人几乎都会存在惯性思维。当你长时间接触只有两种简单关系的世界时,会失去一些处理复杂关系的能力和技巧。

程序员就是这样。他们认为程序的世界才是“极乐世界”,只有在那里才有他们的理想。程序世界是一个没有纷争、没有奉承、没有虚伪,永远只有公平和公正的世界。他们常常沉迷于程序世界中,这就是程序员工作久了,喜欢“宅”在家里,喜欢整天面对电脑,而不喜欢去接触人的原因。从职场的生存原则来说,这些问题都是可怕的。程序员应该清楚地认识自己,知道自己的优点和缺点,发扬优点,规避缺点。只有做到这一点你才能在职场上生存得更久。2.2 多听少说

现在的软件行业,80后是程序员的主力大军,但遗憾的是,管理权和决定权还是在70后,甚至60后手里。80后在软件行业虽然人数众多,但基本上职位都不高,就算是在管理层,绝大部分也是中管层以下职位,比如项目经理、部门经理等职位。

前几年,80后刚刚进入社会,80后就是“浮躁”、“靠不住”的代名词,而且80后标榜独立、自由、自我的行事作风,再加上程序员独有的性格特征,做事不拘小节,与公司的领导方针不合拍。这些都导致了很多的80后程序员在工作中不顺心。在诸多的不合拍中,表现最严重的就是太过于表现自己,话太多了。

进入公司急于表现自己,加上本身的工作经验不足,导致了新入行的程序员刚刚知道一件事情的开始就去猜结果,特别在一些正式的场合,比如会议等,在领导们都在场的情况下议论纷纷,甚至在没有让其表达意见的时候私自表达自己的意见,如果说得对,那倒没什么,但短时间形成的结论是程序员拍脑袋决定的,一个没有充足的理论依据和经过实践检验的结论能站得住脚吗?

很多人觉得莫名其妙,对于新人不是要多锻炼吗?为什么我自己主动提出来又说我的不对了?事情不是这样的,多锻炼固然正确,但也要看场合和机会。有没有听过一句话——站在巨人的肩膀上,你会看得更远?不是什么事情都要自己去亲自经历才能明白的。每个坑都跳一下,你什么时候才能成才啊?在职场上,你必须要学会不要跳入别人或者自己以前已经跳过的坑。轮到你说话的时候才说话,不要主动说话,更不要抢着说话。你抢着说话那是看低你的领导,觉得你的领导不如你,否则你为什么要在他说话的时候抢着说呢?放平自己的心态,你的领导之所以成为你的领导,那绝对有你需要学习的地方。案例2.2最近一段时间,徐忆然一直比较郁闷,原因就是他的项目经理吴超对他好像忽冷忽热的,重视程度相比以前也有所降低,说话的时候经常有一句没一句,爱理不理。徐忆然思来想去感觉自己并没有什么地方得罪领导啊,怎么吴超就这样了呢?和徐忆然同一项目组的程序员高见看见徐忆然满脸愁云,好像有啥心事,专门来搭话。高见(以下简称“高”):咋了?耷拉着脸,属驴的?徐忆然(以下简称“徐”):你才属驴呢!没啥事!高:别装了,我在社会上“混”了五六年,在公司都“混”了3年,还看不透你这个“菜鸟”?和哥哥说,碰到啥不如意的事情了?徐忆然想了一下高见在公司还真的是老资格,而且此人平时也没啥架子,虽然对工作有点吊儿郎当,但对自己确实还不错。他的脾气更决定了他不可能成为上司的“探照灯”。就和他说说吧。徐:最近老大好像不太理我。高:你刚刚进入社会,一些事情悠着点。娃是个好娃,就是太死心眼。徐:怎么说?高:你是不是最近没管住自己的嘴?徐:没有啊!我没说什么啊?最近老大老出差,我就和他打过一次照面,就是那次技术讨论会议啊!高:就是那次!你在那次会议上说什么了?徐:没说什么啊!就是老大刚说完话,我就表达了自己的观点啊!这有问题吗?高:你抢人家的话语权吧?徐:他不是说完了吗?高:我告诉过你,想说话的时候就咬咬自己的舌头。又闯祸了吧?你想想,别人抢你话的时候你会怎么想?何况是在讨论系统解决方案的时候,领导们都在场,还有别的部门的人,你那么多话干吗?难道老大不知道解决方案?徐:他不是说了大家都说说吧?高:唉!他不说“大家都说说”,一个人说了还叫讨论会吗?那不就变成解决方案展示会了吗?你还一个劲地说个没完,你让他说什么?你全部说完了,他怎么下台阶?你这不是拆台吗?这种时候你就应该保持沉默,点到你,你才能说,话也要控制在10句之内,尽量提一些不痛不痒的意见。这不是你出风头的时候,会后你找他,和他理论,随便怎么都行。你倒是好,顶风作案,能不注意一下你吗?徐:那现在怎么办呢?高:事情都发生了,就别管了!老大估计过段时间气消了也就好了。以后记住别多说话,忍不住时,舌头在嘴里打一圈,或者咬一下!

徐忆然又闯祸了。工作经验的不足和人际关系处理方法的缺乏导致了他再次犯错。有句官话叫做“少说话多磕头”。病从口入,祸从口出啊!说出去的话就如泼出去的水,那是收不回来的。各位要想说话的时候要时刻注意自己的表达时机和方式。2.3 和领导相处

在软件公司,程序员接触的领导一般都是由优秀的程序员晋升的。既然以前曾经干过程序员这一行,这些领导必然和一般的领导不一样了,毕竟之前的程序员工作肯定会给他们的性格脾气留下烙印,所以这些领导一般都有程序员的优点,也都具备程序员的缺点。看了2.1节后,你是否有所启发呢?

程序员能接触到的领导一般是项目经理,最多可能就是部门经理。这群人有一些共同的特点:在管理上,他们都刚刚接触不久,都处于管理层的中低层,都有往上面爬的冲动和欲望;在技术上,他们刚刚开始脱离或者正在慢慢脱离写代码的第一线,对于业务和技术的掌控虽然不能说是专家级别,但是水平也是有一点的。这就意味着,他们可能在管理上有错误的地方,在技术上你又不能欺上瞒下。

对于他们出现的错误,你作为他的手下,应该做好充足的准备来应对,而不是视之不理。这个时候领导最需要的就是理解和帮助,领导的晋升都是建立在其下员工的辛勤劳动上的,但是千万不要想着既然这样,我就吊儿郎当地过呗,反正领导靠我们。作为程序员的你在这个时候应该把握住这种难得的机会。在职场上,要想把领导先“干掉”,再自己去坐领导的位置,这个难度不亚于进行一次农民起义。所以你平常的工作就是做领导的左膀右臂,只有这样,你才可能有晋升的机会。

除了努力工作和成为领导不可或缺的人,还怎么和领导相处呢?以前做过程序员的领导一般都比较讨厌赤裸裸的奉承和溜须拍马的人。这和他曾经是程序员的工作经历密切相关。但是这也并不代表他就不喜欢听别人的好话和夸奖。要知道,只要是人,都是喜欢听好话、听夸奖的。那么问题就归结到一点上:怎么迎合领导。这对于程序员来说太难了,本身就不精于人际关系的营建,还要在奉承或者拍马屁的时候考虑怎么样才能让领导既舒服又自然,真是强人所难啊!但是千万不要说自己不行,这就是“混”职场的现实,也往往是关键。这里再次印证了一句话:环境不是为你一个人准备的,不能适应就将被淘汰!案例2.3徐忆然自从上次因为抢着说话得罪了项目经理吴超之后,一直在留意吴超对他的态度。他总是感觉最近吴超对他有点意见,看来自己这次的祸确实闯得蛮大。不管怎么样,确实是自己做得不好,总得找一个机会挽救一下吧!徐忆然冥思苦想了很久。请吃饭?吴超好像不是那种类型的。直截了当地承认错误?也不行,会让吴超有种被看低的感觉。说好话?好像可行,但是太肤浅,太小儿科了!什么法子都想过了,好像什么都不行,但事情还是要解决啊!最后徐忆然决定还是使用最简单、最省钱,也可能是最有用的方法:说好话。那天部门经理田光军请客吃饭,因为下午还要工作的关系,所以吃的不是正餐,而是简单的自助餐。徐忆然瞄准了机会,在田光军一坐下来就找了高见坐在田光军后面的那张桌子旁。徐忆然好像在不经意地和高见讨论最近的项目问题,其实这些都是徐忆然有“预谋”的。徐忆然(以下简称“徐”):最近项目好忙啊!高见(以下简称“高”):是啊!忙得老婆都快跑掉了!田光军听见有同事在谈论项目的事情,作为部门经理,他当然是非常关心的了。徐:是啊!不过还好老大体贴人啊,前期的WBS做得真的不错,让我们没有陷入模块之间接口定义的麻烦中。田光军微微一笑。高:嗯!这个我们倒是确实省了很多时间。徐:老大还亲自为我们解决了那个报表的大数据量问题,又让我们这些“菜鸟”学到了一招。高:优化后确实不错,否则这个报表出来得太慢了!徐:是啊!报表最后的显示也小小地改动了一下,让图示更清楚了!老大他还真敢改!高:客户的要求往往不是最好的,所以有的时候确实需要稍微改一下!徐:这个项目虽然忙了一点,但是还是不错的。能跟这个老大真好啊!学到的挺多!高见眼睛一眨不眨地看着他,心想今天徐忆然是怎么了?一个劲地夸吴超?!这个时候,坐在背后的田光军满意地微笑了!作为部门经理,他乐于看到部门的同事和谐相处和共同进步。

从这个案例中,可以看出什么?徐忆然为什么要在田光军面前,而不是在吴超面前说这些话呢?而且还是和同事闲聊,而不是直接和田光军说呢?这些都说明了什么呢?

徐忆然在这次谈话中其实夸奖了吴超三点:第一,项目管理不错;第二,技术不错;第三,熟悉业务。如果他的这些话直接和吴超本人说,会产生多少效果呢?可以肯定基本无效!但是和田光军说就不一样了,田光军是吴超的领导,而且吴超还是田光军一手提拔起来的,你说吴超做得好不就是间接表扬田光军慧眼识珠吗?而且大家想想田光军会不会把这个事情和吴超说,或者从侧面表扬吴超?他肯定会。因为告诉吴超对于田光军而言是一种管理的激励手段,但是对于徐忆然而言,就是翻身的资本啊!

徐忆然没有按照俗套去请客吃饭,或者承认错误去化解和吴超的嫌隙,而是旁敲侧击地通过田光军的口来间接说明吴超的优秀,这一招“一石二鸟”,效果的确不同凡响!2.4 忍耐,要有底线

说了那么多程序员适应环境的技巧,好像都是在告诫新入行的程序员需要忍耐、需要冷静。是不是觉得新人就要毫无反抗地被剥削、被压迫呢?不是的。作为新人,吃亏那是分内的事情,不公平也是应该担待的,但不是让你毫无目的、毫无反抗地去承担,承担需要一个度。

不管是在社会上,还是在公司里,都是在特定的环境中做人、做事。做人和做事最重要的就是坚持原则。原则就是一个度,一个分割你是否需要采取行动的底线。

在原则之内,坦白地说,作为新人,你还没有足够的资本和别人叫板,所以息事宁人可能是最好的选择,能忍就忍吧!性格倔,那就不妨阿Q一下,吃亏就是占便宜。再想不通?那就再想一下,等你成“老油条”了,你可以欺负回来。但如果有人不识相,把你作为新人看成他欺负你的资本,并无视你的原则,一味地为了私利而践踏你的底线,那你就不用也不能再让了。你一味的谦让只能招来那些无视你原则和底线的人的鄙视。在他们眼中,欺负你那是应该的事情,你也将成为软弱的代名词。“软柿子”,你说谁不想多捏一下呢?

对付那种无理取闹、无视你原则的人,最好的办法就是反抗。反抗除了能威慑你的“敌人”以外,还能排解工作的郁闷、提起工作的精神、提高工作效率。看来反抗是“杀人威风、职场横行”的必备良药啊!是不是又会有疑问了?如果“敌人”是领导怎么办?在程序员这个环境中,领导很多时候还是比较识相的。当然林子大了,什么鸟都会有!也不能排除有这种领导存在。如果真的碰上这种领导,你觉得你跟着他对你有帮助吗?有帮助,你就忍着;没帮助,那你不妨也试试反抗,大不了最后就是走人嘛!案例2.4徐忆然真的碰上纯属“恶劣”的领导了!好在这位领导不是他的直接上司。话说徐忆然在吴超手下越做越顺,吴超也看到了徐忆然确实进步明显,就把一个项目的后期管理工作交给了徐忆然,同时交给徐忆然的还有和客户之间的沟通事宜。徐忆然做得不错,吴超也比较满意,但田光军不这么想,他觉得徐忆然毕竟还年轻,对于项目的掌控还有所欠缺,还是要找一个相对成熟的人来处理这个项目。没多久,公司就空降了一个30多岁的人——毕鸾,很奇怪的是竟然没有人知道他的背景,就连他以前的工作大家也不是很清楚,但是大家都知道他的职位——项目经理,进入公司主要接手徐忆然暂时管理的项目。吴超没办法,田光军的命令不得违抗啊!徐忆然也比较郁闷,刚刚有机会就被剥夺了,但吴超都没办法,他就更没办法了。虽然不想交,但身不由己。好在吴超向田光军申请到1个月的项目交接期后,徐忆然还要回到吴超的项目组。田光军也同意了。在交接的过程中,徐忆然的表现还是挺专业的,除了把文档和代码全部交接以外,还把客户的喜好等这种项目技术之外的事情也都告诉了毕鸾。毕鸾却表现得非常不耐烦,而且业务也不想学,理由是那个项目开发得实在太垃圾了。徐忆然无奈,只能慢慢地和毕鸾沟通。项目的需求方还在不停地对项目提出修改意见,从公司利益出发,项目需求方提出的修改意见还是要改的,徐忆然也没办法,为此还加了好几次班。但是徐忆然发现毕鸾还是无动于衷,照样不学业务。徐忆然感觉再拖下去也是徒劳了,硬是撑了1个月,时间一到,徐忆然就回到吴超的项目组。徐忆然回到吴超的项目组后,原先他管理的那个项目的客户还在提修改意见,但是因为毕鸾对项目的业务和代码都不熟悉,也不去学习,所以更新越来越慢,而且问题越来越多,客户越来越不满意。终于有一天,客户投诉到了田光军那里。田光军非常气愤,先叫来毕鸾。田光军(以下简称“田”):为什么客户都投诉到我这儿来了?毕鸾(以下简称“毕”):我刚刚来,对项目业务不熟,代码不熟。徐忆然又不教我业务,也不教我系统的部署。田光军很气愤,一个电话叫来了徐忆然。徐忆然一看毕鸾也在,大概明白了什么事情。田:你怎么回事啊?为什么不教毕鸾业务和系统的东西?徐忆然一脸的无辜,发起火来。徐忆然(以下简称“徐”):我哪里不教他了?他自己不学,这个时候倒怪起我来了!我天天教,他说系统太烂,不想学。我都为了那边的需求更改加了好几次班了,你没看见加班单啊?你还想怎么样?从1+1教起?田:你不是说徐忆然不教你吗?毕鸾无言以对。徐(发起更大的火来):既然我交出去了,那么我肯定会全部交出去。他肯定也是要自己学会走路的,我不可能一直留在那边。吴超那边也有事情啊!他自己不学,现在来怪我?!自己解决吧!解决不了,工资留下一半给我,让他走人!田光军也发现自己错怪了徐忆然,不说话了。毕鸾更是看着田光军无话可说。这时该项目的业务人员正好过来,看见这个场面,便出面解了围:“这样吧,先让毕鸾熟悉一下!徐忆然那边本身也有事情,我们不能耽误他们那边的工作。1个星期之内,毕鸾把版本更新。”毕鸾没办法,理亏,谎言又当场被戳破了,只好答应了事。

这个案例说明了什么?原则和时机对吧?原则是要遵守的,但不是每次别人践踏你的原则你都能反击的,必须要有合适的时机,而徐忆然就抓住了这个绝好的时机。

徐忆然在公司一直都以一个老好人的形象出现,为什么这次会发火呢?而且是当着田光军的面发那么大的火!这就是徐忆然聪明的地方。他进田光军办公室的时候看了一下在场的人员,毕竟他之前和毕鸾相处1个多月了,毕鸾的性格和为人他都清清楚楚,所以已经猜出来了可能会发生什么事。徐忆然发现,如果这次让毕鸾得逞,那么以后自己将永远都帮他受苦,功劳却是他拿。当然不能这样了,所以他选择了反抗。加上田光军之前是被毕鸾蒙蔽的,毕鸾的印象分已经失去了,徐忆然就算有过激的行为,田光军考虑到自己错怪了徐忆然,也不会太怪罪他。这个时机是不是抓得很好?既让人知道自己不是好欺负的,又能不让领导怪罪自己无理。2.5 学会当第二名

在软件公司,程序员往往因为无法自如应付复杂的人际关系,而在管理自己的才能和人际关系上表现得十分欠缺考虑。一般的程序员认为只有完全表现自己的技术实力,把自己最好的一面展示出来,努力去争第一才是令自己的位置最安全、最稳固的方法,但现实未必如此!这种程序员往往得不到升职和加薪的机会,弄不好还会引祸上身。

第一名的预期和现实往往是正好相反的。升职加薪就不说了,还非常有可能是最危险的。你的上司会在你的优秀表现下时刻感受到你的压力。换句话说,你时刻威胁着你上司的地位。第一名肯定是被经常曝光在聚光灯下的,但是在公司的复杂环境中,站在聚光灯下的应该是领导而不是你。当你一直保持第一名的时候,你抢走了领导的风头,领导不防你还防谁?虽然程序员的领导大部分都有着程序员的习惯、特点,但是谁不喜欢被人关注呢?谁不想自己的位置稳固一点呢?所以在你没有当最大的领导前,你不能争第一,第一应该留给你领导。那你应该怎么办呢?争不了第一,就争第二吧!

不要看不起第二名。第二的好处绝对不亚于第一,某种程度上还会比第一强。首先你是第二名,你就把第一留给了对手或者领导:留给对手,时间长了,对手难免成为领导的“眼中钉”、“肉中刺”,你就可以“煽风点火”、“借刀杀人”了;留给领导,那是名正言顺,你也可以在不经意间奉承一下领导。作为第二名,别人也不会太注意你,你可以默默地成长,等待真正的机会。领导肯定会注意你,他会觉得你对他没有威胁而且还能干活。如果有机会,你觉得领导是会把这个机会给你这个不会威胁到他的人,还是给一个一直在威胁他的人呢?

在一个小组中如果你是第二名,那你应该庆幸。你还有一个别人无法得到的好处和优势,就像在单位中的副职一样:不用你回回都出去当出头鸟,向领导为自己的下属争取福利和机会,也不用负多少责任,这些领导都帮你担待了,但是如果有好处,那绝对少不了你的那一份,而且也不会比第一位的领导少多少。这不就是一石二鸟、一举两得吗?何乐而不为呢?案例2.5徐忆然回到吴超的项目组后,一直在吴超下面的项目之间游走,自嘲是“救火队员”。过了半个月,终于在吴超下面的A项目留了下来当副手。A项目是市重点项目,吴超把它交给了他下面的曹军管理具体事宜,徐忆然辅助曹军。A项目除了和客户沟通客户需求以外,开发和过程跟进都由曹军一手管理。曹军的技术着实不错,但处理人际关系的能力就比较差了,而且非常自负,他经常觉得自己才应该是这个项目组的项目经理,在吴超下面是屈才了,这次吴超把A项目交给他,并且把徐忆然给了他,他觉得机会来了。曹军在项目上表现得兢兢业业,对项目的管理也是井井有条,但是在部门的周会上,他总是抢在吴超之前对这个项目发表意见,而徐忆然却只听不说。吴超看在眼里记在心里,虽然表面上不说什么,但是心里却不是很舒服,打着自己的算盘。曹军管理的项目连续3个月在公司内开发效率排第一。吴超发现最近曹军好像非常得意,在谈话中很少谈及徐忆然的帮助,也很少谈及团队的配合,谈论的好像都是他自己一个人的功劳,而且田光军好像也开始注意到了曹军,吴超第一次感觉到了曹军带给自己的危机。这周的周会上,曹军还是照往常一样抢着吴超的机会大谈特谈他对这个项目付出的心血、自己对这个项目的控制方法,还抱怨了因为无法和客户面对面地交流,无法获得客户的一线需求,导致了项目的频繁返工。徐忆然一看情况不对,赶紧帮忙解释了原因,并且为吴超打了圆场。加上吴超是田光军的“嫡系部队”,所以田光军也为吴超找了一个台阶。吴超却记住了曹军对自己的评论。没过2个星期,吴超接到一个新的项目,曹军接到了吴超的调令,作为普通程序员去开发这个新项目,原来的A项目由徐忆然接管。原因是新项目没有多少可用之人,同时吴超也需要多锻炼下面的人,所以曹军不能一直当管理人员,徐忆然等也应该有同样的机会。曹军认为凭自己展现出来的技术实力,过去也至少是个角色啊,到最后竟然是“普通程序员”这个结果,他完全不相信,去向田光军投诉,却得到了田光军支持吴超决定的答复,曹军一下愣在那里了。虽然没办法,但是领导都已经同意了,那也只能去了。

纵观这次换岗事件,曹军在A项目上的表现真的是可圈可点,最终却换来一张降职的调令。这是为什么呢?原因还是在于曹军太爱争第一了。那么徐忆然呢?他除了认认真真、兢兢业业地完成自己的工作以外其实没啥表现,一句话都没有多说过。和曹军比起来,徐忆然知道应该把功劳先给领导,再给自己,所以在吴超被曹军抱怨时出来打圆场。他宁愿做一个隐藏在领导身后的人,却在最后得到了升职的调令,可见徐忆然在对职场的认知上相对曹军确实要棋高一招啊!2.6 充分占有资源

要想在公司混得久、混得好,最好的方法不仅仅是努力工作,也不仅仅是周旋于权术,而是占有资源。对于软件公司,它的资源就是项目、客户、线上服务器、团队人员、代码和文档,等等。这里面有你经常接触的吗?有,就想办法占有它;没有,就尽量去接触,然后占有它。

你们公司从来就没有写过项目开发文档和管理文档?你们的老总是一个软件开发的门外汉?如果这两条都符合,你千万不要对此提出意见,因为这是你的领导在争取资源的计策。一些小型软件公司,它们不需要最新的技术,就算是使用的技术也没有多高的技术含量,其技术管理型领导的领导水平本身也很一般,唯一能依仗的可能就是他的业务知识和对项目的熟悉程度。如果把什么都用文档表明,就等于他在老总面前失去了存在的必要性。所以你的领导才会使用占有项目开发的方式来作为自己的资源,使他能在公司生存下去。

你的领导做到了让老总不放弃他、依赖他,那么你怎样做才能让你的领导不放弃你、依赖你呢?也许你可以和你的领导学学。

你当然不能和你的领导去抢这些资源了,但是领导是没法什么都一把抓的。级别不同,需求也不同。一些资源对于领导可能是鸡肋,但对于程序员或者项目经理那就是“法国大餐”。项目经理和程序员一般最直接接触的是项目,项目又分代码、服务器和人。你只要保证这三样在手,就可以高枕无忧了。代码,领导是不会看的,更不会写,但是项目的实现最后都是要靠代码的堆积才能运行的。生产环境,主要是服务器,领导也不会去管,这些原本都是运维人员的活,但在一般的小公司,不要期望有高水平的运维人员,所以服务器最后还是会由项目经理或者程序员代管,再加上软件行业“一夫开发,万夫莫猜”的特殊性,没人能说清楚生产环境的配置方法。代码和服务器多花钱请个牛人、多用点时间也许还可能搞定,但打仗的大忌就是临阵换帅,项目也是如此。如果你手上有一个正在开发的项目,你的领导肯定会对你有所顾忌和依赖,不管你是项目经理还是普通程序员,只要手上有活干就安全。换一个正在工作的人可不是那么容易的,招聘,培训,熟悉公司、项目的成本和用你的成本比起来太高了。案例2.6徐忆然在和曹军的竞争中成了最后的赢家。徐忆然靠的是做事的成熟和对领导心理的把握。进攻是成了,守就没有那么容易了。徐忆然没有这方面的经验,也觉察到了因工作的变化随之而来的压力和困难。他决定找一个人谈一下他的问题,并最好能规划一下自己的下一步动作,好稳固他现在的地位。当然,他最先想到的就是他的同学刘昊。徐忆然(以下简称“徐”):怎么才来?都等你半天了!刘昊(以下简称“刘”):上下班高峰堵车。升官了?徐:那倒没有。就是现在的情况比较复杂。我刚刚成为一个项目的实际主管,但是名义上还是挂在我的项目经理下的,我只是负责这个项目的开发和日常管理工作,这个工作是我在和一个同事竞争中得到的。你说我应该怎么办?刘:那得看你的领导怎么想和怎么看了!徐:我的领导应该是让我负责这个项目吧!当然,首先我肯定不能威胁到他的地位,就算威胁到也不能让他的领导看出来,但我也要保全我的地位!刘:嗯!这就是你现在的处境?混得还行,没到死路!徐:你帮我想想怎么办!刘:这个还是挺难办的!不过还好处理!你应该和你的领导关系不错吧?徐:嗯!不然他也不会推荐我!刘:那就好办。你的领导主要在这个项目中做什么?徐:和客户交流,具体的代码都不负责。刘:那是不是剩下的都是你负责?徐:是的!刘:那不就明摆着了嘛!你的下一步就是抢资源!把你能拿下的项目资源全部拿下,但是不要拿你领导的那一份。一来呢,你可以表现自己;二来呢,你也稳固了自己的地位。在公司,资源是最重要的!只要你手上有资源,那么领导才会正眼看你,否则就别想!徐:抢资源?刘:对啊!什么代码、文档、服务器、团队人员等等通通拿下,这些都是你在公司立足的资本,但是你别搞小团队、土皇帝,程序员都不喜欢这个,你的领导也是程序员出身,都一样。徐:这个……好像比较难!刘:你本身就是项目管理人员,难什么?这是你分内的事情,你做了也不会抢了你领导的风头,你又能实际掌握资源,就等于掌握了自己的命运。如果你怕,你就要再保证你手上一直有一个在开发的项目。徐:这又怎么说?刘:你真是一点都不懂!只要你手上有一个正在开发的项目你就有一个让别人不给你小鞋穿的理由。每当有事情的时候,你总可以说:“我这里这个项目很忙!”这么一句话就全挡过去了!明白了?如果你没有项目,别人让你做什么你就得做什么,因为你比较闲。这样你就没有了主动权,这种情况下就算占有资源,公司真想开掉你还是比较容易的。徐忆然听后如梦方醒,看来下面的事情还需要好好地计划计划,在占有资源这件事情上自己和领导是在一个船上的,只是所属的区域不同而已。2.7 围魏救赵

记得在上小学的时候学过一篇文章《围魏救赵》,主要讲的就是魏国出兵攻打赵国,但是赵国弱小,打不过魏国,就向齐国求救。齐国的大将田忌听信了孙膑所言,使用围住魏国的办法让魏国退兵,从而救得赵国。这个故事听起来很简单,但这个故事的精髓是要好好学习的。围魏救赵是三十六计中相当精彩的一种智谋,它的精彩之处在于,以逆向思维的方式,以表面看来舍近求远的方法,绕开问题的表面现象,从事物的本源上去解决问题,从而取得一招制胜的神奇效果。

作为程序员的你,是不是有所启发呢?程序员在技术方面的思维通常非常活跃,但是在非技术领域,这种活跃通常是要打一个很大的折扣的。死心眼、钻牛角尖、不擅长处理人际关系、自负等问题都是非技术领域的绊脚石。在工作中,不是时时刻刻都在使用技术解决问题的,更多的是人际关系的沟通。“丑媳妇终归是要见公婆的”,该面对的问题也总归是要面对的。这种问题经常会暴露在程序员和上级的人际关系交流中,特别是意见不合的时候。

工作至今,经常会听到程序员因为不理解上司而抱怨,有的程序员甚至因为这些事情直接自己炒了公司的“鱿鱼”。这种事情本质上对于双方都是悲剧性的。我们应该尽量避免这种事情的发生,但是这种事情也不可能有根本性的解决方案,而且在发生这种事情的时候,也不会有根本性的对或者错,只是双方在看问题的方式和角度上存在差异:领导主要关心的是工作是否按时完成、产品是否可以按时上线等这些可以量化的目标;程序员往往关心程序是否写得足够健壮、是否有足够的时间来完成健壮的程序等。这样,上司和下属之间就有可能会产生矛盾。在软件开发领域,上司和下属的最大分歧在于工期和目标。上司认为工期是第一重要的,目标可以有商量的余地,但是必须在规定的时间内完成一个可以接受的目标,哪怕这个目标不完美都没有问题。对于程序员,唯一的答案就只有一个,程序是可用的,而且代码写得很漂亮。这个要求肯定是需要充足的工期的,所以工期是可以商量的,上司应该给予充足的时间来完成程序员心中的目标,最好是程序员自己指定时间。对于程序员来说,不能做到可用甚至完美的东西简直就是垃圾,一无是处不说,还浪费了很多的人力、物力,这种事情做还不如不做,而程序员又是固执的、偏执的、自负的,所以矛盾就此产生,并且处理不好就会扩大化,引起争执。

事情最后的结局一般都是遵循自然规律的:下属听从上司的意见去完成程序的开发,但是往往因为程序员得不到足够的工期,所以最后交付的软件版本很可能无法使用。其实这样的结局对公司、领导、程序员都不是好的结果,但是现实就是现实,而且在中国这个“畸形”发展的软件行业,这种事情在日复一日、月复一月地发生。那么作为程序员,你除了写程序,还能做些什么呢?

第一,不要明确地顶撞领导,包括对领导抱怨、发脾气等,但是必须在这种时候表明自己的立场和想法,语气要委婉,说话要坚定。当无法左右领导的决定时,必须及时表明自己需要做计划,然后需要会议讨论。

第二,准备计划和会议。这一点非常重要,特别是当你碰上不负责任的领导时。你得到领导的指示以后应该先表明一下你的立场,然后做一份详细的计划,这份计划必须包括工时和工期,接着召集会议讨论你的计划。注意,开会的时候务必让你领导的领导在场。你必须一条一条地详细说明你的工期安排和你设定的短期、长期目标。当然你也一定要把你领导的目标展示出来,必要时在你领导的目标上讨价还价,但是必须保证工期的时效性。咨询大家的意见,如果大家对你提出的目标不满意,那么在会上你就要再次表明你的态度和立场,和他们讨论一个大家都可以接受的目标和方案。注意,这个目标一定要让你领导的领导确认。案例2.7在田光军手下,除了吴超是项目经理之外,还有另外一些项目组在做软件开发的工作,肖磊就是其中的一个项目经理。吴超主要负责的是一些业务系统的开发,偶尔也会参加一些业务方面的基础系统的开发工作,但是肖磊和吴超正好相反,他更多的是负责一些业务方面的基础系统的开发,而业务系统做得相对比较少。公司主要给一家客户做一些OA软件。这家客户以前的系统不是出自一家厂商,没有一个统一的属于自己的工作平台,而工作又离不开这些系统。工作时经常需要在这些不是一家厂商的系统之间频繁切换,而每次切换都需要重新输入用户名和密码登录;数据的共享也不够,一些数据无法同步;也没有一个全站搜索功能,导致了有的时候在查找文件上需要花很多的时间。这些原因直接导致了工作效率的低下不说,还影响到系统的易用性。客户希望公司能帮忙解决一下。公司的领导在生意场上完全发挥了一个生意人的主观能动性,直接揽下了这个活,并想也不想就表示,1个月之内搞定。回到公司,领导转手就把这个事情交给了田光军,因为田光军的部门以前给这家客户提供过技术支持,并且开发过软件,双方合作也不错。在领导看来,由田光军接手,并且限期1个月完成是合情合理的。田光军考虑了一下,这些技术相对而言还是偏重于业务方面的基础系统,给肖磊比较合适。田光军马上就叫来肖磊,并说了这件事情,然后让肖磊按照客户的需求排出计划来。因为以前做过这家客户的工作,所以相对而言肖磊对这家客户现在运行的系统不能说了如指掌,基本了解还是有的。为了安全肖磊还是花了2天时间和客户沟通确认,最后排出一个计划,但是这个计划的工期需要2个月左右。在时间上肖磊觉得已经无法再挤了,他只好将计划交给田光军。田光军一看,这个和领导要求的时间相差太多。他马上叫来肖磊,和他说这个排期的问题。田光军(以下简称“田”):2个月太长了,交上去肯定不行的,要想想办法。肖磊(以下简称“肖”):时间已经不能再挤了,这个工期已经是最短的了。田光军想,工期是没办法了,近期公司上层领导都在搞“政治斗争”,这件事情要是做不好可能会出问题。如果时间不够,那么目标是不是能改呢?领导只说1个月最好,如果又没说1个月时间做出来的东西确保能用,也没说1个月具体能做多少。花1个月的时间做一个“残缺版”出来,先上线,为以后争取时间,再花时间去完善这些功能,这样既能交差又能赢得时间。反正领导看的是最后是不是上线了,对于是不是能用、上线了多少一般情况下是不会去干涉的,而且以前就有过这种做法。田(思索后):那么我们是否能在目标上做做文章?肖:这个没意义,上去一个不能用的东西,那还不如不上,浪费资源、浪费金钱嘛!田:那完不成任务也不行啊!你看能不能这样,我们先做一个不完全的版本出来,先上去,让客户体验一下有限的功能,这样我们就能赢得一些时间。肖:那还不是在浪费时间吗?这个关键是没意义啊!田:这样吧,我排一份计划,到时候我们再商量。田光军按照肖磊排的计划,降低了目标,排出了一份25天能完成的计划。这份计划不是完全的计划,只是完成每个目标小小的一部分,但是全部的功能都有提供。这样在客户那边也比较好说,对于领导也比较好交代。田光军还是叫来了肖磊,商量这件事情。田:这是我排出来的计划,你看一下。肖(看过以后):这个计划能做吗?这些功能根本就没做好,这样不就是在欺骗客户吗?田:这个也是没办法的事情。肖:这个事情我没法做,你找别人做吧!田:这是目前为止最好的办法了,你不做谁做呢?你现在先停下手头的所有工作,就做这个事情。什么事情都等1个月后再说。肖:我现在负责的系统也很重要啊!再说这个计划根本一点意思都没有,还要做吗?我无法做!田:不是不做,是让你先放一下,腾出手来做另外的事情。这是任务,不做是不行的。肖磊还想说话。田:什么都别说了,就按照这个计划去做吧!你们先做起来!肖磊很不高兴,因为这个计划不是他做的,但是田光军是领导,他又没办法,只能硬着头皮去做,最后只能按照田光军的意愿花1个月的时间上一个版本,虽然这个版本客户无法完全使用,但是最后在公司还是成功地过关了。事情过后,田光军又接到了一个任务。公司的领导觉得开发的系统在色彩和UI级别的变化上比较少,而且一些纯粹是页面上的变化无法让市场人员完成,只能让程序员去更改。这样花的时间和代价太大,所以准备做一个UI分离的工作,主要是把页面和后台的代码彻底分开,方便市场人员随时更改页面上的文字、样式,等等。田光军接到任务后,觉得这个事情应该交给吴超,因为业务站点比较多,而业务底层系统只有几个,吴超一直主要负责业务站点的开发,对于系统还是很熟悉的。田光军叫来吴超商量这个事情。田:UI分离这个事情你听到了吗?吴超(以下简称“吴”):嗯!田:那我就不多说了,你去排一个计划,然后做吧!上面给的时间是3个月,你想想办法。吴超接到任务后,首先去找了相关的领导,仔细问了一下他们需要的UI分离的功能和他们的设想远景。市场人员表示,他们要的是一个这样的东西:页面上的字可以随便换;样式可以随便换;客户可以自定义页面的样式,等等。吴超仔细了解以后再回到组内,和组员一起商量这件事情。他们想出来了两个解决方案:一个是一步到位的方案,但是这个方案需要大概半年的时间才能完成;另外一个方案是先做一个有基础功能的版本,然后再完善,这样需要大概9个月的时间才能完成。吴超也吃不准,所以就通知了所有与UI分离项目有关的人开会讨论。在会上,吴超详细讲述了他的两个方案,并且不止一次地表示,如果完全做到分离,那么3个月时间肯定是不够的,肯定是完不成的。在吴超的努力下,大家一致认为先做基础版本再完善的方案比较可行,所以就通过了这种方案。对比两起事件,作为程序员,你怎么想?肯定有很多人认为吴超这种人比较狡猾,不好好做事情,整天都在忽悠、浪费资源、浪费时间、浪费金钱;而肖磊这种人才是程序员的楷模,不能做就是不能做,为什么一定要逼我做这种事情呢?但是在现实的职场上,吴超这种人“混”得比较开,而肖磊可能就是一个干活的,也可能一辈子都是干活的。这里不是鼓吹做人要忽悠,但是做人要圆滑,关键时刻要能屈能伸,紧盯目标,在合理的范围内把事情办成。至于是绕个圈子把事情办成,还是用直线距离最近的方法直接办成,那还得看当时的具体情况而定。第3章 为自己工作

某些程序员进入公司后对待工作的态度实在令人不敢恭维。在他们的思想中,工作就是为老板挣钱、为公司创造利润,除了糊口,工作和自己根本就没有任何的关系。这群人一般在职场上“混”得比较失败,过了七八年时间可能还是一个底层的程序员角色,不得不说他入错了行!如果总是这种态度,估计换个行业也是一样的。工作是为了自己,不是为了别人,在职场,首先应摆清楚自己的位置。3.1 口碑很重要

作为程序员,不管你是在小型软件公司还是在大型软件公司,口碑绝对是你以后在业内的“软实力”。

如果你是一个刚入职的程序员,那么你更要注重你的口碑!因为你要收获工作经验,还要晋升。不管你是不是准备跳槽,都需要有一个好口碑。不要以为跳槽后你以前在公司犯下的过错别人就不知道了。现在的IT圈子太小,今天和你的同事在一个办公室上班,也许不到1个月,你们可能还是在同一个办公室上班,只是换了一家公司而已。这种事情已经屡见不鲜了!正所谓“好事不出门,丑事传千里”,只要一不注意,你在这个行业中的口碑可就毁了!那你失去的可就不仅仅是一个升职、加薪的机会了,而是你所有的同事所在的公司提供的机会。案例3.1毕鸾自从上次在田光军面前失态以后,就安静了许多。但是公司还要运转,业务还要做,系统还要开发,很快毕鸾就得到了一个新的机会。公司接到了市政府的OA系统项目。这个项目对于公司来说是非常有战略意义的。这个项目不会有太大的经济利益,但是这个系统的开发意味着公司从此打开了市政府日常办公软件的大门。OA系统和市政府现有很多系统的关系非常密切,可以说做完OA系统,公司就占了该市办公软件40%的市场。公司领导经过讨论,决定把这个项目交给毕鸾。毕鸾接到项目后,就开始项目前期的调研工作。可是很奇怪,每次调研都是他一个人去拜访客户,业务人员也没有跟着。每次回公司也没有出差报告或者调研报告。他的调研方式就是把拜访时谈话的内容录下来,然后自己保存,并带回来了很多的文档资料。开始做demo了,毕鸾带了一个程序员再次去市政府调研,并且当场由程序员画出Html的页面,毕鸾还是和没事人一样,除了他的录音,什么都不管。随着系统调研的深入,问题出现了,作为项目经理的毕鸾根本就不考虑项目业务的深层次组成,结果1个星期后,调研效果不佳,只得返回公司继续开发demo。事情本身平平静静,但就在这个时候,毕鸾突然提出了要加薪,否则就不干了!并且第二天毕鸾就以身体不舒服为由请假了。公司的领导一看,那个跟过去的程序员还是一个新人,一点经验都没有。如果这个时候放走毕鸾,这个项目就会拖延,没有人能在短时间内接毕鸾的工作。没有办法,只好答应了他的请求。就在加薪的时候,毕鸾已经失去了公司高层的信任,开始走向自己挖掘的坟墓。加薪后,毕鸾开始重新工作。业务未吃透的老问题又一次出现,1个月之后,毕鸾还是未交出他的demo。客户已经多次催促了。毕鸾便开始逼他手下的程序员加班。项目经理都不了解业务,程序员加班也于事无补,根本无处下手。情况越来越糟,到最后,领导开始问责,毕鸾便把他下面的程序员拉出来扛责任,理由竟然是他下面的程序员没有在规定的时间内把demo做出来。经过这件事情,高层的领导终于看清了毕鸾这个人,决定换人,将项目交给吴超接手。田光军一看此人不善,便向上级提出此人不适合自己的开发部门。虽然高层做工作,但是田光军斩钉截铁地坚持自己的意见。毕鸾便成了游离人员。高层是不会让人空着不干活的,就到处给他安排职位,但是所有部门的领导都表示暂时不需要人手。无奈之下,只好将其空置一边,做一些无关紧要的东西!到最后,因为他的合同即将到期,辞退他将对公司造成一定损失,还不如养着他1个月,所以就出现了毕鸾独自一个人坐在角落里面等待公司最后的发落,没有人过问、也没有人和他说话的现象。他来不来上班好像对公司和同事都没什么关系。毕鸾在离开的时候,还做了一件令所有人都震惊的事情——竟然把调研拿回来的文档全部烧毁了。

这是一个真实的故事。在为公司的损失感到遗憾的时候,我们更应该为毕鸾这个人感到悲哀。30岁之前靠实力,30岁之后靠人脉。当你有好口碑的时候,如果你去寻找换工作的机会,寻找升职、加薪的机会,那么你的前同事或者朋友就会帮你推荐;如果你去面试,那么他们会帮你说说话,再不济也会给你一句“这个人不错”的中肯评价。这就是人脉的力量,但如果你的朋友对着决定你面试生死大权的人说“这人的人品……”,我估计只要是公司,都不会录用你。不要抱怨说话的人,没有人会无缘无故地去说别人的坏话,何况说这个话对他自己本身没啥好处,每个人在说话的时候都是要承担一定的责任和风险的。你应该想一下他为什么这么说你!3.2 永远的加班

加班,是程序员永恒的话题,也是软件公司、程序员永远的痛,但也就是这个永恒的话题和痛,成就了无数程序员通向IT行业的光明之路,也印证了一个道理——加班不是坏事,就看你怎么面对它,怎么利用它!

如果你是一个新人,你就应该主动留下来加班!我虽然不鼓励加班,但是也不想新人多走弯路。我不是公司的老板,也不是公司的投资人,你们加班对我其实没啥好处。从加班对于新人的锻炼来说,我是支持新人加班的。不要觉得加班只是为了公司能按时完成项目,自己是受害者,是被迫加班,公司才是最大的受益者。事实上加班对于新人而言是一件幸事。自己本身就是新人,对软件开发又没有多少经验,一个老手开发2天就能完成的功能,你却需要4天,公司为什么要为你多付出那2天呢?公司不是慈善机构,社会不相信眼泪,职场也没有新人一说。对于公司,只要是开发人员,它都要一并使用,一并为公司创造利润。不要理想化,不要觉得就靠平常项目开发中学来的技术你的前途就会一马平川。

如果不用加班来积累工作经验,你哪里有时间赶上那些老手们呢?没有一个人的工作经历是一帆风顺的,不加班至少在软件行业可以说已经绝迹或者从来没有出现过!看看那些大师级的人物,哪个人不是从新人阶段辛辛苦苦干出来的?虽然不全是加班的功劳,但是如果没有加班的锻炼,估计成绩也会小一半。

新入行的程序员要充分利用加班的机会,在完成项目的同时锻炼自己;也可以请教项目组的老手,让他们的经验和智慧送你一程。日积月累,你的提高就会突飞猛进,水平也会和你的同事越来越接近,并且总有一天你会超过他们。

加班其实就和软件开发培训机构是一样的道理。软件开发培训机构是让学员用钱买时间,而加班则是让新入行的程序员花时间买经验,培养熟能生巧的能力。从长远角度看,这笔投资还是值得的!案例3.2徐忆然进入公司的职位是程序员,所以在吴超带领的项目组中一直工作在第一线。虽然徐忆然很聪明,对软件开发也有点天赋,但毕竟还是新人,在经验和一些细节的处理上和老手比起来还略显稚嫩。徐忆然对此心知肚明,也想尽快找机会改变目前的境况。吴超那边的教育评价项目正式上马,徐忆然终于等到了机会。这个项目时间很紧,只有3个月的时间,所以加班是在所难免的。项目组的一些程序员对此怨声连连,唯独徐忆然例外,他表示只要不是天天加班,就可以接受,哪怕免费加班都可以。不要认为徐忆然傻,连钱都不要了,他其实比谁都清楚就目前的处境他应该做什么!徐忆然只是把加班看成了对自己的投资而已!在项目开发过程中,徐忆然碰到了无数的问题。再加上自己的水平和经验的限制,他无法在规定的时间内完成自己的任务。对他而言,加班赶工是唯一的出路,但是如果没有一个有经验的指路人,加班也是在浪费时间。幸好在加班的过程中,徐忆然没有浪费一点时间。他把所有的问题都在加班的过程中加以解决了。自然吴超和项目组的高见成了经常被徐忆然“折磨”的人。高见是吴超下面的“老人”了,工作经验比吴超都丰富,再加上老手一般都反感加班,在项目组中,往往是因为面子交代不过去才会硬撑着加班。这种老手即使加班也是浏览网页、看看新闻,真正做技术工作的不太多见。徐忆然明白请高见当指路人再合适不过了。在项目开发过程中,只要出现以前没碰到过的问题或者不懂的技术,徐忆然实在没有办法自己搞定了,就全部趁着加班时间,请教高见。高见不能解决的,就再问别的同事。因为这样徐忆然既可以不耽搁高见的正常上班时间,又可以提高自己的开发效率。日日积累,月月提高,徐忆然的经验明显增多,水平开始大幅度提高,慢慢摆脱了“新人”的称谓,俨然成了一个准老手,在项目开发中的作用也越来越大。后来吴超才有了把他培养成项目经理、和曹军一起管理项目的想法。

当我们对整个行业的环境或者公司的环境无能为力的时候,我们应该想的是怎么从这个环境中得到最大的利益,而不是整天唱反调、搞破坏。既然加班是目前无法改变的现状之一,那么就应该在健康状况允许的范围之内坦然接受,并从加班中获取最大的利益。只有在加班中不浪费时间和精力,才会获取最大的利益,才能最大限度地提升自己,使自己拥有更大的竞争力。3.3 少一点抱怨

在工作的几年中,同事在工作之余的抱怨声此起彼伏:一会儿抱怨公司的环境不好,一会儿又抱怨项目的设计不行,接着抱怨项目的周期太短,等等。这些抱怨看似无伤大雅,但是在瞬息万变的职场,这些抱怨足以让有心计的人置你于死地。

是不是觉得夸张了?不就是几句话嘛,有那么严重吗?其实不然,仔细琢磨一下你的话语和话语针对的对象,抱怨对你的不利是不争的事实。

你的抱怨无非也就是对日常工作中碰到的无法理解的问题和对工作状态不满的一种发泄方式罢了。你在日常工作中可以不注意你的言行,也可以不讲究你的处事方式,但是你不能阻止别人不注意你的言行或者利用一切可以利用的机会。人往往在随意的时候才会说出心里在想什么、想干什么。所以你的抱怨对他们而言就是前进道路上的铺路石,拿来垫脚正合适。

新入行的程序员打着“初出茅庐不怕虎”的旗号来到软件公司,他们也不知道前面的坑有多深,总想跳下去试试。他们往往又都是理想主义者,刚刚跨出学校的大门,一身的书生气,世界对于他们是一片空白,让人充满幻想和希望。他们急需要表现出自己的能力,赢得属于自己的世界和地位,不过处事的方式、方法却往往极其幼稚,远远达不到职场对他们的要求。凡是不符合自己设想的、不符合自己爱好的,这群新人都不分青红皂白全部反对,反对无用就开始抱怨,颇有点明朝“言官”的味道。博客、邮件等都成为他们的工具,往往矛头指向的都是自己的上司,而且很大一部分是直接上司:抱怨上司对项目的周期卡得太短,抱怨项目的设计不合理,抱怨上司管理水平有限,等等。这些抱怨所涉及的东西往往不是一个新人需要关心或者干涉的。作为新人,你最关心的应该是能在这个公司待下去,并且为公司创造利润。作为领导,就算他再无能,也肯定有几把刷子。你的领导在作出某些决策的时候肯定是经过深思熟虑的,就算是不得已而为之,他肯定也是经过了考量才会这么去做。你想想看,如果你的这些抱怨之辞被小人添油加醋后汇报给你的领导,你还怎么在这个公司站稳脚跟,怎么去赢得领导的信任,怎么展示自己呢?

抱怨在职场上往往是有百害而无一利的!经常的抱怨除了容易让人抓住话柄以外,还会给同事或者领导留下不成熟的印象。在公司中,机会不单单是留给有准备的人的,还是留给成熟的人的。经常抱怨会让你失去晋升的机会。如果不相信抱怨这件小事引起的问题有那么大,回答一个问题:为什么领导基本上都是年纪大的?不可能单纯就是年纪的问题吧!从深层次出发,年纪大的,看得多,经历也多,各方面相对都比较成熟。成熟在公司经营层面就意味着可以减少成本投入,获取更大的利润。

抱怨的另一大问题就是影响士气。这又是领导最不想看到的。你整天在那边说这个不好,那个不行的,你的同事耳濡目染难免会受到影响。受影响最直接的表现就是士气低落,那么,工作效率就会下降,团队精神就会打折扣。这些在领导眼中都是大忌。

所以,当你想抱怨的时候,最好的方法还是闭上你的嘴,尽量不要让自己说话,埋头继续工作,把本职工作做好、做踏实,那才是一条光明的路。案例3.3随着时间流逝,徐忆然的项目经验和技术经验也在进一步积累。慢慢地,他已经不满足于一般地做做业务项目了,他开始关注起架构方面的技术和公司里面现行技术的改进。经过半年多对真实开发环境的使用,他感觉目前公司使用的这套类库已经完全跟不上技术的发展趋势了,而且在生产力方面公司也已经远远落后于市面上的其他公司。他想到了改进这个类库,并且把这个想法告诉了吴超。吴超以为徐忆然是随口说说的,开始也没放在心上,就这么过去了。其实徐忆然对这件事情是很认真的。为了能更好地改进这个类库,他想了很多办法,和同事沟通、争取同事的意见。为此他还写了几份文档,然后交到吴超那里。吴超一看,知道情况和自己想的大相径庭。倒不是因为怕徐忆然改不好,而是怕他死心眼,来真的,非得改这个类库。因为他知道改进这个类库的困难不是技术问题,而是关系问题。这个类库的落后已经是公司里面众人皆知的事情了,但是就是因为这个东西是现在的部门经理田光军在刚来公司的时候所写的,他一直掌握着这个资源,所以虽然人人都知道问题所在,而且也有人叫着要改,但是都是光打雷不下雨,没有人真的着手去改进这个类库。吴超一看徐忆然来真的,一时间没有对策,就使用了“拖字诀”,准备用时间来冲淡徐忆然的想法。他把文档收下,然后对徐忆然说:“文档先放在我这儿,在给领导看之前我先看一遍,然后再召集大家开个会评估一下,商量下一步的计划。”徐忆然一听以为有门,终于可以得到机会了,高兴地答应了吴超。时间一天一天过去,他始终没有得到吴超的答复和开评估会的通知。他感觉不妙,静不下心,也坐不住了,开始向每个同事说这件事情,并且在很多场合抱怨吴超不采纳自己的意见,抱怨公司的类库导致了生产效率低下。徐忆然准备用同事的舆论压力来迫使吴超同意自己的意见。终于这件事情经过同事的嘴传到了田光军的耳朵里面。作为领导,他肯定要维护公司的利益,但是他也很清楚,他之所以能成为部门经理,很大一部分源于对这个类库的掌控,如果没有这个类库的支持,对于已经30多岁、技术又不是非常精的他来说,离开是早晚的事情,所以他只能心情复杂地叫来了吴超。田光军(以下简称“田”):听说你要改进类库,还提了方案?吴超(以下简称“吴”):是的。这里有文档,你看一下吧!吴超把文档放在桌子上后就不说话了。田光军看了一下文档,马上安排了评审会。在会上,田光军找了文档的3个不足之处,最后还是利用这3个不足之处以类库关系重大,没有完美的解决方案就不改进为理由暂时不同意改进类库,并且让徐忆然继续改进方案。徐忆然以为领导同意了改进的动作,只是方案本身做得不令人满意,回去就开始了改进方案的工作。这个方案一直改进了半年多,期间评审会也开了很多次,最终还是没有定下来。高见看见这种情况,终于坐不住了,觉得有必要找徐忆然谈谈了。高见(以下简称“高”):你类库改进都说了有大半年了吧?徐忆然(以下简称“徐”):是啊!现在还在改方案,都快郁闷死了。也不知道田总怎么了,很严格,一直都没通过,总是有问题。其实这些问题根本就不是什么问题!高:你觉得有完美的方案吗?徐:肯定没有了,只有更适合的,没有完美的!高:那不就成了!你还改?徐:不改怎么办呢?我花了很多力气了!高:你知道这个类库是谁开发的吗?是田光军。徐忆然知道自己闯了祸,但是现在声势浩大,骑虎难下!也怪自己不好,什么狠话都说出去了。徐:啊?有这么回事?!高:对!你不笨嘛!徐:晕死了!怎么办呢?高:凉拌吧!说出去的话,就像泼出去的水!徐:我知道你对公司熟悉,你一定有办法的!高:方法不是没有!他怎么做的你就怎么做呗!徐:也是“拖字诀”?高:这个……我可没说啊!徐忆然想想,可能“拖字诀”是目前最好的办法了,也就只能这样了。徐忆然一直拖着这个方案,并且减少了提到这个方案的次数,慢慢地周会都不汇报这个方案的进度了,终于让这件事情平息下来。事后他后悔当初自己为什么那么鲁莽,总是抱怨,到处制造舆论压力,现在看看,差点让自己掉进深渊。

其实你的抱怨是在挑战领导的权威。徐忆然只是做了一件可能提高公司工作效率事情,处在他的位置上,这件事情确实没什么错,但是他的方式错了。抱怨、制造舆论压力,这些对于一个小小的程序员有用吗?最后为他带来的不是荣誉和机会,而是无尽的麻烦。幸好这件事情最后靠别人的指点平息下来了!

不要为了自己的一时之快,造成麻烦。冲动是魔鬼,人在抱怨的时候本身就是冲动的。抱怨经常会因为自己的一时之快触动了领导的利益,这是职场大忌,是应该尽量避免的。不要抱怨,安心做好属于自己的事情才是万全之策。3.4 比你的同事多走半步

从公司管理的角度,半级是最危险的距离。因为低半级的同事往往就是高半级同事的替代者,是公司为了利益和运转安全而摆放的替身,所以在公司钩心斗角的“政治斗争”中,一般半级之间不是形同水火就是生死兄弟。形同水火是因为低半级的人总想着上面的位置,准备随时替代之。生死兄弟是因为往往下级是上级提拔的,虽然下级也想替代之,但是下级的做法不能太过,只能等待上级升级后自己再升,这种关系称为心腹。不管发生什么事情,他们相互之间都是互助互利的。这些在软件公司也都存在。从技术的角度出发,半级或者说半步到底有多危险?其实一点危险都没有,有的可能只是机会。

半步的距离有多长?说长也不长,说短也不短。半步的距离就是别人不知道的你知道;别人知道的你熟悉;别人熟悉的你掌握;别人掌握的你精通;别人精通的你出口成章,信手拈来。这就是半步的距离。说起来简单,做起来并达到这种程度还是有难度的,否则优秀和平庸之间就没有区别了。所以你要努力,努力使自己一直对你的同事保持半步的领先优势。案例3.4随着业务的增加,公司的发展越来越好,项目也越来越多。目前吴超手下的人手基本上都在满负荷工作。近期,公司因为上一次给市政府的OA系统做得不错,被市政府介绍接受一个兄弟市的市政府OA系统项目,该项目和上一个OA系统项目一样,难度不大,但是该市政府的信息部门却规定了技术选型的条件,因为该市政府的信息中心已经购买了相关咨询公司的技术支持。这下子公司有点慌神了。因为田光军的缘故,公司的技术其实已经很久没有升级了,对于现在市面上最新的技术也是一知半解。购买技术支持的话,一般公司提供的技术支持只针对最新的技术。如果直接拿购买的新技术来做项目,失败的可能性会很大,但是用公司现有的技术,客户又肯定因为技术支持的新技术与该技术不匹配而不买账,而且一旦被发现,还有欺诈客户的嫌疑,真是两难的境地啊!田光军紧急和吴超商量对策。田光军(以下简称“田”):最近接到的项目要求知道了吗?吴超(以下简称“吴”):大概了解!具体的不是很清楚!田:客户发过来的要求列表中,有一条是“使用他们购买的技术支持的技术”,我看了一下,他们购买的也是微软的技术,这个不冲突,但是他们买的是最新的序列,目前.NET Framework的版本是3.5,SQL Server的版本是2008,你知道公司有多少人熟悉吗?吴:应该不多。我们一直在用.NET Framework 1.1和SQL Server 2000,工作又比较忙,所以这个不好说!田:你去了解一下吧!这个项目最后应该会放在你那里,你要准备一下!如果没人,你要先开始看起来了。吴:好的!我去安排吧!吴超虽然口中答应了,但心里还是七上八下的。没底啊!虽然可以用新版本的软件支持旧版本的功能敷衍过去,但是一旦被客户发现,也不好交代啊!还是要找一个熟悉新版本的人来做这个事情。吴超看了一下团队,发现好像没人有空余时间啊!徐忆然已经有一个项目在手,曹军资历够吧,但是上次已经证明他不能被大用,高见这个人又是整天想混的,剩下的除了魏群和赵祥,别人不是资历不够、经验不够,就是技术不行。看来人选就要从魏群和赵祥中产生了。魏群和赵祥来公司的时间差不多,在各方面都几乎一样,工作兢兢业业,积极性也不错,在团队中也有一定的技术威信,作为项目的管理者应该是该具备的都具备了,现在唯一不能确定的就是他们两个人对于客户要求的那些技术的了解程度。吴超心里也没有一个明确的底线,如果两人对新技术都不感冒,那只好和田光军说明后再去招聘了。吴超在吃午饭的时候故意和魏群、赵祥坐在了一起。吴超准备利用闲聊了解他们对于那些技术的了解和掌握情况。吴:最近工作怎么样?魏群(以下简称“魏”):还行吧!能处理!赵祥(以下简称“赵”):现在加班少一点了,还能处理!吴:最近.NET Framework 3.5和SQL Server 2008的版本出来了,关心过吗?魏:前两天在家里装了,感觉还行,不是太难,新功能有点炫!赵:我也装了,但是没有用过呢!吴:和原来的老版本有大的区别吗?魏:基本上差不多,就是增加了一些新功能,优化了原来的一些类库吧!赵祥因为没有用过,他就没有发言权了,当然了,机会也就离他远去了!吴:我还没看过,有哪些?魏:.NET Framework 3.5增加了LINQ功能,这对写业务代码的效率有很大的提高,SQL Server 2008其实和SQL Server 2005差不多,变化不是太大,优化了一些SQL语句,新增加了一些类型。最好的开发是Visual Studio 2008+SQL Server 2008,系统选用Windows Server 2008,这样工作效率将会有很大的提高。吴:你觉得我们公司能用吗?魏:就目前来看,用是可以用,但是需要培训一下,因为公司里面对这些技术熟悉的同事并不多。吴超大概明白了,魏群回家后除了自己熟悉以外,还考虑了公司目前的人员状况,并且有了自己的解决方案。而赵祥虽然也有这方面的意识,但是动作未到,落后了。吴超想这回应该可以向田光军交差了,但是为了保险起见,他还是想考验一下魏群对于新东西的掌握程度。吴超回到办公室后,找到了田光军,向他要了一份客户需求列表,从中挑了3个需求作为魏群的项目原型和demo功能,让他在1个星期内使用.NET Framework 3.5+SQL Server 2008实现。魏群经过了一番波折,终于赶在限定时间内交了差。吴超这回终于放心了,虽然还没和魏群说,但是心中已经定下了魏群作为这个项目的架构人员和开发管理人员。吴超拿着魏群的项目原型和demo跑去和田光军交差。吴:新版本的原型和demo已经出来了,目前来看,完成这个项目应该没有多大的问题。田:多大的把握?吴:90%!田:拿给我看看!吴超把东西给了田光军,田光军看后表示满意,并且授意吴超,等这个项目一下来,马上就交给吴超的项目组来做前期的设计和架构,并且放在吴超的项目组开发。当然,这个项目最后会落到魏群的手上,原因就是他在和赵祥的竞争中先“撞线”,虽然他和赵祥比起来领先的优势只有那么微乎其微的一点点而已,但就是这么近乎半步的距离,决定了天差地别的结果。魏群得到了机会,成为项目架构和开发管理人员;赵祥没有得到机会,还是在程序员的阶段奋斗着。

上面的例子对于赵祥而言是不是“血淋淋”的?就是因为一点点的不同,导致了机会从手边溜走。在一个公司内部,机会不会太多!如果一次没有把握住,那么很可能以后就再也没有第二次了。把握住一次机会,你的命运可能发生改变,很有可能机会将会接连向你走来,你从而得到更多锻炼自己的机会。这些机会几乎都是你和你同事PK的结果。影响你们PK结果的条件就是看谁更合适这个位置。只要你比你PK的对象多走半步,领先半个身位,那么你有90%的机会能PK掉对方,而把机会牢牢地掌握在自己手里。

在软件公司,要实现这个半步其实很简单。通常的实现方式有两种:一种就是钻研底层,往下层钻研,了解别人不了解的、不想去了解的,比如算法、底层的C语言编程等;另外一种就是往上钻研,追求新技术,在别人还没掌握的时候你就掌握它,这样你就可以用别人掌握新技术的时间来学别的新东西。如果一直坚持下去,你就能一直领先你的同事。但也不要盲目跟风,什么新学什么,什么炫学什么,而是要学你可能会用到的、对你的工作有利的。3.5 机会是要排队的

虽然现在软件行业中的新技术层出不穷,机会也是比比皆是,但要得到机会,除了要具备比同事更强的竞争力外,你还必须要比他有更久的资历,也就是说,你需要排队等待机会。

从领导的角度出发,特别是一些资历久的领导,在用人上往往首先看重的不是做事人的办事能力,而是这个人在公司的年限是否足够长,或者是这个人对他的地位是否有威胁,等等。这就是很多新入行的程序员不理解的地方:自己明明比别人优秀,为什么自己没有拿到机会,而一个比自己差很多的人却得到了机会呢?这个时候你不能耍性子,唯一要做也是唯一能做的事情就是理解领导,做好自己的分内之事。对于领导,只要不是“空降兵”,他都属于“守江山”一派。“守江山”比“打江山”要难很多。职场毕竟不是真实的战场,所以不到万不得已,没有必要必须挑选能兵善将来克服目前的难题。在“守江山”派领导的眼里,目标只有一个:稳健地完成任务。虽然得到机会的人能力差了一点,花的时间也可能长一点,但是只要能按部就班地完成任务,中间不要出现什么岔子,就可以了。领导在公司已经证明了自己,并不需要一个出彩的项目来为自己增加职场砝码,从领导了解下属的程度来看,在公司待得久的同事肯定占有优势。所以,作为新人,你拿不到机会也就不足为奇了!在你实力不错,但是拿不到机会的情况下,也不要自暴自弃,你改变目前境况的唯一方法就是努力让自己成为有资历的人。在这个过程中,你必须排队等待。

其实当领导也不容易,他关注的不仅仅是工作任务的完成情况,团队的建设和稳定也是他关注的重点。虽然软件行业是一个人员流动性比较大的行业,但一个成功的公司肯定会有一个稳定的团队。一个留不住老员工的公司是没有生命力的,也没有可发展性。作为领导,他必须保证团队的稳定,尽量不让公司变成“带薪实践性培训机构”。他面对下属,一碗水要端平,否则何来威信带领他的团队攻城拔寨呢?那么对于老员工的安抚就变得非常重要。在公司,安抚员工除了加薪、晋升之外就只剩下给予更多的机会了!一个老员工已经为公司付出了很多年的艰辛,他在公司任劳任怨地工作着,并且等待着属于自己的机会。每个人都有自己的职业目标,领导的一个责任就是尽自己最大的努力去帮助下属实现职业目标。如果他在公司一直得不到机会,时间久了,他的心情肯定会有所波动,认为待在这个公司没有前途,无法实现自己的理想,与其这样待着,还不如出去寻找属于自己的机会。如果领导再把机会给一个新来的程序员,他会怎么想?作为老员工,他在公司待了那么久都没有得到机会,好不容易有一个机会,领导还给了新人,这是老员工无法理解和容忍的。出现这种情况,老员工可能会离开公司。对于公司,老员工的离开应该是一件很“亏本”的生意,公司把一个新进的员工培养成才,正是重用之时却因为机会分配的不公失去了他,公司之前为他付出的代价、缴的学费都为他人做了嫁衣。作为领导,只要这种事情发生一次,他就将失去几乎全部下属的信任,老员工会慢慢地离开,可能他辛辛苦苦培养的心腹就此离他远去,他在公司的地位将不会像以前那么稳固。所以新人得到机会的时机和可能一般都是排在老员工之后的,这也是新人需要机会必须排队的原因。案例3.5经过上次的市政府OA系统项目以后,公司的高层也知道了公司技术落后的现实。虽然高层一般都不参与具体的技术工作,但当听到目前公司所使用的技术已经落后市面上新出的技术不止一个版本的时候,高层开始有点紧张了。不过公司高层并没有责怪田光军,因为毕竟人家把市政府OA系统项目扛了下来,“临阵责将”这些大忌公司的高层还是知道的。田光军也开始反思自己,因为自己的问题,导致了部门的开发技术已经很久没有升级了。从.NET Framework 1.1+SQL Server 2000直接升级到.NET Framework 3.5+SQL Server 2008,那肯定是存在一定的风险的,但是现在的情况已经不容迟疑了,另外一个部门因为是公司新技术的试验部门,他们已经有一部分在使用新技术了,而自己的部门除了OA系统项目还没有使用新技术。如果高层怪罪下来,另一个部门可以用试验项目周期太长来为自己开脱,但自己却无路可走。田光军认为已经没有比升级更好的出路了。田光军叫来吴超商量这件事情。田光军(以下简称“田”):最近OA系统项目顺利吗?吴超(以下简称“吴”):还可以。魏群在这项新技术的掌握上还不错,培训了一下,很多人都已经上手了。田:最近公司正在讨论升级技术的事情,从原来的.NET Framework 1.1+SQL Server 2000升级到.NET Framework 3.5+SQL Server 2008。这些技术升级应该是整个技术体系的趋势,你准备一下,把我们的项目统一升级一下吧!吴超想起前一段时间徐忆然做的升级类库的事情,如果升级到新版本的话,类库肯定也是要相应升级的,但是这个类库是田光军开发和维护的,这个相当微妙,拿不定主意。吴:那升级到新版本的话,公司的类库是不是也要升级?田:那肯定要升级,否则升级新版本的开发工具又有什么用呢?一些新功能还是不能用。吴:好的,我会去办的!吴超离开田光军的办公室后,心情是很复杂的,他感觉到了自己肩负任务的重量。这次的升级并没有想象中那么简单,毕竟那个类库已经4年没有动过了,4年里面都是田光军一个人在维护。虽然田光军现在打算拿出来升级,但这毕竟是迫于无奈的做法。就是这个类库的成功才使田光军得到了现在部门经理的职位,如果这个类库的升级工作交给了一个田光军不信任的人,万一有所闪失,那后果将会不堪设想,弄不好自己都要搭进去。所有的人都在吴超眼前闪过了一遍,曹军肯定是第一个被排除的,上次一个小项目给他锻炼一下,结果都弄得不好控制了,这么重要的一个任务肯定不能给他;高见是一个老人了,但是他自己无欲无求,平常就吊儿郎当的,在公司待了很久,还没有拿到过一次出彩的机会,但是他也没什么不自在的,实在是属于“啃不动的老油条”类型;徐忆然手上有一个项目在忙了,他技术也不错,但资历还不够,做事比较冲,不过他上次提起改进类库的事情倒是和这次的升级相吻合,而且也做了很多方案,对于类库的了解也比一般的人深,看上去是一个还算“凑合”的人选;魏群对新技术比较了解,技术实力其实一般,做个项目管理还可以,做类库升级这种重要工作还是不够的,但是他资历比徐忆然要老一点;赵祥和魏群差不多,在新技术上还不如魏群,现在正在魏群手下做事,属于培养阶段。这样的话,其实最后的人选也就是两个人:徐忆然和魏群。相比这两个人,徐忆然在技术和对类库的理解方面占优,魏群在资历方面占优。吴超决定还是启用徐忆然,这样把握大一点,但是目前还不适合对外宣布,还要和田光军商量后正式决定。世上没有不透风的墙。徐忆然还是通过同事的口风知道了公司即将升级新技术的事情。上次高见对他的劝告还在耳边回荡,但这次新技术升级对他来讲绝对是一次千载难逢的机会。虽然有一定的风险,但作为一个不想放弃的人,徐忆然想试试。这次他学乖了,改变了自己的策略。他不会再用通过同事制造舆论的方法来帮助他自己实现目的了,他找到了吴超,并且准备和吴超面对面地谈。徐忆然(以下简称“徐”):听说公司最近有升级框架的想法?吴:我也是刚刚接到任务。徐:那框架升级的话,类库是不是也要升级了?吴:这个目前还没确定,你有什么想法?徐:我前段时间一直忙于类库改进方案的撰写工作,最近项目那边的客户有点需求要改,我没有时间去改进那个类库方案了,但是我想公司把这个机会给我,毕竟我已经研究这个类库很久了,我知道哪里要改进,哪里可以用,而且我也比较喜欢这种工作。吴超心想,我也是这么想的,但是这个方案还没有和田光军说,也不知道田光军是否同意,这个类库毕竟是田光军以前赖以生存的东西,就算是真的要改进,也要听取他的意见,何况他还是自己的顶头上司。所以吴超觉得不能贸然答应徐忆然,万一田光军有变故,一来影响士气,二来影响团结。吴:这个事情我会跟进的!类库升级毕竟是一件大事,公司目前的软件都是在这几个类库上开发的,所以这部分我说了不算,还是要听领导怎么说。当然了,我肯定会转达你的意思,并且为你去争取这个机会。徐忆然虽然感觉吴超说这个话的时候和以前不一样了,明显地感觉到了有“官方发言”的味道,但他又觉得吴超说得在理,没办法反驳,而且他也知道,凭自己对吴超的了解,人选的事情就算已经定下了,他肯定也不会现在说。徐忆然知趣地走了。在公司的中高层会议上,田光军一改以往保守的态度,首先同意并且极力拥护新技术升级的工作,并且表示愿意在自己的团队中首先进行。高层领导也觉得这次OA系统项目是一个机会,可以拿来先练练兵,然后投入大规模的人力去升级公司的技术。会上决定了新技术升级的步骤。会后,田光军叫来了吴超,指派工作,并商量新技术升级的问题。田:会上已经确定了公司新技术的事情,这次因为有OA系统项目的先行,所以公司决定放在我们这里先开始实施。我们决定把OA系统项目作为一个切入点,然后在各项目中展开。吴:这个办法不错,成功率高一点!田:新技术升级还好办,类库也要升级,类库升级的人员安排好了吗?吴:安排好了,但是还没宣布,需要和你确认一下,你看徐忆然怎么样?他前段时间也在做类库的改进工作,一直没有真正开始实施,这次倒是一个机会。田:他现在手头没别的工作吗?吴:最近还是在做那个项目的事情,不是太忙。田:徐忆然太年轻,有备选的吗?吴:魏群,但是在技术和对类库的了解上没有徐忆然有优势,所以没有徐忆然合适,只能作为第二候选人。田:我看魏群挺合适的。他在公司的年限比徐忆然长吧?吴:其实也就长几个月而已!田:那也是长啊!我们做这次类库升级也不是要有非常高深的技术在里面,对类库的理解也可以慢慢来嘛,就选魏群吧!吴:好的,那我去安排!吴超离开田光军办公室后一脸无奈,虽然他知道田光军不用徐忆然而用魏群的用意,但还是不太理解。不过命令就是命令,他还得去执行。吴超叫来了他的下属,把田光军的意思转达到了下面,徐忆然茫然了,本以为已经到手的鸭子却飞了。吴超也知道徐忆然郁闷,会后留下了徐忆然。吴:是不是很失望?徐:我以为这回十拿九稳了,哪里知道最后还是飞了!吴:不要灰心,不是没有机会了。类库的改进还在我们部门嘛!你也可以出力啊!徐:我不是很理解这个任务安排。吴:我刚刚进来的时候,公司里面有很多人,人人都比我先来,我也很拼命地工作,但是我没有机会,机会都被别人拿走了,直到有一天,发现自己变成部门里面除了田总以外最老的员工了,我就开始转运了。从那个时候开始,我就得到机会了,一直到现在都是这样的。徐:难道我也要这样?吴:其实等待也是一种锻炼,你看看哪个软件界的牛人不是熬出来的?你还年轻,听我一句劝,不到1年你就能拿到机会,而且比这次出彩。当领导也不容易,一碗水要端平吧?所以我们也要理解领导。你比魏群已经领先了。魏群比你先到公司,但你先拿到了项目管理的机会,而魏群是一直到上个月才拿到了项目管理的机会,总要平衡一下吧,所以这次选择了魏群,但是我希望你能帮助魏群做好这个工作。徐忆然还是无奈地离开了吴超的办公室,他对此无能为力,只能心不甘情不愿地继续等待机会的到来。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载