对于普通的桌面应用程序编程来说,“只雇用最好的人”是否真的有用吗?[关闭]


61

对于背景,我们正在做桌面工程应用程序,并使用类似AutoCAD的UI,类似于etabs

让我感到困扰的一件事是,是否有必要聘请最优秀的开发人员?首先,我们在招聘方面遇到了很大的困难;我们看到的大多数简历都在做简单的CRUD应用程序,或者在做SharePoint自定义,我认为这些自定义并不涉及很多核心编程。即使是我们要求面试的人,大多数人也无法进行斐波那契数列和简单的二进制搜索,而且我们足够仁慈地给出提示并明确指出问题所在,从而使考生不必查找字典即可检查“斐波那契数列”是什么意思。

这让我想到:是的,我们在进行计算几何/线性编程时确实需要一定程度的编程才能,在设计软件体系结构或确定要使用哪种软件模式时确实需要一定程度的编程才能。 ,我们的许多代码只是管道代码(我认为),可以由对编程熟悉的人来完成。

鉴于我们现在确实需要编程人才,并且考虑到聘用超级巨星开发人员非常困难,我想降低自己的水准,只聘用一般的人才,这与Joel的主张直接矛盾。

你怎么看?

编辑:您不需要重写整个计算几何/线性编程库;就我的应用程序而言,您需要做的就是能够知道如何将手头的问题转化为适当的计算几何/线性编程术语,并知道何时/如何使用现有库。因此,它并不像看起来那样困难。


53
标准答案:也许您提供的工资太低,而更好的开发人员对为您工作不感兴趣?无论如何,如果您遇到无法进行二进制搜索的人的问题,而不是缺少超级明星的问题,那么普通的普通编码器应该可以做到。
quant_dev

15
您的标题大写字母使我将其读取为PANDA :)
cthom06 2011年

13
他们不能写斐波那契数列吗?这绝不是难事……这些人实际上不能成为程序员。
Ben B.

6
引力子,这全都取决于工资。如果(例如)您提供了三倍的薪水市场价值,那么您就会有愿意离开工作岗位的人来为您工作。我不建议您提供那么多,但这确实说明了这一点。如果您想要好的简历,那么您需要为此付出代价。
riwalk

7
@ user1525,因为它有些琐碎,开发人员通常不应该在实现它上遇到问题(递归或不递归)
2011年

Answers:


110

我建议您停止阅读Joel。他在博客中写的内容与他在该站点上的回答相矛盾,因此我不会真正相信他的话。

造就超级巨星的原因以及为什么必须要拥有一个巨星,引发了漫长而漫长的讨论。这是精英主义,不切实际。

您需要的是一个能够做到以下几点的人:

  1. 愿意做自己在做的事
  2. 会成为一个热情的程序员
  3. 有潜力学习正确完成工作所需的条件

其余的都不重要。

您不会相信会有那么多年轻的毕业生,他们除了进入CS这类项目之外,别无他求,并且从不考虑编写CRUD应用程序。前一段时间我是其中的一员,我几乎梦想着加入一个围绕编译器开发的项目,但是找不到一个。为什么不给其中一个机会呢?

我不相信AutoCAD是由超人编写的。大多数成功的项目都是由只想完成事情的人完成的,而他们确实希望做到这一点。


我们看到的大多数简历都在做简单的CRUD应用或SharePoint自定义

如果大多数工作都需要那么做,该怎么办?人们可能在大学学习过CS,甚至真的很擅长CS,但是如果他们十年来从未在实际编程中使用过CS,那么您就不能期望他们会记住它。显然,如果没有在任何地方使用此知识,那么每年都不会有人翻阅旧的CS书籍。


11
惊人的答案!

33
是的很好,但是我与热情的,没有头绪的人一起工作。它们很重,您不希望它们出现在组织中。因此,进行一些BASIC能力测试以淘汰真正笨拙的笨拙的人是一件非常好的事情。
quick_now 2011年

