最近认识了一个新朋友,他也是一名程序员,在国内读了本科之后,就申请了美国一个还算不错的中等大学读研究生,读完研究生以后就留在了美国找工作。

大概是在三四年前那个时候谷歌扩招的比较厉害,所以他也能够如愿所偿的进入了谷歌工作了几年之后考虑回国。

我跟他深入聊了一下,总结了国内外的程序员的一些相同点和不同点,今天总结出来分享给大家。

中美程序员工作压力对比

首先他说在谷歌亚马逊微软这些科技公司,很多基础设施都已经非常规范了。而且对他们来说分工是非常明确的,比如做业务层的同学完全都不用管DB是怎么运行的,也不用管下面的RPC框架是怎么实现的,出了问题都能够快速找到人来处理。

所以每个同学都在自己的业务那个板块非常的熟悉,完全没有我们国内需要的多面手的情况。与此情况非常相反,在国内基本上没有特别清晰的分工,说好听点叫做向前一步,说难听点是什么都要干。

对于美国的互联网公司来说,他们在项目的规划上往往会更加清晰,更加的从容。比如他们有一个功能要上线,可能讨论就花了一两个月最终才能定下来,但在国内可能两天就搞定了,所以国外决策效率低也是一个事实。

所以对美国的互联网科技公司来说,他们会把更多的时间用在讨论,调研和思考论证上。他们宁愿做的慢一点,但是也要做的稍微好一点。

这点和国内的互联网公司就区别非常的大,在我们的这些互联网大厂,我们往往要求的是快。虽然我们也都在强调质量,但实际上我们的质量远远是比不上各种其他国际互联网大厂的。

这个大家应该心知肚明,快和质量一般来说是不可兼得的。既保证高质量角度,又要倒排,这是不现实的。

另外,重要的因素就是我们国内对于所有项目和任务的工期是非常紧的,所以我们大部分的代码都是为了快速堆叠去支持功能,根本没有时间精雕细琢,代码能跑就行,根本不会多研究如何写好代码。

我们互联网行业人经常调侃前辈的代码都是屎山,我们在13雕花。这虽然是一句玩笑言语,但我觉得这也是当下国内程序员行业的客观现状。

在这种“快就是一切”的模式下,我们虽然做出了大量的产品,同样的我们也写出了大量的垃圾代码。在经济野蛮增长期的时候,我们解决问题的速度能够比我们产生问题的速度快多了。但是到了经济下行的时候,这些问题就全部暴露出来了,历史包袱很重。

另外还有一点,在美国互联网工资虽然是比较高的,但是他们其他的行业也并不见得低了多少,所以不会涌入大量的程序员来挤占生存空间。在国内就不一样,除了体制内的工资稳定一点,其他行业基本上都是苦活累活。

而互联网由于规模效应使得这些程序员赚到了盆满钵满,进而导致了更多家庭背景比较一般的程序员挤了进来,使得供远远大于求。既需要体力又需要智商的行业里面,那么一批批普通的程序员就被牺牲掉了。

这群人不仅非常累,职业天花板还很低,赚得还并不是特别多,完全没有投入和产出比,就是跟风图个热闹。

美国程序员为什么没有35岁危机

实际上35岁程序员的危机是中国的特色现象。最近为了研究这个话题,我去搜索一下国外的程序员的一些论坛,但基本上都没有找到关于35岁危机的问题。

翻看一下国内的互联网铺天盖地的信息都是程序员,35岁的危机甚至蔓延到了其他的行业,比如保安。

所以非常神奇的是我朋友说就以谷歌而言,没有任何关于年龄方面的危机。实际上从另外一方面来说,年龄在西方的发达国家本身就是一个隐私,甚至在面试的时候根本不会提到年龄,问到年龄可能就是一种歧视,可以告上法庭的。

而且亚洲人本身就显得年轻,从表面上你可能都看不出来年龄到底是大是小。甚至他说他有一个朋友40多岁了,然后在美国读了一个二流的大学,以应届生的身份去应聘了微软,居然也成功了。

当然我们达成了一致的因素,除了西方在人权这块比较敏感之外,还有一个很重要的问题就是西方人本来就不多,所以年龄危机自然也就没有那么大了。

而且据他所说,只要在公司里面能够有继续的产出,并且随着年纪越来越大,经验越来越丰富,反而还能给公司提供更大的价值。虽然年纪越来越大,编码的效率可能确实不会像年轻人那么高,但是经验和洞察力在他们的公司一直会被反复运用。

