在从事程序员工作之前,虽然工作上偶然有过加班之说,那仅仅是偶尔而为之,并不会太在意。后来,无论是从自己的亲身经历,还是从周围同事的经历,还是眼睛所能看到的各个软件公司开发过程,还是从可听可读关于程序员加班的传言,一切的一切都证实了,在程序员这个职业中加班是一种常态。如果你去问问程序员有哪个没有加过班的,举手的一定是第一天参加工作的程序员。
度过了入门阶段的程序员,由于他们具备了编程能力,虽然这个能力并是太高,技术并非很强,但是,大量的工作或者超负荷的工作,就成了这种能力提高的“体能”训练。有的程序员加班实属不情愿,很无奈。因此,他们对加班叫苦连天,埋怨无限。所以,很多人认为程序员是吃青春饭的职业,年龄一大就承受不了加班的压力了。
加班有两种类型:一种是单位因工作要求的加班,是强制性的,被称之为被动加班;一种是程序员自身习惯性延续工作所产生的加班,被称之为主动加班。
程序员加班发展趋势是:开始阶段是主动加班时间不断增加;第二阶段是单位强制性的被动加班时间不断增加,主动加班时间减少;第三阶段是被动加班时间逐步减少,主动加班时间逐步增加;第四阶段,是自己和单位都不加班。
开始阶段:程序员刚进入程序员这个行业,需要大量自学时间,提高自己的编程能力,无论是看书和编程的热情和压力都很大,而且程序员的思维惯性很强,不容易突然中断,加之程序员是个人劳动,没有外人的约束,所以很多程序员喜欢在无人干扰的夜深人静的时候开始工作,造成晚睡晚起,工作没有规律,养出来了职业“加班”习惯。这个时候的加班特点是主动自愿的。
第二阶段:当程序员具备了一定的工作能力后,单位完成开发任务的时间一般要求都比较急,所以,一般在正常工作时间是完不成的,所以程序员被要求加班。不同的单位因开发项目的多少,项目要求时间的松紧,会造成加班。这种加班一般会伴随着程序员成长的大部分时间。许多人因加班而抱怨程序员工作太苦而转行。这个阶段中,由于工作的疲惫,个人自己主动加班的时间会大大减少,但是,当单位要求某个工作在某个时点完成的时候,尽管不明确的要求加班,个人还是会为完成工作自己加班的。
要特别指出的是,这个时候的程序员已经很少有精力和兴趣像开始时那样候去学习和研究自己感兴趣的编程问题了。
第三阶段:当程序员经过成熟期之后,其资历和能力有了提高,很多人转向了软件设计和项目经理角色,“被加班”情况大大减少,往往是要求其他程序员加班,大部分时间是“陪加班”,加班的工作强度大大弱于以前了。
所以,这个阶段有程序员会由于自身能力提高的需要,又开始增加了自身加班的时间了,但是,其程度和开始阶段相比要弱了很多。
第四阶段:程序员发展到最后,要么转行,要么跳槽、要么升职,自己学习激情消失殆尽,无论是工作还是自身都不需要加班了。
当我们严肃地面对加班问题的时候,我们也会享受和思考加班带来的东西。
1、加班很自我很享受
当自我加班的时候,是程序员最自我的时候。夜深人静,没人干扰,思绪和编程效率很高,尤其是把一个问题看懂的时候,把一个段程序编写出来的时候,把一个出错原因查出来的时候,会很有成就感,此时加班令人兴奋和享受,令人忘却了加班带来的疲劳。
2、加班环境很宽松
当整个项目组一起加班的时候,因管理要比白日相对宽松。项目组成员会在加班的时候交流、夜餐、音乐、闲聊、等待、观看、学习,小睡等等,大家更加随意,比平时人与人关系更容易相处,很多时候,人与人之间的信任就是那个时候产生的,而且更容易感觉到团队的精神和力量。当一个项目完成的时候,最能让人难忘的是那些加班时发生的故事。
3、程序员水平低
某些时候,加班并非都是项目经理和项目本身造成的。有的时候是由于程序员自身水平造成的。很多程序员水平低,一个高手几分钟就能解决的问题,他们可能要一天或是几天才能完成。所以,从宏观层面来看,如果程序员的水平能提高的话,其加班时间也会相应地缩短的。
4、鞭打快牛
说句笑话,也许你能力越强加班就会越多。在任何单位,“鞭打快牛”都是很普遍的。但是这种打其实是很舒服的,只是当时有点疼了吧。当过了一段时间之后,当没有人打你的时候,你就可能享受不了那种“痛感”了。因为你的“价值”没有了,人家不“利用”了。在这个商品社会,当你有价值的时候,别人才会和你进行“等价交换”。所以,让自己价值最大化才是员工职场的最大目标。
5、加班费
加班中最让人不爽的事就是加班费。有些单位明知加班,却不给或少给加班费。这是一种很不规范的用工情况。程序员能反映一定要反映,能争取一定要去争取,不能争取到钱一定要争取到假。说起来容易,做起来不易。这个问题不只是程序员这个职业特有现象,其他行业一样存在。在中国谈啥都好谈,唯独谈钱难以上青天。程序员对自己无力改变的事,只能放宽心态,努力提高自己的技术水平,只有这样我们才有可能避免“免费加班”。
总之,加班是程序员职业的一个普遍现象,它主要是由于编程工作不可中断性所决定的。加班说明我们有软件需要开发,加班越多说明我们的软件市场越大,加班越多说明我们软件开发竞争激烈程度越大。当有一天我们不加班的时候,我们就要怀疑我们饭碗是否还能保的住,程序员这个职业是否还会存在下去。而我们主动加班却是一种代表我们对程序员职业的一种兴趣、爱好和追求。我们在加班中付出了劳动,我们就要在劳动中去寻找我们的快乐,去寻找和延续我们的梦想。