从程序员到项目经理

来源:互联网 发布:c语言生成的exe文件 编辑:程序博客网 时间:2024/03/29 05:46

一.为什么要当项目经理

1. 问题本质

如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言。但反问成功的结果可能只是使自己麻醉,暂时忘却现实中面临的烦恼和压力,这无异于把头埋进沙子中的鸵鸟。只有理智的分析,才能作为自己行动的指南。

首先申明,不是每个程序员都需要当项目经理,也不是每个程序员都当项目经理,更不是每个程序员都当项目经理。因此,当不当项目经理,可以说是一个“需不需要、想不想、能不能”的问题。

想不想,是一个意愿的问题。这是前提,毕竟强扭的瓜不甜嘛。显然,富二代一般是不想当项目经理的,因为他们想直接当总裁。还有些人,只想钻研技术,不想钻研人,他们也是不会想当项目经理的。如果你没有意愿当项目经理,也就没有讨论的必要了。什么,你不知道想不想?呃,那就继续往下读吧,也许读着读着,你就想当了。

能不能,是能力的问题。这是不关键,因为只要有意愿,能力是可以培养的。程序员连复杂得让人琢磨不透的软件都能搞定,还有什么搞不定的?

因此最后落实在需不需要这个问题上。这个问题很棘手,需要从程序员自身以及外部环境等方面进行分析。要讨论这个问题,就要弄清楚它和想不想的关系。想和需要是紧密相关的,但并不是一回事。想不想,主是感情的因素,而需不需要则要进行理智的分析的了。理智与感情,并不总是一致的。有些东西,是你需要的,但你未必想要。比如,被困沙漠的时候,有时被逼喝自己的尿液,这是理智战胜了感情。电影《色戒》中的汤唯,则是感情战胜了理智,爱上了敌人,最后造成了悲剧的结局。因此,我们还是少说气话了,不要冲动,冷静的分析自己的处境吧。

2. 鸭梨山大

当我从网上看到码农这个词时,觉得网民很有自嘲精神,后来我看到了码畜和码奴这个两个词,不禁从心底涌起了深深的悲哀,为这个行业,也为这个社会。

看看智慧的网民对IT人士级别的划分:

IT领袖:年入过亿(例如任正非、马化腾、李彦宏、丁磊、马云等,包括期权股票以及投资理财等收入。)

IT大哥:年入千万(级别次于以上几位大佬的公司老板,不缺钱,普遍对上一条里的人物羡慕嫉妒恨。)

IT精英:年入百万(各IT公司副总裁级别人物,包括COO、CTO等,大多为职业经理人,赚够钱就跑。)

IT人才:年入50万(各IT公司总监级别人物,有房有车,生活压力相对较小)

IT工程师:年入20万(高级经理级别,有房贷,生活压力大)

IT民工:年入10万(经理级别,基本无房,学会装波一,生活压力大)

码农:年入6万到10万(工作三四年,租房,继续混日子)

码奴:年入3万到6万(工作一两年,租房,混日子)

码畜:年入低于3万(刚毕业的,租房,傻乐)

我知道你想问什么问题了。不要问哥赚多少,哥只是一个普通的IT人士而已。前面三级都是牛人,是成功人士,他们的作用不是让去成为他们,而是激励我们自己。你现在读到的也不是一篇成功学的文章,而是和你一起分析程序员的处境、以及怎样缓解压力的文章罢了。

言归正传。看到这个表,是不是有鸭梨山大的感觉。找到了自己的位置吗?什么,不好意思?没关系啦,园子里面不是很多人称自己为程序猿或者猴子吗?那大概也就是相当于码畜吧。我想能读到这篇文章的,大概都是“IT工程师(高级经理)”以下,他们的主要特征是“生活压力大”和“混日子”。如是你是前面四级,建议你果断退出本文。

我在上一篇博文中提到30岁现象,有些人认为车到山前必有路,这是杞人忧天。不错,程序员确实可以干到30多岁,甚至四五十岁,但他们面临的压力却可能是“不足与外人道也”。

我经常与30岁以上的程序员交流,他们流露出来的对现状的不满、无奈、无力、对安全感的缺乏,让我感同身受。

虽然谈压力并不是一件愉快的事情,但我仍然必须要说出来,因为我宁可清醒的痛着,也不要在麻醉中睡去。那就让我们拿着手术刀,对自己进行痛苦的解剖吧。

下面是一个简单的“危机评估表”,总共有30项。在“是否认同”后面打出分数,每一项如果认同为1分,不认同为0分。

类别

评估项

是否认同

身体

悄然发现已经没有以前经折腾了。

没有定期的体育运动。

中餐午餐都是在外面吃快餐。

确信自己是亚健康。

家庭

每月开支不算不知道,一算吓一跳。

有房贷或房租。

有孩子了,上幼儿园是一笔大开支。或者超过30岁了还没结婚。

买不起车,或有车子,开不起。

家里时有摩擦,经常有不开心的事。

每个月存不了多少钱。

时间

要花很多时间陪家庭成员。

加班时间越来越少。

社交时间较少。

激情

只想休息,不想工作。

对新技术、新工具不甚了解,有心无力。

没有制度明确的短期、中期和长期目标。

理想已经模糊了。

社会

只有交税,没有回报。

担心老了病无所依,老无所养。

担心国家经济衰退,陷入失业。

收入增长跟不上通货膨胀的速度。

行业

新人比我更具有性价比。

行业竞争激烈,低价抢标现象严重。

行业被某些公司垄断。

行业正在慢慢衰落。

公司

公司发展前景不是很明朗。

公司薪资福利一般。

公司没有企业文化。

公司员工关系比较紧张,有内斗现象。

公司缺乏活力。

总分

(说明:此表并不精确,仅供参考)

如果总分小于10分,那要恭喜你,说明你生活稳定幸福,让人羡慕。我觉得这篇文章你也不用往下看了。

如果你的总分大于20分,说明你承受的压力过大,可能面临职业方面的危机,应当寻求改变了。

如果总分在10-20分,说明你生活比较稳定,收入方面可能是中上等水平,但职业发展方面仍有风险。

3. 另一片天地

所谓“穷则变、变则通”,如果你还是普通的老程序员,并且还在为自己的职业彷徨和苦闷,那就应该寻求变化之道了。

如果你愿意,转向项目管理乃是上上之策。

当然转项目管理只是程序员很多选择中的一个。显然不是每个程序员都需要当项目经理。一般每个公司都最少提供了技术和管理两条职业发展通道,如果你技术超牛,你完全可以从程序员做到系统分析师,一直做到技术总监。如果技术方面你信心不足,转项目管理就是一件自然而然的事情了。

技术和管理,这是两条绝然不同的路,虽然“条条大路通罗马”,但沿途的风景却是完全不一样。一旦你从事了项目管理,你将看到不同的另一片天地。

(1)在管理的天地里,你将不再有职业瓶颈。

程序员虽然也可以干一辈子,但工资水平是有天花板的,不要问我为什么,行业就是这样。项目经理则有无限上升的空间,不但工资更高,职位上也可以升至部门经理、副总经理甚至总经理职位。

(2)促进项目经理内在成长,心智更加成熟。

美国项目管理协会PMI认为,项目经理75%-90%的时间应该用在沟通上。沟通的对象显然是人,因此,项目管理主是要一项与人打交道的工作。如果说解决技术问题人主要是靠一个人的智商,那么与人打交道,则是要靠一个人的情商。

虽然不当项目经理也可以发展情商,但在项目中锻炼是自我成长、自我完善的捷径。

(3)项目管理知识可以用在生活中的各个方面。

生活中的许多事情,我们并没有称之为一个项目,但可以用项目管理的方法来对待。例如一次婚礼的组织,或一次自助旅游。你在项目管理中培养起来的情商,更是让你面对生活中的各种问题游刃有余,你的家庭也会更家和谐,就像范范的一首歌里唱的:“好像什么困境都知道该怎么办”。当到达这种境界时,你会有一种海阔天高,一览众山小的感觉。

因此,即使你不想从事项目管理,也建议你学习一下项目管理知识。有一本书叫《不懂项目管理,还敢拼职场》,虽然觉得内容一般,但对标题深以为然。

二.项目管理倒底难不难

程序员问:“我现在想当项目经理,但心里没底,不知道项目管理到底难不难?”这个问题确实不好回答。俗话说,“会者不难、难者不会”,很多事情都是如此。

有些人觉得不难,他们好像天生就具有管理的才能,他们举止得体、八面玲珑,具有很强的个人魅力,可以把大事化成小事,把坏事变成好事。这样的人,想不成功都难。

大部分人还是会觉得难。在PMI的知识体系里,项目管理有九大领域,五大过程组,44个过程,有数不清的工具和方法。项目执行中方方面面出了问题,都是项目经理的责任,项目经理又不是超人,怎么应付得过来。项目管理确实有点难。

你若问我,我会说项目管理既难,又不难。对于愿意改变自己的人而言,它不难;对于性格偏执的人而言,项目管理确实太难了。

很多人无法意识到自己的偏执。上级只要提出一点批评,他们就要拼命的辩解和反驳。他们的保护壳太厚了。

项目经理最重要的素质,就是心智的成熟,一个心智成熟的人,不会是一个偏执的人。