3
最后一段向我介绍了三通。
ozz 2011年

20
看到很多完全没有用的“能力测试”,甚至还有明显的错误(指出并指出错误使您未能通过测试,发现和指出错误是我们作为开发人员的一部分工作...)。
jwenting 2011年

2
@Developer Art,也许这对您来说很幸运?如果您无法使他们相信面试问题的错误,请想象一下您在工作中会遇到什么麻烦。
Mark Ransom

41

我最喜欢的一本书是首先打破所有规则。它有很多有关普通经理和优秀经理之间差异的信息。好的管理者一遍又一遍地说出的关键见解之一,是其中一句话的总结。我从来没有等太久才能找到合适的员工,而且我也从来没有足够快地解雇错误的员工。 是的,花很长时间雇用员工很令人沮丧,但是值得一试。

您应该记住的第二点是,以项目吞吐量衡量时,由5至8人组成的团队的生产力达到峰值。在拥有超过20人的团队之前,您无法回到同样的生产力。对于使团队成长到超过小型团队动态工作的规模要非常非常谨慎。而且,如果您要保持在该阈值以下,那么您真的希望这5至8个人成为好人。

这两点都强烈表明了坚持寻找合适的人选。


2
对该报价+1。它完美地反映了过去几年我已经意识到的事情。
克里斯(Kris)

5-8高峰的有趣之处在于,只要您有10个人,您就可以拆分:)当然,工作也需要拆分,而且最好不要随意拆分……
Matthieu M.11年

@ mattieu-m:很多人都有这种理论。如果实际上这两个小组最终需要进行大量互动,那么这是行不通的。如果可以给他们真正独立的关注点,那么它将很好。
btilly 2011年

26

每个人都声称“只雇用前1个百分位”。如果确实如此,那么100%的就业人口将全部位于所有人的“最高1%”之内,因此99%的人口将失业(在任何给定领域)。因为显然不是这种情况,而且我们都有经验丰富的人,但他们显然不在该组中(您为什么还要问这个问题……),我们知道事实并非如此。

实际上,仅由此类人员组成的组织将非常不稳定。自我过多,思想冲突太多。要么因为每个人都做自己的事而崩溃,要么陷入永无止境的关于一切相对优点的理论讨论之中,要么在需要做出决定时随着情绪高涨演变成持续不断的大喊大叫。


13
麻烦在于,仅仅因为您只聘用了应聘者中前1%的候选人,并不意味着您就雇用了前1%的开发人员。8')就*超级英雄而言,他们的频率被认为是团队其他成员的问题。一个人以200%的比例工作但将5人减少到50%并不是净收益。
Mark Booth,

2
+1:从统计上看,大多数人都在平均值的几个百分点之内。任何不欣赏它的人都生活在梦想中。而且您绝对是对的:距离均值过高的人具有破坏性,无论他们的能力是高于还是低于平均水平。
Satanicpuppy 2011年

5
@Satanicpuppy:从统计上看,在正态分布下,大约三分之二的人与平均值相差一个标准差,而98%的人在两个标准差以内。这没有说明标准偏差是多少,或者实际上是否有任意分布是正态的。程序员之间的编程能力肯定存在偏差,甚至可能是正态分布的正确尾巴。
David Thornley

11
一个主要的原因,为什么中编程天赋的程序员可能会被扭曲和/或正态分布的右侧尾部是,如果在编程人才人类呈正态分布。成为程序员的人类子样本是该分布的有偏样本;也就是说,编程水平一般或更差的人很少成为程序员。相对于总体而言,这可以使“中等”程序员的才能高于平均水平,也可以使程序员的分配人才看起来像正态分布的右尾。
Michael McGowan

2
@david:“没有人能远低于平均水平”?我希望我在你工作的地方工作。
Satanicpuppy 2011年

25

