百相网

搜索
楼主: 力总把头

目前中国程序员和美国程序员的差距在哪里?

[复制链接]

1

主题

3

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-2-1 08:29:39 | 显示全部楼层
飘在美国的美帝原装程序员(因为我的计算机是在美国学的,在国内时没学过任何)强答一波:

第一个是语言问题,我说的是英语。中国程序员在单挑全世界,因为太多程序员看不懂英文。我发现很多好的小教程和demo都是中东人或是东欧、俄罗斯人贡献的——用英文,所以美国程序员可以无损无障碍接受拿来就用,中国程序员大多数就看不懂。这个缺点很致命在于,中国程序员获取信息的壁垒,是要高得多的,即使Google开放了又如何,大部分人还是看不懂。所以中国人的技术其实是相当厉害的,因为信息的接受要落后于所有英语国家,包括印度,但作出的成果却是世界第二的。

第二个是职场文化问题。中国官本位,认为管理高于技术,美帝其实也这么认为,但是技术人员地位高很多。美国的很多资深程序员有机会也不愿意做管理,认为管理更难、更累、风险更大、还不容易跳槽,收入却没有本质上的提升,所以其实是把人才留在技术方向。

第三个是管理水平。中国人的技术不弱于美国,但是管理差得多。主要是文化和历史原因比如接触西方太晚。我在微软时跟国内的外包公司打过交道,带他们干活,发现工程师还是很可以的,至少性价比是相当高的,但是管理混乱,管理人员大多数油滑、又贪功,缺少真正的责任感。美国我见到的各公司的管理阶层(除部分在微软外)都是精英,对各方面的把握都非常精准。所以,公司不会因为过大层次过多而降低效率。

第四个是社会差距。美国是技术的原产地,因此技术和新的模式是天然和社会状态匹配的——比如诚信水平和隐私保护、立法等。所以,Google成为了技术创新公司,百度成了医药行业公司。这里不是贬低百度,而是说假设东亚有个说汉语的美国,那么我相信百度也会成长为Google的。Google不是不想做医疗行业(美国最赚钱最黑的行业),是有人不允许啊。我记得读过案例,Google卖过药,结果被罚了几十亿,老实了。

其实大家总提的薪水水平差得倒没那么大。不要算绝对值,要综合人力成本来看,美国的程序员工资并不过分。比如扫地的年薪怎么也有4万美元,那么FB、Google的毕业生起薪也不过是5个扫地的。国内扫地的假设4000人民币一个月,BAT起薪2万也就相当于5个扫地的。这个例子数字不准,但大概意思是说人力其实是差不多的。

当然,不要问我为什么不少博士后赚得跟扫地的一样多。我也不懂,可能因为他们产生的垃圾paper还污染科研环境吧。

最后的最后,我觉得国籍和原产地倒不关键。我经历的这些公司,感觉人的水平还是跟公司有关,跟国籍和出生地关系不大。美帝的程序员移民数目多得发指,各种小国都来了人不说,而且越是这些小国的,甚至很多shithole country来的,技术往往还越精湛。
回复

