透视程序员

来源:互联网 发布:如何开淘宝店 知乎 编辑:程序博客网 时间:2024/03/29 02:02

程序员分析

  程序员和其他职业相比,有其自身的职业特点,对此,本人有些拙见,供大家评说。

程序员的动机

  把程序员作为职业,恐怕脱不开赚钱谋生这一点,但这并不是唯一的动机。根据许多网上调查,我们发现,许多程序员对自己目前的工作表示不满,是工资低么?不一定,因为其中有不少人的月薪在4、5千元甚至1万多元,那是许多人心目中的高薪啊!这些调查同样也告诉了我们答案,一些影响情绪的金钱外指标反而显得更重要,例如,在公司里能否学到知识?公司是否有发展前途?企业文化如何等等。
  程序员并不是简单地为薪水而工作,他们有各种各样的想法和追求。现在软件行业流行学习外国先进的管理经验,程序员们对此充满了期待,因为优秀的管理思想是一定要设法满足员工要求的(当然,程序员本身的价值观也面临一个转化的问题,由从前重视个人价值转变为重视团体价值,由游击队转变为正规军)。

程序员的素质

  很多人抱怨大陆程序员的素质差,例如个人英雄主义、缺乏合作精神、没有统一规范、工作不负责任,可是,抱怨又有什么用呢?现实就是这样,教育体制不作深层次的改革,以后很长时间也还是这样,你必须面对这样的状况。
  其实,企业自身可以改革的地方很多,如果管理思想跟上来,你会发现,中国程序员其实非常可爱,整体素质非常高!
  不是抱怨程序员缺乏系统培训么?作为企业,自己做得如何?内部有没有对员工完善的培训机制呢?在这方面,相比外企而言,国内软件企业就普遍做得不够,企业在开始招聘员工的阶段就只招有经验的程序员,因为他们一来就能马上投入工作。这样匆匆忙忙地与陌生的新员工开始合作,算不算冒险?最近听说微软公司招聘员工时,其中一关的试题基本是小学三年级水平就能够理解的智力测验,我觉得这方法能够实现的一个理由恐怕在于人家可以对员工进行工作时再培训。
  不是抱怨程序员缺乏团队精神么?你可知道,"缺乏团队精神"就是"不愿意合作",而"不合作"的背后其实真正地是一种心理抵触呢?有没有仔细分析程序员不合作的心理根源在哪里呢?我想,那个被老板批评为缺乏团队精神的程序员换个环境,也许和别人反而能够很好地合作呢。程序员的心理抵触因人而易,其中,让他牺牲自己,无条件地"配合"他人,或让他做不感兴趣的工作恐怕是重要的方面,这些都是管理方面的问题,而不一定在于程序员自身。
  何妨关心一下程序员的工作和学习,何妨关心一下程序员的健康和情绪?这对企业来说有什么害处?何妨多激励程序员而不简单地拿"扣奖金、辞退"等相威胁呢?我们不能象招聘建筑工人那样随随便便招聘一个程序员,然后施行简单粗暴的管理,而应该首先象沙里淘金一样仔细,找到我们需要的人才,既然开始干了,就必须一切管理行动都是为了达到那个目标才行,企业运转机器老是在一个"招聘、工作、失败、辞退"这样的死循环里盲目空转,有什么前途呢?
  对程序员本人来讲,来自企业的抱怨需要警惕,懂得如何做人,是决定个人未来发展的关键,不可不慎。