毕竟,人无完人,项目经理必须从善如流,才能完成自己角色的转变。对于从程序员转过来的项目经理,做事的方法与以前应是翻天覆地的不同,必须迅速审时夺势,改变自己。否则,那你不还只是个有项目经理职位的程序员么?

因此可以说,项目管理难就难在项目经理要改变自己。这个改变,不只是知识体系的扩充,更可能是性格的改变,而一个人要改变性格是极其困难的。

程序员习惯于与机器打交道,通过严密的代码和逻辑来控制机器;而项目经理是跟人打交道,人是有感情的,绝对不是你给他输入1+1,他就给你输出2。项目经理必须时时用心去思考、体会,然后改进。几番回合下来,项目经理会惊喜的发现自己变了,有种脱胎换骨的感觉—-那是当然的,因为变得更成熟了。

只要你愿意改变自己,假以时日,你一定会成为一个优秀的项目经理。

三.程序员应克服的障碍

程序员与项目经理之间,往往有一条鸿沟。对技术钻研越深的程序员,这条鸿沟可能越大。这是由程序员的性格特征决定的。

程序员普遍有非常多的优点:例如聪明、逻辑思维强、学习能力强、创新能力强、直率等。但优点往往也是弱点之所在,例如:

(1)太讲逻辑:与人相处时容易忽视人际关系、感情等方面的因素。

(2)过于直率:说话直来直去,容易伤害他人感情。

(3)自傲:总觉得自己技术不错、比周围的人要强一点。好比一只鸡看到同类觉得自己最大,看到鹅觉得跟自己差不多,看到火鸡才觉得比自己大一点。

(4)固执:在自己的逻辑中不能自拔,无法听取别人的意见。

(5)沟通能力较弱:大部分程序员在口头表达、写作、汇报、交流等方面存在不足。

而这些缺点,也是心智不够成熟有表现,这是项目经理的大忌,往往会成为程序员晋升项目经理的障碍。因此,必须要克服这些障碍,给自己制定符合项目经理要求的行为准则,时时提醒自己,每日进行反省,坚持下去,必然会成功。


被任命为项目经理,是职业生涯的第一次飞跃,既惊喜又紧张。从现在开始,你要思考怎样才能胜任项目管理的工作,否则等着你的,很可能是一场悲剧。

一.升职之辨

1. 为什么是我

不是每个人都能当项目经理,程序员中只有一小部分能成为项目经理,大部分人会随着岁月的流逝,成为了“资深程序员”。

那为什么领导要选择我呢?一般人对自己所拥有的东西都会很快习以为常,认为这是自己应得的。一点也没错,这就是你应得的,原因也很简单,那是因为你比别人优秀一点。

其实领导挑选人才的标准很简单,那就是你比别人优秀,而且只需一点点。你不需要“鹤立鸡群”,“鸭立鸡群”已经足够了。俗话说:“群众的眼睛是雪亮的”,其实领导眼睛才是真正雪亮的,如果他还没有发现你,那是因为你还不够优秀,没有引起他的注意。

因此,如果你工作多年仍然没有职位上升,不要埋怨公司不给你机会,而应该从自己身上找原因,机会只会给有准备的人。如果你不知道自己准备好了没有,就试着回答下面的问题吧:

  • 工作是不是比别人积极主动一点;
  • 加班是不是比别人多一点(如果贵公司喜欢员工加班的话);
  • 提交成果是不是比别人提前一点;
  • 成果质量是不是比别人要好一点;
  • 学习是不是比别人勤奋一点;
  • 面对问题是不是比别人勇敢和执着一点;
  • 人际关系是不是更和谐一点。

如果你能做到这些,相信机会迟早会属于你的。

2. 彼得定律的启发

心理学中有一个词,叫“光环效应”,是说当我们对一个人某个方面有好的印象时,我们会倾向于认为他的其他方面也是好的。因此,当你能胜任你现有职位、比别人优秀一点时,领导会认为你是下一个职位的最佳人选。然而实际上,你不一定是最合适的,但有什么关系呢,你已经是项目经理了,你有很多时间,可以边做边学。但是,如是你长期不胜任项目管理工作,项目经理就会成为你职业生涯的最高职位。

这也就是彼得定律的内涵:“在一个等级制度中,每个员工趋向于上升到他所不能胜任的职位”。

从彼得定律中,我们可以得到以下启发:

(1)在公司里面,大部分人都干着他不能胜任的事情。这听起来真是一个悲剧,好在我们暂时还不用操心。

(2)金子是一定会发光的,人才绝对不会被埋没的。这是由于人才的稀缺性造成的,只要是胜任当前职位,晋升是迟早的事。因此,无论是程序员还是项目经理,都要做好你的本职工作,这才是最重要的。试想,如果本职工作都没做好,怎么可能提拔到更高职位呢?别告诉我还可以走后门。

(3)当上了项目经理,只是说明你可以胜任程序员职位,而不意味着你可以胜任项目经理。因此,别急着庆祝,还是多想想怎么来管项目的事情吧,否则你就可能是下一场悲剧的主角。

(4)如果你已经担任项目经理很长时间,还没有得到升迁,不要骂老板,这只是说明你没有完全胜任项目经理的职位,还是赶快想想怎样完善自我,提升内功吧。

二、新任项目经理的误区

新任项目经理,由于经验和知识储备的不足,往往会出现相同类型的问题。

1. 农夫的一天

有一个小故事,讲的是一个农夫的一天:

有一个农夫一早起来,告诉妻子说要去耕田,当他走到40号田地时,却发现耕耘机没有油了;原本打算立刻要去加油的,突然想到家里的三四只猪还没有喂,于是转回家去;经过仓库时,望见旁边有几只马铃薯,他想起马铃薯可能正在发芽,于是又走到马铃薯田去;路途中经过木材堆,又记起家中需要一些柴火;正当要去取柴的时候,看见了一只生病的鸡躺在地上……这样来来回回跑了几趟,这个农夫从早上到夕阳西下,油也没有加,猪也没有喂,田也没耕,最后什么事也没做好。

故事看上去很可笑,但笑过之后,回过头思索一下,故事里是不是也有我们项目的影子呢? 我们将《农夫的一天》换成《项目经理的一天》:

软件项目经理小赵打算今天完成本周五项目阶段汇报的材料,他打开电脑,想起了还有一个重要的技术问题没有确定最终方案;于是他召集项目技术骨干准备继续讨论,一个钟过去了,还没有结论,这时老板来电话,要去老板办公室汇报工作,原来昨天老板跟客户吃饭,客户说到系统有一项功能无法使用,两周了还没解决;从老板房里出来,小赵继续写汇报材料,没多久,项目组的小张找来要反映项目组绩效考核结果以及加班工资的问题;快下班的时候,销售部经理匆匆忙忙地找到小赵:“快帮我估算一下这个项目的实施成本,明天我要给客户报价”……就这样,小赵一天都忙得不可开交,终于下班了,汇报材料没写多少,重要技术问题也没有解决,客户的问题也没安排处理,绩效考核的问题还要跟部门经理以及人力资源部沟通。唯一完成的一件工作,就是帮销售部估算成本,可惜跟自己负责的项目却没什么关系……经过一天的奋战,问题不但没有减少,反倒变多了。

这样的一天无疑令人沮丧,但却经常出现在我们的现实中。当高级经理询问怎么还没有提交项目计划的时候,项目经理无可奈何又理直气壮的说:“我很忙啊!”

项目经理确实很忙,但这是没有效率的忙。其实何止是忙,还“茫”,而且“盲”,“忙、茫、盲”是许多新任项目经理的写照。

  • 忙:一天到晚都在忙过不停,是为忙碌;
  • 茫:碰到什么做什么,像个无头的苍蝇,没有计划性,或者无法坚持计划,是为茫然;
  • 盲:项目经理这一天初始目标究竟要做什么,做着做着就丢了,没有目标性,是为盲目;

2. 思维转换

有时候我们会说一个项目经理,不像一个项目经理,那像什么呢?当然是像程序员罗。也就是说,他的职位虽然变化了,但并没有完成相应的角色转换,仍然像程序员那样工作。项目经理之所以会出现“忙、茫、盲”状态,归根到底也是因为他没有实现自己的角色转换。

角色转换本质上是思维转换。思维决定一个人的行为,项目经理不像项目经理,那是因为他的思维仍然是以前的技术思维,而不是管理者应当具备的管理思维。这就好比一个人在陌生的城市,拿着过时的地图,寻找自己的目标,结果只会是四处碰壁,无所适从。

表1 技术思维 vs 管理思维

比较方面

技术思维

管理思维

关注中心

以过程为中心的思维

关心每项任务本身,而不是整体目标。不重视计划,对任务缺乏控制。

以目标为中心的思维

以终为始。关注整体目标、实现的路线、影响目标实现的因素、各种事件对目标的影响,区分重点。

事物结构

局部思维

过于关注细节,对整个项目工作的内容、完成路线没有概念。上来就干,工作缺乏计划性、条理性。

整体思维

采用结构化分析方法,自顶向下,先整体后局部。有时亦采用头脑风暴,先将细节展开再归纳。

逻辑思维

以机器为中心的思维

思想单纯,性格直率。在人际问题上过于讲究逻辑。

以人为中心的思维

人是执行项目的主体,关注事情本身,更关注人的价值。学会包容,能与各种不同情格的人打交道。

