为什么大多数职位提供给<language here>开发人员,而不是一般的开发人员?[关闭]


10

在理想的世界中:

帕特里克·麦肯齐(Patrick McKenzie)在一篇出色的文章《别称自己为程序员》和《其他职业建议》中解释说,语言无关紧要:

  • 开发人员通常是解决问题的人。开发人员不是以特定语言编写代码的人。

  • 企业不关心您所知道的语言。如果他们需要聘请使用特定语言编写的项目的开发人员,并且他们的候选人经验丰富,但从未用这种语言编写过代码,则仍会聘用他。

根据我作为开发人员和必须雇用其他开发人员的经验,观察到的结果非常相似:

  • N年的Java经验或N年的C#经验无关紧要。重要的是,候选人知道如何解决问题,知道意大利面条式代码和具有深思熟虑的体系结构的干净代码之间的区别,等等。

  • 我不在乎您以前使用的语言。对于一个C#项目,我宁愿雇用一个专业的开发人员,而不是只懂C#并且非常不懂C#的新手花一生来编写Java,Python和Ruby on Rails代码

  • 您使用一种语言获得的知识和经验几乎可以在任何其他语言中重用。

    一位经验丰富的开发人员使用Ruby on Rails进行Web开发,并在余下的职业生涯中使用Oracle编写Java桌面应用程序,非常适合使用Microsoft SQL Server的ASP.NET MVC项目。因为这个人已经知道她完成这项工作所需的一切,除了一些特定的东西和语法上的差异。

    另一方面,只做过几个ASP.NET MVC小型网站的人根本不适合,因为她可能不完全了解MVC架构,可能不知道什么是SQL性能分析,并且可能缺少其他一些基本知识。知识。

    不要告诉我我无法解决使用CodeIgniter的PHP网站的一个小问题,因为我以前从未使用过CodeIgniter。

在实践中:

在实践中,当我寻找自由职业者时,当我看到一般的工作机会时,它们是非常特定于语言的。

有些人会寻找在Magento有两年经验的PHP开发人员。其他人将寻找具有至少三年VB.NET经验的人,如果您给他们发送简历,提到您已经进行了C#开发六年,却没有提及VB.NET,则他们不会打扰回答。如果他们要求有Firebird经验的人,他们将不会听到您十年的Oracle经验。

为什么理论和我所描述的帕特里克·麦肯齐(Patrick McKenzie)是常识与工作机会的真实世界之间存在这种差异?


12
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.尽管您完全有能力解决问题,但是,如果根本原因是CodeIgniter(框架的少数怪癖之一,或者其许多未解决的错误之一),那么将花费大量的时间来解决问题。
扬尼斯2012年

12
您忘记了一些标签:<rant>...</rant>。说真的,这里有一个真正的问题吗?
独眼巨人

6
“我不在乎您以前使用的语言。对于一个C#项目,我宁愿雇用一个专业的开发人员花一生来编写Java,Python和Ruby on Rails代码,而不是只懂C#并且知道不好。” -带那个稻草人!这是错误的二分法。您的直言不讳对初学者是正确的,但不适用于需要对特定平台有深入了解的职位。
Jim in Texas

1
拥有某种语言经验的人会更快,更干净地完成这项工作,否则认为这只是妄想。
Thomas Bonini 2012年

当我成为招聘的人时,我会成为一列“必须使用Technobabble术语X,Y和Z”的名单的人。如果我可以找到那个人,我可以雇用他们。当我是找工作的人时,我可能会因为他们不看我而对他们不满,因为我脑子只有头脑,而不是他们想要的确切经验,但是如果我有他们想要的确切东西,我会期望的当场被录用。最终,这就是他们的要求,那就是应该的。
沃伦·P

Answers:


16

