为什么美国程序员工作比中国程序员工作轻松、加班少?
美国程序员工作比中国程序员工作轻松、加班少总体来说是事实,但都归结到美国程序员效率更高,制度更好之类就过于片面了。我觉得主要原因在于别的一些地方,例如加班的边际效用,程序员的生活习惯。
背景:我在 baidu(北京)和 amazon(湾区)都干过,微软研究院(北京)和 google 研究院(湾区)也实习过,因为目前做云计算和开源,所以也接触过很多公司。整体来看,
- 不觉得美国程序员比国内程序员水平高多少,特别是在年轻人身上。2000 年后计算机专业红火,学生生源好,这些人是当前程序员的主干力量。而且中国教育在工程学科上更加扎实,适合培养程序员。
- 美国有非常厉害的领导者,例如几家大公司创始人都很厉害。但加班文化更多是每个项目的实管人控制。我见过好的,也见过差的。虽然没有具体统计过比例,但没觉得中美差异明显。
- 美国这边开会确实要多一些,但这个也是美国教育重视沟通相关(3,4 岁的小孩就开始练习演讲了)。开会对于大组织有用,这样可以几百人在同一个思想层面往前冲,但用这个来衡量百来人的小公司就不见得适当了。
- 美国公司创新度更高,一是社会认可,二是不创新难有机会生存,三是国内只盯着创新的公司看。但创新公司加班很普遍,例如 Tesla 老大都睡在厂房。
所以我觉得问题在于一些更本质的东西。这里是我的几点观察:
第一是边际效用。美国社会成熟度比较高,在湾区生活的同学也许过去 10 年都感觉不到特别大的变化,而中国则翻天幅度,特别是互联网领域。例如手机支付,美国普及很难,因为信用卡已经很普及了,手机支付带来的好处不显得很大。但中国的基础设施没跟上,所以手机支付在便利性上提升特别大,同样的技术,大家会不惜余力的去推广。
经济学上这个叫做边际效用。同样的技术,中国的边际效用比较高,所以大家可以全力推广。美国因为起点高,所以更加谨慎一些。
这个影响到了加班文化。通过加班可以完成更多工作。如果项目经理觉得这些工作带来丰厚回报,他们肯定会压着组员做。在中国很可能是这样,例如做出这个产品马上会有人用,升职加薪跟着就来。然而在美国,即使今天做出来,用户也是慢慢的过来,完全不需要急着那么几天。
第二是生活习惯。美国程序员年龄普遍偏大,因为计算机行业在 2000 年在美国就很红火(参考互联网泡沫),培养的大量的程序员,这些人现在很多都有小孩。在美国小孩都是自己带,双方父母不怎么帮忙。请人又特别贵,例如湾区工作日请人带娃一个月起码是 2 千美金起。而且学校课程松,所以放学后都要靠父母照顾。此外,很多人住的房子都带院子,请人打理费用贵,很多时候大家亲自动手。例如 Robin 在创立百度前曾醉心于在湾区种菜。
于是在加班边际效用不高的情况下,大家纷纷早点下班回家做家务。并冠冕堂皇的叫 work-life balance。
我认识好几个未婚朋友,他们觉得每天那么早下班实在是太寂寞,毅然回国去了创业公司,并对 996 大家赞赏。记得 Andrew Ng 也表达过类似的观点。
但反过来说,早 9 晚 5 真的好?计算机技术日新月异,而且随着经历增长,需要提升各项领导能力。这些都需要足够多的时间去学习。我认识的厉害的人无一不是在下班后努力挤出时间工作,丝毫不比 996 工作时间少。与其现在羡慕别人轻松,不如埋头努力工作十年再来看。