我正在寻找工作,并且已经申请了许多职位。一位雇主回应。我进行了一次漫长的电话采访(可能需要一个小时以上),然后他们为我进行了开发人员测试。有人告诉我,该测试估计需要6到8个小时,并且只要结果得到他们的认可,我就能得到我的工作报酬。努力。开发人员测试在通过RDP访问的VM上进行。任务是在Web项目中实现一个搜索页面,该页面从服务器请求数据,将其显示在表格的屏幕上,并具有非常复杂的搜索过滤方案(大约有15种状态,并且在将搜索发送到服务器时,可以通过字符串/字段搜索来按这些状态进行搜索。此外,他们希望SVG图标更改某些数据值的颜色,并且某些数据的表示方式与数据库中的结构方式不同。

Loooong的故事很简短,这花费了比6-8个小时更长的时间。很大程度上是由于我运行的虚拟机非常差(Visual Studio 2013加载需要10分钟,而打开3 GB巨大解决方案又需要15分钟)。

我被告知完成测试后,我应该将更改提交给源代码管理...嗯,好的。我遵循指示。提交更改后,我收到了一封回复电子邮件。 SVG的颜色不正确,在这种情况下有一个错误,这是我从未经历过的其他事情的偶发性问题,等等。所以我现在已经13-14个小时了,我必须修正错误。我这样做了,雇主又提出了更多的错误修复请求。我注意到代码中的一些异常现象,看起来好像其他异常已经对一种功能进行了编码,但没有涉及其他任何事物。

我只是被用来做廉价劳动力吗?即使他们向我承诺的每小时50美元的工资为6个小时,我现在也已经花了大约18个小时来做​​这件事。如果我修复他们不断提出的所有问题,我将至少免费工作16个小时。我编写了用于生产的代码。我从未进行过测试,无法实现正在开发中的功能,也从未进行过四轮共20个小时以上的测试。我给他们留下了印象,他们正在使用他们的开发人员测试来廉价地获得一些功能。

我印象不对吗?这个测试协议合适吗?

评论

太疯狂了。我认为您可能被剥夺了自由劳动的机会。

您应该发送发票。

良好的旧面试驱动的发展。应该有一个“ devabuse”标签。

这是针对美国人群的建议。每当公司要求您提交代码样本或为代码样本进行示例工作时,您提交的每个块都应带有版权声明:“版权(年)(您的姓名)。保留所有权利。”如果它生成将在用户浏览器中运行的代码,请确保生成器还生成包含该版权声明的注释行。诚实的服装不会有任何问题。不诚实的人会尖叫。

请考虑将该公司报告给您的州劳工部。免费从事工作通常是非法的。

#1 楼

我永远不会参加这种性质的代码测试。我已经进行了许多代码测试并完成了许多代码项目。在任何情况下,我当然都不会将代码检入到其他人的存储库中。如果他们在配对编程会话中经过4小时的采样并进行了一些小错误更正后,不知道需要知道什么,那么他们将永远不会知道。

进行测试,您应该预先知道并弄清楚一些事情:


应该达成共识并知道,测试过程中产生的任何工作都不得用于确定目的以外的其他目的。所需的任务。
代码测试不应超过4小时。
您不是公司的雇员,因此任何建议您可能会因产生的代码而获得薪水的建议都是荒谬的。即使有暗示,也要坚持书面付款合同。
设置在测试的任何给定部分上花费的时间的特定限制,然后遵守这些限制。如果发现由于任何原因超出限制,请考虑为什么要超出限制。是因为他们施加了压力吗?是因为您犯了错误吗?是否因为您未正确估算完成某件事需要多长时间?
如果您认为自己涵盖了特定主题,请站稳脚跟。如果您已经修复了一个错误,并且他们正在要求您修复几乎相同的错误,请说“我们已经用错误x涵盖了该主题,也许我们可以转到展示新内容的其他地方。” />在任何情况下,您都不应将任何内容检入生产管道。这包括可能最终导致生产管线的任何类型的开发分支。如有疑问,请不要检查任何内容。对于不一定要亲自进行的代码测试,我坚持要求将代码首先检入我的个人公共存储库。这至少使我免受某种形式的保护。
根据他们对您的判断来尽可能多地对其进行判断。如果您觉得他们不在您前面,请致电他们。如果您觉得自己受到了虐待,请大声说出来。

您正在采访的公司也正在接受您的采访。如果这是他们如何对待面试的人,这是您要工作的公司吗?我了解人们经常需要一份工作,而且这种需求常常会覆盖一些常识性概念,但这应该始终摆在您的脑海中。不要害怕走出去。如果感觉不对,请遵循您的直觉并用脚投票。

评论


我已经确定我不会为他们工作。看到他们正在使用的解决方案的怪异性(以及实体框架的TOP上惊人的抽象层数)后,我不想每天都通过做他们正在做的事情而牺牲掉我的一小部分。明天我将召开电话会议,我们将讨论该“测试”所遇到的问题。

– CodeWarrior
2014年6月11日,下午3:46

更糟糕的是,如果我是一家公司,我不希望人们不为我工作,并且已经签署了所有适当的NDA和其他表格以访问我的生产环境,而您的VCS是生产环境...

– jwenting
2014年6月11日下午5:08

至少在英国,我强烈怀疑让面试候选人从事真实的工作是非法的,或者是该候选人可依法提起的诉讼。无论哪种方式,在这里都被认为是非常糟糕的做法,并且我们花费大量时间来创建“伪造”测试,这些测试足以评估候选人,但没有其他实际用途。

–尼尔·斯莱特(Neil Slater)
2014年6月11日8:16

@marcvangend:我在这里(基于美国)的主要担心是责任。由于没有正式的合同,也没有直接的关系,因此如果出了问题并且利用了他们软件中的某些东西,那么将责任归咎于某个“受访者”将非常简单。 #1仅是一种自我保护措施,而不是试图防止我的工作被盗。这些年来,我有很多工作被偷了,这真的不打扰我。

–乔尔·埃瑟顿(Joel Etherton)
2014年6月11日在10:56

@WayneWerner:还是传统顾问的押韵。 “玫瑰是红色,紫罗兰是蓝色,付出我的屁股。”

–乔尔·埃瑟顿(Joel Etherton)
2014年6月11日在21:09

#2 楼

许多访谈之后都会进行测试。需要进行这些测试,以确保您确实具有所需的技能,并更好地了解在访谈本身中很难测试的一些事情(例如您是否将样式规则应用于代码)。

说,测试就是测试。


不需要很长。经过八小时的编码,看不到什么,而三十分钟后看不到。更重要的是,然后应逐行检查测试期间编写的代码,这将花费大量时间。花两个小时以上的时间检查半小时内编写的测试代码并不稀奇。

它不应处理现有的代码库。了解中等规模产品的代码基础可能需要几天或几周(或几个月或几年,具体取决于代码质量和技术债务)。知识产权也可能是一个问题(除非代码是开源的)。

当目标是测试应聘者如何维护现有代码库时,可以在很小的范围内进行测试(500-600 LOC)专门为测试编写的虚构代码库。

开发现实生活中的应用或功能并不一定是请求。它可能是完全没用的代码,其唯一目的是表明您已经了解了问题并找到了一种解决问题的优雅方法。
它不一定是完美的。有虫子吗?没关系。记下他们,以便进一步与候选人面试;这是查看候选人在这种情况下如何反应的绝佳机会。
除非您自己没有Visual Studio,否则不必通过VM上的RDC进行操作。如果目标是了解您的编码和解决问题的能力,那么在哪里进行练习都没关系。
毫无疑问,在此测试期间编写的代码最终落入公司的版本控制中。他们为什么会用候选人写的东西来污染版本控制?

总而言之,当您被要求花费数十个小时编写生产代码,解决错误并将工作提交版本控制公司的成员:


或者他们只是在使用您免费实现功能,
或者他们真的不知道如何进行采访。

在这两种情况下,都希望找到一个更好的工作场所。

评论


+1表示“或数月或数年,具体取决于代码质量和技术债务”。另外,如果真是那么糟糕,他们将赶走那些有能力清理大量WTF的开发人员,而不得不雇用那些会使情况变得更糟的开发人员...

–朱莉娅·海沃德(Julia Hayward)
2014年6月11日上午10:02

出现诸如“给出这些EF类,编写返回一些复杂条件的查询并以表格形式显示结果”之类的问题是完全合法的。我无法想象要求受访者自己创建这种环境,而不是仅仅给他们提供所有设置完毕的现有VM。

–加布
14年6月13日在18:24

@Gabe:很好的例子。但是在此示例中,对于候选人来说,很明显,您并不是在寻找廉价劳动力来在新产品中实现功能,而且标准也不是那么复杂,以至于需要八个小时才能获得解决方案。

– Arseni Mourzenko
14年6月13日在21:34

你是完全正确的;我只是说,在任何情况下,面试官都应该期望提供完成给定任务所需的任何环境。

–加布
2014年6月14日下午4:34

#3 楼

答案不长,但是我很困惑,为什么没有人提出版权问题?开发人员测试期间写给另一方的代码的所有权。如果是这种情况,您实际上可以起诉他们侵犯版权,并且为此而判给的损害赔偿可能是相当不错的,尤其是在美国,从我所听到的故事中可以看出。如果他们想解决(提出此建议),您可以要求任何高昂的侵权费用(在此之后原则上仍然不允许他们使用您的作品,如果他们仍然有兴趣,您仍然可以将其出售给他们) )。

