Enviar código durante a entrevista [fechado]

20

Estou entrevistando para uma vaga na internet. A posição está relacionada à mineração de dados em um banco de dados muito grande de informações do usuário. Como parte do procedimento de entrevista (de longa distância), que envolve o exame de um subconjunto do banco de dados, eles solicitaram que eu enviasse o código que usei para análise.

Minha principal preocupação é que esse código seja "proprietário", por falta de uma palavra melhor. Não tenho problemas em fornecer todo o meu código a eles, se acabar trabalhando para eles, mas, considerando que eles poderiam pegar o código, não me contratar, e usá-lo em um banco de dados maior para gerar receita, hesito. Eu estou sendo paranóico? Esta é uma preocupação legítima?

dharel
fonte
8
quantas horas você gastou escrevendo esse código?
Matthieu
1
Isso realmente importa? O valor inerente é o mesmo se for quatro minutos ou quatro dias.
dharel
8
Eu acho que a pergunta de Matthieu é válida, na verdade. Ignorando por um momento que algumas pessoas podem fazer em uma hora o que pode levar mais uma semana, eu ficaria muito desconfiado se elas pedissem para você executar uma tarefa que levaria um trabalhador médio mais de algumas horas.
precisa saber é o seguinte
2
Que tal colocar uma licença restritiva no código antes de enviá-lo?
fejd
4
@ Darel: para mim seria. mais do que um certo tempo se pareceria com os estágios não remunerados em que há uma promessa de emprego em troca de trabalho livre, e não como um processo regular de entrevista.
Matthieu

Respostas:

30

Se você quiser o trabalho e se esse for o processo deles, provavelmente terá que enviar. Eu acho que você é sábio em considerar a possibilidade de que eles possam "roubar" seu código e você terá trabalhado de graça. No entanto, se o seu código funcionar e os impressionar, provavelmente eles desejarão mais.

Você também deve avaliar os ganhos potenciais de manter o código para si mesmo e liberá-lo para conseguir o emprego.

David Ruttka
fonte
3
Eu gosto dessa resposta. Se for específico para o banco de dados, o que mais você fará com ele? Escreva como o preço da entrevista. Além disso, é provável que você não esteja enlouquecendo com o seu brilho ... Não sendo mau, mas eu conheço o suficiente desse tipo de pessoa para saber que nunca procura emprego ou entrevista.
Satanicpuppy
@ Satan - :) nenhuma ofensa tomada, duvido que seja.
dharel
1
@ Darel - eu pessoalmente não faria para um arranque. Se era uma empresa estabelecida, os riscos são menores. Mas fui criticado por consultores tentando descobrir um problema em encenar uma entrevista falsa, fazendo com que eu escrevesse algum código para fazer o que eles precisavam, depois nunca mais os ouvia. Descobri de outra pessoa na empresa que eles implementaram pelo menos alguma versão da solução que forneci.
precisa saber é o seguinte
17
cara, se eles estão obtendo o melhor código de uma entrevista falsa, eles serão afundados dentro de um ano de qualquer maneira.
21411 Kevin
2
Se eles levam o seu código e run, você não quer estar a trabalhar para eles de qualquer maneira ..
Styler
7

Normalmente, eu não me importo, a menos que seja óbvio que eles estão tentando conseguir trabalho de graça. Escrever um pouco de código usando dados "ao vivo" ou algo semelhante é bom, receber uma tarefa do backlog do produto e espera-se implementá-lo gratuitamente, pois um "exemplo" é dissimulado e é nesse momento que você deve recusar (ou enviar a eles um depois).

Use seu próprio julgamento sobre o assunto, mas se o trabalho valer a pena, não ficaria muito preocupado se eles não estivessem tentando fazer com que você faça um trabalho real sem pagar.

Wayne Molina
fonte
5

Se você tiver apenas duas horas de duração, pode esperar que seus programadores o façam o mais rápido possível e provavelmente gastaram mais tempo fazendo as entrevistas e encontrando um trabalho interessante para você do que eles poderiam ganhar roubando. seu código. Sua pergunta só seria relevante se você escrevesse uma quantidade muito grande de código ou tivesse algum conhecimento de domínio de que eles não têm eles próprios. O roubo de trabalho só começaria a ser pago se você obtiver pelo menos vários dias de código profissional de cada entrevistado. E você nunca sabe com antecedência se o código terá boa qualidade.

thorsten müller
fonte
4

Você deve pagar a fiança neste trabalho. Sério - se você realmente acha que há uma chance em dez de que a empresa seja tão nefasta a ponto de criar um esquema para obter mão-de-obra livre através de um processo de contratação fraudulenta, há claramente uma falta de confiança entre você e eles. Se você não pode confiar neles com algumas horas de trabalho, como pode confiar neles com seu sustento?

Como alternativa, tente analisá-lo da perspectiva deles: você se contrataria sem medir o seu nível de habilidade?

Caleb
fonte
3

Enviei pequenos pedaços de código que levaram apenas algumas horas para escrever, mas resolvi um problema real para as pessoas duas vezes. Nas duas vezes não consegui o emprego. Nas duas vezes, não tenho certeza se realmente havia um emprego.

