几乎每个软件开发的职位描述都有对编程语言的要求:“寻找有经验的C#开发员”, “软件工程师(Java)", ”雇PHP大拿“,”Ruby开发员”。 这是完全错误的。 如果你想要一个优秀的软件开发员, 你根本不应该关心他们用的什么语言。 对于一个真正优秀的开发者,语言不是阻挡他价值的壁垒。
如果你问任何一个程序员 ,一个优秀的软件开发人员的特点是什么, 你可能会得到下面类似的答案:
在上面列表中任何地方都没有说“精通 .NET委派” 或者“能够使用泛型”,没有一个特定语言的功能可以使软件开发人员做好工作。那么,为什么我们雇佣人员时专注于语言经验呢?
当然,当你使用一门编程语言的时候,你会学会一些特定的风格和模式。我在C#上度过了不太艰难的10000个小时之后,我非常熟悉这门语言的特性,这使得我可以写出非常干净和可读性非常强的代码。但是当我去使用一种我从未尝试过的新的语言的时候,我并不是马上就把以前10年的经验全都丢掉了。
我曾经因为我自己个人项目的缘故学习过新的编程语言,当然我用新语言写出来的代码的质量肯定不能和熟悉Qt的人写出来的代码相比。但是当我遇到一些东西(代码味道)让我感觉不太对劲的时候,我知道我得去寻找另一种解决方案或者做更多的研究了。这种可以对代码味道产生注意并且作出反映的能力,是你从经验中获得的,它将一直陪伴着你,不管你做什么工作、项目和使用什么编程语言。
其它翻译版本 (1) 加载中 编程语言的语法:比如,如何定义一个类,怎么去连接一个数据库;这种知识很容易学,并且大部分内容你可以在网上学到。知道代码重复是不好的,使用自动化测试去保证软件质量,把项目的组件进行分层;这些技能都是任何软件开发者都需要的经验,和特定的编程语言无关。你需要去聚焦这些以经验为基础的技能,而不是一些高校毕业生可以在网络上一天就学会的技能。你是依据项目经验和工作热情去雇佣软件开发人员的。如果你在寻找一个好的软件开发人员,你希望他到目前为止是积极主动的,他即使没有一个软件开发的工作,他在业余的时间也是在写代码。他曾经遇到过失败知道糟糕的代码是什么样的。他可以查看代码并且能找出提高代码质量、缩短开发时间或者性能等至少三个方面可以改进的地方。
你也希望这个人可以告诉你:“我不怎么用Java."这个程序员可以轻松识别个人能力并且可以意识到自己的不足,还能在第一时间告诉你你的软件或解决方案的缺点。这样的程序员将避免只使用已有的工具一哄而上扎进问题里,取而代之的是从分析问题并且提供多种可接受的解决方案。
其它翻译版本 (1) 加载中在我待的公司, 我们的第一次面试是关于文化和修养的. 在我们考虑你的技术能力之前我们会先考虑你是否适合我们的环境,是否对我们团队有益. 我们还会有些问题让你回答,不是用C#,而是用伪代码.因为最终我们关心的不是你把括弧放在哪儿或是你用“包”代替了"命名空间",而是你的经验,你解决问题的能力。
一名有经验的程序员应该能在几周内学会一种新的编程语言, 在一个月内熟练的使用它. 因此不要把注意力放在一些挂电话的细节上,而是写好你的招聘广告,组织好面试工作来找到有能力,有经验,对工作充满热情的开发人员.
其它翻译版本 (1) 加载中 本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务