百科问答小站 logo
百科问答小站 font logo



为什么美国程序员工作比中国程序员工作轻松、加班少? 第1页

        

user avatar    网友的相关建议: 
      

时隔两年多,更新一下。

两年前相比,国内近年来对devops/(翻译为研发效能)开始反复提及,这也算是一种进步吧。

然而,和上一次说的情况相比,新的奇葩问题又冒了出来。

某司两年多之前声称要改革,然后...然后制定了一堆据说是反复研究了google之后定义出来的“研发效能标准”,比如啥lead time要多少天,覆盖率要多少(这个还算正常),说开发人员必须负责所有自动化用例编写(??g家的兄弟出来说说,你们帮印度qa在写自动化?),什么自动化成功标志就是线上bug漏出只有多少多少个,哦,还有个啥圈复杂度(我是这么多年第一次听说)...

此外还加了一堆线上运维指标...

其实说白了就是自动化覆盖+运维响应,这也没什么稀奇。然而这帮中层干部就开始作妖了,说一定要统一,单测框架要统一,研发流程要统一,工具全部要统一。这个统一不是业务开发说了算,是并不负责业务产品的研发部说了算。而这研发部呢,其实是以前多测试部门...

其理由是:业务团队的开发不懂怎么设计通用型服务(貌似qa很懂),所以不管是xx还是yy(不说产品名字,反正都是大家从小用到大的东西)历经十多年内部的工具体系统统不算数,统统都是“没考虑通用性”,只有某顾问定义的“效能体系”下给出的工具才能是“标准统一”。

然后就疯狂要hc要人呗,做一堆奇葩的工具,这部门自己都无法全部串联起来,然后再申请hc,说要去“培训开发团队写单测”,不然的话开发者不知道不会写单测...

具体就不写了,不然太多细节。

总之好处是研发体验开始收到重视,是个好事,但由于中高层的一窍不通,底层一线缺乏实际经验,cr也好ci也好能起到什么作用都不清晰,只能说勉强在摸着石头过河。

然而不会有人出来回答:能否大规模统一使用jenkins

用jenkins?这tm怎么好去申报项目?怎么好意思在大众面前吹逼。一定要自研,一定要“统一,面向未来”...

******分割线******

举个例子,中国某家一线互联网公司,没有统一的ci体系,问一下有没有内部公用的jenkins系统,说都是各个项目组自己搭建维护(修正一下,今天了解到其实有一套,应该是在jenkins上搭建,设计思路很有些特色,虽然初次使用一如既往被网络隔离卡了一下,但是我觉得还是个不错的系统。然而,也失去了使用jenkins各种插件的可能。。。不过应该满足我自己团队目前需求了。这套他们自造的轮子似乎只是用来给应用做daily build,跟CI其实没啥关系,比如并没有针对单元测试做出什么东西,可能压根就没觉得CI要包括测试。。。)


然后不知道从哪里规定“代码必须只能在公司内部机器”,所以你要学美帝去work from home是不可能的,要接触代码必须在公司工位上。

所以呢,单元测试没有的,自动跑测试是没有的,code review更是做梦。

所以只能瞎check in,然后不敢回家只能等,出了问题赶快加班,测试全靠手,然后最爱扯性能和安全。

最可怕的是因为大多数中高层老板在他们的职业生涯中是在国内早期互联网浪潮中野蛮成长的,对现代开发流程和工具可以说没什么体会和了解,现在面临新浪潮的冲击,首先是要让他们自己能理解现代模式,这就更难,别人说老子不玩你那套一样在赚钱,你忽悠谁呢?

累吗?


但是另一方面,国内程序员自己也有相当大责任。小组之间互相不透明,生怕别人看到自己代码,不愿开放共享,造成难以独立debug(所以国内把“联调”看得很重);对微服务不理解,很多喜欢把自己的东西作为“组件”(也就是库或者独立程序)提供,非要别的组用各种奇葩方式来调用,说自己已经提供了sdk,已经达到要求。。。然后就是各种艰难的调试。。。

还有个现象是一方面老板重业务,程序员又喜欢用性能做借口,我看起来很快就能实现的改动,下面的非要说影响性能所以要做几周。。。没有那种get things done的思维,一天纠结些细枝末节的东西。产品还压根没几个人用就在纠结性能~~~

我tm看着他们做得都累,何苦。


user avatar   ze.ran 网友的相关建议: 
      