评论


我从未听说过将编码测试投入生产的方法。版权是此处的有效问题。

–乔什
2014年6月12日下午6:39

更不用说保险

–Crake
2014年6月12日在16:01

版权是一个有趣的问题,但也许只有当该作品被证明是不付款且已经被实际使用时,版权才可能出现。如果最终付款,则版权可能毫无意义。但是需要将副本存储在面试官内部存储库以外的其他位置。理想情况下,在将个人副本提交给访调员的资料库之前,也应打上时间戳记。可以使用各种合适的Internet存储库,同时保持代码不公开。

–user2338816
2014年6月17日下午4:57

@ user2338816:首先,即使已经付款,您仍然可以起诉侵犯版权,因为纸上付款通常不是工作合同,而是...好的,找不到英语术语。没错,尽管您需要复制代码,因为您首先需要在版权局注册,然后才能提起诉讼。

– David Mulder
14年6月17日在12:57

向我谨慎+1。过度进取对我来说是不道德的-您有权享有您的权利,但我不想成为那种起诉来烧毁面试公司的人,而且我也不会雇用具有这种声誉的人。

–凯文
2014年6月18日在21:27



#4 楼

具有更多职业经验的人也许可以更好地回答这个问题,但是我个人对20个小时以上的开发测试并不满意。听起来好像他们在使用面试来完成工作任务。