因为许多公司都配备人力资源无人机,所以他们对此一无所知。人力资源部说“候选人需要什么资格?” 说“六年C#”要比说“编写好的代码”要容易得多。那架无人机不知道“编写好的代码”是什么样子,也不知道如何通过他们是否可以编写好的代码来过滤简历。但是,他们可以快速阅读简历,并查看“五年三季度C#”并将其扔掉。


3
究竟。非开发人员和管理人员可能会you不休地看着您是否说您正在寻找具有类似技能的人,但除非他们对此表示满意,否则一开始就需要在工作中学习一点点知识(例如,特定的语法,而不是概念)。
Michael Durrant 2012年

我以为它们被称为HR猴子...我完全同意,但是在团队中加入<language here>大师是个好主意。
卢卡斯·马顿

3
在广告中添加“编写良好的代码”完全是胡说八道。每个人都认为他们写出了不错的代码。那些因其出色的代码编写技能而被定罪的人通常是编写最差代码的人。
尼基(

1
@nikie:这是一种简化。当然,您不会在广告中完全投放广告。
DeadMG 2012年

3
我不认为这是主要原因,因为没有人力资源部门的小型初创公司做的完全一样。
J. Maes 2012年

22

我认为现在应该搁置这个神话,即具有X年语言Y经验的开发人员可以无缝地转换为Y2语言。这不是它的工作方式。

如果您仅将语言视为其语法和通用模式,然后知道,例如Java,那么在使用C#时您将获得巨大的开端。但是,它不会为您准备WCF,WPF,“单击一次”,各种线程库Linq,当然也不会为您准备小册子所说的工作做好准备,但实际上并没有为您做准备。

您会看到自己不是在谈论语言,而是在谈论平台。在.NET平台是支持多种语言的很好的例子中,人们倾向于选择一个首选。

因此,当我要求C#开发人员时,我实际上是在为一位经验丰富的C#项目的.NET平台开发人员做广告。这些往往是.net服务器项目,winforms / wpf项目。


我同意。当然可以,但是很难。C系列语法很容易转移,但是对完整平台和工具集的真正理解需要花费很多时间。对于年轻的开发人员/程序员/分析师/编码人员,我的建议是在每个人都还属于初学者的同时,自行开发新技术。两三年前致力于HTML5,iOS和Android开发的人们现在状况良好。当然,有可能猜错(向我询问Flex),但这并不是世界末日。
吉姆(Jim)在德克萨斯州2012年

这主要是因为Java-> C#与C-> C ++-相似,从技术上讲,它们可能是在相同的基础上构建的,但是C#包含了您实际上想要使用的更多功能。从C#到Java,逆向转换要容易得多。
DeadMG

11

我可以想到一些原因:

  1. 员工与顾问-如果我要聘请顾问,我希望他/她在我们正在使用的技术堆栈中已达到最新速度。预计顾问很快就会有效率,因为他们没有时间摊销学习费用。
  2. 供应/需求-正如Doc所说,如果我要选择最有经验的候选人,我可以胜任这份工作。技术堆栈对于已建立的技术确实很重要。如果我正在寻找一个用Go开发的人(选择很少有人知道的语言),几乎没有人有使用它的经验,而我通常会回到技能组作为开发人员。

4

并非所有编程作业都相同。我当前的工作肯定适合您的模型。它涉及大量临时数据分析,我们根据需要选择和放下工具。我之所以被录用,部分原因是我拥有能够使用新工具快速提高工作效率的记录。

另一方面,有些工作正在寻找特定的技术专长。上世纪90年代,我在一家小型软件商店工作,我们需要快速开发C ++专业知识。尽管在我们的广告中明确要求C ++方面的专业知识,但大多数申请人对C ++的了解少于我。“但是我可以快速学习C ++!” 他们都说。是的,我确定您可以,但是我也可以,其他已经在那里的人也可以。我们正在寻找已经真正了解C ++的人员,因此随着我们其他人的发展,我们将获得内部专业知识。团队中再有一个初学者真的没有帮助。


1
+1:TEAM可以让部分甚至大部分开发人员是该语言的新手,但是拥有可以教其他人的语言专家会很有帮助。
TREE

3

企业不关心您所知道的语言。如果他们需要雇用以特定语言编写的项目的开发人员,并且他们有经验丰富的候选人,但从未用这种语言编写过代码,则仍会雇用他。

假设您正在寻找.NET / C#职位的候选人。如果您有两个应聘者,两个人似乎都具有同等的丰富经验,但是第一个应聘者已经在Java生态系统中积累了经验,第二个在.NET生态系统中已经有了经验-您最喜欢哪个?

其他人将寻找具有至少三年VB.NET经验的人,如果您给他们发送简历,提到您已经进行了C#开发六年,却没有提及VB.NET,则他们不会打扰回答。

谁能说您为什么没有得到答案?也许有足够的经验丰富的VB.NET开发人员申请这份工作?也许人力资源部门使用编程语言经验作为筛​​选器,以将求职申请的数量从100减少到10。您如上所述)。


