项目管理职业规划。

第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《5年程序人生路 从新手到项目管理[2]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

工作渐渐展开之后,就是平静如水的生活,每天上班,吃饭,睡觉,日子也过得很快。刚开始,由于懂得东西少,所以每次任务下来后,都是积极的去完成,因为害怕自己做不完。但是渐渐的,当自己清楚该怎么做的时候,人会产生疲倦,因为每天都做一些差不多的劳动。慢慢的,做事情就喜欢拖拉了。当分配一个任务后,自己先估量一下这个工作自己大概需要多久,一般老板给的时间会多很多。所以喜欢把工作先放着,去看看网页,逛逛论坛什么的,等到剩下的时间差不多了,需要开始工作了,就懒洋洋的进入工作状态,但是往往完成工作质量都不怎么好,很多提交后会有些BUG。不过我也没怎么在意。因为和老板关系好嘛,像我这样,再怎么说也属于元老级别的。就这样慢慢的工作了几年。因为小公司什么都要做,技术也积累了很多。包括各种主流数据库的用法,。NET,CSS,JAVASCRIPT,PHP,JAVA,perl,FLASH, 等等,其间,自己独立开发项目的时候,总想找出一种架构,加快自己下一个项目的开发进度。但是每次开发完后,发现上次设计的架构真垃圾。开发过很多项目,每次都想了一些新的架构方法。到现在沉淀下来的还值得用的架构思想也没多少。记得在做JSP的时候,感觉JSP里面服务端代码和HTML混在一起,很难看。不如。NET的事件驱动好用。就去写个模块,让JSP也实现事件驱动的模式。结果写到后来,也没得到什么好处,并且感觉有点不伦不类,后来项目慢慢做大了,才渐渐明白面向对象的用意。当一个项目很小,逻辑很简单的时候,用面向对象的方法设计用处不大,反倒是组件用处更大。因为项目小,基本上都是建几张表,改改HTML的工作。但是项目一大,逻辑变复杂了,如果你要理清楚逻辑,这里就需要一种方法论。我一开始写算法的那种方法有点不适用了。原来那种是从顶层开始,向下细分。是一种至上而下的设计方法。而面向对象不是,它是一种由点及面的设计方法。面向对象是先找出一个个对象点,然后再找出每个点之间的关系。在实际的项目中,你很难从上至下的设计。因为项目需求往往刚开始很不全面,很多项目后来改得都是面目全非。从上至下的设计不适合这种平凡的修改。并且当需求很大时,他涉及东西太多,你也很难从一个俯视的角度去全面的看这个系统。所以从上至下的设计不能满足要求。打个比方,记得一个项目已经做了80%,结果客户觉得用得不方便,要改一下。很多原来做的功能都不需要,并且提了几个新功能。但这几个功能也只是对原来的功能稍加改动。但是逻辑上看却是大相径庭。人脑不是电脑,如果想着这个代码,去改那个代码,势必到后来让自己也搞糊涂了。所以需要抽象出几个对象出来,是按照客户的思维方式。然后抽象出来的对象里面包含原来的功能。这样做起来就事半功倍。

在工作的磨练中,慢慢的发现了普通的程序员与优秀的程序员的一些差别:

1, 普通的程序员遇到问题喜欢张口就问别人,问之前没经过大脑想想。这是一个不好的习惯。其一,自己都没仔细想想,就算别人帮你把问题解决了,你自己不多久就会忘记。下次遇到,照样是不会。因为这个问题你没有经过大脑。其二,能够回答你问题的人,多半是有一定经验了。他们或许很会安排好自己的事情,管理好自己的时间。如果时常去打断他们,他们会觉得你很烦。

优秀的程序员多半会先到网上查找一下相关问题,看看网上有没有相关解决方法。经过一翻查找,他会把这个问题记得比较牢。

2,在一个项目的合作开发中,普通程序员往往只了解自己开发那方面的东西。项目做完后往往对整个项目有哪些功能都不太清楚。可能会有人抱怨,自己工作都做不完,哪有时间去了解整个系统。但现实多半是,花大量的时间去网上闲逛,却不愿花时间去增进知识。 如果总认为项目的设计是设计者的工作,自己没必要去了解。那么这样的程序员只能是手工劳动者。

优秀的程序员会对整个项目有认识,对一些自己感兴趣的功能会去做一下了解,更优秀一点的,会去对整个项目的架构设计做一下了解。自问如果他是项目设计者该怎么做? 去学习项目设计的优秀之处,去发现设计的不足之处。触类旁通,把优秀的地方用在自己将来的工作当中。

3,普通程序员往往有很大的惰性。不能自觉的去学习知识,增进能力。所以每天耗费大量的时间在一些消遣状态中。所以时间往往白白的浪费掉。

优秀的程序员往往会安排好自己的工作和学习。在工作中学习,在学习中工作。能够感觉到自己每天都向着自己的目标在前进,状态佳,动力足。他们因为每天工作情绪很高,所以研究的东西也多,时间比较宝贵。因此他们会善于利用一些工具来操作自己的电脑,大大来的减少琐碎的电脑操作时间。更有胜者,会开发一些符合自己的操作习惯的小程序,来提高自己的效率。说不定这些小程序放到网上共享,可能还会有意想不到的收获。

我现在做项目管理,看着手下的程序员,时常也让我想起原来做程序员时候的坏毛病。比如,上班迟到啊,工作时间上网闲逛啊,交上来的程序BUG成堆啊!看到这些,我时常都是会心的笑笑,可以理解! 不过我也时常提醒他们,如果你们想将来成为IT界的精英,而不是等到30岁感觉自己无路可走,那么请你们珍惜自己的时间。如果你们自己都不珍惜自己的时间,那么别人更不会去珍惜你的时间。