决策依据

完美思维

不关心进度和成本,只关心完美的功能和代码,并视之为艺术。经常对上一任的工作推倒重来。

平衡思维

拒绝渡金,项目不需要艺术。在进度和质量之间取得平衡,在员工个性与团队凝聚力之间取得平衡,在员工、项目、公司和客户之间取得平衡。

人际关系

个人思维

以个人为中心,单兵作战,依赖个人能力。个性固执,工作方法简单。

团队思维

你不是一个人在战斗,发挥每个成员的作用比个人埋头苦干重要得多。关注团队分工、配合以及士气和凝聚力。

实现思维转换需要时间,这期间是一个懵懂的、左右为难的、痛苦难熬的阶段。有些人可以在很短的时间内完成蜕变,有些人却可能一辈子都在这个阶段,这跟一个人能不能改变自己有关。这些不能改变自己的人,理论知识往往也很丰富,说什么都头头是道,可惜的是,这是无效的知识,因为不能用在自己的实践中。这样的人,往往有一定的人格分裂倾向,因为他的知识和他的行为不统一,甚至是矛盾的。知行合一才是学习的最高境界。

新任的项目经理,别忘了时刻提醒自己,像一个项目经理一样去当项目经理!

3. 项目经理行为分析

第一次当项目经理,往往会由于经验不足、项目管理知识的不足以及角色转换等原因,表现出种种不胜任的迹象。

不胜任的项目经理,通常有以下几种类型:

(1)刺猬型

刺猬型的人非常敏感,随时都保持警惕,只要一感觉受到威胁,便会用豪猪般的刺扎向对手,让人避之不及。他们通常自我封闭,坚守自己的地盘,处处表现出来自己是对的,虽然其实他自己也并没有底气。他不会让别人看到自己的脆弱。

刺猬型项目经理不允许别人干涉自己的项目,哪怕是自己的上级。如果领导询问项目中的某个问题时,他会非常明确的告诉你,那不是我的问题,那是客户的问题,或者是公司制度引起的问题,或者是领导你干预项目造成的问题。总之,我一切都做得很好。

刺猬型项目经理的这种反应通常是不自信的反应。小猫在害怕时,总是拱起背,把全身的毛都竖起来,让自己看起来更强大,但老虎永远不会这样。

(2)绵羊型

绵羊型项目经理的性格非常温顺,他们语气平和,慢条斯理,不急不躁。对待下属非常友好,在他们心里,似乎没有好和不好、对和不对,这些对他们都不重要。项目每天都很平静,似乎永远不会有暴风雨的到来。当上级提出要求时,他们永远都是好的,至于做成怎么样,只要尽力了,那有什么关系呢?

绵羊型项目经理通常工作缺乏计划性,即使有计划,也只是应付上级而已。看到什么事情,就去做什么事情,除此之外,还有什么其它的办法吗?

(3)猴子型

想像一下孙悟空的行为就对猴子型项目经理有了大致的认识。他们技术能力强,很有激情,非常聪明,非常自信。但他们往往性格冲动,做起事来横冲直撞,不讲究方法。

猴子型项目经理悟性很强,进步会很快,他们最终会克服自己的不足,像孙悟空一样,取得正果。这一刻,他已经不是猴子了。

刺猬型和绵羊型项目经理,他们往往缺乏自信,其管理模式一般是被动式的,做事没有计划性,有什么事就做什么事,就像条件反射一样,只会对外界刺激做出反应。

猴子型项目经理则是主动式的管理,他们充满自信,但往往由于经验不足,过于盲目,对问题考虑不周。同时由于冲动的性格,在团队中并不受欢迎。

这三种类型都是不胜任的表现,那怎样才是胜任的类型呢?如果还是用一种动物来比喻,我觉得应该是“头狼”,也就是狼群的首领。

暂时的不胜任不要紧,关键是要有进步。如果一个项目下来,除了很疲惫,你没有感觉到自己有一些积极的变化,那你的危机也要来了。要知道,项目经理并不是“铁饭碗”,虽然公司倾向于选用有经验的项目经理,但当你明显不胜任时,领导不会再在你身上押上赌注,他们宁可重新冒险一次,因为他们不想“两次踏进同一条河流”。

4. 心态

新任项目经理没有管理经验,不胜任是可以理解的。也许你认为公司应该给你更多的培训再上岗,但往往形势是箭在弦上,在没有更多资源的情况下,领导把这个成长的机会给了你。

可怜的是公司老板,他的项目成了你的试验田。实际上,公司提拔你做项目经理,就是花巨资送你去培训学校,不是吗?我一直认为,由一个不合格项目经理负责的项目,相比由优秀的项目经理来带,实施成本可能多出50%,甚至更多。不合格的项目经理就像一个给项目减肥的机器,使得肥肉变瘦肉,瘦肉变骨头,骨头变渣滓。

项目经理应该学会感恩。要成为优秀的项目经理,应该有好的心态,而感恩是一切好心态的基础。你只知道自己压力大,却不知道你让老板少赚了多少钱!是老板交学费帮你从一个初出茅庐的项目经理,培养成了一个合格乃至优秀的项目经理。

我见过不少新任项目经理,对公司满肚子怨气,好像是公司一手造成他的项目问题百出,仿佛领导和老板成了他的敌人,刚做完项目甚至还没有做完项目就果断匆匆辞职,带着公司用无形成本换来的宝贵经验,绝决的离去,换取更快的升职加薪。设想一下你是老板,不知会作何感想?

感恩是一个人最重要、最美好的品质之一。网上有一个经典感恩的段子:“…感谢鞭打你的人,因为他激发了你的斗志,感谢遗弃你的人,因为他教导你该独立,…凡事感激,学会感激,感激一切使你成长的人!” 而你的领导和你的老板,他们既不是鞭打你的人,也不是遗弃你的人,而是培养你成长的恩人,我们有什么理由不感谢他们呢?

在希腊德尔斐的阿波罗神庙上,刻得着一句神秘的箴言:“认识你自己”。从某种程度上来说,我们都是自己的“最熟悉的陌生人”。认识自己的位置,是每个人获得成长的第一堂课。一个人的位置,对其言行的影响是至关重要的,俗话说:“屁股决定脑袋”,虽然听着粗俗,却饱含人生哲理。既然我们屁股在项目经理的位置上,就应该像项目经理一样去思考问题,做事情。

一.项目经理的处境

经过数年的打拼,怀着美好的向往,我们终于成了他——项目经理。然而,梦做到最真的时候,往往也是梦醒的时候。

项目经理其实也是悲情人物。从“程序猿”到项目经理,可以说是刚出虎穴,又入狼窝。要知道,做一个合格的项目经理,比成为一个优秀的程序员,还要难得多。

本来以为当上了项目经理,王子和公主从此就可以幸福的生活在一起了,没想到,跋涉的路才刚刚开始。我实在不想打碎这美好的梦想,这有些残忍,但清醒的痛着,总好过麻木的睡着。更何况人生本来就是一个接一个的杯具,每个角色都有他的难处,我们只能接受这个现实。人生就像登山,当你到达一个山头时,发现还有更高峰,一山还比一山高。

王子和公主,一直在路上。

1. 高和低

没有成为项目经理之前,期望着当上了项目经理,可以拿着更高的工资,被别人尊敬的称呼为某某经理,还可以干着更少、更简单的活——指挥别人干活,这谁不会啊?

然而,人生不如意十之八九。更高的工资,应该是有的,但往往还不会达到让你眼前一亮的数字。被尊称为经理,也是应该的,Project Manager,名正言顺的经理。然而,在大部分公司里,项目经理也就是像弼马温一样的小官,明白真相之后,又难免有一些失落。至于干更少、更简单的活,那就只能说是痴人说梦了。

事实上,在兴奋过后,等你翻到硬币的另一面,你会看到和你想像不一样的高和低:能力要求高、职位低。

(1)能力要求高

能力要求高不高,口说无凭,我在网上随便找了一个软件项目经理的招聘信息,要求如下:

职责范围:

1、负责软件项目管理及计划实施;
2、具备较强管理、协调及沟通能力,帮助开发人员解决开发过程中遇到的技术问题,做好日常的开发团队管理工作;
3、与各团队协同工作,确保开发工作正常顺利的开展;
4、具备较强的分析问题、解决问题的能力,能够解决项目团队在开发过程中遇到的技术难题;

任职要求:

1、计算机相关专业,4年以上JAVA软件从业经验,2年以上开发经理或团队管理经验;
2、精通java、jsp、HTML、JS、xml、AJAX编程语言,精通Struts、Hibernate、Spring、IBatis等常用框架技术;
3、精通中间件技术,对Websphere、WebLogic等有很深的了解;
4、快速适应工作环境,应变能力强,抗压能力强;
5、重视成本和进度控制,合理有效利用资源,有较强的责任心;
6、熟悉Android开发、Hadoop技术者优先考虑;

上面的要求写得比较随意,我帮他整理一下,并点评一番:

表1 项目经理职责要求

类别

职责/要求

点评

专业技术

精通多种编程语言和技术框架;精通中间件技术;熟悉Android及Hadoop。

项目经理必须是技术专家,也许你自己不用写代码,但你必须能指导下属,解决技术问题。必要时,还得参与做系统架构和系统分析。