不是因为外国公司效率高,也不是因为他们开会多。同类的app,不论是电商还是视频,国内的app远比国外的复杂,变化更快,功能更多。三天一小改,五天一大改,过个节都要出一套ui,新功能层出不穷,做活动此起彼伏。

国内程序员的工作量,就是比国外的同行多,同样多的功能,国外程序员做,照样加班。

关键是,这些功能,真的有用吗?

知乎可以提问,可以回答,因为它是个问答社区。但它还能直播,能视频,能充值,能交易,能借书,能开课,还能众裁。正中间的按钮,有时是想法,有时是会员,是创作,是发现,但没人在乎,大家只是看看首页的时间线罢了。这么多的功能,对用户来说,体验不一定有几年前的版本好。

大量的加班时间,花在了一些可有可无的需求上。

微观上看,是kpi焦虑,宏观上看,是违法成本低。有多低呢?大概像水电费那么低。

多开几小时的灯,就能出个新功能,成本近乎于零,没人用也不亏,何乐而不为?没有法律层面的支持,劳动者就像在囚徒困境中,谁都不想加班,谁都不敢先走。

随着时间的推移,加班成为新常态,向各行各业蔓延。生活越来越单调,越来越重复,人从生产者,转化为生产资料。


user avatar   gnadil 网友的相关建议: 
      

打个比方,知乎把80%的工程师的时间,都用在了这个使用率不到20%的付费栏目上,还特意在了寸土寸金的底边栏上占了一个图标——


如果知乎的产品经理良心发现,不强行推动这个垃圾feature的开发上线和长期维护运营,知乎营收降低20%,但是工程师能节约80%的时间。假设原来知乎工程师人均996,但是假如把这个非常次要、非常没用、非常花里胡哨、看上去耗费大量人力物力的功能砍掉,知乎估计人均每周工作4天就足够了。

而这个功能到底赚不赚钱,到底值不值得知乎长期以来投入这么多工程师的开发和维护,能不能起到支撑知乎估值的作用,知乎的高管们自己心里非常清楚。

本来marketing团队做一周的research就能得出“浪费时间+烧钱,千万不要做”的结论,被一个高高在上的高管强行推动做出来,于是耗费了几十个团队从码农到产品经历长达两三年的开发、迭代、维护、删改、撕逼、会议、营销、资源倾斜——最后做出来到底值不值这么多钱,有没有用途,商业模式有没有成功,你们自己最清楚。

本来现代管理的模式中,各个团队各司其职,却偏偏在一些地方,CEO既是marketing director,又是sales director,又是CFO,又是COO,又是pr director,又是product management director,唯独不是CTO,不是程序员——那么结果只能是“程序员天天加班,做出一个又一个没用的、商业模式上失败的项目”


user avatar   mli65 网友的相关建议: 
      

美国程序员工作比中国程序员工作轻松、加班少总体来说是事实,但都归结到美国程序员效率更高,制度更好之类就过于片面了。我觉得主要原因在于别的一些地方,例如加班的边际效用,程序员的生活习惯。

背景:我在baidu(北京)和amazon(湾区)都干过,微软研究院(北京)和google研究院(湾区)也实习过,因为目前做云计算和开源,所以也接触过很多公司。整体来看,

  1. 不觉得美国程序员比国内程序员水平高多少,特别是在年轻人身上。2000年后计算机专业红火,学生生源好,这些人是当前程序员的主干力量。而且中国教育在工程学科上更加扎实,适合培养程序员。
  2. 美国有非常厉害的领导者,例如几家大公司创始人都很厉害。但加班文化更多是每个项目的实管人控制。我见过好的,也见过差的。虽然没有具体统计过比例,但没觉得中美差异明显。
  3. 美国这边开会确实要多一些,但这个也是美国教育重视沟通相关(3,4岁的小孩就开始练习演讲了)。开会对于大组织有用,这样可以几百人在同一个思想层面往前冲,但用这个来衡量百来人的小公司就不见得适当了。
  4. 美国公司创新度更高,一是社会认可,二是不创新难有机会生存,三是国内只盯着创新的公司看。但创新公司加班很普遍,例如Tesla老大都睡在厂房。

所以我觉得问题在于一些更本质的东西。这里是我的几点观察:

