据说,某互联网公司招了个日本人做研发,上班第一天就对部门同事说:“我在日本工作时是个加班狂,每天都很晚回家,希望大家跟上我的步伐。”一个月之后他辞职回日本了,扔下一句话:“你们这样加班,经常睡在公司是很不人道的。”
程序猿问科比:“科比,你为何如此成功?”科比反问:“你知道洛杉矶每天凌晨4点的样子吗?”程序猿:“知道,那个时候我一般还没下班。你问这个干嘛?”科比:“不干嘛,谈话结束了!
中国的程序员加班?
IT已成为最疯狂的加班行业,没有之一
夜幕降临,当IT大楼里依然灯火通明时,那一刻,我仿佛王进喜、石传翔等劳模灵魂附体,我知道我不是一个在加班,我不是一个人!连续9个通宵加班都不是事,一点不夸张,这是本人的亲身经历。
过度加班,为啥我们就停不下来了呢?
无效加班:连夜忙真能出活吗?“ 有时候主管布置任务,事先缺少沟通,大家加班好几天,成果出来了,最后用不上,工作忙却没有效率,做了无用功。”——深圳程序员韩轩
韩轩是一名在深圳打拼的程序员,“夜夜做项目,敲码到凌晨;感觉左右不是人,都是‘程序猿’。”程序员自称“程序猿”,有几分自嘲和无奈。
每个月要加多少班? 韩轩没仔细算过:“ 加班补贴每小时15 元,周六是翻倍,我每月的加班费通常有3000 元左右,这样算下来每天加班至少在4 个小时以上。”
一个“真正的程序员”是那种热爱编程的人!如此之爱,以至于他的所有时间都是在编程。“真正的程序员”并不认为编程是一种“工作”。
如果一个程序员不是每周工作60-80小时(自愿无偿的,只是因为编程“有趣”),那他就不是一个“真正的程序员”。
整个行业内弥漫着这种文化
如果你想成为一名成功的程序员,你至少要做到看起来像一个“真正的程序员”……于是有人就开始晚上加班、周末加班,只是为了看起来像是一个“真正的程序员”,于是这些人最终精疲力竭。
做老板的都希望他们的程序员通宵达旦的工作,这并不新鲜。但新鲜的是,程序员现在是自愿的要打破自己的每周工作时长记录,纯粹是因为乐趣。
例如,十多年前,在互联网泡沫期间,一本叫做《Death March》的书登上了畅销榜。书中描述了程序员疯狂的工作导致出各种健康问题。书中的结论是,这归咎于糟糕的项目管理。
在2004年,发生了一宗程序员因为加班问题起诉Electronic Arts公司的案件,并最终赢得了1500万美元的赔偿。
几年后的2010年,一篇由一个在Rockstar Games游戏公司工作的程序员的妻子写的文章迅速蹿红。文中讲述了公司如何要求程序员长年累月的每周工作6天、每天工作12个小时,很多程序员健康出现了问题。
到2011年,做“真正的程序员”的风潮继续。当年在编程社区网站StackExchange上的一场讨论让很多人思考。有一个人问,“我在业余时间不编程。这会使我成为一个不合格的程序员吗?”
一般的意见都认为,如果你只在上班时间编程,你也可以成为一名优秀的程序员,但是,“最伟大的程序员都在他们的空闲时间编程。”
国外是怎么对待加班的?
美国:老板付不起加班费
美国人在工作时间上很较真,到点就走人,1分钟都不差。当然,如果有急活需要加班,他们也会配合,但加班费比正常薪水高出一倍以上,公司还得给加班职工叫个披萨饼之类的外卖。长时间加班,美国雇员是不会干的,老板也付不起加班费。沃尔玛公司就曾被“加班费”绊倒过三次:2005年,因侵占员工休息时间,沃尔玛被加州一家法院判决赔偿1.72亿美元;2006年,宾夕法尼亚州一陪审团裁定,沃尔玛因存在强迫员工在休息时间工作的行为,需支付7800万美元的罚款;2007年,该公司又为5万名加州员工支付了超过390万美元的加班补偿,同时支付19.89万美元的民事罚款。这“肉”割得让人心疼吧?
德国:用高效工作避免加班
除了医生、护士等专业性、时间性极强的职业外,德国普通职员大多在傍晚五六点钟按时下班回家,和家人共进晚餐或与朋友聚会。如果确实无法按时完成工作该怎么办呢?德国人一般会采取两种对策:第一,更加高效地工作。很多德国人清晨就开始抓紧工作,有时甚至不吃午饭。总之,他们会想方设法在下午5点之前完成手中的任务。第二,坚持责任不在自己身上。也就是说,如果不能按时结束工作,就设法证明是因为公司没有雇佣与工作量相符的劳动力,才导致工作做不完,应该由公司负责。基于以上两点,德国人总能准时下班。
英国:长时间加班可倒休
大部分英国公司都制订了“加班须申请”的制度。比如,伦敦某金融公司规定:员工单日加班超过2小时,必须提前2天申请;申请时需写明加班时间、加班期间工作内容,并获得至少两位上司批准。长时间加班基本上都可以灵活地换成今后的倒休。英国法定带薪假期是每年28天,有些公司明确规定,若员工在年底未完成标准的休假天数,就扣除其相应天数的工资。雇主们主动提醒员工休假,也是希望员工能以更加饱满的身心状态回到工作岗位。
日本:开始鼓励员工向加班说“不”
加班,是日本职场人的常态。日本加班现象之严重是出了名的,连“过劳死”一词也产生于日本。这些年,日本政府察觉到加班带来的一系列问题,鼓励企业采取措施让员工准时下班。贸易公司伊藤忠商事表示,愿意以更早的下班时间来吸引应届毕业生;打印机制造商理光明确禁止在晚上8点以后工作;优衣库服装连锁店的运营商迅销还酝酿推出4小时工作制,满足那些想要更好平衡工作与生活的员工需求。
“多”并不总是意味着“好”
长时间工作就能让你变得更优秀吗?这是一个值得怀疑的问题。斯坦福大学曾经研究过一个人真正有效率的编程时间是多少?结果你想必不会吃惊,他们发现工作时间过长会使工作效率降低。过度工作的程序员,每周工作60小时的程序员相比起那些每周只工作40的,更容易写出质量低下的代码。
这并未能阻止“骗子”/“真正程序员”综合征的流行。总有一些让人非常心疼的故事时不时的爆出来。
例如,大概一年前,一个叫Kenneth Parker的程序员在他的博客上写了一篇叫做《亲历者讲述一个程序员如何变成精神病人的》文章。
文中讲述了他们的同事如此努力的工作,结果“完全精神崩溃”。
他是我在编程业界里见过的最勤奋的程序员。他经常晚上在公司加班,当周末有紧急工作要处理时,他总能随叫随到。
然而,当被送到了精神病治疗中心后,他的工作效率就不是那么令人满意了。我被公司派去医院探望他,他向我要了一支笔和一张纸,他想把程序写在上面。“我还能写程序”穿着病人睡袍的他对我说。他在纸上写了两行代码,然后不能自控的抽搐哭啼起来。
最近New Relic公司的程序员Nick Floyd开始写一些被他称作“Nerd生活平衡”的文章。他首先坦白自己曾经也是“骗子”综合征的受害者,但他现在相信,当你喜欢上一种工作后才会获得快乐。他写到:
在New Relic公司工作是有挑战性的、辛苦的,令人恐惧的,但这从未影响我。在进入这个公司前,我一直认为,工作就是必须要做的活儿,通常是让人不爽的,而生活就是从工作的不愉快中逃脱出来。但现在我不再那样想了——当“工作”变成另外一种表达你的生活中的热情的方式时,生活更精彩了。
而另一方面,Reddit网友给出了一个让人深思的建议:
我真的非常希望我们生活在这样的一个社会里:不要以工作时长论英雄,不要以加班加点为美德。
说了这么多,我给总结一下程序员加班到底应不应该!
程序员真的是不容易,当初学习的时候就费尽心力的去学习,好不容易找到工作了能从事开发了,还要天天加班,程序员最细要做的就是保护好自己的眼睛和自己的腰,多吃点猪腰子,多吃点芹菜
程序员加班是无所谓,但前提是程序员的脑子里面不能一直想着,哦,我代码没写完我加班,我BUG没调好我加班,都是我加班,你该想的是,你如果提前把代码什么的都弄好了,有人会同意你加班么,说到底还是能力不够
程序员入行开始就应该做好了加班的准备,因为,科技发展进步太快了,加班的过程就是学习的过程,多学习新的技术,终究是没多大坏处的!
但是,程序员还是要多锻炼,花时间多陪陪家人,工作跟生活两不误。
国内程序员与国外程序员的对比
在我认为
顶尖工程师水平:
美国 >中国 >日本 =欧洲 =韩国 >印度
平均水平:
中国 =美国 >欧洲 =印度 >日本 =韩国
大型互联网公司技术能力:
美国 >中国 >剩下全加起来
无论公司角度,还是计算机技术能力角度,现在世界上只有两个国家能放在一起说,一个美国,一个中国。
无论公司角度,还是计算机技术能力角度,现在世界上只有两个国家能放在一起说,一个美国,一个中国。
没在国内工作过,所以大部分是针对在美国的华人和美国本土工程师的差距。
沟通能力
在这点上差距非常明显。很多人说是英语问题,但我觉得深层次的是思维方式问题。和美国工程师交流的时候,你能从他的切入点和具体思路很清晰的理解他的问题,在阐述问题的时候背景信息也给得相当全面,所以理解他们的问题很容易。而当你阐述思路的时候,他们也会非常用心的去理解你的思路,帮你解决问题。
但华人这方面基本不行,很多时候讲一个问题根本不考虑别人的感受,背景知识没给全,就直接开始讲了,搞得很多人云里来雾里去,根本不知道他在讲什么.。有时候也不愿意理解别人的想法,就顾着自己讲。
解决问题能力
由于教育方式和美国不同,所以出现了一个很有意思的现象。如果给我们中国程序员,规定好的方案,我们普遍完成的非常好。但如果没有具体方案,完全是一个开放性课题,很多时候华人工程师完全无法下手。但美国程序员这方面能力相当了得,他们的探索研究能力非常强,经过一定时间的研究后,他们能提出一套非常具体有效的方案然后一步一步去解决问题。这也是我们和美国教育的差别,一个善于解决问题,另一个善于发现探索问题。
技术实力
这方面主要是对比国内程序员和美国程序员。我们工作初期的时候跟美国程序差距不大。但问题是5年以后开始出现变化了。在一项技术上多数人工作个5-6年就开始琢磨转管理,虽然这5-6年我们代码上的时间,积累的经验可以说是高于美国程序员的。但问题是之后我们就不干了。而美国程序员10年以上经验的人有的是。
对技术的热爱。国内很多人学习程序想的都是哪个方向火容易赚钱,什么技术火就学什么。然后去所谓牛逼的公司,干牛逼的事情,然后拿着几十万的工资。我不能说这种是错误的,毕竟大家都是混口饭吃。可美国很多程序员想法很简单,对于编程这种事情更多的是那种单纯的孩子似的热爱吧(此处小编想到阿里副总裁级别的程序员多隆,十四年来专注写代码的扫地僧)。
生活对工作的影响
美国程序员有一种莫名其妙的自信心爆棚的状态,明明自己程序写的那么烂,也觉得自己像超人一样。我觉得中华民族应该向他们学习,不用太谦虚。至于编程技巧,其实都差不多。只是中华民族平时生活的琐事太多,于是工作后连学习的机会都没有了,差距就是这么慢慢拉开的。这一点在美国不会发生。
中国程序员睡觉的时候,美国程序员在工作。
人才培养的差异
对基层的程序员而言,中国猿水平远高于美国猿。中国程序员解决实际问题的能力强,效率也高。但高阶技术职位,例如架构师一类的,美国要高一等,因为在这样的职位上,中国技术人员往往专注于解决实际问题,而不是解决技术问题。总体来说,美国更注重把程序员培养成computer scientist ,最起码也要做到Engineer,而中国公司只要programmer。