使用道具 举报

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-2-1 08:30:21 | 显示全部楼层
没在国内工作过,所以大部分是针对在美国的华人和美国本土工程师的差距.
1. 沟通能力:
在这点上差距非常明显. 很多人说是英语问题, 但我觉得深层次的是思维方式问题. 和美国工程交流的时候, 你能很清晰的理解他的问题在哪里, 他解决问题的切入点和具体思路. 在他们阐述问题的时候背景信息给得相当全面, 所以理解他们的问题很容易. 而当你阐述思路的时候, 他们也会非常用心的去理解你的思路, 帮你解决问题. 可华人这方面基本不行, 很多时候讲一个问题根本不考虑别人的感受, 背景知识没给全, 就直接开始讲了,搞得很多人云里来雾里去, 根本不知道他在讲什么. 有时候也不愿意理解别人的想法, 就顾着自己讲.
2. 解决问题能力
我们国家, 由于教育方式和美国不同, 所以出现了一个很有意思的现象. 如果给我们中国程序员, 规定好的方案, 我们普遍完成的非常好. 但如果没有具体方案, 完全是一个开放性课题, 很多时候华人工程师完全无法下手. 但美国程序员这方面能力相当了得, 他们的探索研究能力非常强, 经过一定时间的研究后, 他们能提出一套非常具体有效的方案然后一步一步去解决问题. 这也是我们和美国教育的差别,一个善于解决问题, 另一个善于发现探索问题.
3. 技术实力
这方面主要是对比国内程序员和美国程序员.我们工作初期的时候美国程序差距不大.但问题是5年以后开始出现变化了, 已经不止一次听人说所谓程序员吃青春饭这种理论了. 在一项技术上我们有多少人钻研10年以上的? 多数人工作个5-6年就开始琢磨转管理了. 虽然这5-6年我们代码上的时间,积累的经验可以说很多时候是高于美国程序员的. 但问题是之后我们就不干了, 而美国程序员10年以上经验的人有的是. 我以我们小组为例, 一个工作经验是30年, 从dos时代就开发debugger一直干到现在, 一个24年工作经验外加5年的博士研究经验, 还有两个从毕业到现在一直从事CLR diagnostic api的开发到现在基本都干了十几年了. 在国内我真的很难想象有这种团队. 记得stackover上统计过, 程序员的黄金年龄应该在40岁左右, 但我们国内40岁的时候有几个还愿意写程序呢.
4. 对技术的热爱和对工作的耐心
实话讲有多少人是热爱编程的呢, 很多人学习程序想得都是那个方向火容易赚钱. 什么技术火就学什么. 然后去所谓牛逼的公司, 干牛逼的事情, 然后拿着几十万的工资. 很多人工作没两年都跳了3-4次了. 我不能说这种是错误的, 毕竟大家都是混口饭吃. 但看看美国程序就会发现差距, 像我之前说的很多人专注某一个领域几十年. 我们现在都是想着自己开公司或者加入快要上市的公司, 然后上市了到达人生巅峰. 各种浮躁的风气盛行. 可美国很多程序员其实我自己感觉想法不多(当然也有可能和我接触的这些人有关), 他们想法很简单, 对于编程这种事情更多的是那种单纯的孩子似的热爱吧.
====================================================================
5. 对于好程序员的定位
这点是看了底下的评论想到的, 在美国(当然也有可能是我们组的标准), 对于一个好工程师的评价不单单是对系统了解的深入程度, 解决多么难得技术问题这么简单,  同时还有其他的一些要求, 一个是领导能力, 一个好的程序员不应该只是自己完成feature, 同时也要帮助或者指点其他组员克服技术上的难题. 另一个就是vision, 能够把握技术的发展方向, 根据这些把握产品的发展方向. 虽然这个有点类似PM, 但和PM的区别是一个只是根据市场和客户需求, 另一个是通过自己多年开发的开发经历进行判断. 我觉得比较好的例子就是我们组的.net native 和 reyujit项目, 或者是Facebook的php hack项目. 这些项目都是很多工程师的提出来的而不是PM. 还有就是交流协作能力这点我之前提过就不多说了. 而我们华人有时候对于好工程师的评价往往只是简单认为技术好, 对系统了解就是好程序员. 至于我说的这几点感觉并不是太在意. 所以一句话概括是我们华人认为你coding厉害, 你就厉害, 但老美有时候的想法是, 好的程序员并不是coding厉害那么简单.

============================================================
最后说明一点, 我只是针对我接触这些人的情况, 可能会和硅谷的情况有一些不同. 事实上我认为即便是整个西雅图氛围和硅谷的氛围都是不同的. 西雅图经历老的工程师是主力, 硅谷相对来讲更年轻化当然也浮躁一些.
回复

使用道具 举报

4

主题

8

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-2-1 08:31:10 | 显示全部楼层
差距在于是否:
敢于拒绝加班
敢于和老板表达自己的不同意见
敢于坚持自己的技术路线
敢于跳槽
回复

使用道具 举报

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-2-1 08:31:40 | 显示全部楼层
就是这种区别。

回复

使用道具 举报

0