第一是边际效用。美国社会成熟度比较高,在湾区生活的同学也许过去10年都感觉不到特别大的变化,而中国则翻天幅度,特别是互联网领域。例如手机支付,美国普及很难,因为信用卡已经很普及了,手机支付带来的好处不显得很大。但中国的基础设施没跟上,所以手机支付在便利性上提升特别大,同样的技术,大家会不惜余力的去推广。

经济学上这个叫做边际效用。同样的技术,中国的边际效用比较高,所以大家可以全力推广。美国因为起点高,所以更加谨慎一些。

这个影响到了加班文化。通过加班可以完成更多工作。如果项目经理觉得这些工作带来丰厚回报,他们肯定会压着组员做。在中国很可能是这样,例如做出这个产品马上会有人用,升职加薪跟着就来。然而在美国,即使今天做出来,用户也是慢慢的过来,完全不需要急着那么几天。

第二是生活习惯。美国程序员年龄普遍偏大,因为计算机行业在2000年在美国就很红火(参考互联网泡沫),培养的大量的程序员,这些人现在很多都有小孩。在美国小孩都是自己带,双方父母不怎么帮忙。请人又特别贵,例如湾区工作日请人带娃一个月起码是2千美金起。而且学校课程松,所以放学后都要靠父母照顾。此外,很多人住的房子都带院子,请人打理费用贵,很多时候大家亲自动手。例如Robin在创立百度前曾醉心于在湾区种菜。

于是在加班边际效用不高的情况下,大家纷纷早点下班回家做家务。并冠冕堂皇的叫work-life balance。

我认识好几个未婚朋友,他们觉得每天那么早下班实在是太寂寞,毅然回国去了创业公司,并对996大家赞赏。记得Andrew Ng也表达过类似的观点。

但反过来说,早9晚5真的好?计算机技术日新月异,而且随着经历增长,需要提升各项领导能力。这些都需要足够多的时间去学习。我认识的厉害的人无一不是在下班后努力挤出时间工作,丝毫不比996工作时间少。与其现在羡慕别人轻松,不如埋头努力工作十年再来看。

===19年更新===

我对答案中对996淡淡的赞同表示很惭愧。反观我自己,在身体和家庭允许的一些时间里,可能每周会工作60、70小时。但如果每周坚持是不可能的。很是不赞同企业家大肆鼓吹必须996。


user avatar   liu-hai-tao-75 网友的相关建议: 
      

又看到一波人再扯什么企业文化,法律制度,科学管理,好像不扯这些不能体现出自己思考的深刻。好在我也工作快20年了,这些装*的东西也见过不少了。把自己在一篇回答下的评论搬过来吧,口语化的东西,没有什么深刻的道理,高大上的概念。只是觉得知乎一些人没工作几年,凭着自己短暂的几年认识,就下论断未免太片面,随性了。

=====

说句不好听的,那是因为当前美国行业状况,没有什么值得码农去拼命的了。我以前那个美国公司,2000年股票泡沫的时候,全公司的码农都拿睡袋睡在办公室。产品做出来就能IPO,IPO了就能发财,大家都明白股市这么火爆,多少年才碰到这么一次。隔壁公司的Tom已经买跑车了,你拼不拼?不拼就滚蛋,别挡着别人的财路。

国内整体行业环境还是处于拼命工作,就能让自己收入档次上一个台阶的地步。所以大家拼命加班。要是像美国2000那次一样,拼命就能发财,加班会很狠。什么企业文化,什么技术水平,什么法律保障,都是扯淡。老美的清教徒文化,不仅仅不排斥努力工作,还把这个作为优良品质。但是老美是资本主义,一切向钱看,努力加班又挣不到更合理的回报,我这么拼命干嘛?至于技术水平这些,就更是搞笑了。美国这垃圾代码的低水平码农多的是,我没见他们就加班了,反倒是高水平的程序员更能接受加班。至于法律规定,难道现在工会的大妈2000年的时候都还年轻,更富有激情?


user avatar   eric314 网友的相关建议: 
      

很大一部分原因是从业者平均年龄。美国的码农平均年龄远远高于中国。

中国的码农群体因为极速扩张,干活的人多数是刚毕业的二十多岁年轻人。而美国的码农群体比较稳定,很多40岁左右的人还在一线写码。甚至60多岁还在写码的也不少。

20多岁的人加加班也不会怎么样,尤其是被老板压榨习惯了的研究生,下班在家吃喝玩乐的时候还会有点虚度光阴的负罪感。但是40多岁的人有家庭有孩子,身体也不行了。即使想长期加班,大多数人也是做不到的。

