Eu tenho visto várias perguntas desde que estive aqui, onde, na resposta, alguém afirmou que nunca usaria portfólios ou amostras de código codificadas fora do processo de entrevista para julgar um candidato, porque existe a possibilidade disso. código que foi escrito por outra pessoa. Eu me surpreendo com isso.
Do jeito que eu vejo, se eu pedir para alguém entrar e resolver um problema simples no local, há muito pouco que eu possa aprender com ele. Não trabalho para uma empresa como o Google, onde são procurados empregos e posso exigir um dia do tempo de alguém. Mas uma parte substancial do código escrito por hobby pode me dizer muito.
Sim, existe a possibilidade de plágio, mas eles terão que ser muito bem treinados para passar uma hora de discussão sobre esse código. E, se for esse o caso, eles terão que ser aprendizes muito rápidos para concluir sua liberdade condicional de três meses (durante os quais eu posso me livrar deles sem motivo e sem aviso prévio). Se eles se tornarem bons programadores tão rapidamente, justamente, eu fui enganada, mas ainda tenho um bom programador.
No final, o custo para nossa empresa e o benefício para o candidato a plágio são muito mínimos.
Isso me levou a pensar em outras indústrias. Artistas, fotógrafos, designers usam carteiras e ninguém se preocupa muito com plágio por lá. Um autor será financiado por um livro baseado em capítulos que ele escreveu em seu próprio tempo. Você não pediria para um arquiteto entrar e desenhar especificações de design para uma casa na entrevista.
Então, o que nos torna diferentes? Por que é tão importante colocar alguém na frente de um computador e fazê-lo codificar uma mesclagem de dados ou uma calculadora fatorial, às vezes sem acesso às mesmas ferramentas que usamos no dia-a-dia, como a Internet? O que há de errado com a ideia de um portfólio de códigos?
Estou realmente interessado em saber, caso esteja cometendo um grande erro que ainda não me queimou.
Primeiro de tudo, somos engenheiros, não artistas. Trabalhamos em equipe, portanto, em nossa experiência real de trabalho, "nosso" código geralmente é o resultado do trabalho em equipe, porque é assim que o trabalho real geralmente é feito. Não existe muito código profissional para o qual eu possa reivindicar a propriedade exclusiva.
Segundo, a maioria dos códigos do meu portfólio hipotético seria um código que eu não poderia mostrar a ninguém, porque é confidencial. O código que criei para meus projetos pessoais de animais de estimação não reflete necessariamente todas as minhas habilidades e meu comportamento típico de trabalho.
fonte
Eu entrevistei muitas pessoas durante o meu tempo como profissional de software. Cheguei a um ponto em que acredito que testes e tarefas de programação de brinquedos são um desperdício de largura de banda valiosa. Testes e tarefas de programação de brinquedos servem apenas para testar o que o entrevistador sabe. Eles não são uma maneira precisa de avaliar o que um candidato sabe. Neste ponto da minha carreira, só aceito esse tipo de bobagem se, e somente se, tiver a oportunidade de administrar meu próprio teste no final da entrevista.
A melhor maneira de avaliar as capacidades de um profissional de software é conversar com ele em uma voz calma e tranquilizadora. Peça ao candidato para discutir o que implica sua posição atual. Quando o candidato abrir uma área de interesse, peça que ele elabore essa área. O objetivo aqui é fazer com que o candidato abaixe a guarda. Nenhuma quantidade de treinamento pode preparar um candidato para o interrogatório "soft touch". Mais cedo ou mais tarde, o laço vai apertar o pescoço de um candidato que está tentando passar por uma entrevista.
fonte
Peço um exemplo de código para os candidatos e ele é referenciado durante a entrevista. No entanto, geralmente dou mais peso à codificação do quadro branco feita durante a entrevista.
Toda entrevista de desenvolvedor que faço envolve ir ao quadro branco para implementar a solução para um problema simples. No entanto, existem regras:
O requerente precisa conversar sobre a implementação enquanto está fazendo isso.
Eu tenho três problemas cujas implementações são todas semelhantes e eu sei que eles podem reutilizar ou refatorar o código que eles escreveram.
O objetivo de tudo isso, em qualquer entrevista, é tentar ter uma boa idéia das capacidades dos candidatos e de como elas podem corresponder ao trabalho. A parte "prática" da entrevista em minha experiência ajudou bastante nesse aspecto. Isso também me ajuda a avaliar o código de exemplo, porque eu sei muito mais sobre a maneira como o programa.
fonte
Uma amostra de código é uma maneira bastante eficiente de eliminar candidatos - eu posso julgar uma amostra de código em 5 a 10 minutos, mas mesmo uma tela de telefone leva 15 minutos e precisa de agendamento (e não é muito útil para eliminar qualquer coisa, exceto a própria fundo da pilha na minha experiência).
Eu acho que as principais objeções às amostras de código são duas vezes e são facilmente superadas:
Obviamente, isso é verdade. Qualquer barreira no processo de inscrição ou contratação pode eliminar potencialmente um candidato desejável. O importante aqui é conhecer o seu público - se você tiver 1000 currículos para sua única abertura, poderá pagar alguns negativos falsos a serviço da eficiência. Se você tiver cinco currículos, poderá ineficiências no processo de triagem.
O que eu acho que a maioria das pessoas sente falta, porém, é que entrevistar e contratar é basicamente um jogo de "encontrar uma razão para não para contratar essa pessoa". Para qualquer trabalho decente, há muitos candidatos qualificados - o último em pé é geralmente aquele que não exibiu bandeiras vermelhas ao longo do caminho. É fácil ver o melhor das pessoas ou não ser comprometido, mas isso não ajuda em nada na contratação, porque você terá 10 candidatos diferentes com os quais se sente confortável. Isso não te aproxima mais de uma decisão.
Cada petisco que você coletar ao longo do processo de revisão, triagem, entrevista etc. pode potencialmente desencadear uma decisão de não contratação. Você precisa equilibrar a sensibilidade do seu gatilho de não contratação com seus clientes atuais (e potenciais futuros). Se você está em um setor entediante, com muito código legado, burocracia e salário baixo (geralmente fora de controle), seu gatilho precisa ser menos sensível do que o Google. Caso contrário, você corre o risco de nunca contratar alguém.
Pessoalmente, acho que o compromisso mais fácil para mim foi solicitar, mas não exigiruma amostra de código. Se eu receber um, é apenas um ponto de dados adicional para avaliar o candidato. Da mesma forma, se eu tiver um conhecido que tenha trabalhado com o candidato no passado, atribuirei um certo peso às opiniões dele. Não ter trabalhado com ninguém que conheço certamente não desqualifica nenhum candidato - apenas significa que meu trabalho de avaliá-los é um pouco mais difícil (e provavelmente incluirá um exercício de codificação, se eles conseguirem uma entrevista). Se a sua amostra é ruim (ou o meu conhecido fala mal de você), é praticamente sem contratação. Aqueles que fornecem uma amostra podem ou não ter uma pequena vantagem sobre os que não fazem na triagem inicial - dependendo da qualidade e quantidade da pilha de currículos e amostras, mais informações podem ser melhores ou piores que nenhuma informação.
Bem, sim. O mesmo acontece com os currículos - mas ainda os coletamos. Por quê? Por três razões principais - um currículo ou amostra ruins é fácil de contratar, ser pego fingindo um currículo ou amostra é fácil e eles são bons tópicos de conversa em uma entrevista. Quanto mais rápido eu descobrir que o candidato é idiota, melhor para todos.
Se você for esperto o suficiente para plagiar uma boa amostra sem ser pego, fale de maneira inteligente e termine a entrevista - eu não tenho um problema específico em como você passou na triagem. Pode haver algumas preocupações éticas aqui, mas essa não é realmente minha área de especialização, por isso não estou me esforçando para avaliar o caráter moral durante uma entrevista. Para mim, é praticamente o mesmo que meu chefe me pedindo para entrevistar alguém que não passou pelo processo de triagem como um favor. Quando você está na fase de entrevista, realmente não importa como você chegou lá, pois há muito mais e melhores informações que serão exibidas durante a entrevista.
TL; DR - um exemplo de código é uma ótima ferramenta de triagem, mas você deve pensar cuidadosamente se pode ou não exigir isso. Após a triagem, ponderar a entrevista muito mais do que uma amostra.
fonte