主题

5

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-2-1 08:32:28 | 显示全部楼层
之前在国内当玛农,项目经理,现在在美国,当玛农。还当不到项目经理。叹气。
个人感觉,技术水平在同等水平公司,其实都差不多。毕竟人的智力都是差不多的。
接下来就以各种水平来对比分析下:
初级程序员:
中国:基本上什么都不会,什么都要教。
美国:因为大学对实践比较重视,而且计算机很火,学生基本上有基本的开发能力
总结:美国稍强
中级程序员:
中国:吃饭睡觉,混时间,或者想办法转管理,或则准备跳槽,花时间学习英语
美国:吃饭睡觉,混时间,担心自己被炒鱿鱼,职位被外包到印度或则中国,不学中文
总结:水平一样,美国收入高好几倍
高级程序员:
中国:数量较少,有自己的想法,想自己创业,基本不再学英语
美国:有自己对于技术的见解,如果在硅谷,就想创业,如果在别的州,就基本是继续不断研究技术,担心自己被炒鱿鱼,不学中文
总结:水平一样,美国收入高两三倍
技术大牛:
中国:国内机会太多,所以大牛们基本有机会就开始想自立门户,争当CEO,迎娶白富美。
美国:由于美国技术人员的工资很高,管人特别难,因为人权,自由,各种问题。很多人也就不愿意去尝试管理职位。因为工资高,所以创业的机会成本更高。创业的人比较少,又担心自己被炒,只有不断闷头学习新技术。
总结:水平一样,收入差不多,但美国大牛人数高好几倍
技术大神:
中国:神一样的人物,只有在神一样的传说里面。个人感觉几乎没有。nb黑客大神倒还是有的。
美国:因为从小到大,在美国,做为一个nerd(书呆子),就是不受欢迎的。不像国内,读书好,老师妹子都喜欢。美国的nerd就是生来不同,受尽各种冷眼,很难有妹子喜欢。一路走来,习惯了寂寞和独处,漫画,游戏,码代码成为了人生唯一的爱好和能做的事,能坚持下来,真的是对技术有很大热情。然后又因为美国各大公司对于神级技术人员的热捧,疯抢,要什么给什么,要多少钱,给多少钱。年薪基本都是百万美金以上。而且公司也尽量不让大神们参与公司管理。久而久之,美国的技术大神,在研发新技术的精神和技术水平上都碾压国内的技术大神。
个人愚见,有什么不同想法,都可以来一起探讨。
回复

使用道具 举报

1

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2023-2-1 08:32:55 | 显示全部楼层
首先,跟加不加班没有任何关系。
中国程序员还比卢旺达程序员强呢,卢旺达程序员就是天天不上班也干不过中国程序员啊,他加班加死也干不过中国程序员啊。
1.世界顶级优秀的程序员中国匮乏
所谓美国程序员并不是指一个国家的程序员,而是指在美国工作的全世界的程序员。中国程序员指在中国工作的程序员。
美国是超级大国,在美国可以吸引全世界最优秀的一批程序员,而中国仅仅是本国人才。从人口基数到资本规模,中国远小于美国。所以中国顶级程序员的成色和数量是不如美国的
2.产学研体系支撑
美国有一大批非常好的大学,可以为产业届培养人才,而且产业届学术界之间的合作互动非常频道。产业届把遇到的问题反馈给学术界,学术界解决问题发表科研成果然后拿到产业届做成产品。
中国这块是学习美国的。如果放在十几年前,大陆才刚刚起步。现在虽然有起色,但是还不如美国成熟。
而且中国大陆的大学目前还存在本科教育质量下降,教学教师水平较低的问题。
整体这块逊色美国不少。
3.国内的产业环境
这两年不少科技公司至少还在喊口号做技术,前些年那完完全全就是在资本市场加持下跑马圈地,对技术的尊重,对核心技术的投入严重不足。更多的是拼低端人力,开始疯狂加班来凑量和速度。严重缺乏内部员工可持续的培养发展投入,又因为中国新一代大学生数量一年比一年多,很多国内的企业忽视内部潜力挖掘,往死里用人,也不给他们培训提高机会和时间。然后用完裁掉,招聘应届学生。