实际上美国很多小公司也加班,尤其是startup。比如andrew ng的startup招人的时候要求愿意每周工作70个小时。还有马斯克的tesla和spacex都是著名的血汗工厂,996不是梦。

但是由于从业者平均年龄在那里,当公司员工越来越多的时候,员工平均年龄必然会越来越接近行业平均水平。而年纪大的员工真的加不动班,慢慢就大家都不加班了。

所以中国码农的未来还是乐观的,就靠诸位再熬十年,然后自己去争取了。当然还有一种可能是中国码农数量继续指数增长,十年后诸位媳妇熬成婆,继续带着年轻人加班。。。


user avatar   s.invalid 网友的相关建议: 
      

嗯,被经理举报了:


现在我切换到表扬模式。


是的,他们效率更高。


但是,国内程序员不可能通过提高效率减少加班和压力。因为这事的决定权不在你而在公司。


之前“开发和产品经理因为识别手机外壳颜色而打架”的传闻之所以能引起广泛共鸣,就是因为这类事实在太普遍了,太多人感同身受。


因为中高层聪明太聪明了。聪明绝顶、英明神武、别具慧眼、大巧若拙、福慧双修、绝圣弃智、兰芷蕙心、七行俱下、上智下愚、秀外慧中、足智多谋、聪明绝世、聪明睿智、聪明正直、精明能干、才清智高——人家喜欢听好话,咱得多说。尤其像这个水平的,起码值一千个关于聪明的形容词,对吧


可惜俺才疏学浅,实在凑不够数。只能列出八百个——不信您数数,足斤足两,一个不少!

啊?别看评论区。那都是不识数的。数到八百太难了,也就您这么聪明的能数清。不信您点点,八百!少一个俺再赔你一千个!


怎么样?满意了吧?

满意了我们继续。


所以,当你花大力气设计了一个精简高效的架构,把一个很难的问题干净漂亮解决掉时,绝不会有人击节赞叹——恰恰相反,他们觉得你捣鼓了个把月才产出几百行代码,反而会犯嘀咕:这人是磨洋工呢,还是不会?

你面向搜索引擎编程,乱七八糟拷一大堆东西到代码里,用到用不到都留着,KPI表现反而会特别亮眼。

一天几千行代码当然亮眼。

一群外行,怎么会知道这几千行里面就两行有效呢。


类似的,你兢兢业业,一个bug都不让出,人家就把你忘了;反之,你大大咧咧,一个功能你能写出800个bug——经理看起来就很忙很努力,因为他得不停的和你交流;你也很忙很努力,不停跑经理那里讨论问题:全公司你最忙你经理最敬业,不奖励你俩还有天理吗?!


你看,你好我好大家好,身为聪明人,你为什么不多写点bug呢。


当然了,这是极端情况。大多数公司还是没这么极端的——他们的中高层还不是那种聪明绝顶、英明神武、别具慧眼、大巧若拙、福慧双修、绝圣弃智、兰芷蕙心、七行俱下、上智下愚、秀外慧中、足智多谋、聪明绝世、聪明睿智、聪明正直、精明能干、才清智高的


即便如此,他们中的绝大多数——包括多数程序员——仍然不懂软件工程。

他们并不知道,或者说并没有想过,今天你写的每一行代码,都会是明天的新代码的地基。

即使你知道,也没办法让中高层明白。


如果你今天写的太过随意,明天就很难在这个基础上扩展它;如果你着急完成任务,今天不先把昨天的设计缺陷修改掉,而是想一个办法绕开……那么明天你就不得不绕着圈子躲开更多问题。

越往后,就越难改;越难改,就越容易出bug。


但是,如果你想改昨天的代码,你就得先解决前天的问题;想解决前天的问题,大前天乃至大半年前的设计缺陷你就得逐一解决掉。然后,这大半年里,你就完不成任何新提的需求。


反正至多做三两年我就要换工作了。随他去吧,完成眼前的工作要紧。


因此,为了急功近利的眼前效率,中国程序员的长远效率自然变得极低——越往后越低。


我曾经接过一个任务。


因为高层设计的严重问题,我们不得不在网络通信层更新用户登录状态(稍微懂点的都知道这需求有多奇葩:打个比方的话,这就好像让发动机制造商在活塞上做一个阀门以便随时泄压一样怪异。原因是我们的整车商忘了装启动机也没有离合器,所以需要减轻发动机阻力方便人家把车推起来)。