管理技能

项目整体管理;成本管理;进度管理;资源管理;团队管理;沟通协调能力。

难道风险管理、质量管理、采购管理就不需要了吗?九大领域一个都不能少。

个人内在

适应能力;应变能力;抗压能力;责任心;分析问题解决问题的能力。

①     适应能力:像变色龙。能适用不同公司文化和氛围,不同性格的同事,特别是上司。

②     应变能力:像变形虫。项目过程中会出现各状况,必须能调整自己、调整计划,以适应变化。

③     抗压能力:像驴子。项目管理压力很大哦,天塌下来要也扛着。

④     责任心:项目出问题,基本上责任都是你的,决不可推卸责任,勇敢的去解决问题吧,不要辜负领导的重托。

⑤     逻辑思维:项目经常会出问题的,所以你必须思维清晰,能够客观的分析问题和解决问题。

相关经验

4年开发经验+2年管理经验

老板可不想冒险,把项目给你去做试验田。

怎么样,要求很高吧?能完全达到这样的要求,我想去铁道部当个CIO应该是没什么问题了。即便如此,对于项目经而言,这些要求也没有哪一项是多余的,也就是说,项目经理必须成为一个超人,最好是像《蜘蛛侠》里面沙人那样,可以随心所欲的变化自己,穿越一切障碍,拥有无穷的威力。

(2)职位低

说职位低,有以偏概全之嫌。在项目型组织结构的公司中,项目经理的职权还是很大的,项目经理一般直接向总经理汇报工作。但在IT行业中,比较少采用项目型组织结构,大部分是矩阵型或职能型的组织结构。在这种架构中,项目经理基本上就是最小的官了。

2. 大和小

项目经理之所以需要很强的个人能力,归根到底是由项目经理的责任所决定的。项目是一种个人责任制的管理方式,项目经理是项目组的核心,责任无疑很大;与之相对应,其权力又是比较小的,这让项目经理的处境更加困难。

(1)责任大

项目经理作为项目组的最高领导,对项目的成败起着至关重要的作用。对项目的目标和实施过程中的一切问题,负有最终的责任。影响项目成败的因素也许有许多,但不管是什么原因,最终的责任会落实在项目经理身上,领导会说,项目经理不给力。

(2)权力小

项目经理的正式权力包括指挥权、人事权、财权、技术决策权以及采购权等,项目经理一般在某一限度内具有完全的权力,无需沟通汇报即可自行做出决定;在超出限度时,则需要与高级经理或职能经理商议决定。在一个矩阵型组织结构的公司中,项目经理的权力大致如下表所示:

表1 矩阵型组织中项目经理权力情况

权力类型

完全的权力

部分权力

指挥权

对项目内的人、财、物的调度安排,可以自主决定。

对项目结果产生较大影响时,需与高级经理讨论。

人事权

可以依据公司制度对员工进行考核、奖惩。人员的聘用、辞退等决定一般由职能经理安排,项目经理可以作出建议。

财权

小额活动经费一般可以自主决定达到一定金额需要申请,由高级经理直至总经理审批

技术决策权

一般技术措施可以自主决定重大技术措施,必须通过外部评审,并请上级领导拍板

采购权

小额采购项目必须品达到一定金额需要申请,由高级经理直至总经理审批

乍看上去项目经理权力并不小。但在实际操作中,项目经理权力范围的这个限度往往比较小,并不足以保证项目经理推动项目顺利开展,项目经理必须花去大量的时间去与上级领导沟通、汇报、提出建议、争取支持。在有些公司,甚至连项目组聚餐也要向上汇报请示。项目经理的这种处境往往会导致其工作畏首畏尾,做事犹豫不决,久而久之,失去了对工作的激情。

3. 夹心饼

项目经理的位置是比较尴尬的。下面的兄弟要你多争取一些奖金;领导要你经费更省一些;客户要你更快一些;用户要你的产品更好用一些。在员工面前,你代表老板;在老板面前,你代表项目组员工;在客户面前,你代表公司。你代表了很多人,就是没有代表自己的时候。

项目经理就是一个不折不扣的夹心饼。做人难,做项目经理更难啊。

从程序员到项目经理(三):认识项目经理

图1 项目经理成了夹心饼

4. 为什么还要做项目经理

也许你会问,既然项目经理这么难、这么惨,好像比“程序猿”还要苦逼,那我为什么还要做项目经理呢?这看上去不是个问题,“人往高处走,水往低处流”嘛,高处虽然艰险,向上追求的脚步却不能停止。无限风光在险峰,还是别埋怨攀登的辛苦,好好享受一路的风景吧。

当然,人的一生有不同过法,有些人喜欢在泳池中游水,有些人在热衷于在大海的激流中冲浪,还有些人,一辈子也不会游泳,他们只是偶尔到河边洗洗手,用冷漠或者好奇的目光看着那些乘风击浪的人们。每种活法的选择权在自己手上,一旦选择,无怨无悔。

二.项目经理素质模型

1. 素质模型的作用

谈素质模型是一件很严肃的事情。因为素质模型就像一面镜子,项目经理拿来一照,可以发现自己的优势和弱点。只有扬长补短,才能在职业发展之路上步步高升。

管理方面的素质模型很多,但不是每一个都是客观的镜子,如果不能在镜中看到一个真实的自己,那它也就失去了应有的价值:

如果它是一面哈哈镜,那看到的将是一个变形的自己,无法作为自己的参照;

如果镜子太小,就只能照到自己的局部,会导致产生盲目的悲观或乐观;

如果镜子太大,可能会看到太多无关的东西,反倒干扰了自己的视线。

2. 他山之石

(1)PMI知识体系模型

PMI将项目经理应具备的知识和技术分为五类,即:项目管理知识体系,应用领域知识、标准与规章制度,理解项目环境,通用管理知识与技能,人际关系技能,如下图所示:

从程序员到项目经理(三):认识项目经理

图2 PMI的项目经理知识技术体系

(2)麦克利兰的素质模型

美国心理学家麦克利兰经过研究提炼并形成了21项通用素质要项,并将21项素质要项划分为6个具体的素质族,同时依据每个素质族中对行为与绩效差异产生影响的显著程度划分为2~5项具体的素质。6个素质族及其包含的具体素质如下:

①管理族,包括团队合作、培养人才、监控能力、领导能力等;
②认知族,包括演绎思维、归纳思维、专业知识与技能等;
③自我概念族,包括自信等;
④影响力族,包括影响力、关系建立等;
⑤目标与行动族,包括成就导向、主动性、信息收集等;
⑥帮助与服务族,包括人际理解力、客户服务等。

(3)管理者胜任特征模型

胜任力是指任何直接与工作绩效有关的个体特质、特点或技能等,在本质上也就是应该具备的素质组合。有学者利用物元分析和可拓评价方法建立了基于管理技能、个人特质和人际关系3个维度的胜任特征物元模型。

①管理技能的维度,包括团队领导、决策能力、信息寻求和市场意识等;
②个人特质的维度,包括影响力、自信、成就欲、主动性、分析思维和概括性思维等;
③人际关系的维度,包括人际洞察力、发展他人、关系建立、社会责任感和团队协作等。

(4) 四种能力论

Robert hogan和Rodney B.Warrenfeltz研究指出管理人员的素质可以分为4种,分别为:自我管理能力、人际关系能力、领导能力和商业能力。

①自我管理能力,包括自我尊重、正确对待权利的态度和自我控制等;
②人际关系能力,包括换位思考、正确预计他人的需要、考虑他人的行动等;
③领导能力,包括建立团队、维持团队、激励团队、建立共同愿景和巩固团队等;
④商业能力,包括制订计划、管理预算、绩效评估、成本管理和战略管理等。

3. 几种素质模型的分析

上面这些模型,都是被广泛认可的模型,我本人对四种能力论,更是情况独钟。为了找出一个适合项目经理学习修炼的模型,我们有必要对这几种模型进行评价。

首先确定评价的指标:

(1)针对性:是否适合于项目管理领域;
(2)完整性:是否太过宽泛或狭窄;
(3)实用性:是否适合于项目经理修炼。

表2 几种素质模型的评价

模型

针对性

完整性

实用性

PMI的项目经理知识技术体系

太小

麦克利兰的素质模型

较差

太宽

较差

管理者胜任特征模型

太宽

较差

四种能力论

太宽

 

那我们能不能找到一种这三个指标都吻合的模型呢?

4. 西西吹雪的六种能力模型

“六种能力模型”力图在针对性、完整性和实用性方面达到最佳。六种能力分别是:知识、技能、逻辑思维、执行力、心智成熟和领导力。这六种能力是一个有机的整体,如下图所示:

从程序员到项目经理(三):认识项目经理

图3 项目经理的六种能力模型

(1)人、事结合

管理,就是管人理事,这个理念已经深人心。这个模型首先就是一个管人理事的素质模型。

从“理事”的角度来讲看,项目经理应当具备四大素质:

  • 知识

必须具备项目管理的理论知识,所处的行业知识, 以及专业知识;

  • 技能

光有知识是不够的,还要能知道怎么做。主要有项目管理技能、沟通表达技能、写作技能、专业技能等。

  • 逻辑思维