您需要问的第一件事是为什么您得到的简历不符合您想要的标准。我曾与很多好人一起工作,所以他们在那里,对我来说,该应用程序听起来很有趣。如果您找不到能够进行斐波那契数列和二进制搜索的人(这比看起来要困难得多;根据Knuth的说法,从首次发行到首次发行正确的出版物已经过去了好几年),您正在做一些事情来推动好人走了。

您要求的技能超出您的意愿吗?您在错误的位置刊登广告吗?您的公司在地理位置或声誉方面没有吸引力吗?这是您的第一个也是最基本的问题,也是您急需解决的问题。您和您的同事无疑会认识一些不适合您的好人。向他们展示您所拥有的,并询问他们是否会受到诱惑,如果不是,为什么呢。您可能太接近问题了,无法独立理解它。

不要雇用人,因为他们是最好的人。雇用人们,因为他们将能够做您想做的事情。如果您因为平庸而雇用平庸的人才,那您将慢慢失去优秀的人才,而最终您将被那些代数不稳定的人用计算几何去做。(雇用平庸的人是因为您有几个平庸的程序员的工作,但这是另一回事,但是您必须能够在需要的地方雇用高素质的人才。)


7
因为人力资源部门在筛选软件候选人方面完全没有能力。要求:10年的咖啡脚本编写经验,40年的PHP编程经验,教育程度:BS / BA
隐身时间

1
@ user1525:这很可能是人力资源方面的无能,但重要的是要找出原因以及如何纠正它(或者发现它是不可纠正的,因此很明显是时候该跳船了)。我不会下结论。您的答案确实建议了另一种方法:让好人提交简历,并查看人力资源部门如何处理他们。
David Thornley,

18

“大多数人无法做斐波那契数列和简单的二进制搜索”

您的标准肯定是错误的。在我们小组中,我们都是物理学家或工程师。我敢打赌,没人能进行二进制搜索,因为我们没有参加CS课程,而在现实生活中,我们为此使用了一个库。我什至要说:亲自写binsearch的人不知道如何专注于重要的事情。

如果候选人很聪明并且适合该小组,这将具有更大的重要性。如果您想检查他的编程才能,请给他/她一个在家做的工作。记下他/她花了多长时间,并讨论结果以找出这是否是候选人真正的工作。


3
可能不会预期申请人会完全正确地执行二进制搜索,但是如果您可以给申请人一些提示,则他或她应该能够接近。IMO,看到人们如何解决面临的挑战比让他们脑子里有百科全书更有趣。
2011年

11
我是一名物理学家,经过培训,我可以被蒙住眼睛并用一只手绑在身后进行二进制搜索。抱歉,但不知道如何编写一个简单的二进制搜索实现是...糟糕。没有其他词可以形容它,只是可怜。
quant_dev

是的,你是对的。二进制搜索,至少是基本概念,确实可以实现。我也可以
迈克尔

...至少是基本概念(尽管我必须先查清斐波那契的内容才能做斐波那契)。但是这样的测试使刚刚参加CS课或只是偶然准备问题的人处于优势。为候选人提供真实的编程示例会更有用。它显示了他们如何在没有立即压力的情况下解决更复杂的问题,并且还可能显示了候选人,您希望他们进行什么样的工作(举一个很好的例子)。比教科书上的问题恕我直言更有用。
迈克尔

2
不知道斐波那契数列的定义并不令人担心。但是,在解释完之后无法编写程序进行计算令人担忧(即使您希望他们做的只是在一个简单的CRUD应用程序中计算小计!)。
斯蒂芬·斯蒂尔

13

我认为“聘请最好的人才”已成为一种崇拜。

大多数编程工作是例行的,而不是创造性的。即使在从事真正有创意的新项目时。它大部分是单调的,并且通常基于模式。对于UI来说尤其如此。

大多数现代系统还需要很多人来编写它们,从本质上讲,它们都不是最好的。大多数人是平均水平的,即使不是,他们仍然必须做很多“平均”的任务。