项目经理不懂。他觉得一条SQL语句也就是0.0x秒的事,我们的流程耽误1秒问题应该不大,所以就答应了。

我说每个用户都可能卡这么0.0x秒,人多了咱这模块吞吐量就没法看了。这个咱不能接。真要接也行,得改成多线程架构,得多安排时间。


经理说没事,直接加就行。做出事了他们负责就是(言外之意,一旦接了这个,将来我们自己的锅也有办法拉他们一起来背)。


既然都这么说了,我就动手做。

做完,内部测试没有任何问题;但一上线,整个系统死了。

原因是,那个库负荷特别大,一条数据库更新语句能卡几秒甚至几十秒。将来人多了还会更卡。

经理说,算了,你改多线程吧。


我思考了三天,决定不动我们这边的架构;而是设计个thread_call接口。任何传给thread_call的函数都会在另外的线程里执行——为了避免读写到调用函数的局部变量、然后在线程执行时调用函数已退出,thread_call内部会自动申请内存,把转交给工作函数的字符串等通过指针引用的参数统统复制过去;当线程执行结束,函数返回值也会保存在某地等待查询(超时或查询后自动删除),同时释放用到的资源。


为了实现这个,需要一个全局单例类负责管理线程、及时清理用到的资源;同时最好有一个线程池和一个内存池,免得频繁申请/释放。不然长时间运行下去,把内存弄的千疮百孔,程序就更容易出问题了。

内存池我已经写过一个泛型版本,直接拿来用就行。剩下的线程池、资源自动申请/释放(基于RAII和泛型,不支持原始指针因为无法确认空间大小、也无法确保复制成功,玩过泛型的都懂),加起来一百来行代码解决。最终代码量300多点,其中一大半是注释。

这个东西轻松的一次编译通过;然后挺过了各种测试,没发现任何问题。


这东西差不多相当于给C做了个简易协程框架(当时协程概念还没流行起来,不然我就把yield也实现进去了),今后遇到任何类似的“需要并行工作、但又不涉及数据竞争”的需求,直接写个处理函数然后丢给thread_call执行就好。

你看,如果程序都照这样写,是不是就会越写越快?

因为你昨天写的东西,今天可以拿来就用。写的越多,积累越多,实现新功能时需要重新实现的东西就越少,效率自然越高。



但是这个东西让项目经理作了难。

这是因为,如果算KPI的话,等于我花一周写了300行代码;然后又测了一周……两周300行代码的产出,这实在太少了。


反观别人,一个用户注册,人家一个字段一个字段一个字节一个字节的用代码检查、复制,轻轻松松搞出来500行。很水的几个功能轻松灌水上万行代码,然后部门KPI也有了,个人重要性也体现了——而且修不完的bug:你看,离了我们这个部门,公司真不能过啊!


可我傻乎乎的300行代码搞出这么复杂个东西,竟然还测不出bug……项目经理是知道这里面功能多,但上面觉得你忽悠他。300行代码你还能吹出花来不成?

而且,既然没有bug,以后人家还需要你这个部门吗?问题都解决了,我们这些人……还有继续雇佣的必要吗?


总之,他希望以后再写程序,尽量写长一些……而且,为什么要复用呢?其实每一个类似的需求,都是可以给他整个几万行代码出来的嘛。


没错。人家的预期是:这是个挺复杂挺难的任务,你应该加班加点忙上几个星期,提交几千上万行代码,到时部门KPI有了个人业绩也好看——将来每个类似任务都应照此办理。

而我呢,轻轻松松300行代码,杜绝了类似任务的出现——什么都不用管,加一行thread_call,全都妥妥贴贴了。

一个任务对应一行,这KPI还能看吗?


你看,面向目标的不同,面向KPI编码就必然使得实现臃肿、问题频发、每天996过劳死……但做起来其实轻松愉快,因为你完全可以磨上仨月洋工,然后吹嘘“多线程有多难”;然后还能让高层不断找你、解决诸如野指针、数据脏读脏写、死锁、内存碎片导致长时间运行后大块内存分配失败等等等等疑难问题——既让你显得重要,又能轻轻松松“骗”来大量的KPI,最后还不需要去学鬼画符一样、难的不要不要的泛型技术……