项目经理必须具有较强的逻辑能力、思维清晰,对项目任务和要做的工作,随时都有清晰的分类和列表。逻辑思维能力有很多种,如果要挑出两种对项目经理最重要,我觉得是归纳能力、判断力。

  • 执行力

项目经理本人必须具有很强的执行力。如果项目经理像个蔫老头,整个项目的执行结果可想而知。

从“管人”的解度来讲,项目经理应当具备两大素质:

  • 心智成熟

要管人,首先必须学会与人相处,心智不成熟的人,与人相处往往会无所适从。心智成熟,也就是要管好自己的内心。自己都管不好, 怎么管别人呢?

  • 领导力

项目不是一个人的战斗,有些项目经理,只顾自己埋头干活,乐不滋滋,下面的同事却不知道每人要做什么,这是缺乏领导力的表现。余世维说:“管理就是让别人完成事情”,“真正厉害的人不是自己累死,而是要让手下做事情累死,这个才叫本事”,“优秀的管理者不会让员工觉得他在管人”。这三句话,可以说是领导力的三种境界。

简而言之,项目经理就像一个贤妻良母,要上得厅堂,下得厨房。上得厅堂意味着,项目经理要擅长与人打交道,也就是“管人”的要求。下得厨房则意味着项目经理懂技术、懂业务,能把复杂的事情理清楚,并解决各种问题,这就是“理事”的要求。理事主要靠智商,而管人则主要靠情商。

(2)内、外兼修

这个模型还是一个内外兼修的模型。古人云:“胜人者力,自胜者强”,说的其实就是一个人的外在修养与内在修养的关系。

战胜外在的事物,你需要是“力”,因此模型也有两个力:执行力和领导力。有这两种力,我们可以在管人、理事都做得很好。

要战胜自己,则非要靠一个人的内在修养不可。因此模型中,有四项个人内在素质的修炼:知识、技能、逻辑思维和心智。

从表面上看,“自胜”似乎比“胜人”更牛一些。但是从一个人成长的角度来看,我们主张要先“自胜”,再“胜人”。如果以树类比,“自胜”是根,“胜人”则旧枝干,一棵没有发达根系的树,是不可能长成参天大树的。所以不要让自己一开始就显得很牛,而是首先让自己成为一个真正的牛人,否则大树会过早夭折。

(3)从独立到互赖

一个人有成长过程可以分为三个阶段:依赖期、独立期和互赖期。每到一个新的阶段,都是一次巨大的飞跃。

●依赖期:围绕着“你”这个观念——你照顾我;你为我的成败得失负责;事情若有差错,我便怪罪于你。
●独立期:着眼于“我”的观念——我可以自立;我为自己负责;我可以自由选择。
●互赖期:从“我们”的观念出发——我们可以自主、合作、统合综效,共创伟大前程。

也许你已经注意到了,在素质模型里面没有依赖期,这是因为在依赖期的人是无论如何也成不了项目经理的。这个模型,是一个从独立期走向互赖期的素质模型。

在独立期,我们主要擅长做“理事”的工作。我们是技术英雄,可以把每件事都做得很完美;

在互赖期,我们的精力转向了“管人”。我们懂得如何与各种不同类型的人相处,如果驱动团队为一个共同的目标而努力。

(4)层次分明

这个模型是还是一个层次分明的、渐进的模型。从知识到执行力,实际上是一个从“知道”到“去做”的过程,而从心智成熟到领导力,是发挥团队力量的两个阶段。

从程序员到项目经理(三):认识项目经理

图3 六种能力的层次

一.从几个招聘要求说起

在上一篇中,我举出了一个招聘需求,引起一些朋友的争论。既然招聘的是项目经理,为什么需要那么多专业技能呢?

在百度上招聘频道搜索“软件项目经理招聘”,可以查到8500多条类似的招聘信息。我们看看国内软件行业老大东软集团的招聘条件:

工作职责:
带领团队完成需求分析,开发计划制定与跟踪,项目组关键技术问题解决,负责项目QCD。
岗位要求:
1、3年以上软件开发项目经验,2年以上项目管理经验;
2、熟练掌握JAVA、WEB开发,精通基于Oracle/Mysql数据库的MIS系统开发;
3、具有较强的沟通、组织能力和较好的文字表达、写作能力;
5、有医疗业务开发经验者优先。

 
显然,东软公司也是要求具有较强的专业技能的。当然,也许东软公司太大了,不具有代表性,那么我们再看一个比较小的公司,你绝对没听过(我也没听过),广东广风隆电子科技有限公司:

任职要求:
1.能很好的把握开发质量和项目进度,规避风险。
2.具有较强的语言和文字表达能力、沟通协调能力、良好的团队合作精神。
3.具备至少3年项目管理经验或大型系统开发实施经验的优先。
4.掌握JAVA技术,能熟练应用J2EE,Spring,Struts,Hibernate等开发和测试。
5.熟悉基于java的B/S架构应用技术。
6.熟悉基于Tomcat、WebSphere、weblogic等应用服务器的开发;
7.熟悉大型数据Orecle/SQL Server等,熟练掌握存储过程编写、数据库表设计。
8.熟悉unix/Linux操作系统。
9.具备软件团队管理经验,熟悉软件开发流程,能够独立完成项目实施的优先。
10.具备一定的系统框架设计、熟悉开发流程,具有的良好的需求分析、项目设计、规划能力。
13.有如下经验者优先考虑:
a.熟悉BIEE,或有BI项目开发实施经验
b.对BI/DW的概念和架构有比较深入的了解,熟悉维度模型架构
c.熟悉Oracle数据库开发,或有ETL工具ODI经验,精通SQL
d.有基于java技术项目管理经验的优先,教育行业背景优先

 
哇啦啦,这个更不得了。这究竟是招程序员还是招项目经理,我也快被弄迷糊了。看来中小公司比大公司更看重专业技能。
当然,我再多举一千条也代表不了所有的企业。但诸位如果有时间一条条看,会发现绝大部分公司对“软件项目经理”这个职位,都对专业技能有较高的要求。那么,传说中的“外行领导内行”究竟是不是真的?外行真的可以领导内行,带领项目走向成功吗?
 

二.外行 vs 内行

1. 优势劣势分析

外行和内行究竟谁更适合当项目经理?那些招聘要求似乎已经为我们给出了答案,最少在软件行业内行项目经理更占据优势。然而,外行的项目经理往往也有其独特的优势,比如,他们往往更有大局观,能跳出技术本身看待问题,有更强的领导力等等。事实上,外行领导内行的现象,在国家大型建设工程或科研项目中要屡见不鲜。据说,我国的原子弹工程就是聂荣臻元帅领导的,而聂帅是不懂核物理的。

如果拿外行和内行项目经理来PK,并不是一件容易的事情,因为每一项都不是绝对的,这就如同比较男人和女人谁更适合做厨师一样。当我们拿两者PK的时候,其实包含了一些隐含的信息,就是这个外行的项目经理比内行项目经理,更加懂得管理、情商更高,否则的话,内行项目经理会毫无悬念的胜出,也就没有比较的必要了。

基于这些隐含的信息,我们试着比较一下两种项目经理的优秀和劣势:

项目经理类型

优势

劣势

外行

一般具有更强的领导力,更善于激发员工的士气、战斗力;
一般具有更强的谈判能力、资源协调能力,客户和上级领导满意度会更高;
一般具有更强的沟通汇报的能力;
更容易跳出技术本身,看清问题本质;
一般更善于权衡轻重缓急,更善于取舍。项目详细计划要依靠技术骨干,对其评估的准确性无法做出自己的判断;
无法对技术人员进行辅导;
无法对技术问题做出分析判断,帮助解决棘手问题;
无法对技术人员进度拖延原因做出准确分析、不能很好控制项目;
容易造成瞎指挥;
容易和技术人员互相看不起对方。

内行

外行的劣势往往是内行的优势外行的优势往往是内行的劣势

 
2. 技术决定论的误区

所谓内行与外行是纯粹从技术的角度来看问题,单纯讨论内行好还是外行好,其实也暗含着一个前提,就是技术决定项目的成败。而实际上,一个项目能否成功的影响因素,远不止是技术,对一个项目经理的素质要求也远不止技术。同是外行或内行来带一个项目,会由于个人修养与经验在差异,项目结果可能相差很远。因此单纯说外行好,还是内行好,是没有意义的。
 
3. 综合素质决定论

问题的关键其实不在项目经理是内行还是外行,而在于他的综合素质。无论是外行还是内行,只要谁的综合素质更高,谁就是更优秀的项目经理。

上一篇我们讲到项目经理的六种能力模型,也就是说,一个优秀的项目经理,应当具备六个方面的素质,即:知识、技能、逻辑思维、执行力、心智成熟和领导力。

在知识层面,包括专业知识、行业知识和管理知识。外行项目经理在专业知识和行业知识方面已经输了,但在管理知识方面按默认值,外行赢了。

在技能导面,包括专业技能和管理技能。外行项目经理在专业技能也又输了,同样管理技能方面,又略胜一筹。

现在打成了平手。剩下的,要拼逻辑思维、拼执行力、拼心智、拼领导力,这就和内行外行无关了,鹿死谁手,要看个人的修养。

因此,项目经理的比拼,拼的不只是管理知识或专业知识这一个方面,而是综合素质的比拼。
 

三.外行,你凭什么

1. 唐僧的团队