今天花了两个多小时,写了一篇短篇自叙。感觉值得,把自己五年多的光阴回顾了一遍。从前的故事历历在目。写下来过五年后再来回顾一下,说不定会是另一番感受。

延伸阅读

开创你的第二人生路?


世界上有太多事情要做,公务员,收银员,程序员,服务员,甚至飞行员。不管我们是谁,我们都是社会的一员,从事着也许枯燥但有用的工作,不能摆脱官商的模范生活。但是想想看!如果一个人一辈子都在同一家公司的同一个职位上工作,那将是多么可恨的事情啊。因此,总有一些人无法忍受无聊生活的束缚,想要过第二次生活。

开创你的第二人生路?

第二人生是什么?兼职工作,一个部分只属于自己的网络空间,甚至是一个不知名的情感故事,简而言之,它与平时不同。

加拿大有一个年轻人花了一年时间尝试超过50个不同的工作。他曾在各种工作中尝试各种职业,如电视演员,媒体记者,电台主持人,餐厅工作人员,奶农,瑜伽教练等。住了一个星期,收获一小会后,去了下一个帖子。有人说他很乱,有人说这很有趣。而他本人,只希望通过这次经历,他将判断他最适合哪个行业,并为慈善组织筹集资金。在我看来,这可能只是他生命中的一次冒险,但它将成为他生命中的首都。

第二人生在哪里?每天我们都向公司的同事点头微笑。他们可能有自己的第二人生,不管他们的规则如何。我有个女大学生喜欢唱歌。她曾是校园里的一名获奖歌手。现在她是白骨精,月薪超过10000元。有一段时间,她跑到酒吧晚上唱歌,代替了一个度假的常驻歌手。她从未有过这样的经历,她担心自己是否能做到,但她怎么知道呢?

于是,她开始尝试在白天做白领工作,在晚上成为一名歌手,每天在她的家庭作业上写歌词和伴奏。我们没有闲着,在花使者的旗帜下,到酒吧听她唱歌,场面非常热情,音乐她比平时更漂亮。不久,当这位歌唱家从休假回来时,她就结束了她短暂而美丽的第二人生,回到了九到五的正常生活。她的结论是:站立和唱歌非常疲劳,但真的很有趣!

第二次生命并不意味着背叛第一次生命。相反,它通常是对第一人生的有益补充。只有通过尝试,你知道你想要什么。

最近,我的好朋友熊也有开始第二人生的想法。她的梦想是在业余时间开一家贝尼兔袋店。所有出售的袋子和衣服都涂上了一只可爱的粉红色兔子。当你想到她的想法是幼稚和荒谬的时候,她抛出了很多开店的理由。首先,与服装、珠宝店相比,面包店需要更小的店面,店面布局难度不太高,分销和记账相对简单,操作方便。这种省时省力的操作方式适合于全日制的业务。她工作很忙。第二,启动资金和商品成本能够持续。在经营不善的情况下,我们可以通过开设网店来弥补成本。第三,她爱贝尼兔没有其他原因。这是最大的原因。

是的,只有爱,你才能过第二人生。否则,什么样的生活才是千家万户。

大项目、小项目都是程序员成熟之道[2]


而我今天说的项目大小是从软件项目本身来确定的,与客户对项目大小的定义没有什么太大的关系。我认为项目大小可以从以下几个维度去考虑:资金、开发人月、项目复杂度。

1、 资金

我认为在当今物价状态下,5万以上50万以下为小项目。50万以上为大项目,500万以上为特大项目。

2、 开发人月

同理,2.5个人月到25个人月以下为小项目。25个人月以上为大项目。

3、 项目复杂度

软件项目的复杂度还可以用软件的用户使用人数、数据库中表的数量、表的记录数来衡量:

软件使用人数:10-1000人为小项目,1000人以上为大项目。

数据库表的数量:20-100张为小项目,100张以上为大项目。

表中的记录数:10万-1000万为小项目,1000万以上为大项目。

此外,项目运行能够给客户带来的收益大小、项目的业务逻辑的复杂度都可以成为项目大小考量的内容。

如果项目都不能达到小项目的水平,我们这里就不把它看作项目了,因为低于小项目的项目很多是个人编程,这与项目众人参与的特点有点不符。

所以我对程序员的建议是:

1、 要主动参加项目

无论大项目还是小项目程序员都要努力参加进去,因为只有做了项目自己的能力才能提高。不要静静待在那里,等待别人挑选,而是积极主动表示加入项目的愿望。在我负责过的项目过程中,我对主动要求加入项目的程序员往往给与更多的机会,因为这样的程序员具有主动性,工作更好开展。一个项目的出现就是一个机会的出现,把握项目就是把握机会。机不可失,时不在来。

2、 不要放过小项目

程序员不要以小而不为,只有做过若干个小的项目后,程序员才能去做大项目。那些想一步就做大项目的程序员,往往会失去小项目锻炼的机会,往往参加到大项目后,感到力不从心。项目虽小也同样可以锻炼人,程序员可以有更多机会体验项目负责人的脚色。学会从整体角度上来看待编程。

3、 要积极准备参加大项目

对于已参加过小项目的程序员,一定要把握机会,积极准备参加大项目,项目越大,越锻炼人。在大项目中要学会摆正自己的位置、虚心向团队其他成员学习。要在平时没有项目的时候,要多做些技术准备,多关注可能的大项目开发内容。在项目开发中,则可以把重点放在体会不同功能模块之间的关系上。学会从关联的角度上看待编程。

