面试中提交代码[关闭]


20

我正在面试一家互联网创业公司的职位。该职位涉及在他们非常大的用户信息数据库上进行数据挖掘。作为(远程)面试程序的一部分,该程序涉及检查数据库的一个子集,他们要求我提交用于分析的代码。

我主要担心的是,该代码是“专有的”,因为缺少更好的词。如果最终为他们工作,我可以毫无问题地给他们提供所有代码,但是考虑到他们可能会采用这些代码,而不是雇用我,并在更大的数据库上使用它来产生收入,我很犹豫。我只是在偏执吗?这是合理的关注吗?


8
您花了几个小时编写此代码?
Matthieu

1
这真的重要吗?如果是四分钟或四天,则固有值相同。
dharel 2011年

8
我认为Matthieu的问题是正确的。暂时忽略了某些人在一小时内可以完成的工作,而如果他们要求您执行一项将使普通工人花费几个小时以上的任务,我将非常怀疑。
大卫·鲁特卡

2
在提交代码之前,在代码上加上限制性许可该怎么办?
2011年

4
@dharel:对我而言。在一定时间范围内看起来像那些无薪实习,那里有可以交换自由工作的工作机会,而不像常规的面试过程。
Matthieu

Answers:


30

如果您想要工作,并且这是他们的过程,则可能必须提交。我认为您应该考虑他们可以“窃取”您的代码并且免费工作的可能性。但是,如果您的代码有效并给他们留下了深刻的印象,他们可能会想要更多。

您还应该权衡自己保留代码与发布代码以获得工作之间的潜在收益


3
我喜欢那个答案。如果它特定于他们的数据库,那么您还将如何处理它?将其记为面试价格。另外,您很有可能不会因为才华而动脑筋……不是在刻薄,但我对这类人了解很多,他们知道他们从不工作或面试。
2011年

@satan-:)没有冒犯,我怀疑我会还是。
dharel 2011年

1
@dharel-我个人不愿意启动。如果这是一家老牌公司,那么风险会更低。但是我被顾问们烦死了,他们试图找出一个假面试的问题,让我写一些代码来完成他们需要的事情,然后再也听不到他们的消息。我从公司的其他人那里发现,他们确实实施了我提供的解决方案的至少某个版本。
SoylentGray 2011年

17
如果他们从假面试中获得最好的代码,他们将在一年之内沉没。
凯文

2
如果他们愿意接受您的代码并运行,那么您还是不想为他们工作
。.– Styler

7

通常我不在乎,除非很明显他们试图免费获得工作。使用“实时”数据等编写一些代码很好,可以从产品积压中交付任务,并期望以“示例”的形式免费实施,这就是您应该拒绝(或向他们发送帐单)。

使用您自己的判断,但是如果工作值得,那么我就不会太在意,只要他们不是公然地试图让您不付薪就从事真正的工作。


5

如果您只花了两个小时,就可以预期他们的程序员可以这么快地完成它,并且最有可能花费更多的时间进行面试并找到一件有趣的工作供您完成,这比他们从偷窃中获得的更多您的代码。仅当您编写了大量的代码或具有某些领域知识(他们自己没有)时,您的问题才有意义。仅当您从每个受访者中获得至少几天的专业密码时,窃取工作才会开始收费。而且您永远不会事先知道代码是否质量良好。


4

你应该保释这项工作。认真地说-如果您真的认为十分之一的机会该公司如此邪恶以至于制定了通过虚假雇用流程获得免费劳动力的计划,那么您与他们之间显然缺乏信任。如果您几个小时的工作不能信任他们,您怎么能依靠他们的生计来信任他们呢?

或者,尝试从他们的角度看待它:您会雇用自己而没有某种程度的技能水平吗?


3

我已经提交了少量的代码,只花了几个小时的时间就写完了,但却为人们解决了两次真正的问题。两次我都没有得到这份工作。两次我都不确定真的有工作。