而面向问题编码呢,借助泛型,自动识别、复制函数参数(它们可能来自调用者的栈,随时可能失效),再加上用池来加速资源回收/分配效率、提前杜绝内存碎片问题——这完全是个简单轻松解决的小模块。而且只需解决一次,我们自己的“类协程库”都出来了,以后写程序会越来越快、越来越好:你甭管我怎么做完的、耗了多少时间,功能点我给你实现了、上线后bug free,是不是对双方都有利?


但是,后者在这个公司行不通。

代码量少没KPI你气不气?

bug写的少没人找你显得你不重要,倒霉不倒霉?

将来项目失败抓人背锅时,别人说我天天加班996007态度端正;而你呢,955一分钟班不加,这态度是不是很能说明问题?


从上到下都不懂你能怎么的?


别说这家公司的管理者了,他们的技术人员自己都不懂。我两个关系比较好的同事,还真以为我们是公司里干活最少、最不重要的几个呢。

因为别人忙忙碌碌总有干不完的活、修不完的bug,高层中层领导天天围着转,求爷爷告奶奶但任务就是做不完,重要的不得了。而我们几个公司公认的技术专家呢,每天到时间就走;座位上冷冷清清,从无领导过问;经常上班时间闲极无聊于是借“学新技术”的名义逛论坛……

时间久了,他们自己都心虚:为啥别人总是有干不完的活、见不完的领导?为什么我们经常整周整周的没有任务、闲坐着发呆?人家是不是比我们干的多、任务难啊?不对啊,每次分配任务,分给我们的,都是别人接不了、不敢接的啊?


直到有一天,午饭后散步聊天打屁谈到这事,我才觉得不对,提议回去看看工作日志/提交记录之类东西。

那天我们大概照例聊到了下午三点吧——没错,因为事少,因为要都要不来工作,一个月至多也就忙一周,955都大块大块的空闲时间。别说加班了,平常上班我们都经常偷空出去散步。

悠哉游哉回到公司之后,我们就去翻看所有同事的提交记录和bug报告数据。这才惊讶的发现,我们比其他同事完成的功能点数量高出5~10倍、难度也普遍更高,bug率却近乎为0——别人一个功能点能有密密麻麻几十个bug,而且上线几年bug都抓不完;而在我们看来,这些都是压根就不应该发生的低级错误,而且我们提交的代码的确不包含这类错误。

所以,别人一年只做三四个功能点,每个功能点都要出十几、几十个bug;而我们呢,一年起码几十个功能点,加起来不过3~5个bug(我更是一年只有1个bug,而且bug原因还是需求没写清:某个字段让返回字符串,我按照C惯例后面加了个‘’;对方用的java,不能识别这个)。


问题是,“我们接的任务最多最难”,这事我们项目经理知道,中高层领导不知道。

中高层领导知道什么呢?他们只知道,这个任务总是在别人那里卡住;他们只知道,系统出了问题,该找的人肯定不是我们几个(从不出bug自然不需要找)——所以你猜,在他们心里,谁更重要?


于是我决定辞职。

这是我第一次进这种公司,也是最后一次。

因为这种公司完全是“逆淘汰”。水平越差越吊儿郎当越吃香,水平越高越兢兢业业越被边缘化。


user avatar   zhang-xu-guang-21 网友的相关建议: 
      

恰恰相反。

国内程序员,单打独斗的能力绝对一流,不敢说远超越国外,但至少不逊色。

但问题是,为什么这些一流的程序员和在一起,同样的产出,却要比别人工作更长时间,付出更多辛劳呢?

我们不禁要问,我们多付出的时间和辛劳都去了哪里呢?

想到这,我要分享一个故事,就是最近,疫情期间,我朋友公司的故事。

朋友做Java后端开发,受疫情影响,公司业务大跌。

要说,这种情况下,大家应该无事可做才对,但和朋友聊天,情况恰恰相反,朋友的原话是:

“忙疯了!原来加班到10点,现在则是12点,活根本干不完!”

听罢,我回了句“呵呵”,然后冷冷的说:

“瞎忙,行为艺术而已!”

沉默了一会,朋友回复说:

“太对了,就是瞎忙!”

“因为没有业务,怕被裁员,大家就越拼命加班,好显得自己很忙,很重要的样子。”

“其实,公司都没业务了,做的东西不过是闭门造车,根本就是伪需求!”

“但这不重要,要的是态度,是表现!”

朋友的这段话,真真道出了程序员整日忙碌、整日辛苦的天机。而这个天机恰好在疫情期间被戏剧性的放大了,但本质和原来并没有区别。