话虽如此,要求基本能力和最低明智要求并不是没有道理,也不是您应该妥协的事情。

考虑常规手术:根据您的风险承受能力,您可能希望让普通的医生进行手术,而不是等待10年才能让医学院的院长有时间做手术。这并不意味着您应该让手术有序进行。


不是为了qui讽……而是执行过数百或数千次此类手术的“普通”医生可能比医学院校院长更为可取,后者可能有更多知识,但经验不足
JoelFan 2011年

8

无论如何,“聘用最好的人才”往往意味着“聘用目前在我们所处的位置可获得的最好的人才”,并且对不同的公司而言意味着不同的事情。有些人想要摇滚明星编码器,另一些人想要细致的软件工程师,而下一个则需要经验丰富的软件工匠。没有“万能的最佳选择”,因此请记住这一点,也许您的工作规格建议您正在寻找一种类型的程序员,而面试却说您正在寻找另一种类型的程序员。突然,您没有比赛。

就是说,我不喜欢和一般的程序员一起工作。一般而言,经验与他们无关(他们可能已经编程了20年,但仍然不是很擅长),但是一切都与能力和热情有关。如果马马虎虎影响了这两个中的任何一个,那么您就遇到了问题。雇用那些需要团队其他成员重新投入工作的人也没有意义,因为他们的代码还不够好。座位上的烙印并不一定总能解决问题,不幸的是,座位上的烙印可能还意味着更好的团队成员要努力工作清理程序员所交付的烂摊子,因此他们需要做更多的工作。。

有些人不是摇滚明星,但他们是可靠的中级程序员。他们是团队中的一员,这不是我对“一般程序员”的意思。后者是几乎每年避免在绩效考核时被解雇的人。


1
嗯,甚至“ rockstar程序员”这个词也让我想吐。
ozz 2011年

6

作为经理类型,我同意聘用“收入最高的1%”职位不切实际,也没有必要。我的建议是聘请合适的团队来构建和维护您的产品(可能是两个非常不同的团队,因为构建和维护的需求截然不同)

我强烈建议您确定团队中目前有“关键人物”的人(例如,做好事,有良好的态度,可以很好地应对不确定性/高水平要求等),然后雇用他们拥有的人过去曾与之合作过(显然是尊重的)。这消除了面试过程中的许多不确定性,并有助于使团队凝聚。

此外,更多的“长期”-大量投资实习计划。如果您的编程团队有20人,那么每年请5名实习生,并为他们提供实际的工作。每年带回您喜欢的一两个,然后再引入5个随机变量。这可能是使您的团队充满优秀程序员的最佳方法。然后,您可以趁机雇用外部人员,并提高这些候选人的门槛。

如前所述,请注意您的面试过程。让应聘者编写代码(或者更好地,逐步解决“ 1小时带回家”的问题),使他们与团队共进午餐。了解他们的技术和人际交往能力。即使您迫切希望再有20个人参加下周开始的一个大型项目,也不要害怕说“不”。


6

以我的经验,Paretto Principle也适用于编程:80%的工作由20%的开发人员完成,反之亦然。好的,数字可能会被夸大。实际上,您将有大约20%的员工从事50%的工作(按工作我的意思是出色的工作,而不仅仅是代码行)。实际上更像是钟形曲线。因此,在10人一组的团队中,您将拥有1个英雄,2个伟人,4个平均水平和2-3个可悲的人。

许多公司使用贝尔曲线来评估。因此,无论您的候选人有多聪明,他们都会落入自己的水平。您不能拥有一个所有人都处于同一水平的团队。不会发生


2
+1,我同意。但是我认为问题是:您是否需要“可悲的”(例如,为了团队士气或其他目的),或者如果没有他们,团队会做得更好吗?您能在工作面试中认出他们吗?
nikie 2011年