我假设您尚未签署任何有关代码所有权的法律文件。因此,我将等到他们检查代码并接受或拒绝它。然后,如果他们接受了,我会要求全职20个小时以上的薪水。我不确定我是否会只按照建议的六个小时付款。如果这将要投入生产,那么他们将需要理顺代码所有权。如果他们认为只付给您6个小时才是公平的,我就不想接受要约。

评论


我确定我不在这家公司工作。即使在测试之外,它们的执行方式也存在一些实际问题。我从事的项目是一个包含132个项目的解决方案。有人告诉我,团队中的一名开发人员为此提出了理由,因此他们是故意这样做的!他们希望通过RDP完成所有工作。我住在夏威夷,公司在东海岸,将无法营业。然后测试似乎更像我是一个廉价的临时工。

– CodeWarrior
2014年6月11日下午4:03

我以前的一位同事后来成为一个团队的一部分,该团队的解决方案中包含200多个项目,因此这并非闻所未闻。

–trysis
2014-09-19 21:53

#5 楼

当我可以面谈开发人员时,这些测试很短暂,只是“通过或失败”,不包括错误修正,即使代码中存在一些小错误。那是因为我想评估应聘者的技能,而不是获得可用于生产的软件。

问题中描述的情况非常像有人试图免费(或廉价)获得有用的东西。