根据我的经验,我认为程序员要经过5-6个小项目的锻炼才能入门,而经历了3个以上的大项目的程序员才开始成熟。当然我们不能排除程序员的天才成分,有的程序员会再很短的时间达到一个很高的水平。但是,绝大多数程序员成长是必须通过项目来催化的,尤其是大的项目催化更加重要。说白了,项目如同阳光,程序员如同禾苗,关系就是那么简单。

职场进化,从新手升级到高手


职场中关于如何晋升成长,屌丝逆袭的话题,也是各位混迹职场江湖的朋友们比较迫切关心和喜欢讨论的话题。

职场进化,从新手升级到高手

今天就让我们来说一说,从新手到高手,你怎么装备升级。

总所周知,我们对待工作的感受跟态度都是不一样的,特别是在不同的工作阶段。在这里,我把一个职场人的工作进程划分成三个时期。

1. 新手期

新手期的我们,渴望去实现一个目标,来展示自身的价值,好顺利拿到新人奖,以便升职加薪。在这个阶段需要解决的主要问题是:要根据自身特点发挥优势切实有效地提高自身的业务能力,努力掌握高效的工作方法。避免做重复的工作,既降低效率又浪费大量的时间。在这个初级摸索阶段,如果一时找不到工作的成就感,我们就会产生对自我认同感的怀疑,觉得自己是不是应该继续留在这个行业发展。

2. 胜任期

由新手过渡过来,很多人已经对业务流程比较了解了,在工作上也总结出了自己的方法和流程,能够独立承担一些项目。

其中有一部分人,由于前期在项目的管理积累了相当的经验,具备了承担了更大的责任的能力,可以逐渐担负起助理管理的责任。在这个阶段的人,如果能理清工作中所有的细节和预先避免出错,能够举一反三的话,这样会在很多工作上都能游刃有余。

胜任期,虽然你我会在取得一定的成绩而颇有自豪感,但是可能会由于细节的把握还不够精准,问题分析不够全面而会遭到一些挫败。

3. 高手期

相信你已经通过我们先前的项目经验积累,而眼界更开阔了。处理技术问题研究也是更游刃有余,从容不迫。得力于经验的累积,你已经发展具备凭借过往的相关知识经验就可以得到解决我国大部分的事情的能力,并推断作出一个正确决定。工作的意义已经开始发生变化改变,你已经把工作人员当作展示他们自身文化价值的舞台,而不再是仅仅一份工资收入。你会用加倍的激情去应对工作中的各种风险挑战,不断提高创新,寻求各种突破,变成同行中的佼佼者。

其实,大多数职场人都有职场焦虑的原因?? 因为许多人通常只知道努力工作,不善于思考工作规则和提高工作效率的方法。 如果他们继续做低水平的重复工作,工作热情会随着时间的推移而降低,在工作中获得的成就感也会降低,最终他们将不得不换工作,重新开始。

相信这一点: 命运会眷顾那些有准备的人。

如果你一直跳,但新手阶段,无法取得突破,我们应该知道他们必须深刻反思。想想看,无论是克服困难,改进方法是否提高效率。相反,如果不喜欢这个工作,这将腾出别人。

醒醒吧,别幻想着耗时间就可以进行升职或者加薪,你不思进取,岁月也不会饶了你。

在这个世界上,任何一份职业的收入,都不会挣得轻而易举。这个世界上,平庸的人占了 8成,如果你只是一味地抱怨,而没有一股奋 起直追的拼劲,你就永远挤不进另外20% 的人中去,而最后只会收获一事无成。

看到这里,是否有人的觉得跟自己的经历似曾相识。共勉一句话,任何时候开始都为之不晚。好好想想从现在开始你必须想办法,怎么追赶, 怎么升级。

职场最重要的一点就是积累。经常更换行业会使得自己的人脉和经验断层。30岁之前可以多尝试,但30岁后要坚持一个好的细分领域或者好的岗位工种。

持续打造个人品牌。你必须在前期积累足够的的专业能力,然后充分地利用资源将优势和影响力扩大。

你想在一个领域深耕发展,必须先打好稳固根基,磨砺出了专业的能力,最后才能枝繁叶茂。

所有的高手都不是一夜长成的,所有的成功背后都一段奋斗的辛酸史。

如果你决心想改变的话,唯有沉下心进行大量高质量的学习,建立自己的思维模型,在练好基本功扎实的基础再去突破。

经过日复一日的实践、大量积累经验和复盘思考总结,才能在大量的实战中不断地改进突破,立足江湖。

职业规划:程序人生4象限2主线


职业规划:程序人生4象限2主线

为什么我们要自己做职业规划?记得电影《社交网络》里边,CFO同学在知道自己股权被稀释时说了一句话,我以为那些律师是我的律师。

其实我们大多数人对HR几乎都存在类似的误解 你以为她是你的HR,其实她只是公司的HR。她们care的是如何编个理由用老板给的那点小钱留住一个高性价比的人才,而不是真正有助于你发展的职业路线图。昨天还含情脉脉和你讨论人生的知心姐姐明天就可能变成拿着劳动合同逼你主动离职的凶婆娘。和人性无关这就是她们的工作,越专业的HR越擅长。

所以,你要自己来做这件事情。另外还有一个原因,你该去什么样的公司、做什么样的事情、拿多少钱,都取决于一个问题:你想成为一个什么样的人。工作只是人生的一部分,是用来支撑你人生价值的核心框架之一。在你自己没有想明白的时候,没有人能帮你。这就是为什么猎头基本只谈钱他们没空去和客户讨论人生的意义。

我曾花了很长的时间去思考人生的意义,最终发现其实人生本来没有意义,意义都是我们赋予它的。

在创业做人才服务后,我开始和很多的程序员聊天,开始去了解他们的现状和他们对于自己职业的RoadMap。我发现技术人员的职业生涯形态并不是千变万化的,绝大多数都大同小异,可以用四个象限和两条主线概括清楚。虽然我无法代替你去定义人生的意义,但是我可以和大家分享下各种职业规划下的人生都是什么样子的。