程序员的压力

  软件企业不可能没有压力,程序员也是如此,必须能够承受压力,但程序员有哪些压力,管理者如何控制这种压力,大家一般都是凭经验判断,比如认为宽松的工作环境能够减少程序员的压力,从而提高工作效能等等就是如此。
  下面,我想借现代心理学的知识,来谈谈这个问题:

  人的生活压力来源于三个方面:
  1、 生活改变
  心理学家把常见的生活改变和对应的压力感制成一张量表,在这张量表里,配偶亡故的压力感最高,达到100,其次是离婚(73)、夫妻分居(65)、个人患病(53)、家庭中有人生病(44)、事业重新整顿(39),改变行业(36),改变工作职位(29),改变生活条件(25)、与上司不和(23)、改变上班时间或环境(20)。
  从这里我们看到,"一个宽松的工作环境"对压力的影响其实并没有想象的那么大。倒是公司应该充分估计到员工工作外私事导致的压力感反而可能更大,东方文化本来也是有自己长处的,不应盲目抛弃,所以关心员工家庭的事情吧,效果一定会很好。
  2、 生活琐事
  西方有句谚语说:"最后一颗草会压垮骆驼背"。同样道理,无可逃避的烦心的生活琐事,日积月累之后也会予人造成生活压力。虽然每件事情都不算严重,但总加起来,会对身心造成不良影响。
  主要是下面一些:
  (1) 经济支出,诸如衣、食、住、行、捐税、医药费、保险费、供楼。在这方面,现在许多企业做得比前几年好多了,可能是政府劳动政策规定使然。
  (2) 工作方面,诸如是否有兴趣、待遇如何、有没有发展机会等,国内企业一般很少过问职工未来的职业规划,这方面要象外企学习。
  (3) 健康方面,指身体健康和心理健康两个方面,据说,有些著名的外企在招聘时,要对应聘者进行心理测验。而我们的企业只是按照劳动部门的要求,只在招聘时对员工做一次体检,以后就没有这方面的事情了,心理方面的把握十分粗疏,简单的面试(甚至"相面")有时候并不能了解清楚一个人。
  (4) 生活保障,人的生活是有目的,有方向的,"人无远虑,必有近忧"。因此,每个人都会为未来的安全保障打算,举凡学业进修、工作保障、职位晋升、经济、储蓄、退休安排等,都是为安全考虑而带来的心理压力。国内程序员中盛传的说法:"程序员是妓女"、"干到什么时候?三十五岁怎么办?"就都属于此类。如何解决这个问题,后面要专门谈一谈。
  3、 个人心理因素
  指个人心理的冲突和当前环境下面临的烦恼、困惑、焦虑、愤怒等各种挫折,由此导致的负面情绪。

  一般来说,人类对压力存在一种适应现象,不过,却是有限度的,压力如果持续增加到一定程度,就会使人很快陷入精疲力尽的衰竭状态。

  下面是叶克斯(R.M.Yerkes)与杜德逊(J.D.Dodson)经实验研究归纳出来的一条法则,用以解释心理压力、工作难度以及工作成绩三者之间的关系。在简单易为的工作情境下,较高的心理压力将产生较佳的工作成绩;在复杂困难的工作情境下,较低的心理压力将产生较高的成绩。在心理学上,称此法则为叶杜二氏法则(Yerkes-Dodson law)。如下面的图:


  马俊仁之所以成功,是因为他不断地给队员施加了压力,跑步是很简单的工作。
  军队要有铁的纪律,下级必须服从上级,否则就缺乏战斗力,训练和打仗是简单工作。
  不过,同样的一套却不一定适合对程序员的管理。如果管理者希望程序员绝对服从自己的意志,怕不会对提高工作成绩有什么帮助。
如何给程序员分配工作,如何调节程序员的心理压力,才能得到好的工作效果呢?从上面这两张图上来分析,如果系统分析员能够把任务分解到足够细的程度,项目管理者能使每个人都专心从事一项他自己擅长的"简单劳动",则增加压力(例如为了赶进度而加班、奖惩结合、战前动员)会提高工作成绩。相反,如果任务分解不到位,人力资源分配不合理,则软件开发就变成复杂的劳动了,增加压力反而把事情弄得更遭(例如软件存在捉不完的Bug)。
  具有探索性质的研发工作是复杂劳动,要尽量减少压力,如何减少呢?除了帮助解决各种生活琐事以外,尤其应该降低心理焦虑、挫败感,所以要鼓励成功、允许失败。这可以参考高考前,老师和家长是怎么说的。
  值得特别注意的事情是,程序员的自我意识可能对工作产生负作用,例如有些程序员喜欢在工作上刻意表现自己,结果虽然任务可能简单,反而不能完成。需要对程序员进行过程和结果辩证关系的教育,工作是为了出成效,不出成效的自我表现是没有意义的,对这样的程序员,也许限定时间让他完成某件事情比较好。