就您而言,您可能具有以下优势:如果您在他们的产品中发现了自己的代码,那么您可能会在诉讼中对他们提起很大的诉讼,因此,在提交之前,如果这样做,也许您应该做一些事情以证明自己你写的,写的时候。


2
要扩展-至少在美国,这可以像将其打印并邮寄给自己一样简单(但不要打开它!)。这样做可以给您提供一份密封的纸质副本和政府支持的日期记录。
Shauna

1

在招聘过程中,不要花太多时间来编写代码(即,花一天以上的时间),因为这实际上是准雇主的免费工作。如果发生这种情况,他们的行为可能并不专业,您应该考虑轻轻地逃避他们。

通常,在这类面试中,您提交代码以解决特定的小问题,只是认为自己会遇到问题是愚蠢的。为什么?

  • 如果您是针对一个非常具体的一次性问题编写的代码,则可能需要对该代码进行重构,以使其仍然有用。
  • 在软件专利有效的地理位置,无论如何它都可能会受到专利侵权,并且没有多少版权可以保护您免受贪婪的律师使用的恐吓手段。(免责声明:我不是律师。)

0

如果您担心有人会盗用您的代码,则最好的保护措施是使用Creative Commons许可对其进行许可。我会亲自选择Attribution-NoDerivs 3.0 Unported。但是,您永远都不会阻止人们查看您的代码并重新编写它,这是您可以穿的凯夫拉尔背心,可从法律上保护您免受盗版者的侵害,这些盗版者试图将您的代码逐行撕掉。

如果您对这项工作很认真,请向他们展示点点滴滴或代码的重点。让他们知道您在逻辑上所做的事情而不会泄露您的商业秘密。如果您在编码中实践良好的设计,他们会首先将其提交给您的代码。


0

我只是在偏执吗?这是合理的关注吗?

我想你可能偏执。还是佣兵。或两者。

您担心的是某种不太可能具有任何重大内在价值1的东西

您这样评论:

这真的重要吗?如果是四分钟或四天,则固有值相同。

嗯...这是不现实的。2行“ hello world”程序与您花费数天,数周,数月的工作时间不同。但无论哪种方式,这个代码的实际价值(即赚钱的潜力)到是最有可能为零。如果您对知识产权问题大惊小怪,准雇主很可能将此视为即将发生的事情的标志。

而且在道德方面,他们当然有合法的需要了解您如何实现代码。他们还将如何评估您的工作质量?他们还有道义上的义务将您的代码视为您的财产。但是您不需要法律协议或类似的东西。这只不过是大家的时间了浪费琐碎的努力量。


脚注1-唯一的例外是,如果您对“面试作业”问题的解决方案包括您花费数月/数年开发的大量私人代码,并且您有切实可行的计划可以从中赚钱。如果是这种情况,则不应在“面试作业”问题中使用它。

没有哪个雇主愿意雇用程序员只是为了争辩谁拥有关键代码的知识产权,而这些关键代码可能在工作时间之外编写,也可能不是。而且,如果您作为程序员的效率取决于您使用一堆自己的私人代码,那么当您“继续前进”时,您的雇主将遇到重大问题。


-3

是的,如果有人像我一样在Google搜索中偶然发现此问题,两年后就会发出imma铃声。

我会提交。通过诱使受访者为他们工作,他们的编程工作是什么样的IT商店?那只是倒退。如果您的代码足以让他们使用,那么他们可能会雇用您编写更多代码。这就是为什么他们要面试您...以了解您的代码是否足够适合他们的应用程序。就像您正在提交为他人编写的专有内容的源代码一样……您不拥有他们的数据库或产品,那么这对您有什么帮助?即使他们窃取了您的代码,也不会伤害您。您真的没有什么可以失去的,只是您的时间,那……您无论如何都会失去它。如果您不打算将代码提供给他们,我将完全放弃潜在客户。如果那是他们的过程 他们的过程。如果不给他们代码,您将不会有任何收获。

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.