外行,也就是不懂专业知识技术,显然不但不是什么优点,反而是一个项目经理的极大缺陷。那为什么领导还会置这么大的缺陷于不顾,任命一个外行为项目经理呢?换一个角度,也就是说,一个外行,在什么情况下,可以成功的管理一个软件项目呢?

一件事情的发生,总有他的内部原因和外部原因。具体到这个问题上,也有它的内因和外因。

(1)在内部因素上,外行项目经理必须具有更高的综合素质。

现在流行分析西游记中的取经团队,其实也是一个典型的外行领导内行的团队。到西天取经,靠的是降妖服魔的本领,显然唐僧是个外行。但是,唐僧并不是一无是处,相反,他的综合素质很高。他外柔内刚,意志坚定,目标明确,还精研佛法,具有很强的人格魅力,因此他的那些徒弟才能凝聚在他周围,虽历尽千难万险而无悔。

(2)在外部因素上,必须有合理的人才结构作为支撑。

唐僧虽然不会打怪,但是孙悟空可以,补齐了唐僧在这方面的不足。试想,如果他的徒弟都不能降妖,任凭唐僧的领导力再强,也注定最终只会被妖怪吃掉。同样一个外行的项目经理,在他的团队中,必须可以信赖的技术骨干,像孙悟空一样能在关键时候解决问题,这些骨干一般就是项目中的组长、系统架构师或者系统分析师,必要时可能要设置项目副经理之职。如果团队中没有技术骨干,都是一些经验不足还不求进取的程序员,那除非项目超级简单,否则项目经理纵然有诸葛亮的才华,也无济于事。
 
2. 规模决定一切

在上面两项条件都具备的情况下,只能说明外行可以担任项目经理了。站在项目本身的角度,除了这两项因素,往往还跟以下方面有着紧密的关系。

(1)项目规模:规模越大,采用外行项目经理的机率越高。
(2)项目所在行业:在建筑、施工、水利等传统行业,采用外行项目经理的机率更高。
(3)项目的技术难度:在项目规模不大时,如果技术难度越大,采用内行项目经理风险更小。
(4)项目进度要求:时间要求越紧,更倾向于采用内行项目经理。
(5)项目管理的层次:有些项目层层分包,对于上面次层的公司,项目不需自己实施,只需对项目进行监管,项目经理自然也不需要很强地专业技术了。但对于底层实施单位而言,项目经理懂技术就很有必要了。同样,有些大型项目分成若干个工程,每个工程又包括若干个子项目,也是类似的情况。

在这些因素中,项目规模是具有决定性的因素。项目规模足够大的时候,也就有足够的经费来配备充分的人才。至于其实方面,其实只是表现而已。

四.透过瓶子看软件行业

为什么软件行业外业项目经理相对较少呢?这与软件项目本身的特殊性有一定关系,但在一定程度上也折射出软件行业的现状:

(1)软件项目规模不够大

在软件行业,几十万的项目很常见,几百万上千万就是大项目了,项目的利润率很低,很多中小型企业都生存在赢利的边缘。据工信部统计,2011年上半年我国软件行业利润仅占软件业务收入的1.28%。这么低的利润率,估计比东莞的制鞋厂还不如吧。而几百万上千万的金额,对建设、国防这些行业来说,简直不值一提啊。前几天太极集团1.99亿中标铁道部IT项目,大家都不服气。也是,人人都在喝汤,你凭什么搞特权吃肉?

(2)成熟的项目经理相对紧缺

软件行业小项目太多,对项目经理的需求量是非常大的,与此同时,成熟的项目经理相对很少。所谓“千军易得,一将难求”啊。当然,即使牛B的项目经理有了,其收入要求也不会低,这是小型项目难以承受的,只能退而求其次,找一个性价比更高的项目经理,或者干脆拔苗助长,找一个不错的程序员来带吧。

学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。

一.学习也是一种能力

看到这个标题,有人会说:“学习,谁不会?”的确,学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的时候,什么也不知道,是一张真正的白纸,我们靠学习的本能,学会了走路、说话、穿衣服…后来,我们上学了,老师把书本上的知识一点一点灌输到我们的脑子里,我们掌握的知识越来越多,与此同时,我们学习能力却好像越来越差了,习惯了被别人喂饱,似乎忘记了怎么来喂自己了。

学习本来只是一种本能,算不上什么能力,然而,经过二十多年的不断学习,学习反而成为了一种真正的能力,因为我们慢慢失去了它,它就更显得珍贵。

在学校里我们基本上被动式学习,然而走出了象牙塔之后,不会再有人对你负责,不会有人主动教你,我们需要主动的学习。所谓的学习能力,其实就是自主学习的能力。

几年前,曾有一本风靡管理界的书,叫《第五项修炼》,这本书倡导建立学习型组织,因为从长远来看,一个组织唯一可持续的竞争优秀,就是比竞争对手更快更好的学习能力。

一个公司如此,一个人又何尝不是如此?众所周知现在是一个知识爆炸的时候代,知识更新非常快。据说,一个大学毕业生所学习到的知识,在毕业之后的2年内,有效的不过剩下5%,更何况我们的学校与社会需要严重脱轨。我们赖以立足的,不在于我们现在掌握了多少知识,而是我们有多强的学习能力

学习不但是一种能力,而且是一种至关重要的能力,而这种能力的核心,就是学习的方法和心态。

二.买书是最划算的投资

古人云:“书中自有黄金屋,书中自的颜如玉。”这说明先贤们早就认识到,买书是最划算的投资了。

当我刚出道的时候,拿着非常微薄的工资,有一次我向主管抱怨道:“现在的书真贵啊,这点工资连饭都吃不起,更别说买书了!”主管对我说:“不要吝惜买书的钱,宁可忍着不吃饭,也不要忍着不买书,因为买书是回报率的最高的投资了。”

主管的话让我非常震动。后来,我看到喜欢的书时,再有没有手软过。我不断的学习,开发能力也不断的提高,工资水平也获得了大幅度的提高。一年后,我一个月工资的涨幅,就足够买两年的书了。你说,还有比这更划算的投资吗?

一本书,哪怕只有一页纸是有用的,它将所产生的潜在价值,也会远远超过书本身的价格。当然,书不在多,能踏踏实实消化掉一本好书,可能比泛泛而读10本普通书,要更有价值得多。

三.多读经典书

十年前,我刚进入IT行业的时候,真是求知渴,每星期都要往购书中心跑,可惜的是,那时给程序员看的书不像现在这么多,高质量的书就更少了。当时我印象中比较经典的书籍就是《Windows程序设计》、《COM本质论》、《Java编程思想》,还有就是谭浩强的《C语言程序设计》。其它充斥书架的,就是类似于《21天精通XXX》、《XXX从入门到精通》、《XX宝典》这样的书籍。

回首往昔,令我比较郁闷的一件事就是在我最有学习动力的时候,看的高质量的书籍太少,就好像是在长身体的时候,天天吃的是没营养的泡面。当然,这跟没有人指导也有很大的关系,独自一个人学习,让我走了很多的弯路。

软件开发方面的书籍,我大致将其分为三类:

(1)浅显的入门类书籍。

这类书的标题往往是《XX天精通XXX》、《XXX从入门到精通》、《XX开发实战》等,这类书往往从软件的安装讲起,喜欢翻译帮助文件。有人批评这类书为烂书、毫无价值,这并不公平。至少我本人,也曾从这些书中学到一些东西。即使是21天系列书,也有适合看的人群,只不过,它一般也就只能看21天而已,过后就可以扔到垃圾堆。这类书只适于还没有入门的初学者,从中学到一些入门的招式。这种书在刚起步的时候一般买上一本就可以了。如果你善于使用搜索引擎,这一本书也可以省了。

(2)国内外高手写的实战类书籍。

这类书实战性很强,把技术及原理讲得很透彻。比如《windows环境下32位汇编语言程序设计》、《深入解析MFC》、《Delphi深度探索》、《深入浅出WPF》、《深入剖析Asp.net组件设计》等。以前这类书都是从国外翻译或从台湾引进,现在国内高手越来越多,出自国内作者的也越来越多。这类书如果在你学习的每个方向看个两三本,并且通过实践消化掉,那么毫无疑问,你会成为一个优秀的程序员。

(3)国外大牛写的、揭露本质、有丰富思想的书。

这类书就是所谓的经典书了,例如《代码大全》、《编程珠玑》、《设计模式》、《重构》、《代码整洁之道》等。经典书就像一个有深度、有思想的朋友,他会给你启发、每次阅读都会有新的收获,这类书具有真正的收藏价值。看经典书永远是正确的选择,它绝不会浪费你的时间,因为经典书是无数人沙里淘金、帮你挑选过的结果。

然而,阅读这类书并不是一件容易的事情,读者需要有丰富的开发经验,才能与作者产生共鸣。真正能消化经典书的人其实不多,这就好像饮酒,一个新手无论如何也品不出葡萄美酒的醇香。在酒桌上,人人都把杯中酒一饮而尽,当有人点评“这个酒不错”的时候,我只能无奈的苦笑一番,真的是甘苦自知。

如果一本经典书你看得很辛苦,很有可能就是因为你功力未够,这种情况下不要着急,慢点来,不妨先将其先束之高阁,多看看第二类实战型书籍,过一段时间再回头来看,也许你会有新的惊喜。