2

在大多数基于项目的工作中,需要快速取得成果,人们需要尽快创造利润。

能够满足这些需求并且不受特定语言约束的人们非常稀缺,因此价格过高。这些人只会被那些要求令人难以置信的技能的大公司雇用。

能够解决问题但不能快速学习特定语言的人很少。他们仍然要花很多钱,而且他们还需要额外的时间来学习特定的语言。

通过要求特定语言的程序员,可以减少这种额外的时间成本。他已经学会了必需的技能,可以迅速取得成果。

简而言之,一个需要用JAVA完成的项目不需要昂贵的软件开发人员,也不需要普通的.net开发人员,后者需要时间来学习语言/框架。它需要用最少的钱立即得到结果,这是由已经具有JAVA经验并且具有相对较好的解决问题能力的家伙交付的。

一如既往,这是关于金钱,并获得最大的投资回报


2

我认为您只是在误解标准短语“ <language here>开发人员”。公司不会在广告中添加该短语,以阻止具有其他语言经验的开发人员。他们为什么要阻止有能力的开发人员?从雇主的角度来看,候选人越多越好。他们总是不能邀请自己不感兴趣的人。

这句话的真正意义是要告诉读者,这份工作将带来什么。恕我直言,这很有意义。您会申请以Z80汇编语言进行开发的工作吗?还是COBOL?还是Fortran?

而且,很显然,如果该公司有两名看上去同样聪明的候选人,那么具有<language here>经验的候选人将获胜。仅此而已。(在某些特殊情况下,只雇用一个项目或已迟到的项目,或公司使用<language here>开发的第一个项目的人员,您从一开始就真正需要使用该语言的经验,但我不认为这是规则。

顺便说一句,我的公司曾经按照您的建议写过广告(毕竟这似乎很有意义)。结果是毁灭性的。真正关心自己工作的人只是跳过了广告。绝望的人,适用于任何未平仓职位。我们再也没有尝试过。


1

退后一步,思考一下前提。您希望一个人做一些.net工作。您将其放在职位描述中,然后寻找具有该技能的候选人!这只是常识。

对于为什么这可能不是一个好主意,我当然同意您的更详尽的哲学观点,但是大多数人只会做广告,要求并寻找具有他们现在所需技能的候选人。就这么简单,所以我认为这回答了您的问题标题。

如果他们根本找不到任何候选人,或者经历了几个糟糕的候选人,那么他们可能会稍微学习一点,并且更能接受您所详述的内容。实际上,在我所在的区域(Ruby on Rails)中,现在有很多广告说“不需要经验,我们会训练你”,等等。事实上,一些顶级的Ruby on Rails组织是非常欢迎“没有不良习惯”的候选人可以接受培训。因此,某些组织采用了正确的方法。

还要记住,大多数广告是由外部招聘者或非技术性内部招聘者所提供的,他们只是不具备如您所描述的“边走边走”的知识。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.