当然,这些想法只是我总结出来的东西,未必正确、更不权威,大体是一些自以为是的最佳实践。如果你觉得有用,就把它分享给更多的程序员;如果你觉得无趣,就无视掉吧,毕竟我也只能从自己的视角来讨论这个事情。

写《穷爸爸富爸爸》的那个胖子罗伯特清崎,从现金流向将人类分到了四个象限,从而总结出来了这么一张图。

你也许已经看过,但这次我会从程序员的角度来进行解读。

E象限

E象限是雇员象限,绝大多数程序员都在这个象限里边。这里是风险最小的地方,只要你准时上下班别一个SQL把公司的数据库Drop掉,基本都能每月领到应得的银子。这里本应该是程序员们的天堂,因为比起改变世界,他们更多的只是很单纯的喜欢写代码。但现实很残酷,北上广的房价高不可攀。你可以不在乎房子,你女朋友能不在乎吗?你女朋友不在乎,她妈能不在乎吗?再考虑到将来小孩上学之类,只要你还打算留下来,房子其实还是必需品。

在E象限要低风险的搞定房子,只有一个攻略:靠股票和期权。找一家上市公司,或者即将要上市的公司,在里边成为核心员工,再待上几年,就能拿到一定数量的股票或期权。如果运气好,变卖掉这些东西,可以有百万级的收益。前几年这些钱还可以买房子,现在大概只能交首付了。

S象限

E象限的整体薪资是有天花板的,很多公司总监的月薪也就3万到5万,扣掉税和每月花销,其实攒不了太多钱。所以有一部分人就选择了S象限自由职业者和小企业主的领域。

S象限的魅力在于你的收益不再完全由你的劳动来获得,你可以开始雇人了。比方说,你可以开一个外包公司,给微博的粉丝服务平台做应用。面向企业的业务一般难在拿到单子,而利润是很高的,一个项目上百万完全不算大,之前有人开玩笑说这些公司一年一个单子就够了、两个单子就赚了。

把程序作为人生,把人生当作程序


你的父母把你生下来,你的身体就是一台计算机,而上面运行的软件就是你的思想,这个软件版本高低功能的强弱,就看你的思想境界。思想软件需要你自己慢慢地去编写,可能父母教给了你最基本的语言,但是其他的高级语言和技能需要你长大以后要自己去学习,你能精通几门语言是你的本事。

第一步,随着你渐渐的长大,你开始有了需求,各种各样的需求,一开始你只是想要一块巧克力糖,一个新书包,一件新衣服,一辆崭新的自行车;后来你可能就想要一栋房子、一辆好车,你开始追求高质量的的物质生活、精神生活,你追求成功与快乐、还要求更好的发展,希望得到别人的尊敬,过一份有尊严的生活。需求很多很多,仔细分析你的需求,想想你最想要什么?怎样去实现它。

第二步,是很关键的一步,你要设计自己的人生程序。你首先要概要设计,你希望将来成为一个怎样的人,分几大步实现这个目标,少年、青年、成年、中年、老年。可能有求学程序、出国程序、恋爱程序、求职程序、事业程序、升职程序、结婚程序等等。概要设计后还要进行详细设计,你每个月每个星期做些什么,每个小模块里面有每个阶段的小的目标,小程序,这个星期读完一本书,下个月参加考试,然后写一篇论文等等,虽然说人生不可能完全规划出来,但是经过设计的人生远远比没有设计过的人有更有意义,好好的设计你的人生吧。

第三步,是编码和测试,你大多数时间都在不停的编码,同时还要不停的测试,编码的过程十分的辛苦,需要耐心和思考,你会觉得苦闷、烦躁不安、寂寞、痛苦、迷茫与无奈,但有些时候又十分开心、兴奋虚荣、骄傲和满足。编码的过程充分体现了人生琐碎与不如意和艰难,bug永远存在,人生也在不断的犯错误和不断地总结。就像一个程序不能编写得完美一样,人生也是不完美的,你不可能处处要求完美,很多地方需要同别人交流和互相借鉴。测试可以分为内部测试和外部测试,经过测试,你发现自己的错误,并想方设法改正它,然后成长起来。

第四步是集成和软件发版,你的设计的人生软件要拿到市场上去卖,能不能卖上好价钱,要看软件的功能和特色,性价比、看软件的包装,你有没有高人一等的杰出才能,你有没有于其它软件相比的竞争力,软件的价值,也就是你人生的价值。当然你可能是一个很高尚的人,编一些免费的软件,不做比尔盖茨,做linus torvols也挺好的,在自由的空气在互联网上空飘荡。看你自己的选择!不过这个世界好像更欢迎前者,linus住在拥挤的民用公寓里。而比尔盖茨住在自己像皇宫一样的豪宅里面当帝王,你首先要解决生存的问题,然后再去考虑其他得东东。

好好的谱写你的人生程序,人这一辈子真是要追求点什么才有意义!

十年学会程序设计[2]


十年学会程序设计

研究者Hayes,Bloom的研究表明,在几乎所有的各种领域,大约要十年才能培养出专业技能。这些领域包括下西洋棋、音乐作曲、绘画、钢琴、游泳、网球,及神经心理学和数学拓扑学。似乎没有真正的捷径--即便是莫扎特在四岁就展露出音乐天才,在他写出世界级的音乐之前仍然用了超过十三年的时间。