这就导致一个问题,大量的从业人员年龄增长,但是技术深度广度并没有得到增长。而补充进来的年轻人,除了体力好一些,经验严重匮乏,老人都不能得到真正的提升,新人进来必然一通踩坑。这也严重影响新人成长速度。没有形成一整套的传帮带体系

4.缺少国家层面强力的扶持
美国的高科技公司不止做美国的生意,而是凭借其超级大国地位,畅通无阻的将高科技产品销售到全世界。
中国高科技公司在国内打的头破血流,真正能走出去的更是少之又少。
就算这些公司能够凭借自己的实力在国外打下市场,很多时候也会受制于美国的整体实力,受到打压,比如华为。
出海受阻,国内市场有限,为了维护利润,很多时候就不止比拼技术了,因为投入技术的成本过高,他们更愿意做表面创新
5.缺乏真正有眼光的管理人员
在一个科技公司里面,一个优秀的技术人员可以顶十个平庸的人。而一个平庸的管理人员可以让十个优秀的技术人员真实产出低于一个平庸的人。
我这里说的管理人员的能力还不同于前面产学研结合中科技人才的培养。技术人才可以在学校培养,但是管理人才只能在实战中培养。
一个无能的管理者不仅不会给公司带来真正革命性的突破,反而会通过各种方式赶走优秀的人才。然后团队里就开始各种关系,各种小白兔。


以上就是我的观点。

需要特别指出的一个问题就是加班到底是不是导致中美程序员差距的根本原因?
我认为是否定的。
因为美国程序员如果公司真的处于快速扩张期,该加班照样加班,除了加班费可能会给的更地道一点,因为很多中国公司加班都不给加班费的。
我在上面的回答说了一部分原因。任何一个打工的人,心里都不喜欢加班的。但是有的时候你菜难道更本质的原因不是因为你菜而是加班吗?
美国能吸引全世界优秀的程序员,比如谷歌的一个创始人就是从苏联移民过去的,再比如以太坊的创始人也是俄罗斯移民。linux之父,芬兰的,就挨着俄罗斯。但是这批人在it界打拼没有说不去硅谷往中关村跑的。中国大量的计算机方面的公司尤其创业公司,如果说有从来年来的人基本也是中国人在美国干几年跑回来创业的,很多业务模式因为美国先进,回来利用信息差做一个low版本。
比如说百度的搜索引擎啊,各种各样的ai创业公司啊,自动驾驶啊,淘宝啊,等等吧。
本质上这是利用信息差做买卖,跟创新有鸡毛关系呢?
所以别看国内很多科技公司说什么创新啊,技术投入啊。很多就是在跟人家屁股后面走。加班玩命搞内卷,但是真到了拼硬实力创新,就尿了。
而且加班有时候也可以起到缩短技术差距的作用。
人家两个小时干完,你起步晚,加班用了四个小时也做到了,能做到就行呗,你基础本来就不如人家,还要跟人家一样时间?那什么时候能追上呢?
至于有的人说的什么天赋,好像自己在美国工作天生就是做计算机的材料。在中国的程序员多花一些时间貌似他们就很不乐意一样,是怕被追赶上?
如果说加班纯粹就是搞技术研发,里面没有各种划水混kpi,加班往往就是可以缩短技术差距的。但是现实实行往往就变样子了。因为一个群体的个体水平差距很大,有的人真的在提升技术,有的人就摸鱼,挖空心思讨好领导。专研汇报去了。搞这种技术上怎么可能有长进?
而且如果有傻逼领导瞎指挥,加班的精力都特么用在折腾上了,那技术只会更差。
所以加班不是实力差距的根本原因
我看了很多回答,扯什么按时下班什么的,我认为避重就轻了,非常多宏观因素影响,怎么就用一个加班来一言概之呢?
回复

使用道具 举报

2

主题

5

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2023-2-1 08:33:01 | 显示全部楼层
美国程序员可以按时下班,之后研究他们真正感兴趣的技术
回复

使用道具 举报

1

