Acabei de ter uma boa entrevista por telefone (para uma posição relacionada ao CakePHP, não que seja especialmente importante para a pergunta). O entrevistador parecia impressionado com meu currículo e personalidade. No final, porém, ele me pediu para enviar um exemplo de código do meu projeto de trabalho existente, "para verificar se você não é um programador terrível, ha ha!"
Não estou muito preocupado que meu código não possa se sustentar sozinho, mas sou muito mais um programador intermediário do que um especialista. Em que armadilhas óbvias devo garantir que meu exemplo de código não caia, caso eles me descartem imediatamente? Em segundo lugar, e essa é provavelmente a parte mais difícil da pergunta a ser respondida, que recursos em um exemplo de código seriam tão impressionantes que instantaneamente o tornariam muito mais favorável ao programador?
Todas as idéias ou sugestões são bem-vindas!
fonte
Respostas:
Eu gostaria de ver o código limpo :
Que significa:
i
menos que seja o único valor de incremento. Não use nomes de variáveis sem sentido.Você deseja enviar a eles algo complexo o suficiente para ser interessante, mas limpo o suficiente para que um bom desenvolvedor possa entender imediatamente o que está fazendo.
Alguns dos comentários acima parecem preocupados com a facilidade com que isso pode ser falsificado. * Se você quiser se proteger, envie uma descrição rápida do objetivo e do histórico do código no email.
* Pelo menos se o entrevistador perguntou sobre projetos passados na frente, em seguida, pediu-lhe para uma amostra a partir deste projeto, e perguntou o que você necessário para escrevê-lo ou como ele evoluiu, eu acho que o processo seria mentiroso prova de bonita. Eu acho que a maioria dos candidatos que se encontram vão mostrar problemas em outras áreas, de qualquer maneira.
fonte
Quando eu estava procurando trabalho, resolvi várias perguntas do concurso de programação do ACM, em vários idiomas diferentes, e as usei para amostras de código desde então. Eu acho que eles fizeram bons exemplos de código porque:
E então, o código que você cria deve ser claro, consistente, fácil de ler e fácil de entender.
E por fim:
fonte
fonte
Bem, se eu estivesse entrevistando você, gostaria de ver seu código.
Limpar é bom, a solução de problemas é boa, mas o código verdadeiro é melhor. Um bom programador sabe quando foi enganado por outro programador, para que a confiança diminua.
Ler o código de outra pessoa é como
dançarfazendo sexo: você sabe quando é a coisa real e se a outra pessoa está fingindo, no final, um desastre ocorrerá. (acabei de perceber que nerds reais não sabem dançar)Apenas confie em si mesmo e em suas habilidades de codificação . A menos que você realmente conheça seu entrevistador, não poderá prever o que ele espera de seu estilo / habilidades de codificação.
fonte
Também tenha muito cuidado para que NÃO seja um código do seu empregador atual (eles são seus donos, e eu garanto que eles não vão gostar de você compartilhá-los.). Pegue algo de que tenha orgulho e refaça o trabalho por conta própria para não ser específico do empregador (livre-se de quaisquer referências às tabelas de banco de dados ou nomes de servidores, etc.). Tudo o que você faz não envia um código com erros ou é uma técnica ruim para o tipo de código (eu provavelmente rejeitaria alguém que enviasse um cursor quando uma operação baseada em conjunto seria mais simples e teria melhor desempenho ao revisar o código SQL. Existem técnicas semelhantes para outros idiomas que existem para resolver um problema relativamente raro que pode ser usado para outros problemas mais comuns, mas não é a melhor opção para esses outros problemas. Essa frase fazia sentido?)
fonte
Gostaria de destacar a publicação da Renesis sobre código limpo, mas acrescentaria à lista o fornecimento de testes de unidade de qualidade e bem documentados. Um bom programador deve escrever testes de unidade para seu código.
fonte
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:
Os aspectos de baixo nível são mais simples:
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.
fonte