10
定义可悲。如果他们是出色的小家伙,他们无聊地做着艰苦的工作,却无法实现奇迹般的飞跃,那么您还是他们。但是,如果他们只是绝望而又无能为力,那就是浪费空间。
fast_now 2011年

保留可悲之人的唯一原因是您无法找人更好地替代他们。他们做我们所谓的“驴子的工作”:不需要太多思考的微小或大规模的更改。
DPD

1
是否可以在面试中找到他们。是的,取决于面试官的技能。我让他们来处理一些texbook程序和问题。如果他们超过了这个水平,我会给他们一些更复杂的问题,以判断他们是否可以思考。可怜的人可能会善于语法,但这只是因为他们死记硬背地学习了它,却没有真正理解它。他们会失败地解决问题。有些人会告诉你,他们无法独立思考,只能使用Ctrl + C,Ctrl + V语言运行
DPD

4
驴无人机至少可以正常工作。当他们想在3周内用Hasmell的几个链接重写Haskell的10年开发内容时,他们碰到的其他一切都变成了cr * p。那你真的不想要他们!
quick_now 2011年

4

这里已经有很多答案,但是我认为仍然有一个问题需要讨论:雇用这样的人对您的软件质量有何影响,以及如何使您的经理生活变得更加艰难。

答案是“是否需要雇用最优秀的开发人员?” 永远是个大胖子。当然,实际上,这并非总是可能的。我认为即使考虑这个问题,您所做的危险错误也是认为“我们的软件是如此简单,即使某人都能做到”。这是错误的。

毫无疑问,您的软件将完成工作,但是,一个优秀的团队与一个普通的团队所期望的结果会大不相同。您将遇到更多的错误,更多的性能问题,更多的可维护性和可伸缩性问题,等等。您必须通过更复杂的问题来照顾您的一般人。您必须通过适当的体系结构决策来照顾一般的人。

如果您接受并准备好进行管理,那就可以了。只是为过程和结果做好准备。


+1。是。您可以雇用甚至不能在帮助下编写二进制搜索并让他们成为纯净重量以外的任何东西的人(可能是净负产量)的想法是完全荒谬的。
汤姆·安德森

3

我认为聘请优秀的开发人员并不是真正的问题。真正的挑战是让他们为您工作。

有需要雇用最好的人吗?
我相信是这样。优秀的开发人员不只是按时完成所有工作的开发人员。这样的人不仅比其他人更有生产力。优秀的开发人员也以身作则,并给其他团队成员以鼓舞。与他们一起工作时,其他人可以大大进步。

好的,因此您将降低您的标准。太酷了,雇用一些非常糟糕的人后,您可能会改变主意。可以完美地回答您所有CS问题的人,但是谁不能真正编写一行生产代码。祝你好运:)


3

让我们退后一步。

我们要做什么?编写软件。

为什么我们认为我们需要聘请最好的人才?因为那个怪异的Arnold小孩无法从湿纸袋里掏出自己的路,现在SQL搞砸了,我无法登录。

好的,那是什么最好的我不知道,他可能是一个想要很多钱的人,他的履历长六英尺,投资组合丰富,曾在Google或其他公司工作过。他应该有一个学位,名字后面应该有几个字母。是的,这听起来对我来说是最好的,从最好的方面来说,我的意思是说那个人不是那个疯狂的阿诺德孩子。哦,他应该知道该怎么做一些我在学校听说过的事情,例如“写泡沫排序”或任何他们所谓的事情。我会请其他人列出他们在学校要做的一些棘手的事情,是的。

听起来您只是不想让那个怪胎般的阿诺德小子?你会?我已经厌倦了错误的代码,花了很长时间才能完成工作,而我采访的这些新手告诉我,我需要重新编写一切!

是的,你问那个怪胎阿诺德的孩子怎么办?创建一个PHP网站,编写一些jQuery,让PHP使用MSSQL做一些基本的CRUD,并更改周围的背景颜色。