再看另一种类型的领域。披头士乐团似乎是在1964年的Ed Sullivan剧场表演突然地火起来并成为第一乐队的。但其实他们从1957年开始,就在利物浦、汉堡等地的小型俱乐部表演。虽然他们很早就显现强大的吸引力,但他们决定性的成功作品Sgt Pepper也到1967年才发行。Samuel Johnson则认为或许还不止十年才行,他说:任何领域的卓越成就都必须用一生的努力才能取得;稍微低一点的代价都是换不到的。Chaucer则感叹道:生命如此短促,学习技艺却要这么地长。

以下是我在编程上成功的秘诀:

对编程产生感兴趣并因为乐趣而写程序。确信你自始至终都能乐在其中,这样你才愿意将十年光阴投入编程事业。与其他程序员交流;阅读别人的代码。这比任何书任何培训都重要。

不断地编写。最好的学习方法是在实践中学习。从技术角度说,在特定领域的个人最高效率并不因为经验够多就会自动获得;但若有意识的通过努力去提升经验,个人效率会变高而高效的学习一般需要明确的任务和因人而异的适当难度,以及及时的反馈和重复或者修正错误的机会。

如果你愿意,你可以去读四年大学(或再读研究生)。这可以让你满足一些工作的学历要求,同时也可让你对这个领域有更深的认识。但如你不喜欢上学,你也能(得有牺牲)通过工作获得类似的经验。无论如何,只读书是不够的。《New Hacker's Dictionary》的作者Eric Raymond 曾经说过:计算机的教育无法让人成为编程的专家,正如研究画笔与颜料不能让人成为专业画家一样。一个在我所有招聘过的人中属于最优秀之一的程序员只有高中毕业,但他写出很多很棒的程序,他甚至有自己的新闻组。他获得的股票期权使得他可以拥有自己的午夜酒吧。

跟其他程序员一起完成项目。在一些项目中成为最好的程序员;在一些中则充当最差的一个。当你是最佳的,你要测试自己领导项目的能力,并以你的能力鼓励他人。当你是最差的,要看看高手做些什么,他们不喜欢做什么(因为他们会叫你去帮他们做)。

接手别的程序员完成项目。全心投入并理解别人的程序。当原作者不在的时候,看看在理解与修改时有什么要注意的。想想如何设计你的程序使得后来维护的人容易上手。

至少学会六门编程语言。一种要支持类/对象(class abstractions)的语言,如Java或C++;一种函数式(functional abstraction)语言,如LISP或ML;一种支持语法抽象(syntactic abstraction)的语言如LISP;一种声明式语言,如Prolog或 C++模版;一种支持协同式(coroutines)编程,如Icon或Scheme; 还有一种支持并行(parallelism)的语言,如Sisal。

职场素养决定新手前途[2]


支招:价值由自己创造

宣蕴刚认为,职场新人要懂得付出。要明白工作的目的并不仅仅在于报酬,斤斤计较的人是不会有大的发展的。一个没有长远眼光的人,成天只想着解决温饱,那他便永远只能达到温饱。也就是说先让自己的付出超过报酬,然后报酬才会超过你的付出。实际上,我们的工资和待遇是自己发放和创造的,不是企业或老板,更不是法律或法规。

问题4 娇生惯养,惧怕困难

部分毕业生由于受家庭环境的的影响,从小娇生惯养,以至于进入社会后体质太弱,缺乏职场竞争力,难以在企业立足。殊不知企业是用人而不是养人、企业不是慈善机构的道理。

支招:主动承担重任才有发展

在一家IT公司从事人力资源工作的小朱认为,有时候主动承担重任,并且克服困难完成好工作,是能够得到领导的赏识。他说,自己在工作了半年后,主动请缨做一个没人愿意干的外地的项目规划。他踏踏实实地去认真考察,并做出了一份详实的报告,得到了经理的好评。自此公司一些重要的项目,经理便放心的交给他干了。小朱认为,职场新人要拿得起责任,放得下架子,一个人的信用度和他的责任感成正比,能担当大事的人,才能赢得更多人的帮助,也才有广阔的发展空间。

程序员犯的非技术错误(Top 5)[2]


然后,好的沟通者是那些当他们正在解释一些事情的时候,他们的解释是下面这个样子的:

专注。不跑题,没有废话。

清晰。 很容易听懂。

简明。 加一点就觉得多,少一点都觉得不够。

要有一个好的沟通技巧,我们的建议如下:

如果你觉得你沟通方面不够好的话,请事先准备你要表达的东西,努力做到专注,清晰和简明。

在交谈中,先听,后想,最后再说。

永远从对方的角度思考问题。

4.- 忘了用户

如果我们不关心我们的用户那么别人会

你的存在,你工作的意思只有一个原因--你的用户。我们在很多时间都会忘了这个事情。经常,我们在工作当中,技术会取代用户而占据了主要的位置,我们可以花费数月的时间来创建一个程序框架,但一个程序框架不会给用户代来任何的价值,我们不是说程序框架不重要,而是说,对于用户的需求来说,这是其次重要的东西。如果离开了用户的需求,我们所有的技术,算法或是精妙的设计将会变得什么也不是。

5.- 不懂工作的轻重缓急

程序员总是喜欢去研究一些新的或自己感兴趣的东西,但对于软件工程来说,我们更需要知道所有事情的轻重缓急,要学会如何了解事情的优先级,这样才会让我们的工作事半功倍,而我们的工作也会更有效。比如,当用户的站点出现问题的时候,有些时候,我们的程序员过试地关注于问题的重现和原因,而忘记了用户的站点正在流血,无法进行生产。所以,一般来说,最重要的事情首先是恢复用户站点,然后才是去重现和调查问题。在我们的日常工作中,我们要处理很多事情,只有了解到了所有事情的轻重缓急,处理最重要最紧急的事情,我们才能够更好的安排自己的工作,才能够更好的完成我们的事情。不要以为这是一件很简单的事情,这需要我们不断地和别人沟通来了解事情的轻重缓急,事实证明,如果我们不懂工作中的轻重缓急,本来只有一件紧急的事情,如果处理不当,最后可能会演变成多件紧急事情,其它本来不紧急的事,后来也会变得很紧急,最终程序员们顾此失彼,苦不堪言。希望大家切记。