No seu caso, você pode ter a vantagem de que, se descobrir seu código em seu produto, provavelmente terá um grande argumento contra ele em uma ação judicial; portanto, antes de enviá-lo, se o fizer, talvez faça algo para permitir que você prove você escreveu e quando escreveu.

psr
fonte
2
Para expandir - nos EUA, pelo menos, isso pode ser tão simples quanto imprimi-lo e enviá-lo para você mesmo (mas não abra!). Isso fornece uma cópia impressa selada e um registro da data com suporte do governo.
Shauna
1

Não gaste muito tempo trabalhando no código durante o processo de recrutamento (ou seja, mais de um dia), porque esse é essencialmente um trabalho gratuito para o seu potencial empregador. Se isso acontecer, eles não estão sendo muito profissionais e você deve considerar fugir com cuidado deles.

Geralmente, durante esse tipo de entrevista, em que você envia um código para resolver um pequeno problema específico, é tolice supor que você terá problemas com ele. Por quê?

  • Se foi o código que você escreveu para um problema muito específico de descarte e o código pode precisar ser refatorado para ser útil de qualquer maneira.
  • Em locais geográficos onde as patentes de software estão em vigor, pode estar sujeito a violação de patente de qualquer maneira e nenhuma quantidade de direitos autorais o protegerá das táticas de intimidação usadas por advogados gananciosos. (Aviso: não sou advogado.)
Spoike
fonte
0

Se você está preocupado com pessoas que roubam seu código, a melhor proteção contra isso é licenciá-lo usando as licenças Creative Commons . Eu pessoalmente escolheria o Attribution-NoDerivs 3.0 Unported . No entanto, você nunca impedirá que as pessoas olhem para o seu código e o reescrevam, este é o colete Kevlar que você pode usar para protegê-lo legalmente dos piratas que tentam copiar sua linha de código por linha.

Se você é sério sobre esse trabalho, mostre-lhes partes ou destaques do código. Diga a eles o que você está fazendo logicamente, sem revelar seus segredos comerciais. Se você praticar um bom design em sua codificação, eles o verão em primeira mão em seu código.

Styler
fonte
0

Eu estou sendo paranóico? Esta é uma preocupação legítima?

Eu acho que você provavelmente está sendo paranóico. Ou mercenário. Ou ambos.

Você está preocupado com algo que é altamente improvável que tenha algum valor inerente significativo 1 .

Você comentou assim:

Isso realmente importa? O valor inerente é o mesmo se for quatro minutos ou quatro dias.

Erm ... isso não é realista. Um programa "olá mundo" de duas linhas não é o mesmo que você passou dias, semanas, meses trabalhando. Mas de qualquer forma, o valor real desse código (ou seja, o potencial de ganhar dinheiro) para VOCÊ provavelmente é zero. Se você se incomodar com os problemas de PI, um possível empregador provavelmente entenderá isso como um sinal do que está por vir.

E no lado da ética, é claro que eles têm uma necessidade legítima de ver como você implementou o código. De que outra forma eles avaliarão a qualidade do seu trabalho? Eles também têm uma obrigação moral de tratar seu código como sua propriedade. Mas você não precisa de acordos legais e outras coisas para algo assim. É simplesmente uma perda de tempo de todos para uma quantidade trivial de esforço.


Nota de rodapé 1 - A exceção seria que se sua solução para o problema da "lição de casa da entrevista" incluísse um grande corpo de código privado que você passou meses / anos desenvolvendo e que tenha planos realistas para ganhar dinheiro com isso. Se for esse o caso, você não deve usá-lo nas perguntas da "lição de casa da entrevista".

Nenhum empregador quer empregar um programador apenas para brigar sobre quem possui os direitos de IP para códigos críticos que podem ou não ter sido escritos por esse programa fora do horário de trabalho. E se sua eficácia como programador depende do uso de vários códigos privados, seu empregador terá grandes problemas se / quando você "seguir em frente".

Stephen C
fonte
-3

Sim, eu vou gritar 2 anos depois, caso alguém se depare com isso em uma pesquisa no Google como eu.

Eu apenas enviaria. Que tipo de loja de TI sua programação engana os entrevistados para que façam seu trabalho por eles? Isso é apenas ao contrário. Se o seu código for bom o suficiente para eles usarem, provavelmente o contratarão para escrever mais. É por isso que eles estão entrevistando você ... para descobrir se seu código é bom o suficiente para a aplicação deles. Não é como se você estivesse enviando o código-fonte para algo proprietário que escreveu para outra pessoa ... você não possui o banco de dados ou os produtos deles, então o que é isso para você? Mesmo que eles roubem seu código, isso não vai prejudicá-lo. Você realmente não tem nada a perder além do seu tempo, o que ... você vai perder isso de qualquer maneira. Se você não planeja fornecer o código a eles, eu simplesmente me afasto completamente da perspectiva. Se esse é o processo deles que ' é o processo deles. Você não vai ganhar nada, não dando a eles o código.

Shonenknife
fonte