说到中美程序员水平差距的问题,大家应该都有各自的评判标准。技术差距肯定是有的,毕竟国外起步比我们早了那么多年,但除了技术实力之外,还有很多我们正在努力提升的点,比如英语、工作方式、解决问题的思维方法等等。本文将对中美程序员的专业技能、情感诉求等进行对比,希望能帮助大家发挥优势、补齐短板,并找到快速提高的方法。
一、专业技能
1、代码质量
在美国公司,一个项目在前期花的时间是最多的,比如需求分析、架构讨论、技术讨论。美国的程序员写代码通常会考虑得比较长远,有时间去考虑开发原则、维护成本,领导也会乐于去安排版本来解决技术债务。
国内的互联网公司节奏比较快,讲究的是小步快跑,就几天的开发时间,不管三七二十一先上线再说,敢想敢干敢上线。
2、解决问题的能力
因国内外教育方式的不同,中美程序员在解决问题的能力上也有差别,国内的程序员是善于解决问题,而美国的程序员善于发现、探索问题。
美国程序员的探索研究能力很强,经过一段时间的研究后,能提出一套非常具体有效的方案,然后一步一步去解决问题。
如果把一个规定好的任务方案给到国内程序员,他们普遍完成得非常好。但如果没有具体方案,完全是一个开放性课题,很多时候程序员就会束手无策。
3、沟通能力
由于编程需要用到的是英语,这对于美国人来说简单易懂,使用起来也是易如反掌。再加上国内外思维方式的不同,所以在沟通能力方面会有很大的差异性。
美国程序员对问题的切入点和思路都有具体的分析,在阐述问题时背景信息也给得比较全面,所以理解他们的问题比较简单容易。
国内的程序员阐述问题或多或少会有逻辑思维不清晰的情况,讲了很多,但大家很难get其中想表达的重点,一味地自顾自说,不去思考和理解别人给他提的建议。
二、情感诉求
1、年龄
美国公司里的程序员20多到70多岁的都有,多数是三四十岁的中年人,大部分工作目标都是为了早日退休,攒够钱随时就办退休party。当然也有一些纯粹因为热爱工作、热爱写代码选择不退休的。
反观国内的程序员,平均年龄基本在30岁以下。年纪稍大的,有一部分人成功进入到了管理层,还有一部分人可能就会被优化。
2、热爱程度
美国程序员大多数都是因为热爱编程行业而从事这份工作的,他们会专注某个领域几十年。50岁以上的程序员还会安心待在同一个岗位上写代码,钻研技术。对于编程这种事情,更多的是单纯的热爱。
国内的程序员因热爱编程而从事这份工作的并不多,更多的是因为这个行业火、赚钱快、入行门槛低。什么技术火就学什么,慢慢积累工作经验,几年以后当个小管理,拿着十几万,或几十万的工资,再无追求的过着小日子就好。
3、职业诉求
美国的程序员有大把的时间去尝试创造,在物质方面比较轻松自由。而国内的程序员其实更关注物质回报,因为我们的文化强调尽早买房买车。
4、关于加班
美国的程序员基本不加班,加班需要申请。因为加班费比较高,需要走项目预算,领导为了控制预算,经常不批准加班申请。而中国的程序员996就是常事了。
三、工作之外
美国公司的程序员很注重对健康的投资,很多人有每天早上去健身房的习惯。健身不只是为了锻炼,还是很多人的兴趣爱好。看起来平平无奇的程序员,可能都是隐藏的运动高手。很多美国程序员热衷于做慈善,回馈社会,小到献血捐钱做公益,大到组织慈善拍卖会。已婚的程序员其他时间和我国的一样,基本都花在养孩子和投资上。
相比之下,我国的程序员就比较“惨”了。办公室的好多程序员,都不敢看体检报告。20多岁的年轻人,检查出什么的都有,高血压、高血脂、胆囊炎、结石、痛风,还有得了痔疮的,据说是因为久坐,加班经常吃小龙虾。此外,国内程序员的离职率也比较高,有跳槽的、有转行的、有回老家躺平的。除了领导们,几乎每个人看起来都很焦虑,头秃......
四、他们怎么说...
关于中美程序员,看看程序员们自己是怎么评价的:
@王亚晖
曾在中美两国都工作和创业过,在 freelancer 上发过外包也接过外包,维护过开源项目。据我所知,
顶尖工程师水平:
美国>中国>日本=欧洲=韩国>印度
平均水平:
中国=美国>欧洲=印度>日本=韩国
大型互联网公司技术能力:
美国>中国>剩下全加起来
无论公司角度,还是计算机技术能力角度,现在世界上只有两个国家能放在一起说,一个美国,一个中国。
@vczh
美国程序员有一种莫名其妙的自信心爆棚的状态,明明自己程序写得那么烂,也觉得自己像超人一样。我觉得中华民族应该向他们学习,不用太谦虚。至于编程技巧,其实都差不多。只是中华民族平时生活的琐事太多,于是工作后连学习的机会都没有了,差距就是这么慢慢拉开的。这一点在美国不会发生。
@swtc
对基层的程序员而言,中国程序员水平远高于美国程序员。中国程序员解决实际问题的能力强,效率也高。但高阶技术职位,例如架构师一类的,美国要高一等,因为在这样的职位上,中国技术人员往往专注于解决实际问题,而不是解决技术问题。总体来说,美国更注重把程序员培养成 computer scientist,最起码也要做到 engineer,而中国公司只要 programmer。
@坐家
心态:
中国:30 岁的程序员觉得再不升经理就要转行了。
美国:50 岁的程序员还在安心写代码。
供需:
中国:30 岁以上的程序员太多了,都混成老油条了,多招点应届生回来加班,挤走老的。
美国:50 岁以下的程序员不够用了,需要加招 50 岁以上的,他们虽然加班少,但是经验足。
待遇:
中国:按劳分配,老程序员不加班也不能加工资。
美国:论资排辈,老程序员没有功劳也有苦劳。
流向:
中国:那些去美国当码农的同学和同事都不回来了。
美国:那些到中国出差的美国码农不久都回去了。
@来生再见
差距在于是否:敢于拒绝加班;敢于和老板表达自己的不同意见;敢于坚持自己的技术路线;敢于跳槽。
写在最后
综上所述,在解决问题的能力上,双方基本在伯仲之间,但是在技术创新、问题的探索领域美国还是略胜一筹。此外,在高阶人才方面,中国的技术专家在数量上不及美国。
当然,我们也无需长他人志气,灭自己威风。作为程序员,一定不要以敲代码、拿高薪作为自己唯一的人生目标。无论在什么时候,我们都要不断提升自己的专业度和竞争力,永远保持一颗热爱自己事业的工匠之心,坚定地走下去。互联网行业千变万化,要不断地学习,更新知识系统,才能不被这个社会淘汰。