软件业职位总结3 项目管理类[2]


高级项目经理

同他的名字,就是比项目经理更厉害的项目经理。有时高级项目经理是老板对跟随自己多年的老功臣的安慰,有时只是为了让薪水拉开距离,有时是只有高级项目经理去做大项目,也有的时候高级项目经理来管理项目经理,它是项目经理的老板。总之具体的工作还是那些只不过更高级了,就像有些人的职务前加个资深。我在公司做的就是高级架构师但是做的就是架构师的工作,给个高架的职位是老板对你安慰,而且他还不让你写代码,如果不做开发时间长了很多东西就会逐渐流失落后。

我们来说说项目管理类的职位会用到哪些工具,最基础的就是Word和Excel,不要小看这两样,他为项目管理提供了最基础的数据,每份统一了格式的文档,每份精心设计的Excel都是项目的重要成果,包括各个项目周报,个人周报等等。然后就是专门用于项目管理的软件如MS Project。软件生产是智力密集型的活动,其产品无物理外形,生产状态也不可见,因而难于检查和驾驭。如何管理项目的计划、调度、通信、费用估算、资源分配以及质量控制等。软件项目管理工具就是要使这种生产过程成为可见、可控的过程。使用它能帮助进行成本估算、作业调度和任务分配,并制定出成本较低、风险较小的项目开发计划;同时能设法在预计工期和经费之内适当调整项目的安排,以节省时间和人力,从而对软件生产的各个环节进行严格、科学的管理,使项目开发活动获得最佳的进程。 使用专业的项目管理工具不仅有效的帮助项目管理,而且它还能规范你的管理过程。

QA工程师

如果一个软件企业正在实施CMMI或者已经建立了研发管理体系都会在项目组中加入一名QA工程师。在我的工作经验中只有到达软件企业的公司,组织规模在300人以上,才可能去实施CMMI,就算去实施CMMI,最后也只不过是为了拿个CMMI的证书,QA工程师很多时候都是为了CMMI才存在的。不知道是咱们的软件公司不重视研发管理还是CMM和CMMI不适用于中国人。CMMI标准文件说,QA是高级经理的ears and eyes。研发人员眼中的QA往往也是警察,QA的作在于发现和报告项目的问题。一个合格的QA在项目中会充当三种角色:

角色1-老师,具备学习和培训的能力。

角色2-医生,通过度量数据对项目过程进行诊断,帮助分析原因,开处方。

角色3-警察,以企业流程为依据,但要告诉大家流程背后的原因;如果和项目组针对某些问题意见相左,可以直接汇报高层。

但在我的工作经验中却没有看到过这样的QA,虽然我的项目组也有为QA,但是主要为了实施CMMI而设置的,她是一位女性,不参与我们的讨论,只是默默地看着听着,然后回去写她的文档,只有在项目组研究去哪里吃饭庆祝阶段成果时就是看到她积极踊跃发言。

程序物语:项目经理预成长


今天,根据自己的体会,我来谈谈项目经理的初始化阶段。

新人工作一段时间后,或长或短,可能一至两年后,有可能出任项目经理。此时,考验你能力的时候真正来临。项目分很多类,如基础研究项目,大型综合性项目。这里我们选取小的商业应用型项目为例。

刚开始,我们是没什么经验的,好在有热情。但这是项目,是一个讲究人与人之间配合的技巧性的活,光靠热情是难以持久的。退一步说,你是能力很强的聪慧之人,什么都拿得起放得下,那你充其量只是个精兵,而不是一个好的管理者。管理者的目标让整个组织的效率更高,管理者是没有那么多时间老是冲锋在前的,请深刻体会这一点。 因此我们得掌握一些基本的技术,讲究一些策略,力求避免未做勇士,先做烈士。

需要先补的课程是,项目的三要素:时间、成本、范围。

第一:时间

如果三峡项目做得很漂亮,质量很高,专家也很满意,惟一不足的是项目比预期推迟了两年半,那么这个项目的考评可能从A+会直降到C-甚至D-。因为这样一个大项目群,耽误一天便产生数以亿计的成本损耗。我们的项目虽然小,但道理是相通的。所以在执行项目之前。项目的时间至关重要。

客户有个时间表,老板有个预期的时间表,每个项目成员都有个时间表,作为项目经理,必须把这些协调起来,达成一个各方满意的结果、按照利益相关方的优先级别排序。这里有个分析的小技巧:请注意,老板说是下月底完工,你得有两手准备。一方面:alpha版一定要在下月上旬先给老板看下,给他一个初步印象,避免到时心里落差过大,情绪失控,万一有错,也来得及修正。另一方面,不要做得太细太完善,既浪费时间,又不给领导提意见的空间,领导只会怪你不会做事。于是,你得留一些简单的易于完成的小破绽给领导。是不是很委琐?!我相信这 样做,对项目组有利。当然,看具体的人,看性格。

第二:成本

项目花下去多少成本,预算时要心中有数。多大的西瓜多大的秤。这个成本包括时间成本、人力成本、费用成本等。在项目中间要勤计算挣值 。这是一个很关键的指标。投入与产出必须有一定的正相关系数关系。人有多大胆,地有多大产的教训在我身上太深刻了,记住,什么事都不要拍脑门,项目中没有任何板上钉钉的事,特别在公开会议上,要控制自己的情绪和言行。 有时候,一时不必要的斗气,让项目成员苦不堪言。

