心态差距
近年来由于互联网的迅速发展,全国各地,IT人才的需求量都出现了飞跃式的增长,程序员的薪资也明显高于其他行业。
但在国内,真正因为热爱编程而从事这份工作的人其实并不多,很多人学习程序想得都是这个行业火,赚钱快,入行门槛低。什么技术火就学什么,然后进入一个大公司,做几个成功的项目,积累工作经验,几年以后自己当个小管理,拿着十几万,或几十万的工资,再无追求的过着小日子就好。
甚至到了30岁,如果没能进入管理层,大多数人都会考虑转行,或仅靠自身的知识累积开始创业。
美国程序员大多数都是因为热爱编程行业而从事这份工作的,他们会专注某一个领域几十年。50岁以上的程序员还会安心待在同一个岗位写代码,专研技术。他们想法很简单,对于编程这种事情更多的是那种单纯似的热爱。
影响因素:国外的程序员,专心写程序并专研,他的级别和工资就会年年往上涨,和做管理的人员没太大区别。国内的程序员这方面就杯具了,写程序的工资基本低于管理者,迫于现实的生活压力,不得不往赚钱更多的方向走。
沟通能力
和美国程序员交流的时候,你能从他的切入点和具体思路很清晰的理解他的问题,在阐述问题的时候背景信息也给得相当全面,所以理解他们的问题比较简单容易。
中国程序员阐述问题时逻辑思维不清晰,背景知识没给全,讲了很多,但大家都get不到他要表达的重点,有些人一味的自顾自说,完全不去思考和理解别人给他提的建议。
影响因素:编程所用的英语,比较是美国人的母语;另外就是思维方式的不同。
解决问题能力
如果给我们中国程序员,规定好的方案,他们普遍完成的非常好。但如果没有具体方案,完全是一个开放性课题,很多时候程序员会完全无法下手。
美国程序员这方面能力比较好,他们的探索研究能力非常强,经过一定时间的研究后,能提出一套非常具体有效的方案然后一步一步去解决问题。
在一定程度上,这种差距就如同现今机器学习和真正智能的差距。机器学习可以解决很多特定领域的问题,模型可以优化得越来越好,但优化的尽头也不是真正的智能。
影响因素:两国教育方式的不同,一个善于解决问题,另一个善于发现探索问题。
技术实力
工作初期两国程序员差距不大,5年是个分水岭,这之后开始出现变化了,在中国多数人工作个5-6年就开始琢磨转管理。虽然这5-6年我们代码上的时间,积累的经验可以说很多时候是高于美国程序员的。但在某一项技术上我们有多少人专研超过10年,所以在国内出现了程序员吃青春饭这种理论。
而美国程序员10年以上经验的人有的是。例如,一个工作经验是30年,从dos时代就开发debugger一直干到现在,一个24年工作经验外加5年的博士研究经验,还有两个从毕业到现在一直从事CLRdiagnosticapi的开发到现在基本都干了十几年了。
在国内真的很难想象有这种团队。记得stackover上统计过,程序员的*金年龄应该在40岁左右,但我们国内40岁的时候有几个还愿意写程序呢。cocoachina上,一篇写了40年程序的人发表的文章,竟久居排行榜前列不下!
职业诉求
中国的程序员更需要