#6 楼

我从未进行过一个多小时的开发测试,而这些测试都是“难题”,这是一项工作,旨在了解我是否可以在给定的时间内解决问题并达到既定目标。

50美元(或者对我来说,是25到30英镑)是很差的一天的费用,就像要水管工修理你的马桶来换一杯饮料。

我的建议(毫无疑问)是写关于您的经历的博客,以他们的名字命名公司,以防他们试图用这种技术创建整个应用程序(人们通常在进入公司之前先搜索一下Google公司)进行采访),不要让它再次发生。下次他们要求漏洞修复时,您可以指定咨询日费率(至少是他们提供的服务费的5倍),并告知开发人员将无法免费工作。

被愚弄了不幸的是,它是生活的一部分,但您不必坐下来接受它。

评论


不好的建议是要告诉人们这样的名声和耻辱,否则可能会在法律和职业上无止境地终结某人。

– jwenting
2014年6月11日,9:58

我实际上只是和他们下了电话。调低职位后,我被问到是否可以提出批评,我解释说,我担心自己会廉价发展。根据我从公司POC获得的反馈,并在其源代码管理中签入并进一步查看源代码,我认为他们并没有做太多事情。看起来每6个月左右有2人,大约相当于小公司招聘趋势的平均水平。也就是说,我仍然不同意这种做法。不是冈纳在那里工作。

– CodeWarrior
14年6月11日在16:03

@CodeWarrior我真的认为您应该以法律行动威胁他们。除非您签订了移交代码的合同,否则您拥有在“测试”和“测试”期间所写内容的版权,否则它们实际上是从您那里窃取了它。像这样的公司将继续其讨厌的做法,直到有人呼吁他们。如果您不加紧努力,那么下一个可怜的树液会“面试”吗?

–苍白的阴影
2014年6月12日7:37

@CodeWarrior您说您调低了职位。这是否意味着他们向您提供了职位?是否已经就“开发测试”工作的付款问题进行了进一步的讨论?

–user2338816
2014年6月17日下午5:02

@CodeWarrior好电话!有时您只需要知道什么时候该走开。

– AJFaraday
2014年7月11日在9:05

#7 楼

只是为了进行比较:我目前的工作面试时间约为1个小时,谈论我到目前为止所做的事情,公司计划做的事情以及我的适应情况。之后,我们在一起工作了一周的一个小项目周围,​​我想只是为了看看我们如何相处。他们以自由职业者的身份付给我与我现在相同的报酬,所以从来没有一天无薪工作,更不用说三天了。如果您的估计错误,我将向您发送您所用24小时的帐单,而不是您的错。假设他们没有让您估计需要多长时间。

评论


当您说您从事的项目是他们“闲逛”时,这是他们在生产中使用的项目吗?正如其他答案所表明的那样,无论您是否获得报酬,这在任何情况下都是很奇怪的,通常对公司而言比候选人差。

–trysis
2014-09-19 22:12

听起来像是租用合同的简短版本,这是一种正常的商业惯例(尽管通常不是一个星期)。

–乔
2014年9月22日下午4:34

#8 楼

虽然您应该为自己的(某些)工作获得报酬,但这听起来不像是一个试验项目,听起来像是骗取便宜/免费工作的骗局。

但管理工作如此糟糕以至于听起来像是个骗局,绝对是您应该采取的措施

适当的试验项目应明确指出


他们有自己想要做的工作。
根据您的采访,他们认为您应该能够完成工作。
项目的成功完成并不能保证职位。谁拥有代码(无论是时间和材料还是固定费率,预计完成时间等)。
将对项目进行审核并提供反馈-不只是对/是否对职位。

无论您是否被录用,这些条款都应该为您所接受-如果这些条款仅在全职工作的情况下才可以接受,可以接受的。

#9 楼

我认为他们实际上不会使用它来获得廉价劳动力。