这听起来像是一项非常适合最优秀的任务吗?我敢肯定,最好的人可以做到,但是可能任何拥有与此匹配的正确技能的人都可以做到。

所以,您不需要最好的吗?是的,我只需要一个具有满足我目标的技能的人。

哦。是的


@ user1525,它不是CRUD应用。它是工程软件。
Graviton

不总是。那里的许多工作不需要任何数据结构,算法或计算复杂性的知识。当然,它们不是Google搜索的工作,但对此有巨大的需求。只需查看工作板上的大多数帖子,“我需要一个jQuery插件”或“给我一个看起来像这些psd的iPhone应用程序”即可。人们要么想要最好的,要么最便宜的。
隐身

3

您的问题标题提到“普通桌面应用程序”,但是您的文字谈到需要应用计算几何和线性编程的知识。这些应用领域催生了庞大的,数十年的研究计划,并对任何进展都产生了巨大的社会后果(回想起,线性规划抽象了资源分配)。结果,有很多复杂的方法可以很好地解决这些领域中的问题。

不好的租金

  • 可能甚至没有听说过这类问题,
  • 可能不熟悉常见的解决方案,
  • 可能不会知道那里有更好的东西(提示:如果大多数本科生都听说过这些问题,他们大多数都不会听说过这些花哨的东西),并且
  • 几乎肯定要花很多时间才能实现这样的事情(考虑到我已经看到其中一些人在整个研究生课程中介绍了适合的数据结构,包括教授)。

换句话说,考虑一下您是否真的在做行人。如果您很棒,雇用应该会容易得多。如果您不愿意,请支持可以做您需要的人。


您无需重写整个计算几何/线性编程库;就我的应用程序而言,您需要做的就是能够知道如何将手头的问题转化为适当的计算几何/线性编程术语,并知道何时/如何使用现有库。
Graviton

2

当然,按照乔尔的标准,我不是超级巨星程序员。尽管如此,在我作为开发人员的20年职业生涯中,我已经写了很多成功的项目。我本来可以解决您的问题的。但是从我的工作经验来看,实际上要进行很多复杂的工作是通过要求您的数据库或库函数来完成的,而这些工作要少得多。

但是,如果您决定雇用经验不足的人员,则应考虑使用易于处理的技术。例如,如果您计划在整个项目中使用C ++,则将C ++部分限制为由最优秀的人编写的库,并让其他人在Visual Basic中实现用户界面。


2

写下您将加入您的行列的员工搜索的值。

当唯一的欣赏价值是编程能力时,您会发现自己很快被重视这一点的人所包围。由于大多数真正称职的程序员都拥有更完善的价值体系,因此他们将避免加入您的团队。

但是,您更有可能正在寻找创新,创意,可信赖,博学,好奇,自学,善于交际,称职和敬业的人。表明您的公司理解并尊重这些价值观,并愿意帮助其员工进一步发展它们。

了解并拥抱当前员工的价值观,并在您的工作申请中进行交流。具有可持续价值体系的优秀公司会吸引优秀员工。


-1:如果您说(和OP讨论过)金钱,那当然是有道理的。我不明白这个答案会对他有什么帮助。您基本上是说,如果我理解正确,他就不会在自己的应用程序中投放足够的营销?好吧,也许这会有所帮助,但我通常不会看到很多高素质的人才没有在.. duh ..能力方面赋予至少合理的价值?就像我说的那样,用金钱代替“编程能力”,您的回答很有道理,但对不起,我没有。
2011年

如果您不理解我的评论,也许您不应该修改它。无论如何,我的意思很简单。随着时间的流逝,我遇到了很多优秀的程序员。他们知道他们的语言,算法,数学,物理学...但是,首先使他们变得出色的原因不仅在于工艺,还在于他们对技术的兴趣。他们经常珍视自己和他人的好奇心。他们将独立的博学视为重要的特征(或价值),或者受到周围有创造力的人们的启发。通常,这些价值比收入更重要。
Dibbeke