四.不要在上班时间看书

一个善于学习的人,首先要善于利用一切时间来学习。不知是伟大的雷锋叔叔还是鲁迅爷爷曾经说过:“时间就像海绵里的水,只要愿挤,总还是有的。”然而,当我们从上班时间中挤时间学习时,就千万要注意了,不要在上班时间看书!

上班时间看书不但是一件很敏感的事情,而且非常吸引眼球,很快就会引起周遭的不爽。首先老板心里不爽,他想:“我给你钱是让你来工作的,不是来学习的!”;其次同事们也不爽:“我们工作都做不完,瞧,这小子真闲哪!”用不了多久,你就会成为被众人排斥的异类。

当然,你可能会说,“我工作已经做完了,经理没有安排,当然可以学习了”,其实不然。你完成了一件事情,不等于所有的事情都完成了。一个优秀的员工,应该是主动要工作,而不是被动的等工作。工作完成以后,你至少还可以:

(1)主动汇报给你的经理,请他来检查你的成果,并安排新的任务;
(2)如果公司这一段时间确实比较闲,没有什么具体的任务,可以进行代码重构、优化;
(3)你还可以主动请缨,承担额外的工作或更艰巨的任务。
(4)如果一定要学习,也只能对着电脑屏幕来学习,纸质书最多只能拿来翻阅一下,而不能一直捧着,以免影响到其他人的情绪。

五、只学习与工作相关的东西

我曾发现不少程序员在学习方面找不到方向,一会学学C#,一会学学Java,看了最新的编程语言排行榜,又觉得该学C++。这样左抓抓,右挠挠,只会让你觉得更痒。

学习最忌三心二意。俗话说:“伤其十指不如断其一指”,每门都学一点,还不如专心学好一个方向。这个道理谁都懂,可是又该学哪个方向呢?难道只能跟着感觉走吗?

不!最实际的方向,应该跟着工作走,工作需要什么,我们就学什么,把工作需要的技能熟练掌握。我们为什么要学习和工作弱相关的东西呢?是为了转行或跳槽吗?可是,如果我们连现在本职工作都不能做好,又怎么能保证到新的岗位、用新学的技能就可以做得更好呢?

学习与工作需要的的东西,有很多好处:

首先,可以集中精力,在某一方面钻研得更加深入。所谓“百招会不如一招绝”,有了绝招,你还怕不能在“武林”立足吗?《天龙八部》中的慕容复武功博学无比,最后还不是被只会一招六脉神剑的段誉打得落花流水?

其次,可以学得更快、更深入,因为学习更具有针对性,而且可以立即在工作中运用,可以马上检验出学习的效果,对存在的问题可以进行深入的研究,因此掌握的知识也会更加的牢固。

第三,学习与工作结合在一起,工作时间也就成了学习时间,这样突破了三个8小的限制。有人说,我们每天所有拥有的时间可以分为三个8小时,工作8小时,睡觉8小时,另外还有8小时自己可以自由支配的时间。工作和睡觉的两个8小时大家都一样,决定人生高度的是另外这个8小时。当我们把学习的焦点放到与工作相关的知识上时,工作时间中的很大一部分,同时也就成了宝贵的学习时间,这真是一举两得的美事啊。

六.织网式的学习

知识的广度和深度都很重要。作为一个程序员,深入把握技术细节,是写出优质代码的保证。但对于一个项目经理而言,知识的广度更显重要。项目中碰到的问题往往是综合性的,只有具有广博的知识,才能快速的对问题进行分析和定位。在程序员通往项目经理的道路上,我们必须有意识的扩大自己的知识面,形成更完善的知识体系。

每个人的知识体系就好比是一张网,我们学习其实就是要织这样一张网。 我曾看过渔网的编织过程,渔网虽大,也是一个结点起步,一个点一个点的编出来的,编织的过程中,始终只有一根主线。

学习又何尝不是这样,知识体系的大网也是由许多小的结点组成,要结这样一张网,只能由一个点起步。牵住一条主线,织出一个个的点,由点带出面,最后才能形成这张大网。

我曾经编写过一个网络信息采集软件,这个软件可以从具有列表页网站中按字段设置采集信息,支持自定义字段、页面多级关联、下载附件、支持多种数据库、可视化定义等特性。刚开始时,觉得这个软件也是一个比较大的功能点而已,后来发现这个不起眼的功能关联着大量的知识点,在开发过程中, 我顺藤摸瓜,各个击破,对很多知识点进行了细致的学习研究,软件开发完成后,个人的知识体系网也进一步得到了补充和完善。

从程序员到项目经理(5):程序员加油站 -- 不是人人都懂的学习要点

图1 由知识点形成知识网

七.问题是最好的学习机会

日本经营之神松下幸之助曾经说过:“工作就是不断发现问题、分析问题、最终解决问题的一个过程,晋升之门将永远为那些随时解决问题的人敞开着。”可见,工作过程中有问题是正常,没有问题那才是真正的问题。在发生问题能时,能勇于面对问题、解决问题的人,才是公司真正的核心骨干。

现实中,很多人总是千方百计回避问题,当上司安排一项艰巨的任务时,也是想尽办法推托。殊不知,对于个人而言,其实问题是最好的学习机会。往往那些愿意接受困难工作的人,能力会变得越来越强,那就是因为他们在克服困难的过程中取得了巨大的进步。

有一次,一位项目经理对我说:“有一个问题,客户有一台HP服务器要装磁盘阵列,没人会做,怎么办啊?”

“可以学啊,没有人愿意去吗?”

“我都问了,没人想去。”

“哦,正好明天我有时间,我也没装过磁盘阵列,那我明天去学着弄一下。”我说的是真心话。

第二天早上,当我准备出发时,项目经理告诉我不用我去了,因为项目组好几个同事都想去“学着弄一下”。

结果服务器很快就装好了,远远没有之前大家想像的那么困难嘛。更重要的是,在解决这个问题的过程中,大家都学会了怎么装磁盘阵列。

碰到困难时,迎难而上吧,千万不要拒绝这个最好的学习机会!

八.经常思考总结

子曰:“学而不思则罔”。只学习不思考,就会迷惑,难以把握事情的本质。这就好比一个学武之人,只习得其形,而未得其神,难以成为真正的高手。

一个程序员从入门,到成为高手的过程中,往往要经过几次顿悟。顿悟会让你跳出知识的丛林,一切豁然开朗,仿佛打通了全身的奇经八脉一般奇妙。记得我有一次,顿悟到了一个很简单的结论:“原来高级编程语言中的类库是封装了Windows API来实现的。”后来碰到一些自带类库无法实现的功能时,我就会想到,其实可以通过调用Windows API来实现。利用这个思路,我解决了一些看起来很难的问题,得到老板的赏识,从而很快获得提升。

顿悟非常可贵,然而它不是随便发生的,而是经过一次次苦苦思索之后、灵光闪现的结果。思考的过程,其实就是将外在的知识内化为自己的知识的过程,而顿悟,则是批量的实现这种内化,将无数个知识点连接在一起,达到融会贯通的境界。

九、克服“高原现象”

爱学习的人都会有这样的经历,学习持续了一段时间之后,往往会有一个瓶颈期,长时间似乎很久没有什么进步,于是内心非常着急。

这种情况实际上这是由人的学习规律决定的一种“高原现象”。据研究,学习者在刚开始进步快,随后有一个明显的或长或短的进步停顿期,后期进步慢,中间的停顿期叫高原期。

从程序员到项目经理(5):程序员加油站 -- 不是人人都懂的学习要点

图2 技能学习练习曲线

在我看来,高原期实质是一个消化期,由于前期的学习积累了太多的知识点,这些知识点在大脑中乱作一团,还没有形成一个知识体系。这时需要一定的时间来消化它,将它融会贯通,经常思考总结可以快速帮你跨过高原期。

在处于高原期的时候,还可以换一个相关的方向来学习,例如编程语言学不下去了,你可以学习一下设计模式,设计模式也学不下去了,再换成数据库。通过学习这些相关的知识,不但补齐了知识体系中的短板,而且各个知识点之间可以互相启发,帮助你实现顿悟,跨过高原期。

十、学习要有好心态

(1)学习要静心

急于求成是学习过程中普遍存在的一种心态。这可以理解,毕竟作为一个程序员,要学的东西实在太多了,而社会又是那样的浮躁,让人觉得一切都是那样的不安全、不确定,似乎只有学得快一点,才能跟上社会的脚步。

可是“欲速则不达”,想快快的学,往往会形成东一榔头、西一棒槌的学习方式,每一个点都没有吃透。心沉不下去,知识也会沉不下去。要想成为真正的高手,只能静下心来,一步一个脚印的攀登。

(2)学习是一个持续一生的过程

人生的过程,就是一个自我完善过程。

孔子曾经说:“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩。”可见孔子也不是天生的圣人,也在不停的学习、进步,从“志于学”到最后“从心所欲,不逾矩”,孔子一共花了55年的时间。

作为一个程序员,更是需要不断更新自己的知识。我们所知道的东西,就像一个白色的圆圈,圈外则是黑暗的未知的世界。当圆圈越大,所接触到的黑暗部分就越多。我们只有不停的学习,打破更多的黑暗,找到更多光明。

