`
harry
  • 浏览: 179434 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

四国程序员的比较

阅读更多

      最近以裁判的身份参加了公司举办的编程大赛,发现高手云集,对公司内部的程序员能力也有了更深入的了解。我觉得编程能力对程序员而言,虽然很重要, 但并不是 全部。那么作为一个程序员,到底应该具备什么样的能力呢?这个话题显然太大。不过我觉得可以看看其它国家的程序员,也许可以得到一些借鉴。我有幸和中国, 美国,印度和日本四国程序员有比较深入的合作过。虽然他们不一定有代表性,但我觉得他们的共性还是比较明显的。以下的比较纯属个人见解,欢迎指正。

      首先是日本程序员。他们的特点是非常仔细。 我认为很主要的一个原因是日本公司的需求非常细致。细致到在网页上, 连一个像素都不能偏差的地步。另外, 日本人的执行力非常强,对老板的承诺比命还重要。一个项目可以做到连续3个月天天加班,每天只睡4个小时。然而,高执行力背后的代价是低创造力。在日新月 异的互联网今天,很少听说日本工程师发明了哪些重要的技术。与其说这些特点是日本程序员的,不如说是大部分日本人的。因为在日本文化中,追求品质和遵守等 级制度是根深蒂固的。另外,技术领域中的很多专业词汇是外来语,以英语(论坛)为主。这些专业词汇往往会被翻译成片假名。而片假名的发言有时候和英语大相 径庭,导致沟通的困难。比如病毒一词在英语中是Virus,发音为歪儒斯,而日语的发音是味鲁斯。再例如服务器(Server)一词在日语中的发音是萨 巴,和英文发言简直风牛马不相及。因此与日本程序员沟通是比较痛苦的,除非你懂日语。

      其次来看看印度程序员。我所接触的印度工程师都是在美国工作的。虽然他们和印度本地的工程师肯定有区别,不过相似的地方应该更多一些吧。我觉得他们 的普遍优点就一个:流程做得好,文档写得好。 但 是他们写代码的能力,我个人的观点是一般般。我想这里面有两层原因。一是有相当一部分在美国工作的印度程序 员是半路出家。转行做程序员是为了生存而已。二是印度程序员在算法,数据机构等基本功方面的水平明显低于中国程序员的。这就导致他们写的很多代码逻辑性不 强和性能不优(以我的标准来看)。不过这两个问题在一定程度上被大量的文档和高性能的硬件设备弥补和掩盖了。在沟通方面,印度人的英语发音对西方人而言几 乎没有问题,但很难被中国人听懂,甚至往往被国人怀疑他们是不是在说英文。

     从某种意义上讲,日本程序员和印度程序员十分相似。他们都很敬业,都能让领导比较满意,但不要过多地期望他们能做得更好,因为他们的目标就是完成领 导指派的任务。日本程序员让领导满意的方法是不折不扣的执行和狂热的加班。而印度程序员让领导满意的方法是通过大量的文档来告诉领导他们的工作意义重大, 流程严谨,资料齐全,而且成本很低。夸张一点地讲:日本程序员善于做领导想做的事,印度程序员善于说领导想听的话。

     接下来说说美国程序员。美国程序员千奇百怪,好像很难只用几个词来定义他们。可能是因为美国是一个移民国家吧,本来就千奇百怪。但大部分程序员有一 个共同的特点:喜欢技术,甚至崇尚技术。 这 点在硅谷尤为突出。这就导致每个技术领域中都有一些人会废寝忘食地钻研。其实这和打游戏一样,如果你着了迷,自 然会忘了吃,忘了喝,拼命地玩。我所认识的美国程序员还有一个特点,才艺能力都不错。以前在波士顿工作的一家公司中,几十位工程师居然可以组成一个交响乐 团。有小提琴,大提琴,小号,竖琴,打击乐等各种各样的西洋乐器手。而且这些哥们姐们还不是一般地玩玩,周末都有自己的固定乐队,经常参加社区的表演。更 有甚者,在硅谷工作时的一位同事,白天写程序,晚上在自家的车库里练习乒乓球,竟然代表美国参加了悉尼和雅典的两届奥运会。说起写文档的能力,美国程序员 绝对不亚于印度人。但是美国人写文档不是为了老板,而是为了自己,为了分享。因此他们的文档往往读起来很有趣,很实用。当然,这会让老板有时候很头疼,因 为程序员不那么“听话”。他们不是给老板交差,而是要实现自己的想法,自己的设计,自己的完美。说白了,就是美国程序员有时候想法多了点。

最后是我们中国的程序员。和其他国家的程序员相比,我觉得他们的特点还是比较明显的。他们的算法能力普遍高于其它几个国家的。 这可能是我们的教育体 制导致的,比较注重理论知识。反过来,实践能力就相对差些。 我 们的程序员执行能力并不差,但在解决问题的能力上明显不足。往往需要把任务分解得很细以后才 能完成,独立解决问题的能力不够。另外在表达能力上也相对差些。相信大家一定见过技术水平很高,但表达能力很差的工程师。最好笑的是,我见过不少工程师拿 着一支写不出字的白板笔(我们的白板笔质量也确实不咋样),有模有样地在白板上写字。仿佛听众可以看得到他/她写得是什么。因为他/她完全沉浸在自己的逻 辑中,完全不去体会听众的感受。不过我认为这些缺点并不严重。

因为这些是属于技能和经验方面的东西,是可以通过实际工作或者培训来提升的。我认为国内程序员最大的问题还是所处的环境不利,导致相当一部分人比较 浮躁 和急功近利。 真正能够沉下心来钻研技术,热爱技术的是凤毛麟角。我在面试的时候,常常发现工程师知识面还挺广,但深度几乎没有。这样的人很难在技术领 域有所作为。我希望找到的人是,敢于承认自己不会的地方,但是只要会的东西,哪怕就一样,就要一定比别人理解得透,钻研得深。我相信一个人如果在某一个问 题上比别人做得好,在其它问题上也一定有能力超越别人。

虽然比较下来,看到中国程序员不少的问题。但作为群体,中国的程序员可能是全世界最聪明的工程师群体。因为环境的原因,使得他们不得不想法很多,顾 虑很多,无法最大程度地将聪明才智发挥在技术上。改变这种状况首先要从公司的管理层开始。只有技术负责人热爱技术,追求卓越,才可能为技术人员创造环境, 激励他们钻研和创新。技术负责人需要深入项目,和工程师们一起讨论技术设计,从而通过具体问题来提升工程师的能力,同时也防止自己的技术能力滑坡。在技术 管理上,很多国内的公司把工程师简单地作为资源,过于强调流程管理和资源管理。我的观点是:工程师不是高级蓝领,不能以管理生产线的方式来进行管理。优良 的环境只有靠大家一起来创造。中国工程师一定可以成为世界上最优秀的工程师群体。

分享到:
评论

相关推荐

    四国军棋希望对C++程序员有用啊

    C++写的四国军棋希望对C++程序员有用啊

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:  第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;  ...

    非科班出身程序员刷题-MyNaivePoem:我的天真诗

    非科班出身程序员刷题 MyNaivePoem 记录曾经的幼稚作品,大多为初高中时代所做。 目录 夏令营游清华 一舍情缘,两两作伴,三伏天下,四处寻车,五里徘徊,六神无主,七律长征,八方支援,九转回肠,十拿九稳,百年...

    --计算机程序设计人员国家职业标准.doc

    3职业等级 本职业共设三个等级,分别为:程序员(国家职业资格资格四级)、高级程序员(国 家职业资格三级)、程序设计师(国家职业资格二级). 1. 4职业环境 室内、常温 1. 5职业能力特征(略) 1. 6基本文化程序...

    软件工程师-唐骏日记

    国,他经历了不断尝试、自我拼搏的青年时代;在微软的十年,他从最基层的程序员走到微软中国区总裁的位 子;在即将离开微软的那些日子,他又独自经历了抉择前难熬的分分秒秒;在盛大的四年,他完成了从跨国企 业高管...

    软件工程思想

    每次回浙大我都要和林锐相聚,谈学术、论社会,直面人生,“位卑未敢忘忧国”,每每至凌晨。前不久我在某大学计算机系作讲座,最后冒昧谈了几句题外话,其中之一是“学问与明理”。古人云:“读书明理”,意即读书...

    软件工程思想--林锐

    每次回浙大我都要和林锐相聚,谈学术、论社会,直面人生,“位卑未敢忘忧国”,每每至凌晨。前不久我在某大学计算机系作讲座,最后冒昧谈了几句题外话,其中之一是“学问与明理”。古人云:“读书明理”,意即读书要...

    四史学习全自动AI答题源码

    四史学习挂机全自动AI答题学习脚本开源了,AI全自动解放双手,开始答题刷分旅程。(首先微信关注“中国大学生在线”->菜单栏中间->四史学习进入填写信息绑定微信后再获取UID使用)成品+源码已打包。

    2010 SD2.0大会演讲实录.doc

    我是CSDN和《程序员》杂志的总编刘江,非常高兴今天有机会到上海来主持大会,这次大会的是我们软件开发2.0大会第四届,也是第一次来到上海举办,当然上海是我们的客场也是我们的主场,因为今年我们和CSDN之外另一个...

    基于微信小程序的移动学习平台环境构建与系统设计开发.pdf

    第 一 节 研 究 背 景 i 一 、 宏 观 环 境 1 二 、 学 习 环 境 新 趋 势 1 三 、 f 2 四 、 移 动 学 习 的 现 实 需 要 2 五 、 微 信 的 发 展 与 流 行 3 第 二 节 国 内 外 研 究 现状 3 一 、 国 内 ...

    java网上拍卖管理系统设计与实现(SSM项目)+毕业论文+毕业设计+数据库文档

    第一章节绪论,介绍项目开发的背景,阐述电子发展的历史,以及国内外电子商务的现状。 第二章节介绍系统开发所使用的技术。包括SSM框架、mysql数据库、Tomcat服务器等相关技术及开发工具。 第三章节介绍网上拍卖系统...

    基于Spring Boot的在线外卖系统的设计与实现 .rar(毕业论文+程序源码)

    第四章 系统总体设计 4.1系统设计概要 4.2系统流程 4.3系统模块设计 15 4.3.1 实体图设计 16 4.3.2 ER图设计 17 第五章 数据库的设计 17 5.1数据库设计原则 17 5.2数据库实体设计 17 第六章 程序模块的界面设计 6.1...

Global site tag (gtag.js) - Google Analytics