@Dibbeke:好吧,我也将其修改了,部分原因是我不知道这与问题有什么关系。好的咆哮,我也不同意您的最后评论(尽管您的回答是别的),但我仍然看不到它将如何帮助OP或回答实际问题。
2011年

@ n1ck当您说营销时,我开始怀疑是否基于基本价值进行招聘过程是否真的相同。我不知道,但我确实认识到建立信任和尊重的社交网络会受到很大的影响。反过来,这会影响公司的声誉,并帮助您吸引那些顶尖的软件开发人员。
Dibbeke'5

@Dibbeke:不确定我是否能得到您的最后评论,但我想我至少同意一点。但是同样,我不确定它对OP是否有帮助(尽管我现在看到了更多与问题的关系)。我之所以这么说,是因为他从未谈论过他的公司,所以是的,也许这可能是他的公司声誉不好的原因,但我想您正在得出结论..
n1ckp 2011年

1

在任何组织中,您都有经验丰富的人而经验较少的人。不仅如此,一个领域的专家可以成为另一个领域的新手。当然,一个热心的业余爱好者对代码库有害无益,但这就是他们学习的方式-从纠正错误和与经验丰富的同事讨论经验。

我的建议是,您不是要聘请超级巨星,而是要聘请那些相当聪明,将与您的公司文化相适应,热衷于学习并了解自己的局限性的人。


1

当然,您应该渴望只雇用最优秀的人才。这并不意味着您一定会成功-只有那么多“最好的”游戏可以走,在吸引他们的战斗中会有赢家和输家。这很大程度上取决于您的能力和努力解决问题的意愿,以及您可以使用的资源。

在开始之前放弃是最可靠的输家。


1

二进制搜索是一个有趣的问题,因为众所周知,大多数程序员实际上很难正确地编写它(Bently在Programming Pearls中对此进行了介绍)。只要您不根据候选人无法解决问题而排除候选人,也许对它进行测试就不错。如果他们快速正确地解决了问题,那么至少它暗示了他们是哪种类型的程序员,因此您可以在特定的情况下获得更多的信息。


1

您确实需要雇用最好的人。但是该词已多次被引用。您需要找到具有该职位所需技能的最佳人选,而不是从整体上寻找最佳程序员。软件开发是广泛的,并非每个职位都需要相同的技术知识。

问问自己这个问题(您已经做了..):如果您在同一职位上有另一位工程师五年,您是否希望她能记住斐波南契数列和二进制搜索?

如果答案是否定的,则更改面试方式。如果您想使用google或bing等搜索应用程序,可能需要了解十二种搜索算法。其他所有人都只使用map.get(“”);

将您的面试针对职位的需求,而不是针对课本的优秀程序员。


1

如果您真的不关心质量,那么我建议您使用其中一个外包网站并从小型项目开始。然后,如果他们可以完成工作,您可以付钱给他们,如果他们做不到,则有一种简单的保释方法。

但是,我怀疑桌面工程应用程序中是否真的有很多例程代码。它们可能非常复杂,并且大多数程序员都不擅长管理复杂性。您可以轻松地创建许多即时的旧版代码,这些代码将使您的团队今后几年陷入困境。通常,新项目的第一批员工是最关键的,这将为整个项目定下基调。


0

我完全同意上面提到的使一个人适应问题的大多数评论。这通常会导致长期的恋爱关系,而不是聘请超级巨星解决常规问题-这只会使他迅速离开而感到沮丧。
话虽如此,您应该始终尝试为公司雇用而不是担任特定职位。因为这个人迟早会在团队之间进行人际交往等切换,所以他可能在其他地方变得无能为力。确保您的公司有非常严格的内部调动准则,并且在雇用您认为可能不符合公司律师资格(但能解决当前问题的人)之前,清楚地了解接下来几年在团队中的工作)。我见过太多情况,开发人员的平庸使团队更加难以适应他们。

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.