第三:范围

有了时间、成本的到位分析。范围就是一件简单的事了,简单的说,范围就是项目需要完成的程度。时间长、成本允许,可以内外兼修,各环节都做得漂亮,各方满意,自己也挺有成就。这是理想中的理想,基本上在实际中属于空想的范畴。所以,如何控制好范围,而又保持好项目成员的积极性,是一门学问,水很深哪!项目经理的一个基本观念是:项目是独立核算的,项目的考评是本项目完成到什么程度,而不是为了别的项目组或者为了下一次项目做了多少。如果这个项目可能为了别的项目组做出一些牺牲或额外努力,请尽量避免!如果必须得做,也需要在项目组 会议上言明,为自己项目组争取既得的回报,不一定非得物质的,比如领导的心知肚明,客户的理解和感激等,这些会帮你加分。千万不要偷偷摸摸的干,把项目成员的暗中努力不当回事,我是雷锋我怕谁已经不能用来唬人了,这是个讲究科学、兼顾效益的商业社会。

有人会问,在这三者冲突的情况下,如何取舍。建议很明确:先砍功能,也就是范围,把一些能推到项目二期的先往后推,向范围要时间。所以,在项目开始之前,要给项目孵出20%左右的可压缩时间,这个只有项目经理自己清楚,不必言明。

最不可取的就是项目经理挥刀自宫,让整个项目组在低成本下高速运行,这样的项目最后成败我们先不说,在项目成员的眼中,你基本上与黄世仁无异,甚至不用等到项目结束,就已经牺牲了。所以在第一次项目中一定不要让项目成员感觉跟你就是为了体验雪山草地,他们配合你,一是出于利益,二才是看你这个人值不值得跟。都看着你呢。所以,遇到不顺事先忍着,抓重点,回头再总结。这就是前文所说的做人、做事的原则:为什么级别的事情,就得付出什么级别的代价!

其实,第一次,不要将成败看的太重,教训要自己书写。有人说,哪怕只打一次仗,一个兵才会淬火成为真正的军人。谁没有第一次呢?做人,要经得起失败,但得明明白白地失败。

有人说 程序员的人生有三重境界。第一重、见山是山,见水是水。刚入门的程序员基本只能看到表面的东西,由于各种原因,没法了解更深入。第二重、见山不是山,见 水不是水。成长并有经验后,看到的表面现象渐渐有头脑中成型,犹如行军详细地图已经了然于胸。第三重、见山亦是山,见水亦是水。大悟之后,举重若轻,外松内紧,处事看似笨拙,实则暗藏玄机,惜语如金,然字字珠矶。此时,胸中亦有各种框图,然表面内敛以藏拙,见人说人话,见鬼与鬼语,谓之通灵也。

要想修炼到气定神闲的第三重境界,那就用心和智慧体验吧!

大项目、小项目都是程序员成熟之道[1]


一下子就跨到了新年,时间真快呀!言归正传,今天谈谈项目问题。

我们常听到同行说自己做过什么项目,说某某做过什么项目。一谈到项目就会眉飞色舞,兴高采烈。而不少新进单位的新大学生、一些编程新手,往往不知道什么项目,不知道项目与自己成长的关系,有的甚至声称编程好几年了,还都没有做过项目的经历。情况确实如此,只有参加过项目的程序员才是真正的程序员。那些没有做过项目的虽然自己编制了不少程序,虽然得意过自己的程序,但是,毕竟和做过项目的程序员有很大的差别,这些差别主要在于:

1、 程序的价值

没有做过项目的程序员,编写程序的目的主要是学习,通过编程来提高自己的编程能力,编啥、怎么编都由自己主观决定,自己能做什么不能做什么都不是太清楚。至于程序能否被别人使用,程序能否卖出价钱,程序员并不太关心。

做项目的程序员则不一样,他编写的程序不是用来学习的(尽管他是抱着学习的态度参加项目的),而是作为商品的一部分出售的,编出的程序要投入日常运行的。他别无选择,必须完成程序功能。程序员的价值通过程序出售的价格以及程序使用来体现。

2、 程序的时间要求

没有做过项目的程序员,编写程序的时间长度是由自己决定的,自己高兴什么时候编好就什么时候编好,遇到其它事打搅,拖个十天半个月也无所谓!

做项目的程序员则不一样,他必须在规定的时间内完成编程,只能提前不能延后,否则整个项目进度就会被它拖后腿,而由于项目延期不能按时交付给客户,其结果就有可能因延误被罚款,甚至取消项目。

3、 团队

没有做过项目的程序员基本上是单枪匹马地编写程序,程序功能相对简单,一个人多花点时间也能完成。

做项目的程序员则成了项目组的一个成员,他只是负责整个项目的一个部分,或者说只编写其中的一段程序,而不是全部。因此,他的程序必须要和其他人编制的程序对接、他的程序必须读别人的数据,他的数据也可能被别人读。这里的每一个环节都不能出错,一个地方出错就会影响整个项目。所以,他必须和团队的其他人很好协作共同来完成自己的程序。

4、 学习氛围

没有做过项目的程序员学习靠自学,靠网上google去学,学的内容随意性很强,学好学坏没有人监督。

做项目的程序员不但靠自学、靠网上google去学,还必须向项目负责人去学、向项目组其他人去学、向客户去学。而且学的东西都有针对性。向项目负责人去学习程序设计详细方案、向项目组其他人去学习程序接口、数据接口、向客户学习业务及需求等。程序的好坏要通过测试环节和用户使用加以验证。

