为什么最流行的技术栈,鲜有国人的项目?中国和美国的程序员,差距究竟在哪里?我没有在海外工作过,没有发言权。知乎上有个近350W阅读的帖子,讨论过这个话题,不少大佬也进行了回复,我看了之后,感慨万千。特别是最后一个回答,非常值得我们反思。
目前中国程序员和美国程序员的差距在哪里?
https://www.zhihu.com/question/20941966
【回答1】
回复者:赵劼
16.4W+关注,700+赞同
不抖机灵地说,唯一的差距是英语水平。
【回答2】
回复者:王亚晖
18.7W+关注,2260+赞同
我在美国工作过、创业过,在中国工作过,创业过,在 freelancer 上发过外包接过外包,维护过开源项目。
顶尖工程师水平:
美国 > 中国 > 日本 > 欧洲 = 韩国 > 印度
平均水平:
中国 = 美国 > 欧洲 = 印度 > 日本 = 韩国
大型互联网公司技术能力:
美国 > 中国 > 剩下全加起来
无论公司角度,还是计算机技术能力角度,现在世界上只有两个国家能放在一起说,一个美国,一个中国。
【回答3】
回复者:Joseph Holy,Apple-inc SDE
3.4W+关注,350+赞同
在山景城参加一个小朋友的编程活动,小孩子们玩得家长拽都拽不走。
7-10岁的孩子们问:
你们用蓝牙还是Wi-Fi?
在什么系统上可以编程?
可以控制我的恐龙机器人吗?
无人机飞那么远也可以连接吗?
...
看看我们7-10岁的孩子们都在干嘛!
这就是差距。
【回答4】
回复者:IthilDawnstar
470+赞同
在stackoverflow上提问,哪怕多弱智的问题,只要配上详细报错内容,都能收到各种人连篇累牍的回答,甚至可能连原理都巴不得揉碎了告诉你…… 他们是真的热爱这件事,也希望大家都能做这件事。
中文这区只会:
你不会自己搜吗?
伸手党,gun吧!
看不懂报错嘛?文盲?
这个事情是有门槛的,学不会就别学,不如埋了吧!
...
这,就是差距。
【回答5】
回复者:硅谷IT胖子
20W+关注,720+赞同
飘在美国的美帝原装程序员强答一波:
第一个是语言问题,我说的是英语。中国程序员在单挑全世界,因为太多程序员看不懂英文。中国程序员获取信息的壁垒,是要高得多的,即使Google开放了又如何,大部分人还是看不懂。所以中国人的技术其实是相当厉害的,因为信息的接受要落后于所有英语国家,包括印度,但作出的成果却是世界第二的。
第二个是职场文化问题。中国官本位,认为管理高于技术,美帝其实也这么认为,但是技术人员地位高很多。美国的很多资深程序员有机会也不愿意做管理,认为管理更难、更累、风险更大、还不容易跳槽,收入却没有本质上的提升,所以其实是把人才留在技术方向。
第三个是管理水平。中国人的技术不弱于美国,但是管理差得多。主要是文化和历史原因比如接触西方太晚。我在微软时跟国内的外包公司打过交道,带他们干活,发现工程师还是很可以的,至少性价比是相当高的,但是管理混乱,管理人员大多数油滑、又贪功,缺少真正的责任感。美国我见到的各公司的管理阶层(除部分在微软外)都是精英,对各方面的把握都非常精准。所以,公司不会因为过大层次过多而降低效率。
第四个是社会差距。美国是技术的原产地,因此技术和新的模式是天然和社会状态匹配的一——比如诚信水平和隐私保护、立法等。所以,Google成为了技术创新公司,百度成了医药行业公司。这里不是贬低百度,Google不是不想做医疗行业(美国最赚钱最黑的行业),是有人不允许啊。Google卖过药,结果被罚了几十亿,老实了。
【回答6】
回复者:老炮说Java
9220+赞同
我是在美国工作过两年,回国经历了逆文化冲击,现在勉强算是适应了国内互联网公司的节奏。随便聊聊,没有崇洋媚外的意图,只是刚好最近被剥削得很不爽,趁机吐槽一下下。
同事里20多到70多岁的都有,众数是三四十的中年人,大部分工作目标都是为了早日退休,攒够钱就随时办退休party。也有些纯粹因为热爱工作、热爱写代码选择不退休的。
我们组的核心成员之一,是位72岁的老头,他每天4点多起床到公司写一会儿代码,等天全亮就戴上头盔去骑山地车锻炼,9点多回公司继续工作。对这老头印象深刻,是因为他逻辑清晰、思锐利,他是code review小组的成员,经常在邮件里破口大骂其他人写的代码写得有多烂,被投诉,只好在邮件里道歉,过几天继续骂,在我工作的两年里一直循环。
我的另一位资深同事,是位68岁的架构师,热爱工作,每天都乐呵呵的,对我这种新毕业生也很友好,有人问他什么时候退休,他回答说他死的那天。
我国公司:
回国之后我现在工作的公司,员工平均年龄在30岁以下。年纪大的都去哪里了呢?极少数在管理层。
2.加班
美国公司:
从没加过班,晚上发版除外(会默认第二天调休)。
经常正开着会,时间到了5点半,产品打断领导说到点了他要回去喂狗(他是一个50岁的不婚族,养了一院子狗),然后就散会下班了。
加班需要申请,有次我申请工作日晚上加班,没批准只好回家了。因为加班费会比较高,需要从项目预算走,领导控制预算不给批。
偶尔周末去办公室取东西,几层停车场只有两三辆车。
我国公司:
996是常事了。
印象比较深的是我司之前有个清华本科+美国硕士的小伙子,每天7点半准时下班,结果试用期被辞退了,原因是工作态度不积极,据说后来还和公司打了官司,不知输赢。
3.代码质量
美国公司:
项目在前期花的时间是最多的,比如说需求分析、架构讨论、技术讨论。
写代码会考虑得比较长远,比较有时间去考虑开发原则、维护成本,领导也会乐意去安排版本来解决技术债务。
我国公司:
国内互联网节奏会要快得多,讲究小步快跑,就几天的开发时间,不管三七二十一先上线再说,刚开始我都惊呆了。
4.工作氛围
美国公司:
老美的公司确实比较尊重员工,在员工关怀上做得比较好。我可以感受到,和领导职位不同,但是我们人格是平等的,彼此尊重。
记得有一次发版前几天,组里程序员说他压力太大,领导给他假期让他放松调整,版本被延迟上线。
美国有family first的文化。有个老印同事,家里老人身体不好,公司同意他回印度工作照顾家人,远程跨国工作。经常有同事因为要看孩子比赛请假。领导自己也会偶尔周五请假,因为要去和女儿一起参加学校的公益活动。
我国公司:
领导高高在上,官威很大。请个假,和求他借钱似的,组长还提醒我让我请假原因不要写“旅游不然可能会不给批假。
记得有个需求,大家都认为不合理没必要,我去找领导沟通,刚提了一句还没展开,领导直接甩脸色“你是领导还是我是领导"。
有个同事因为耿直,和领导不和,被各种排挤冷暴力,逼他自己辞职拒给赔偿金。
开个线上事故复盘会,做root cause分析,就像要把人钉在耻辱柱一样,我不理解这对解决问有什么帮助。
5.工作之外
美国公司:
很注重对健康的投资。至少1/3同事有每天早上去健身房的习惯。公司很多球场,晚上下班能看到很多同事在楼下踢足球,打排球。健身不只是为了锻炼,还是很多同事的爱好。看起来平平无奇的程序员,可能都是隐藏的运动高手,多年马拉松选手、山地车骑手遍地都是,还有不少极限运动动爱好者。
喜欢看牙医。喜欢看各种体育比赛。喜欢旅游,基本上每年至少一次家庭旅游,游轮是热门项目。
一部分同事热衷慈善回馈社会,小到捐血捐钱做公益,大到组织慈善拍卖会。
我国公司:
办公室的好多同事,不敢看体检报告。都是20多岁的年轻人,检查出来啥的都有,胆囊炎、结石、痛风... 前几天还有一个要好的同事请假去做痔疮手术的(捂脸),据他说是因为久坐,加班经常吃小龙虾。
相比之下离职率高太多了,每个月都有几个认识的同事离职,跳槽的、转行的、回老家躺平的。除了领导们,几乎每个人看起来都很焦虑,都想着退路,想着搞点什么副业。
结尾:
差距源自,对孩子的教育?
差距源自,对新人不友好?
差距源自,职场文化?管理水平?