不是我们的工作需要辛苦,而是我们需要做出辛苦的样子

因此,朋友,如果你是一名程序员,你可曾质疑过自己,我们每日开发的东西,有那些是用户真正的需求?又有那些不过是些“表演艺术”?

也许,经过思考后,你会发现,我们的忙碌根本经不起审视,它一直很“荒谬”!

荒谬的领导,荒谬的需求,荒谬的任务,荒谬的KPI,荒谬的…

最后,导致的是荒谬的忙碌!


user avatar   li-xiao-bai-sv 网友的相关建议: 
      

这个题目能出书了。两边的IT的企业五花八门,形形色色的都有。大部分答案都是抱着批判的态度。主要谈谈自己的看法吧。毕竟我也只在一家美国公司工作过,国内的工作经验为0,不足的地方希望指正。

社会形态的差异

社会形态的差异肯定是原因之一。美国是一个很讲究Work Life Balance(工作生活平衡)的国家,人权大于公司的利益。所以如果企业如果过分“压榨员工”,是肯定会被劳工部告的。大公司只要有任何风吹草动,都可能惹上负面新闻。

比如,

告的就是Google付给女性员工的工资低。当然男性员工也在告Google。

举这个例子只是说,在我们眼里,美国是一个非常“事儿逼”的国家。两国人民从小接受的教育非常不一样,美国人偏理想主义,而中国人比较现实主义。

美国的企业非常怕事,哪怕他们没错,他们都会花重金摆平这件事情。比如前段时间的UA事件,Starbucks事件,都很好的说明了美国企业有多怕事。所以过度加班这种高压红线根本不敢碰。作为一个企业CEO,该破产就破产。美国的企业是非常好“碰瓷”的,告自己雇主的事情是在太多了。在我们眼里,屁大的事情他们都能够上法庭。公司即使没有错,也会花钱摆平。不然一帮好事的媒体整天在显眼的地方报道这些新闻,非常影响企业的声誉。

企业是趋于利益的。而且有时候确实需要加班来满足需求。所以很多公司喜欢雇佣亚洲人和墨西哥人,因为这两种人即使加班也不会抱怨。很多美国公司用各种非美国人的Contractor和ICC也是这个道理。

当然美国某些公司也是加班很严重的,比如四大。但是(听说)美国的四大好像没国内累。只是相对而言。

美国人看重家庭大于工作,家庭比工作重要。所以那种牺牲自我,保全公司利益的行为是很少会发生的。

当然中国也不是最差的啦。日本加班比我们多多了。这边加班太多了。日本人讲究的是为了工作可以抛弃一切。要论程序员的幸福度:美国 > 中国 >>> 日本。

我没有见过美国码农的公会。也没见过罢工。。。

公会发达的是欧洲。法国是公会的巅峰。啥屁事,都罢工,而且完全不管后果。你能想象地铁和大巴司机罢工吗?整个城市会陷入大混乱。有一次考试,我辛辛苦苦背完了所有的概念,结果地铁罢工,考试取消。。。导致我第二周得继续再背一遍。

封装和抽象

大学经常学的Encapsulation(封装)也是主要原因之一!OOP编程里面的封装其实非常重要。美国这边的公司非常注重Encapsulation。最简单的例子就是,用web framework去写server比徒手用原生java sockets去写要容易多了。

很多公司都喜欢Everything As Service (把所有技术都封装成服务),然后把这些Service做成Platform(平台),然后模块化。比如在Google,所有的Infrastructure(架构)都被封装成Service了,使用起来只要关心业务逻辑和资源分配就行,非常省时间。在新的Server里面加Feature也只需要加一个加一个新的模块就行。相比而言,如果花大量时间去调各种开源软件的配置,会花大量的时间。Google的做Infra时间比Facebook长,Infra种类多余FB,这也是“Google比Facebook轻松一点的一个原因”。

每次开发产品,我都有种搭积木的感觉。从web framework,到pipeline framework,到monitoring和resource,基本都是非常直观的事情。偶尔有问题,一个邮件就能解决。

平心而论,硅谷的Infrastructure比国内好太多了,每个公司都有专门的组去认真研发新的Infra。所以硅谷的公司,只要不是太小,都多多少少有一些开源的项目。

凡是做Public Cloud Computing的公司,封装都不会太差。国内现在很多公司也开始做了。因为Cloud Computing讲究就是把自己Infra打包给外面的程序员使用,同样的功能,接口越简单越好。如果外面的人都可以很好的使用,自己人就更容易了。

