中国程序员 VS 美国程序员,差距就在这五点


心态差距

近年来由于互联网的迅速发展,全国各地,IT人才的需求量都出现了飞跃式的增长,程序员的薪资也明显高于其他行业。

但在国内,真正因为热爱编程而从事这份工作的人其实并不多,很多人学习程序想得都是这个行业火,赚钱快,入行门槛低。什么技术火就学什么,然后进入一个大公司,做几个成功的项目,积累工作经验,几年以后自己当个小管理,拿着十几万,或几十万的工资,再无追求的过着小日子就好。

甚至到了30岁,如果没能进入管理层,大多数人都会考虑转行,或仅靠自身的知识累积开始创业。

美国程序员大多数都是因为热爱编程行业而从事这份工作的,他们会专注某一个领域几十年。50岁以上的程序员还会安心待在同一个岗位写代码,专研技术。他们想法很简单, 对于编程这种事情更多的是那种单纯似的热爱。

影响因素:国外的程序员,专心写程序并专研,他的级别和工资就会年年往上涨,和做管理的人员没太大区别。国内的程序员这方面就杯具了,写程序的工资基本低于管理者,迫于现实的生活压力,不得不往赚钱更多的方向走。

沟通能力

和美国程序员交流的时候,你能从他的切入点和具体思路很清晰的理解他的问题,在阐述问题的时候背景信息也给得相当全面,所以理解他们的问题比较简单容易。

中国程序员阐述问题时逻辑思维不清晰,背景知识没给全,讲了很多,但大家都get不到他要表达的重点,有些人一味的自顾自说,完全不去思考和理解别人给他提的建议。

影响因素:编程所用的英语,比较是美国人的母语;另外就是思维方式的不同。

解决问题能力

如果给我们中国程序员,规定好的方案,他们普遍完成的非常好。但如果没有具体方案, 完全是一个开放性课题,很多时候程序员会完全无法下手。

美国程序员这方面能力比较好, 他们的探索研究能力非常强, 经过一定时间的研究后, 能提出一套非常具体有效的方案然后一步一步去解决问题。

在一定程度上,这种差距就如同现今机器学习和真正智能的差距。机器学习可以解决很多特定领域的问题,模型可以优化得越来越好,但优化的尽头也不是真正的智能。

影响因素:两国教育方式的不同,一个善于解决问题, 另一个善于发现探索问题。

技术实力

工作初期两国程序员差距不大,5年是个分水岭,这之后开始出现变化了,在中国多数人工作个5-6年就开始琢磨转管理。虽然这5-6年我们代码上的时间,积累的经验可以说很多时候是高于美国程序员的。但在某一项技术上我们有多少人专研超过10年,所以在国内出现了程序员吃青春饭这种理论。

而美国程序员10年以上经验的人有的是。 例如,一个工作经验是30年, 从dos时代就开发debugger一直干到现在, 一个24年工作经验外加5年的博士研究经验, 还有两个从毕业到现在一直从事CLR diagnostic api的开发到现在基本都干了十几年了。

在国内真的很难想象有这种团队。 记得stackover上统计过, 程序员的黄金年龄应该在40岁左右, 但我们国内40岁的时候有几个还愿意写程序呢。cocoachina上,一篇写了40年程序的人发表的文章,竟久居排行榜前列不下!

职业诉求

中国的程序员更需要关注物质回报,因为我们的文化强调尽早买房买车。欧美人在这方面要轻松自由得多,有大把的时间去尝试创造,但其实大部分人是不创造的,只是概率比中国大而已。

中国人妄自菲薄没有“创新”能力,是没有意识到自己到了创造力高峰的时候却被现实牵绊,我们用自己的青春和人家的大半生去比较,当然妄自菲薄了,人家可以投入的时间就比你多得多。中国程序员职业黄金时期所要面对的干扰非常大,首先是要让自己融入英语的技术圈子,其次是要应付一个不争气没追求强加个人的世俗文化。

当然小编并不是在长他人志气,灭本国威风,只是想小小提醒作为程序员的你,一定不要以学编程、拿高薪作为自己唯一的人生目标。就好像创业路上的你,无论在什么时候,我们都要不断提升自己的专业度和竞争力,永远保持一颗热爱自己事业的工匠之心,坚定的走下去。互联网行业千变万化,要不断的学习,更新知识系统,才能永远不被这个社会所淘汰。
文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-10-22 20:39:57

中国程序员 VS 美国程序员,差距就在这五点的相关文章

大龄程序员没有年轻程序员脑瓜灵活

最近我过了40岁生日. 一个朋友开玩笑的对我说:"嘿,我想这个意味着你已经老的不适合再去编程了吧!",我表面上哈哈一笑,但心里却触动不少. 年龄歧视在我们这行里并不可笑. 就像今天用Java的兄弟沦落到这个地步一样,几年前,使用COBOL家伙被我们从心底里嘲笑其老旧的编码方式和缺乏新技术中的灵活性. 如今轮到我被他们嘲笑了. 也许你也是这样. 如果目前没有,我估计这一天也会很快到来. 你还会笑的出来吗? 是的,我想会跟我一样的. 我们这一行受年龄歧视体现在好几个方面. 大家都热衷于热门