而与此相反的情况,在中国35岁这个话题被预演愈烈,简直变成了一种风景线。甚至很多人在这种背景下反而还把35岁危机当成一个非常正确的价值观,甚至把这个风气也带到了不同其他的行业。

为什么美国有大量的创新

这个问题一直是我比较疑惑的,大家也可以看到我之前有很多的文章探讨过中美的程序员的创造力的区别。

确实我们已经得出了一些比较综合的结论,比如说中美的创新文化不一样,比如说美国的程序员实际上是集合了全球顶尖的人才。

但今天和我这位朋友聊,我又得到了一个新的输入,他说实际上在美国的程序员基本上来自三类,第一类是白人,第二类是印度人,第三类就是中国人。

实际上在美国走程序员行业的人大部分白人并不是因为生活所迫,而他们主要就从小就有这样的兴趣去做计算机,去玩计算机,搞一些新东西,这种是真正的极客文化。

所以这群人他们在受过良好的教育,又有技术热情,又有时间的情况下,他们才能够做出非常好的东西。甚至很多偏底层类的工具,完全是他们靠自己的兴趣做出来的,根本和自己的公司主业完全无关。

我朋友举了个例子,他说他有好几个白人同事,虽然下班的时候就5点6点,但是他们回家以后搞到半夜1点2点还在提交代码,就是想做成自己有兴趣的东西。

这就是美国程序员和中国以及印度程序员最大的区别。大部分中国人从事程序员并不是因为喜欢和热爱,而单纯的只是薪资高。有兴趣和没有兴趣去做事,拉到十年的维度,结果可想而知。

所以国内的行业现状来说,你没有兴趣和热情去做一件事情,那么大部分人就是敷衍了事,能够完成本质工作就是最高要求,最多打个80分,没人会去追求90分。

印度人为什么能够上位

我们我们特别聊到了关于印度人和华人为什么都在美国当程序员,但是有大量的印度人走上了最高层的岗位。比如微软和谷歌的现任总裁全部都是印度人,这就不得不让我们对比和思考,同样是程序员,同样都是亚洲人,但为什么印度人在美国就能走的这么远?

我朋友也提到了,这里面有很重要的一个因素就是文化和背景。他说在美国互联网行业的印度程序员往往真的非常的自大,或者换句话来说就是真的是盲目自信,这当然是一种贬义的,站在褒义的角度来看,他们夸夸而谈,非常的自信。甚至只做了一点任务之后就把所有的东西大包大揽。

另外由于印度本身他们的一些白人或者能够去美国的印度程序员往往都有非常良好的英文背景,所以在沟通这一块和西方自然是无缝连接。

所以在种族自信天分加上语言上的优势,再加上欧美本来就比较推崇多元文化,所以印度人在这一块吃得开也非常合理。

当然这里面确实我们要注意一下,并不是说这些印度人就只靠包装和吹牛逼就能够上位,这实实在在的误解。

就聪明度而言,我和朋友也达成了一致。人和人的聪明度和种族其实没任何关系也就是说在白人里面也有聪明的也有笨的,在印度人里面也有绝顶聪明的,也有笨驴一样的。这个放到东亚,南亚实际上是一样的。

也就是聪明度的区别是人和人的本质区别,和肤色和种族都没什么太大的关系。

所以能够在美国顶级互联网公司纵横百合的这些印度人实际上本身就是他们国家最聪明的一批人之一。这一群在硅谷纵横百合的顶尖级人才和美国最聪明的人以及最聪明的中国人没什么区别。

当然,印度人整体来说,阳光热情,喜欢提拔自己人,善于包装,带口音的流利英语,这是好的一面。不好的就是夸夸其谈,有时候没有责任心,但是没办法,欧美就吃这种套路。

华人为什么没办法上位

说到了经常能有能上位的印度人,那就不得不提中国人。或者放大一些,我们说说华人。实际上说华人没有在美国互联网科技公司占据高位是不对的,比如黄仁勋,就是典型的华人公司的代表,旗下的英伟达目前市值两万亿,力压谷歌微软。

但是和印度人相比,整体上比例是小了很多的,而且如果单论中国人的话,那在美国互联网科技公司的天花板就很低了。

比如我之前和钉钉音视频总监聊到,他是来自思科的Director,相当于一个大部门的总监,他也说,中国人基本上在美国科技公司基本上Director就到顶了。