中国企业的迭代速度快

硅谷技术强,但是产品迭代速度比国内差太远了。所以,Uber,Airbnb,Linkedin在国内的市场表现都不怎么好。很多技术壁垒不高的产品,比的就是用迭代速度去占领市场。技术壁垒高的产品,不是迭代速度能解决的。

中国的IT公司对用户的需求感知的特别快,他们清楚的知道用户需要什么。国内公司对竞争对手的动作也特别敏感(抄的特别快)。你会发现, 阿里,京东比Amazon的功能多多去了。饿了吗,美团也比Ubereats功能多多了。王者荣耀的新东西出的实在太快了。

Google的大佬很多都是工程师出生,重技术,轻产品。而硅谷大部分有特色的新型互联网企业早期都有大量的前Google员工,所以这也是硅谷的一个特色之一。

所以中国的IT和硅谷其实是两种IT。迭代速度和发现新的Use Case是中国企业的强项。为了保持这个优势,唯一的方式就是加班了。


user avatar   bei-ji-xiong-43-25 网友的相关建议: 
      

因为虽然大陆科技公司崛起,利润爆表,市值超越其他公司,但是

整个亚洲文化都不是以人为本,而是以老板为本,以领导为本,以。。。为本。

这样,底层工程师自然就不是“人”了。这很好理解。公司不会show care;也不会做为底层程序员提供各种需要基础建设才能实现的福利。例如work from home,产假,股票兑现时间表,甚至是内部的透明公平无压力的讨论环境。

国家层面的话,程序员劳动法必须出台了,否则正如英国蒸汽机诞生之时,纺织工一周7天每天除了吃饭拉屎就是上班的年代,说不定真的会席卷中华大地。

文化层面的话,所有人一出生就是为了追求成功,为了成功不惜压榨他人,乃至最终压榨自己。高考的残忍和残酷,站在亚洲之外的国家来看,是让人瞠目结舌的。高考制度,和现在你去看古时候游街示众,菜市场砍头,女人裹小脚,或者甚至是20个人一起上旱厕,100个男人在公共澡堂互相搓澡一样,是对人基本尊严的践踏,基本自由的剥夺。让全省的学生一起比赛,不把他们当人,泯灭他们的个性,压制他们的思维,虽然学霸们得到了更好的资源,但99%普通人就从此沦为废物、废品,而那1%的成功学霸因此更爱惜自己的羽毛,成为精致的利己主义者,就算学术登峰造极当了院士,也会走上歪门邪道搞拉帮结派内幕交易,毫无一身正气。这一切,本身就是汉民族之殇。

这样的文化选拔制度下产生的人才,以及他们的老板,会如何看这个世界?会如何看自己的世界观?

他们的眼中就只有加班,工作,买房,赚钱和生孩子了。而在美国,很多程序员一辈子不加班不是买房不生孩子,不晋升,甚至很多社会劳动力一辈子就不写代码,去美国中部开uber,拉网线,吃米粉。

其实大家都是在valley beyond的伊甸虚拟世界里,争什么高下。这种争夺文化,是亚洲特产,泯灭人性。

而一个泯灭人性的文化,创造出一系列泯灭人性的公司,毫不意外。




        

相关话题

  美国是不是永远不会担心人口问题? 
  都说中国的程序员是青春饭,那产品经理呢? 
  如何看待宾大教授飞机上算数学方程被当做恐怖分子导致飞机延误? 
  如何看待2020年7月6日美国留学生和交换生项目(SEVP)针对F-1签证学生修改临时豁免政策? 
  如何看待6月15日美国FDA正式撤销紧急使用氯喹及羟氯喹治疗新冠的授权? 
  在美国西进运动中,美国当局是否对印第安人进行过屠杀?该如何评价?如何评价印第安人? 
  现在作为优质程序员的你,大二的时候都在做些什么? 
  特朗普称拜登是史上最差总统,给其打了 F 分,如何看待特朗普对拜登的评价? 
  妈妈特别想让我改名字怎么办? 
  程序员写代码不应该是一件很酷的事情吗?为什么在国内被打上无聊和呆板的标签? 

前一个讨论
为什么癌症往往一发现就是晚期?
下一个讨论
如果美国禁用 Tensorflow 和 Pytorch 对中国的人工智能有何影响?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利