Se isso faz você se sentir melhor, os maus programadores existem em praticamente todos os países. Como eliminá-los é o problema.
Primeira remoção de ervas daninhas é o currículo. Uma coisa que eu procuro é muita experiência de linguagem reivindicada e nada para descrever o que eles fizeram naquela língua. Eu vi currículos que praticamente afirmam que eles sabem todas as línguas já inventadas e, ainda assim, sua experiência mostra que eles realmente só trabalharam com Access e Visual Basic. Aqueles vão para a direita no lixo. 10 páginas continuam no lixo (especialmente dez currículos de pessoas com menos de dois anos de experiência que recebi). De recém-formados com pouca experiência, você tem que ser muito exigente sobre como eles se apresentam. Os melhores candidatos são cuidadosos com seus currículos, eles não têm erros. Você está realmente procurando alguém que se importe tão pouco que ele não se preocupou em revisar seu currículo?
Currículos preparados profissionalmente também vão para o lixo. Depois de ler centenas de currículos, você pode selecioná-los, pois eles usam exatamente o mesmo fraseado. Você não pode confiar no conteúdo de um currículo preparado profissionalmente e sabe que a pessoa não fez sua própria preparação. Esse é o tipo de pessoa que vai depender dos outros para resolver seus problemas para ele, você realmente quer isso em uma posição de programação?
Procure por itens que façam a pessoa se destacar pelos escolhidos. É mais difícil, claro, com os que estão fora da escola, mas procurem por realizações, contribuições para o código aberto, etc.
A próxima saída é a entrevista por telefone. Pergunte sobre conceitos básicos relacionados ao trabalho real que você tem. Se as pessoas não tiverem conhecimento básico dos conceitos que você precisa, não vale a pena se incomodar em fazer uma entrevista pessoal. Os jovens muitas vezes acham que isso é injusto, pois eles podem pesquisar tudo na Internet, mas a verdade é que eu nunca encontrei um bom programador que teve que procurar tudo na Internet. Você deve ter algum conhecimento de sua profissão que você não precisa procurar cada vez.
Após a entrevista por telefone, você deve escolher os melhores 4-5 candidatos e entrevistar. Claro, se você tiver apenas 1-2 bons candidatos, não se incomode em entrevistar pessoas que você já eliminou. Agora você vai fazer as perguntas difíceis e ter uma ideia de como elas abordam os problemas. Eu nunca usaria o teste fizzbuzz porque ele é muito conhecido, então as respostas não dizem nada. Em vez disso, crie alguns problemas com sua própria base de código. Eu poderia dar-lhes uma exigência e um pedaço de código e perguntar-lhes se o código atende ao requisito e, se não, por que não e o que eles podem fazer para atender ao requisito. Gostaria de pedir-lhes que descrevessem o problema de programação mais difícil que tiveram para resolver e que medidas tomaram para encontrar a resposta. Gostaria de fazer mais algumas perguntas técnicas aprofundadas. Lembre-se de que você está tentando entender a competência técnica, a capacidade de solucionar problemas e depurar e a capacidade de se adequar à equipe existente. Eu também faço perguntas que eles provavelmente não sabem a resposta para julgar o quão bem eles lidam com o estresse, é um trabalho estressante, eu não quero alguém que desiste da entrevista porque o estresse do trabalho é maior do que o estresse da entrevista. . Busco pontos strongs em áreas em que atualmente estamos enfraquecidos e a capacidade de trabalhar em equipe e de nos apresentar aos clientes (nossos desenvolvedores lidam bastante com os usuários), sua lista pode ser diferente.