Como uma opinião de alguém que solicita amostras de código ao avaliar candidatos, existem alguns recursos de alto nível (conteúdo do código) e outros de baixo nível (estrutura do código). Recursos de alto nível:
- Identidade : o sabor do código. Se você está faturando a si mesmo como um codificador de interface do usuário / HCI, quero ver uma boa aparência de algo visual quando executá-lo. Se você é um construtor de banco de dados, quero ver algo interessante com representação ou análise de dados. A amostra deve ser algo de que você se orgulha . Se você não tem pelo menos um desses, não tem identidade.
- Maturidade : Você muda de estratégia para diferentes problemas? Você está resolvendo problemas interessantes? Seria fácil estender o código ou a abordagem para um problema semelhante? Por outro lado, sinto que estou olhando para um membro de uma comuna de culto à carga?
- Comunicação : o código explica facilmente o que está fazendo e por quê? Isso não significa que o código precisa ser simples. De fato, é um bônus tornar fácil o código complexo.
Os aspectos de baixo nível são mais simples:
- Estilo : o código deve ser limpo, consistente (segue algumas diretrizes estabelecidas) e bem documentado.
- Embalagem : deve haver no mínimo um leia-me curto, uma versão executável e testes executáveis. O leia-me deve me dizer como executar os dois últimos, bem como por que você está demonstrando esse exemplo de código específico.
- Idioma (s) : Normalmente, peço a alguém uma amostra no idioma para a posição, bem como aquela em que ele se sinta mais forte. Dá uma boa idéia dos limites atuais de uma pessoa.
Para um bom candidato, espero que uma amostra seja: A) Uma amostra pequena à prova de balas ou B) Boa parte de um projeto interessante maior (por exemplo, um módulo de um repositório pessoal do Github). Espero que sejam projetos pessoais ou acadêmicos. Se eles enviarem um de um projeto pago, espero uma nota de que eles receberam permissão para usá-lo. Se eu não receber essa nota, cortarei dos candidatos (candidato fraco) ou perguntarei sobre isso durante a entrevista (candidato forte). Não ter permissão seria uma grande bandeira vermelha (provavelmente intransponível). Para um candidato avançado, espero uma isenção de responsabilidade observando que algumas de suas melhores amostras de fontes não podem ser exibidas porque foram realizadas como parte de seu trabalho. No entanto, espero um testemunho emocionante do motivo pelo qual eles se orgulham desse design não demonstrável e de como o amam como uma criança.
Finalmente, por mais que algumas pessoas repreendam que "Ah, alguém poderia obter uma amostra de código da Internet", o contra-argumento é que a maioria das pessoas que não entende um bom código de qualidade de produção também não o entende quando o vê. . Além disso, sempre é possível pesquisar no Google uma linha distinta para o código verificar. Além disso, na melhor das hipóteses, roubar código levará um candidato a uma entrevista onde ele se envergonhará ("Então, por que você fez dessa maneira ...?").
Como última nota sobre o código de um emprego anterior: simplesmente não. Do ponto de vista de RH, solicitar código de emprego anterior é inapropriado e uma bandeira vermelha sobre a empresa. Vocês dois teriam responsabilidade legal (ou seja, vocês dois poderiam ser processados) e isso mostra que eles não têm idéia do que estão fazendo. O código feito para um empregador anterior nunca deve ser fornecido, a menos que o código já esteja disponível ao público ou você tenha permissão explícita desse empregador. Pior, em uma grande empresa, seu chefe direto pode não ter o poder de lhe dar permissão, então divirta-se com o departamento jurídico nesse caso? Tenho certeza de que eles ficarão felizes em expor seu IP para um funcionário que está saindo.