主题

5

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-2-1 08:33:15 | 显示全部楼层
不抖机灵地说,唯一的差距是英语水平。
回复

使用道具 举报

1

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2023-2-1 08:33:53 | 显示全部楼层
工资
我可以花式秒杀同工资(或者 2 倍之内)的美国程序员,一个例外都不会有。
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-2-1 08:34:26 | 显示全部楼层
以软件工程为例,当一个软件工程的理论出现,美国程序员会真的围绕着这种理论,开发出一系列相关的工具,包括框架和生态。在没有成功案例之前,很少有中国程序员会跟风。而且虽然优秀的中国程序员会应用这些理论和工具生态,但是真从事其开发工具的开发,真的少之又少。

当依赖管理开始流行的时候,每个语言都有了自己的包管理软件,如npm,composer,Maven,nuget,pip等等。
当单元测试作为重要的开发一环后,PHPUnit,nUnit,Jest,JUnit,Mocha等等出现。
当单元测试中的实验模型理论出现后,Faker,Mock,Mockery,Stub等等实验模型工具出现。
另外诸如风格测试,性能测试,持续集成,持续部署,任务自动化等等理论出现后,都有一批程序员会马上把这些工具理论实现,然后放到项目中使用。而且这些工具的使用,的确是能大幅提高应用程序的质量。
而这些实践理论本身又大都是美国那边的程序员或者研究人员提出来的。这样就产生了良性闭环:

  • 实践总结,写出提高程序质量的理论
  • 按照理论,写出各种相关辅助工具
  • 程序员在项目中,使用这些工具,提高自己软件质量
第一,美国程序员真的信这些计算机理论。
第二,美国程序员真的愿意为实践理论,写出这些辅助工具,帮助实现这些理论。
第三,大家愿意给足这些提出理论和编写工具人的足够尊重,让这个闭环成为了良性循环,让生态中有了越来越多计算机理论和其相关辅助工具。

而中国程序员,聪明的,会作为跟随者,去学,去用这些理论和这些个相关工具。有些天赋的,会改进甚至创造出更好的轮子,但前提是有国外的成果案例已经证明了此路可通。但很多中国程序员是不屑于去研究这些先进的编程理论和用这些工具,只是停留在我写的代码能用,能运行就行了。
(当然凡是会有例外,有些工具是中国人先写出来的,然后才有跟风。比如说NW.js就是国内开发人员先创造出了nodejs和webkit browser的结合的本地Javascript的桌面编程技术。然后才有国外electron这样的跟风项目)


这种现象不但在计算机工程上有,而且在计算机科学,程序中间件,云架构,单片计算机等领域都能发现类似的现象

这些差别的造成,可能也是工作环境的原因吧,首先国外工作时间实践严格的8小时工作制度不说,甚至在8小时内,公司也鼓励员工去研究或开发和自己项目无关的技术,甚至鼓励你去修复别人的开源项目的代码。第二,你做出一个更好,更易用的代码技术,在美国更多是佩服尊重为主;而国内看你重复造轮子,就可能直接人生攻击说你抄袭或浪费时间重复造轮子。每次看到国外大部分都是赞扬Vuejs的尤雨溪,而国内网曝尤雨溪的言论,就能看到两国的开发环境的天差地别了。

总结一下,美国程序员的优势,更多在于他们不但愿意总结提炼编程过程中的理论,更愿意用代码实现工具来辅助实践这些理论。而且美国程序员的工作环境也更是鼓励美国程序员这么做。而中国程序员的相比之下的情况,就是公司环境不鼓励程序员在项目之外的研究,996让中国程序员也没有多余时间来研究自己感兴趣的技术理论,很少能提出厉害的计算机理论,更不要说围绕理论去创造工具和生态了。能跟着美国程序员,创造出一个比他们更好的轮子,让中国程序员扬眉吐气,可能是现阶段中国程序员能做到的天花板了。(例子有:vuejs,NW.js, eChart等等)

希望以后能在中国程序员中能看到这方面的突破
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|百相网

GMT+8, 2025-10-17 00:01 , Processed in 0.296527 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表