(3)保持饥饿,保持愚蠢

看了《乔布斯传》之后,我最喜欢的一句话是“求知若饥,虚心若愚”(Stay Hungry,Stay Foolish),其实我更喜欢它更原生态的翻译“保持饥饿,保持愚蠢”。我们只有认识到自己还很饥饿和愚蠢,才会像没吃饱一样,由衷的需要学习、爱上学习。

当然,知易行难,知行合一才是学习的最高境界。我也始终是一个学习者,一直在路上。

说起程序员三个字,我觉得既骄傲又可悲。骄傲的是,我们曾经是时代骄子,是一群真正改变世界的人;可悲的是,我们很多致力于改变世界的程序员,却生活在自己的世界里,无法自拔,成为了继“书呆子”之后的“电脑呆子”。电脑本来只是一个工具,我们竟然被其所限制、甚至同化,悲夫!

一、警惕成为“电脑呆子”

(1)程序员眼中的自己

程序员是怎样看待自己的呢?看看园子里的发言,码农、码畜、IT民工、苦逼、程序猿这样的字眼俯拾皆是。

在网上曾经广泛流传一首关于程序员的诗,模仿的是唐伯虎的《桃花庵歌》,我们暂且称之为《程序员之歌》吧:

写字楼里写字间,写字间里程序员;程序人员写程序,又拿程序换酒钱。

酒醒只在网上坐,酒醉还来网下眠;酒醉酒醒日复日,网上网下年复年。

但愿老死电脑间,不愿鞠躬老板前;奔驰宝马贵者趣,公交自行程序员。

别人笑我忒疯癫,我笑自己命太贱;不见满街漂亮妹,哪个归得程序员。

这首诗的作者不知姓甚名谁,但可以肯定的是,他是一名程序员,因为只有程序员才能这样生动的写出程序员的酸甜苦辣。从诗中看出程序员眼中的自己的形象:敬业、辛苦,每天的时间全部花在写程序和上网;思想单纯;清高不合群,自傲自恋;清贫不得志,自悲自叹。

(2)别人眼中的程序员

在别人眼中程序员又是怎样的一个群体呢?在360网站有一个关于程序员形象的热帖(http://bbs.360.cn/3237987/254486286.html),其中回帖的大部分都不是程序员,很多回复都非常生动,没有骂街,可以说比较客观。

总结一下,大家回复的情况大致如下:

  • 工作方面
    富有钻研精神,是技术方面的高手,没有时间概念,加班多,辛苦劳累,工作认真严谨,懂制作软件却不懂这软件如何运行更好。
  • 外在形象
    黑眼袋,红眼圈,睡眠不足,瘦小,邋遢,带眼镜。
  • 生活方面
    电脑前潇洒自如,世人前胆小腼腆。聪明,思维敏捷,生活刻板。
  • 性格方面
    “闷骚”这个词不好听,但还是蛮准确的:程序员大多沉默寡言,不善与人交往,但内心却很丰富。性格腼腆甚至孤僻,圈子小,爱憎分明,有点不食人间烟火的样子。
  • 思维方式
    是一种面向问题的思维方式,逻辑灵敏而严谨,无时无刻不在思考攻克解决问题,善于找别人的问题,却对自己的问题视而不见,不善于解决生活中的问题。

综合起来,程序员在世人眼中大抵是一个聪明而又迂腐、善良而又刻板的形象,是不是有点像鲁迅笔下的“孔乙己”先生呢?

(3) “电脑呆子”是怎样炼成的

上面描述让我想起了一个词:“书呆子”。书呆子是指那些死读书、读死书、不通人情世故、不会用书上的知识变通的人。书呆子是与书待一起的时间太久了,以至于生活在书的世界里,用书里的道理来评价和要求真实的世界。而我们程序员呢,日复一日,年复一年在代码间摸爬滚打。每天用在与电脑交流的时间,比大部分书呆子看书的时间有过之无不及。每天基本上就是“电脑一开,一关就过去了,嚎”。

俗话说:“带着锤子三年,看什么都是钉子”。当程序员三年,看到谁都当作是电脑。于是产生了计算机时代的“书呆子”,不妨称之为“电脑呆子”。电脑呆子用电脑的时间太久了,生活在电脑的世界里,用电脑的逻辑来要求别人,不懂生活,不懂人情世故。可能你对这样的措辞感到不满,但对多我们身边有些程序员,是不是有几分神似呢?

悲夫!程序员曾是时代骄子,有非常细腻内心、非常丰富的感情世界、非常聪明的大脑,在世人眼里的形象却是如此不堪!

孔子说:“君子御物而不御于物”。电脑只是被我们利用工具而已,而我们的思维却被电脑所限制,甚至变得和电脑一样。

程序员,是该求变的时候了!

我们再也不要闷骚,将我们的内心美好善良的一面勇敢的表达出来吧!

我们再也不要苦逼,我们要金钱,更要快乐,我们要工作,更要生活!

我们再也不要死板,我们可以做出漂亮的程序,同样也可以漂漂亮亮的做人!

(4) 一个老程序员的肺腑之言

也有大家会觉得“电脑呆子”这样的词是在骂程序员,是对程序员的不敬,但也许激烈的言辞更能令人警醒。有一个成语叫当头棒喝,据说佛教禅宗和尚接待初学的人常常用棒一击或大喝一声,促他醒悟。

我曾经是一个程序员,现在仍是。我也曾经是一个真正的“电脑呆子”,我曾独自在黑暗中摸索,花了多年的时间才摸着石头过河也许我还远未过河。那些曾狠狠骂我的人,我把他们当作我的恩人,因为他们激励和启发了我的成长。当我逐渐走向成熟时,已经错过了无数的机会。

二、懂电脑更要成为人脑

(1)电脑逻辑 vs 人脑逻辑

程序员写代码离不开电脑,沟通、交际又要与人脑打交道,然而电脑与人脑的逻辑在很多方面却是大相径庭。

比较方面电脑的逻辑人脑的逻辑差异性同一个程序在每台电脑上的运行结果都一样任务交给不同的人,结果可能大相径庭多样性每台电脑都一样(换一台电脑编程完全没问题)每个人都不一样,人千差万别,因此要适应不同性格的人确定性程序正确,电脑一定能得到正确结果任务明确,做出来的结果与预期可能相去甚远思维电脑无自主思维。个人存在理解力,执行力,判断力等方面的问题情感电脑没有感情、情绪等因素的影响人受感情、情绪的影响自主性电脑无自主性,完全受程序的控制人具有自主性,但行为由很多因素决定社会性电脑与电脑之间只在严格的逻辑交互,无社会性人与人之间的关系微妙合作1台电脑+1台电脑,运算能力更强1+1人,结果无法预知,团队合作至关重要

电脑的逻辑简单,所以我们愿意与电脑打交道。如果我们把电脑的逻辑带到与人交往的过程中,那就太“简单化”了,当然也就给人以迂腐、刻板、不懂变通的印象。我们毕竟是生活在人的世界中,我们要懂电脑,更要懂人脑。我们不是只懂电脑异类,而只是更懂电脑的正常人。

(2)做回正常人

我曾经很看不起那些不懂技术却八面玲珑的人,看到他们身居高位更是感到愤愤不平,甚至感叹要是生活在西方国家就好了,什么事情都直截了当,不用拐弯抹角。

然而,经历了无数的挫折之后,我明白了一个道理:“世事洞明皆学问,人情练达即文章”。人家能说会道、八面玲珑也是一种本事啊。不然,我们怎么做不到啊?

其实并不是这样做很难,而是我们不愿意这样做而已,不愿意为世俗的观念改变自己。没错,现实是世俗的,但现实也是无法改变的,我们只能承认现实,臣服于现实。我在360的那个帖子中看到有一个对程序员的绝妙评价,“程序员是七仙女中的织女”,难道我们真正的要像仙女一样不食人间烟火吗?

我们不用做仙女,只需要做一个普通的正常人。要顺应人的逻辑,懂人情,明事理,做一个正常人该做的事情,这样并不难。

莫言在领诺贝尔奖时有一段精彩的发言:

最后,我讲一个小故事。听说法兰克福是歌德的出生地。在中国,流传着一个非常有名的关于歌德的故事。有一次,歌德和贝多芬在路上并肩行走。突然,对面来了国王的仪仗。贝多芬昂首挺胸,从国王的仪仗队面前挺身而过。歌德退到路边,摘下帽子,在仪仗队面前恭敬肃立。我想,这个故事向我们传达的就是对贝多芬的尊敬和对歌德的蔑视。在年轻的时候,我也认为贝多芬了不起,歌德太不象话了。但随着年龄的增长,我慢慢意识到,在某种意义上,像贝多芬那样做也许并不困难。但像歌德那样,退到路边,摘下帽子,尊重世俗,对着国王的仪仗恭恭敬敬地行礼反而需要巨大的勇气。

处处与世俗为敌,并不会让世俗变得清高。尊重世俗,也并不意味着失去清高,失去自我。

不要比拼清高,而要自己生活得幸福。当你能自由的游走于世俗的现实与内心卓尔不群的原则之间时,你也就实现在个人修炼的圆满,成为了一个从内心里幸福的人。

我们不需要成为清高之人,也不需要成为世俗之人,我们只要成为普通的正常人,一个外圆内方的人。