原因很简单。编写完这些测试之后,他们需要人们来检查您编写的内容,是的,比起编写代码本身,审查代码要容易得多,但是仍然要花很多时间。人们维护这些测试,对其进行解释,等等。

我简直无法想象有哪个IT公司会关心节省不到100美元的资金,特别是在美国的公司。这绝不是业务运行的方式。

评论


如果他们完成了20多个小时的工作,并以$ 50 ph的价格(不是很高的价格)支付了6-8的费用,那么他们可以节省的费用超过$ 100。也许他们比生产有效或可维护的代码更感兴趣的是廉价而快速地完成某件事?不要低估人们的贪婪,无能和短视。

– jwg
2014年6月11日在11:25



我不是在说这是明智或值得的,只是说它可能会发生。那里有很多卑鄙的人,包括一些相当愚蠢的人。

– jwg
2014年6月11日下午13:42

@randomA:事实是,您假设一个真正的具有道德意识的开发团队。变得更加疲惫(或者可能只是出于社交感),我可以轻松地想象一个小团队伪造整个事情-他们会进行高级设计,决定要构建(或修复)的内容,然后将笨拙的工作列为“开发人员测试”。雇用一群全职员工可以节省数千美元。人偶的工作是安全的,因此这种发展模式使他们不可或缺。而且,如果您已经那么贪婪和近视,那么代码审查和文档就是浪费金钱。如果看起来可行,请发货。 :P

– cHao
2014年6月12日下午5:58



哦,我并不是说从长远来看这是一个值得的模型。但是从短期来看,它看起来很有吸引力。如果您给他们提供了正确的数字(地狱,他们可能就是他们的想法),管理层就会上任,而法律部门会非常谨慎地措辞,但如果您实际上付了您所说的话,您会支付,AFAIK从技术上讲您并没有违反任何法律。就代码库的长期运行状况而言,您可以将重构作为另一批“测试”进行推广。

– cHao
2014年6月12日13:09



@Taemyr:嗯,如果我了解OP,他们的代码库是零散的混乱-在一个VS解决方案中大约有132个项目?

– thkala
2014年6月12日13:22

#10 楼

对于开发人员面试工作的代码测试,我深信不疑。但是,这听起来像是来自地狱的代码测试...代码测试不应包含生产代码。它们应该很简单,并且应该说明公司不会使用任何已完成的工作。

显然,您所做的工作是在生产代码上进行的。您应该在所有时间里都得到薪水-最少。尝试与律师交谈,看看他是否认为起诉他们是值得的。许多律师提供免费的初步咨询。如果涉及欺诈行为,并且在这种情况下看起来是这样,您将有权获得四倍的金钱赔偿,而且您也许还能获得一些不错的惩罚性赔偿。

通过起诉它们并赢得了胜利,您将成为头条新闻,并在将来阻止其他人的这种做法-这将对所有寻求新职位的软件开发人员都是有益的。

评论


这篇文章很难阅读(文字墙)。您介意将其编辑为更好的形状吗?

– gna
14年6月18日在7:15

#11 楼

不幸的是,编码测试是生活中的事实。话虽如此,我被要求在一次编码测试中花4个小时来打扰我,这是我第一次进行手机筛查的条件。当公司对关系的投入很少时,要求应聘者投入太多是不公平的。

我是一名高级开发人员,我可以通过他们的编码测试。但是除非公司对我表现出一些个人兴趣,否则我不会在上面花费很多时间。我通常不会使用任何大型的在线申请表格来填写申请表,而该表格要求我重新输入履历表,以便他们的不良机器人可以破坏关键字查找。我通常不同意完成编码测试,除非简短,或者他们正在现场观看并与我交谈。

即使他们没有将您的代码投入生产,一家公司也希望您会花大量时间进行打字,然后再确定自己是否适合自己,这是一家很乐意利用您的公司。他们在发出信号,希望他们的关系成为什么样。你是代码猴子。他们做主。他们的面试过程旨在找到适合这种关系的人。

不要成为代码猴子。走开。