程序员的技术情结

  许多程序员在项目和技术何者重要的问题上,往往特别偏向技术一方,所以才会讨论学C++好还是学Delphi好,是否追赶最新的技术等等。可是,对于具体的任何一个项目而言,语言和最时髦的技术真的那么重要吗(据说有Delphi不能做的一种驱动程序,但那属于微软个人不公开的商业秘密,而且你真的需要做那种驱动程序吗?)。
  其实,无论学习那种语言,重要的方面在于训练自己基本的计算机逻辑思维理念。从眼前来看,也许学会某种语言能够更好地帮你赢得一次机会,但从长远来看,最重要的是你是否对那项目感到兴趣。所以,项目选择是最重要的,选择不同的项目将把你带到不同的软件专业领域中去,决定你未来的发展前途,怎么能够不格外引起重视呢?万不可单纯追赶技术而在不同领域不同行业里跳个不停。
  作为软件公司来说,招聘员工时手头没有一份详细的招聘计划和安排,不知道如何考察一个人的能力,只好过问你精通什么语言,如果是C++,就认为你够水平,够聪明,如果是VB或Delphi,就认为你差一个档次,这有多么片面。有必要迎合这些公司吗?

程序员与项目经理

  不少程序员想做项目经理,哪怕自身连基本的管理技能都还没有学到,就想当项目经理了。其实,如果遇到一个非常优秀的项目经理控制项目的完成,使自己能够愉快地编程,有多少人愿意勉为其难地从事一项不熟悉的工作呢?但现实情况使我对程序员的这个动机深表理解。
  许多蹩脚的"项目经理"的表现降低了这个职业的准入门槛。
  现在有一种说法,认为中国软件业最缺少大量的"软件蓝领",可是,真的给你大量的软件蓝领,有没有足够的管理水平把他们利用起来呢?实际上,中国从来就不缺乏高素质的技术人才,而最缺乏的恰恰是既懂技术又善于管理的复合型高级人才。项目经理最基本的素质是什么?我想应该是两方面,技术上懂得"控制",整个项目需要多少人手,需要多长时间,未来的软件是什么样的,做给谁用的,用户是否会满意等等。管理上"以人为本",程序员对工作有哪些意见,有没有后顾之忧,如何提高士气等等。如果连这些都失误了,只会瞎指挥,摆架子,怎么会有好结果呢?
  现在有一种观点,"大陆程序员没有规范的培训,并且有很多的错误认识,把写代码看成水平最高的,项目经理必须掌握样样比程序员高才行,否则项目很容易流产",我看这个认识是不对的,程序员服不服你,关键不在于项目经理技术如何如何,如果项目经理的管理水平一塌糊涂,程序员才只好再问技术是不是比他强了,两者都不行,别人如何服气?
  多年前,曾经有一个项目经理,是政府公务员,压根就不懂电脑,但在领导我们5个资深程序员的过程中,没有人表示不服气,项目最终按计划圆满完成。最后突击的一个月,他甚至每天晚上逼我们工作到凌晨2、3点钟,早上6点就招呼我们该吃饭了(其实是叫我们吃完接着干)。为什么大家没有意见,因为两点:一、他对工作极其认真负责,几近苛刻,自始至终身先士卒陪我们一起干。二、对程序员的意见充分尊重。
  反观我们的许多项目经理,只所以做不好,自己的管理是否到位了呢?

程序员的归宿

  程序员中流行的众多困惑中有一个就是归宿问题。比如说,三十五岁以后怎么办(5年前是三十岁以后怎么办,不知道5年后会不会变成四十岁以后怎么办)。谈谈这一方面。
  如果你打算,并且有信心自己做老板,那么,年龄就不是问题,没有哪个客户会关心商家老板的年龄。
  如果你想以后改行从事其他工作,那应该在这之前多学习这方面的技能。知识广博在任何时候都不是坏事。
  再来分析三十五岁以后,你如果还想在别人公司做底层程序员,会面临哪些问题:
  首先是竞争问题,来自后辈青年的竞争会逐渐加大。
  其次是观念问题,许多企业明白告诉你他们只要三十五岁以内的。
  另外比较成问题的是经验,三十五岁的程序员所积累的经验并不一定总是好事,它有可能会跑出来干扰你学习新的知识,而在软件这个瞬息万变的行业里,知识恰恰需要不断更新。当然,如果是成功的经验,相对来说还是有价值的。
  还有一个问题也很严重,就是自身心理压力加大了,比如未来保障、家庭负担等等,这些都影响三十五岁的人继续作程序员。
  在变化迅速的社会里,别真的希望一种职业状况能够保持永久。

 
原创粉丝点击