在科技最发达的美国和正在飞速发展中的中国,如果两个国家的程序员放在一起比较,会是什么样呢?
中美程序员的差距
1.心态差距
近年来由于互联网的迅速发展,全国各地,IT人才的需求量都出现了飞跃式的增长,程序员的薪资也明显高于其他行业。
在国内,真正因为热爱编程而从事这份工作的人其实并不多,很多人学习程序想得都是这个行业火,赚钱快,入行门槛低。几年以后自己当个小管理,拿着十几万,或几十万的工资,再无追求的过着小日子就好。甚至到了30岁,如果没能进入管理层,大多数人都会考虑转行,或仅靠自身的知识累积开始创业。
美国程序员大多数都是因为热爱编程行业而从事这份工作的,他们会专注某一个领域几十年。50岁以上的程序员还会安心待在同一个岗位写代码,专研技术。他们想法很简单,对于编程这种事情更多的是那种单纯似的热爱。
#影响因素:国外的程序员,专心写程序并专研,他的级别和工资就会年年往上涨,和做管理的人员没太大区别。国内的程序员这方面就杯具了,写程序的工资基本低于管理者,迫于现实的生活压力,不得不往赚钱更多的方向走。
2.沟通能力
和美国程序员交流的时候,你能从他的切入点和具体思路很清晰的理解他的问题,在阐述问题的时候背景信息也给得相当全面,所以理解他们的问题比较简单容易。
中国程序员阐述问题时逻辑思维不清晰,背景知识没给全,讲了很多,但大家都get不到他要表达的重点,有些人一味的自顾自说,完全不去思考和理解别人给他提的建议。
#影响因素:编程所用的英语,比较是美国人的母语;另外就是思维方式的不同。
3. 解决问题能力
如果给我们中国程序员,规定好的方案,他们普遍完成的非常好。但如果没有具体方案,完全是一个开放性课题,很多时候程序员会完全无法下手。
美国程序员这方面能力比较好,他们的探索研究能力非常强,经过一定时间的研究后,能提出一套非常具体有效的方案然后一步一步去解决问题。
在一定程度上,这种差距就如同现今机器学习和真正智能的差距。机器学习可以解决很多特定领域的问题,模型可以优化得越来越好,但优化的尽头也不是真正的智能。
#影响因素:两国教育方式的不同,一个善于解决问题,另一个善于发现探索问题。
4. 技术实力
工作初期两国程序员差距不大,5年是个分水岭,这之后开始出现变化了,在中国多数人工作个5-6年就开始琢磨转管理。虽然这5-6年我们代码上的时间,积累的经验可以说很多时候是高于美国程序员的。但在某一项技术上我们有多少人专研超过10年,所以在国内出现了程序员吃青春饭这种理论。
而美国程序员10年以上经验的人有的是。 例如,一个工作经验是30年,从dos时代就开发debugger一直干到现在,一个24年工作经验外加5年的博士研究经验,还有两个从毕业到现在一直从事CLR diagnostic api的开发到现在基本都干了十几年了。
在国内真的很难想象有这种团队。 记得stackover上统计过,程序员的黄金年龄应该在40岁左右,但我们国内40岁的时候有几个还愿意写程序呢。cocoachina上,一篇写了40年程序的人发表的文章,竟久居排行榜前列不下!
5. 职业诉求
中国的程序员更需要关注物质回报,因为我们的文化强调尽早买房买车。欧美人在这方面要轻松自由得多,有大把的时间去尝试创造,但其实大部分人是不创造的,只是概率比中国大而已。
中国人妄自菲薄没有“创新”能力,是没有意识到自己到了创造力高峰的时候却被现实牵绊,我们用自己的青春和人家的大半生去比较,当然妄自菲薄了,人家可以投入的时间就比你多得多。中国程序员职业黄金时期所要面对的干扰非常大,首先是要让自己融入英语的技术圈子,其次是要应付一个不争气没追求强加个人的世俗文化。
他们怎么说...
关于中美程序员,看看知乎上的程序员们怎么说:
@王亞暉
曾在中美两边都工作和创业过,在 freelancer上发过外包也接过外包,维护过开源项目,而据我所知,
顶尖工程师水平:
美国 >中国 >日本 =欧洲 =韩国 >印度
平均水平:
中国 =美国 >欧洲 =印度 >日本 =韩国
大型互联网公司技术能力:
美国 >中国 >剩下全加起来
无论公司角度,还是计算机技术能力角度,现在世界上只有两个国家能放在一起说,一个美国,一个中国。
@代码豆
没在国内工作过,所以大部分是针对在美国的华人和美国本土工程师的差距。沟通能力。在这点上差距非常明显。很多人说是英语问题,但我觉得深层次的是思维方式问题。和美国工程师交流的时候,你能从他的切入点和具体思路很清晰的理解他的问题,在阐述问题的时候背景信息也给得相当全面,所以理解他们的问题很容易。而当你阐述思路的时候,他们也会非常用心的去理解你的思路,帮你解决问题。
但华人这方面基本不行,很多时候讲一个问题根本不考虑别人的感受,背景知识没给全,就直接开始讲了,搞得很多人云里来雾里去,根本不知道他在讲什么.。有时候也不愿意理解别人的想法,就顾着自己讲。
解决问题能力。由于教育方式和美国不同,所以出现了一个很有意思的现象。如果给我们中国程序员,规定好的方案,我们普遍完成的非常好。但如果没有具体方案,完全是一个开放性课题,很多时候华人工程师完全无法下手。但美国程序员这方面能力相当了得,他们的探索研究能力非常强,经过一定时间的研究后,他们能提出一套非常具体有效的方案然后一步一步去解决问题。这也是我们和美国教育的差别,一个善于解决问题,另一个善于发现探索问题。
技术实力。这方面主要是对比国内程序员和美国程序员。我们工作初期的时候跟美国程序差距不大。但问题是5年以后开始出现变化了。在一项技术上多数人工作个5-6年就开始琢磨转管理,虽然这5-6年我们代码上的时间,积累的经验可以说是高于美国程序员的。但问题是之后我们就不干了。而美国程序员10年以上经验的人有的是。
对技术的热爱。国内很多人学习程序想的都是哪个方向火容易赚钱,什么技术火就学什么。然后去所谓牛逼的公司,干牛逼的事情,然后拿着几十万的工资。我不能说这种是错误的,毕竟大家都是混口饭吃。可美国很多程序员想法很简单,对于编程这种事情更多的是那种单纯的孩子似的热爱吧(此处小编想到阿里副总裁级别的程序员多隆,十四年来专注写代码的扫地僧)。
@vczh,知乎轮子哥
美国程序员有一种莫名其妙的自信心爆棚的状态,明明自己程序写的那么烂,也觉得自己像超人一样。我觉得中华民族应该向他们学习,不用太谦虚。至于编程技巧,其实都差不多。只是中华民族平时生活的琐事太多,于是工作后连学习的机会都没有了,差距就是这么慢慢拉开的。这一点在美国不会发生。
@swtc
对基层的程序员而言,中国猿水平远高于美国猿。中国程序员解决实际问题的能力强,效率也高。但高阶技术职位,例如架构师一类的,美国要高一等,因为在这样的职位上,中国技术人员往往专注于解决实际问题,而不是解决技术问题。总体来说,美国更注重把程序员培养成computer scientist,最起码也要做到engineer,而中国公司只要programmer。
程序员,加油吧
综合比较以上,不难看出,在解决问题的能力上,双方只在伯仲之间,但是在技术创新,问题的探索领域美国还是略胜一筹。而且在高阶人才级别,中国的技术专家在数量上不及美国。
也没有在长他人志气,灭本国威风,只是想小小提醒作为程序员的你,一定不要以学编程、拿高薪作为自己唯一的人生目标。就好像创业路上的你,无论在什么时候,我们都要不断提升自己的专业度和竞争力,永远保持一颗热爱自己事业的工匠之心,坚定的走下去。互联网行业千变万化,要不断的学习,更新知识系统,才能永远不被这个社会所淘汰。
然后,给大家送个福利吧!!
CakePHP 3.7.0 发布了!(新手与老司机都可快速开发的框架)
CakePHP 是一个运用了诸如 ActiveRecord、Association Data Mapping、Front Controller 和 MVC 等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的 PHP 开发人员快速地开发出健壮的 Web 应用,而又不失灵活性。
此版本是 3.x 的最后一个计划版本,核心团队接下来将专注于支持 3.7 并完成 4.0.0。
主要更新亮点包括:
ArrayEngine 可以帮助提高测试套件的性能和可靠性。
CakeHttpClient 现在将使用 curl,提供更好的性能和代理功能。
ErrorHandlerMiddleware 现在将包含以往的 logger 异常。
新的传输工厂类有助于简化电子邮件。
CakeValidationValidator 现在提供类型安全的 allow-empty 方法。
FormHelper 现在可以设置 HTML5 自定义验证消息。
IntegrationTestCase 上的新断言使得处理 flash 消息变得更加简单。
本页共61段,3686个字符,10065 Byte(字节)