C++程序员和Java程序员的差异

首先说明,这几年接触的最多的程序员就是C++程序员和Java程序员,这只是我自己的一点体会而已,一个人的眼光难免是浅薄的.不过,欢迎拍砖,也欢迎对号入座.   从对基础知识掌握的程度来说,例如数据结构和算法,C++程序员要比Java程序员牢靠得多.究其原因,大概是因为C++程序员需要经常自己实现那些项目基础设施,但是Java程序员大多拿来即用.公平地说,C++不是一门适合程序员初学者的语言,但是Java是.C++程序看起来确实要比Java 程序稍难懂一些,C++程序员往往思维更加严密.另一方面,

程序人生-一个程序员对学弟学妹建议

  程序人生-一个程序员对学弟学妹建议 基础的课程,比方数据结构,操作系统原理等等虽然不能让你立马就实现一个linux(这是许多人嘲笑理论课程无用的原因),但它们能够显著的减少你在学习新技术时学习曲线的坡度.我把大二的所有时间花在了汇编,我始终认为,对一个初学者来说,IT界的技术风潮是不可追赶.我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心.而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑.

都说大家忍不了程序员,那么程序员有没有忍不了的事情

简评:都说大家忍不了程序员,什么程序员不善于和大家交流沟通,特立独行,每天穿着固定,不会撩妹还宅...其实程序员也有很多忍不了的事情,比方说产品跑来和你说,这个功能很简单,实现一下就行了,以及其他同学让你帮助他PS证件照,我是软件工程师,不是PS大师好哇? 栈和队列的区别是啥? 吃多了拉就是队列:吃多了吐就是栈. 世界上最遥远的距离不是生与死,而是你亲手制造的Bug就在你眼前,你却怎么都找不到她. <C++程序设计语言>比<C程序设计语言>厚了几倍...果然有了对象就麻烦很多. 怎

男程序员和女程序员的待遇差别

问题描述 我想问一哈 在你们公司 男程序员和女程序员待遇有没得差别? 差别大不? 大概是多少?? 解决方案 待遇和等级都不分男女的 但是男程序员毕竟是多数混到PM级别的 男的也会多一点..待遇没差别 女的会好一点,放假多一点 最好的待遇就是有很多男同胞爱戴着 ....解决方案二:按能力来,不分男女.......解决方案三:我们公司待遇是按照等级来分的,公司所有部门都按照六级划分,我个人是初级软件工程师,工资是4K,中级大概6K,高级的话8K以上:和性别没有什么关系吧解决方案四:按职位来给钱,同工

中国AI研究超美国?专家:比如深度学习已发文章数

当今世界人工智能领域,有三位顶级专家被业内奉为"神一样的人物",其中两位来自加拿大,一位来自法国.他们分别是加拿大多伦多大学的GeoffreyHinton和蒙特利尔大学的终身教授YoshuaBengio,以及Facebook人工智能研究部门(FAIR)负责人YannLeCun(下称"LeCun")--这位来自巴黎的学者目前担任纽约大学终身教授,他还是纽约大学数据科学中心的创始人. YannLeCun在今年3月走进中国的大学,在清华大学和上海纽约大学分别进行了两场人工

不想用C#了,就是因为它太慢了,开发IDE要求的也高,只能开发些WEB程序,做其它的程序,好象没有那个公司在用

问题描述 不想用C#了,就是因为它太慢了,开发IDE要求的也高,只能开发些WEB程序,做其它的程序,好象没有那个公司在用Delphi支持原生代码开发,RAD,性能高,IDE硬件要求不高,还可以象C++一样嵌入汇编,做图像,数据库,硬件控制太好了大家给个建议! 解决方案 解决方案二:为后五年做准备.解决方案三:不管是啥程序员,我个人认为C#必须详细了解,不一定要用它来开发东西,但是C#有一些思想比先出来的语种先进,学着在其他程序实现,也许会有很大好处.解决方案四:还有就是很多人学Java半途而废,

.NET 程序,调用其它程序

程序 .NET 程序,调用其它程序 using System;using System.Diagnostics; namespace Jmv_Demo{ /// <summary> /// CmdUtility 的摘要说明. /// </summary> public class CmdUtility { /// <summary> /// 执行cmd.exe命令 /// </summary> /// <param name="command

.NET客户端应用程序:.NET应用程序更新组件(6)

程序|客户端 (接上篇) 按需求安装 通过利用.NET框架可伸缩的本质,.NET应用程序更新组件能够使得另一种特性----按需求安装可行.通过使用按需求安装,只有主可执行程序被显式安装到客户机上.应用程序剩下的部分可以根据基本需要自动下载和安装. 通过.NET应用程序更新组件的AutoFileLoad属性来使得按需求安装可用或禁用.你必须仔细考虑在你的应用程序中程序集边界所处的位置以及什么动作会引起程序集被下载.由于程序集的下载涉及到网络输入输出,因此下载所花费的时间是可变的.在程序集下载期间,