一方面就是上面提到的,没有中国人担任高层角色,一般就不会提拔中国人,所以形成了一个循环。而印度人上位后就拼命提拔印度人,所以导致这几个大公司里,印度人占据了很重要的角色。

另外一方面,中国人的性格,本身就比较内敛,不善于表达,而且也确实不喜欢拉帮结派,内斗严重。因此没有印度人这样的抱团团结,所以想上高位就难上加难。

所以,印度人、华人两个种族的程序员在美国科技公司占据了一定的数量,也是这两个民族的人无比内卷。我之前提过,有同事出差去美国的tiktok,白人基本上6点下班,而印度人和华人则习惯于卷到晚上九点十点。我同事作为出差的中国人,每天几乎直接干到了凌晨两点。

美国大厂程序员招聘标准

再说说美国大厂程序员招聘的标准,这个就包括了诸如谷歌,微软和亚马逊。实际上公认的互联网的用人标准是谷歌提出来的。他们的用人标准就是用优秀的人,用聪明的人。体现在具体的操作原则上他们认为聪明度和解决问题是非常重要的,而实际上很多知识是可以后面学会的。

那么落到具体的招聘标准上面来看,整个欧美顶级的互联网公司基本上都采用了算法的招聘模式。最顶级的互联网公司,你不用准备乱七八糟的一些八股文基础知识,项目经验,你只要把算法题能够做好,基本上就稳如老狗了。

这和国内完全不同,国内对于项目经验特别的看重,对于基础知识也特别的看重。就比如我们在面试的时候,虽然有算法加持,但实际上面试的关键要素也包括了实习经验,项目经验和一些最基本的基础知识。

说的好听点叫基础知识,说的难听点可能就是八股文,靠一些死记硬背。未来工作完全不可能用到的知识。

那为什么会考算法呢?难道能做算法题就能够代表自己解决问题的能力了吗?实际上算法题当然在一定程度上是比较灵活的,并不需要死记硬背,所以在很多层面上面,你能通过算法来解决一个问题,那么你实际上是有自己独立的思考能力的。

这是我朋友给出的回复,当然我并不是非常赞同,在我的视角看来,我算法题照样能死记硬背,照样能刷题。所以你并不能说我把所有的算法题都能解出来,我就具备了解决问题的能力,我觉得这个是完全不能画等号的。

而在我看来,实际上算法的本质其实就是数学,而数学考察的就是人的聪明度。我如果说的再直接一点,那么算法实际上考的就是智商。

大家应该可以知道数学这个东西是有天分的,并不是靠勤奋,你就能够解决数学问题。比如很多公司有些聪明的选手看一眼就明白了,可是换做另外一批人来说,他可能一辈子都不明白那个公司代表的到底是什么。

所以对于西方互联网公司里面的这种面试标准,我认为实际上他们都考核的就是聪明度,他们想通过算法把最聪明的一批人筛选出来。聪明人,那还要不要考项目经验,还要不要考一些知识呢?那我觉得就非常明了了,对于他们来说,这些都是可以培养,可以快速学会的,并没有那么难,难的是智商差距。

那这个方法为什么国内不学呢?说白了,国内其实不需要这么多高智商的程序员,而我们需要的是能够快速干活的程序员,所以这个是为什么我们更加看重基础知识和项目经验。有项目经验,有实习经验,意味着你可能上手两个星期就能马上干活,至于干到80分还是100分,那倒不是那么重要,60分就行。

这就是在用人上面的一个非常大的差别。

当然他们的招聘标准要招聪明人,并不代表他们愿意一直培养聪明人,实际上在这些大厂的工作和国内相差并不是很大,也有大量做应用层,大量做底层,大量写页面的同学,他们也在分工方面也做的特别的细致。

所以除非有自己有钻研的精神,否则你想通过业务来发展来使自己成长的更快,也几乎是不大可能了。

比如你要是负责微软一个技术支持类的产品,那么你一辈子大概率也就是在解决一些最没有技术含量的答疑工作。只不过他们的工作整体会更轻松一点,会更看重长远的规划,就算裁员了,赔偿也非常的到位。

总结

总结一下,中美两国的互联网科技公司的文化、用人观念相差很大,也导致了创新文化的区别。同样是亚洲的印度人和中国人,在美国因为语言和自身文化的原因,发展也截然不同。

终归看来,确实有明显的差异,但是国内的互联网科技公司发展本身就慢美国很多,有差距是正常的,也有很多优势是中国互联网独有的,差距也会慢慢被追平。

关注公众号:ali老蒋