所以,通过参加项目程序员可以克服自以为是的错误观念,树立为客户编程的思想,以软件销售价值来衡量自己的价值;树立团队意识,把自己融入到团队之下中,以团队荣为荣,以团队耻为耻;在项目中学会从大局看待程序设计、学会评判程序难易之处,学习更加实用的程序方法和算法。

那么是什么项目?这里所指的项目可能和一般的项目定义侧重有所不同。这里的项目一般是指客户提出需求,软件公司或企业内部项目小组按照需求进行设计、开发,投产、维护等工作的总和。它只包含软件相关的费用,其他硬件、网络、软件环境费用不在此考虑之列。

项目是有大有小的,有的大的项目以亿为计,有的小项目以千而计,千差万别。由于没有标准,不同的人对项目的大小定义是不同的。例如,有的企业把一百万以上的软件称之为项目,把1千万以上称之为大项目。有的小企业把1万元以上的软件称之为项目,把5万元以上称之大项目。这些项目大小主要取决客户对资金管理范围和等级,一般而言,项目越大,需要单位或企业越高的领导层批准。

IT团队管理之项目经理


我和大部人从事IT的人一样,毕业后第一份工作刚开始也是从事软件开发,说得简单点就是程序员,因为刚从学校出来,对这个行业都不懂,但是听社会上工作一两年的人都说,做it要有职业规划。要先做程序员,到转到管理,于是我心里在想,所以我也有一个想法,就是以后要转向做管理。

后来我自己也从项目Leader,做到项目经理。

以前做程序员的时候,认为做项目经理或者项目主管只要在这方面做的时间长,经验丰富,别人遇到问题能解决就可以了,可是真正当我一步一步走上时,我才发现,原来并不这么简单。

刚做项目管理的时候,真的不知道要做些什么,因为我服务的公司不是一个很正规的公司,所以这方面的培训,也没有说教你说做项目主管应该做些什么,或者做项目经理应该做什么,后来我只有从网上找,朋友问,但是这些旁听来的消息,也不知道是真是假,半信半疑。

后来我也卖了一些这方面的书来看,想从中取经。

现在想想刚开始那段时间还真有一点难受,甚至有一段时间我在心里就想不做这个项目主管,让我做个程序员就可以了。

后来慢慢的,我们老总也给我很多帮助,也感谢公司里。net团队和flex团队的两位资深项目经理,他们也不断给我鼓励,给我帮助,让我慢慢的找到正确的路,让我慢慢知道项目经理应该做些什么,怎么样才算是一个好的项目经理。

现在回想起来,做一个项目经理应该具备以下能力:

1.用一句比较常用的话来说:上得了厅堂,下得了厨房。因为做项目经理的时候,难免会与客户打交道,也有可能与合作伙伴打交道。有的人出了公司,见了客户就发虚,底气不足,说话都很抖,让人爱给看扁了。有的甚至一见面就是哦,晕倒,哇靠之类的词就出来了,这样有个客户都会被你吓跑。有的也会很私文,气势都被对方压倒。我本人是07年毕业,到现在才两年多的时间,到现在为止面试的人员差不多有近百了,里面有研究生,有工作很多年的,我记得有一个工作九年的项目经理,能说会道,我和他面谈也很顺利,到面试完后,我才给他说,其实我是07年毕业的,他说真的看不出来。所以作为项目经理,在和自己组员打交道可以 随便点,但是和客户谈话,要注意分寸,有进有退,保持立场。

2.做事要目标明确,抓信问题的关键。不管和客户打交道,还是和程序员打交道,都要能快速的找到问题的关键。很多程序员遇到一个问题,不知道如何下手,其实只要点博一下,找到问题的关键所在,就能很快找到解决问题的办法。在有些场合要与客户谈判或者协商事情的时候,更要注意,更要能够快速找到关键的那一点,比如说人有时候都喜欢来两套,桌面上一套,桌面下一套,有些事在办公室谈不好,说不定到酒桌上就能谈好,但是要看对人,才能使对招,只有这样才能事半功倍。

3.项目经理要有推动力,也就是说你在你的团队,或者在你的谈判中,要能起到推动作用,把事情不断往前推进。让事情向前发展。这就和开会一样,一般来说开会都是遇到什么问题,需要开会来讨论,大家提会提出一些解决问题的办法,大家提出办法后,大家都在那里争论分析几种方法的优缺点,每种情况都有可能失败,都有可能带来损失,大家都不愿承担责任,如果让这种情况一直下去,我敢说他们会讨论几天都可以,这时就需要一个决策者来下结论,决定采用哪一种方法,然后快速的执行下去,而不是在那里无休止的分析。

4.要能承担压力。人遇到压力的时候,都会焦虑,而且有压力的情况下,思路可能会变得不清晰,有时候还会进到死胡同。这时候就需要一个临乱不乱的人,来支撑场面。如果头都乱了,那下面的人一定会乱。我个人认为我本人这一点是没有做好,以前有时候,项目收尾的时候,面对各种压力,比如客户的压力,程序员本身也有压力,还要面对老板的压力,要做到临乱不乱还是有一点难。

5.要有良好的回报心态。不管是在哪一个行来,不管在哪一个公司,也不管在哪一个职位,都要有一个良好的习惯,那就是回报.回报的意思,就是说你要向你直接领导报告你的实时情况,让你的领导随时能够了解你的进度情况,这样就算出了什么事,你的领导多少会有所准备。但是这都是在你回报的情况属实的情况下,我遇到的一个程序员就是每天给你回报说OK,可是真正当项目测试的时候,才发现什么都不OK,让我一点准备都没有。所以回报也一点属实。

以上是我自己的一点心得体会。其中也有些是我没有做好的,我也会在后面的工作中学习,改进,也提升自己。

以上《5年程序人生路 从新手到项目管理[2]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“项目管理职业规划”专题!