Como contratar um programador

Não existe uma solução mágica para contratar programadores. Mas posso compartilhar conselhos sobre algumas técnicas que já vi funcionar, sobre as quais escrevi aqui e que experimentei pessoalmente ao longo dos anos.

1. Primeiro, passe em alguns testes on-line simples do “Hello World”.

Sei que parece loucura, mas algumas pessoas que se dizem programadores mal sabem programar. Até hoje, eu ainda recebo pings regulares de pessoas que me dizem que tiveram candidatos reprovados no teste de programação mais básico que se possa imaginar.

É por isso que o senhor extremamente testes de programação extremamente simples são etapa um de qualquer processo de entrevista sensato. Esses testes devem ser realizados on-line, e o objetivo é não para provar que o candidato é algum tipo de gênio da programação, mas que sabe o que é programação. Sim, é triste e um pouco deprimente que isso seja necessário, mas se o senhor não fizer essa verificação de sanidade, acredite, vai se arrepender.

Alguns serviços que fazem triagem de código on-line (tenho certeza de que há mais, mas esses são os que conheço) são Entrevista Zen e codilidade.

2. Peça para ver seu portfólio.

Qualquer programador que se preze deve ter um portfólio das coisas em que trabalhou. Não precisa ser sofisticado. Estou apenas procurando um rastro básico de sua grandiosidade que o senhor deixou na Internet para ajudar outras pessoas. Mostre-me um perfil do Stack Overflow onde eu possa ver que tipo de comunicador e solucionador de problemas o senhor é. Conecte-me a um repositório de código-fonte aberto de seu material. O senhor tem um blog profissional? Um tumblr? Um twitter? Alguma outra palavra que eu nunca ouvi falar? Excelente, vamos dar uma olhada. Compartilhe os aplicativos que o senhor projetou ou os sites em que trabalhou e descreva quais partes eram suas.

O simples fato de ver que tipo de trabalho as pessoas fizeram e que tipo de artefatos on-line elas criaram é extremamente útil para ter uma noção do que as pessoas fazem e no que são boas (ou ruins).

3. Contratar por adequação cultural.

Como o GitHub, acho que a adequação cultural costuma ser um indicador mais forte de sucesso do que as habilidades de programação.

Falamos sobre [philosophy] durante o processo de contratação, que levamos muito a sério. Queremos que qualquer GitHubber em potencial saiba no que está se metendo e garanta que seja uma boa opção. Parte disso é jantar e falar sobre coisas como a cultura, a filosofia, os erros que cometemos, os planos, o que quer que seja.

No início, fizemos algumas contratações por suas habilidades, sem levar em conta como elas se encaixariam na cultura da empresa ou se entenderiam a filosofia. Naturalmente, essas contratações não deram certo. Portanto, embora nos preocupemos com as habilidades dos funcionários em potencial, o fato de eles nos “entenderem” ou não também é uma parte importante.

Sei que nem todas as empresas tem uma comunidade em torno do que fazem, mas o se o senhor tiver uma comunidade, deve tentar contratar pessoas da sua comunidade sempre que possível. Essas são as pessoas que foram naturalmente atraídas pelo que o senhor faz, que foram puxadas para o poço gravitacional de sua empresa por vontade própria. As chances de esses candidatos se encaixarem bem na cultura são anormalmente altas. É isso que o senhor quer!

Alguns de seus usuários criaram um mod incrível para seu jogo? Será que eles descobriram uma vulnerabilidade de segurança obscura e tentaram informar o senhor sobre ela? Contrate essas pessoas imediatamente!

4. Faça uma triagem telefônica detalhada e estruturada.

Depois que o senhor tiver feito os procedimentos acima, é hora de ligar para o candidato. Lembre-se de que a tela do telefone não é para conversar, é para triagem. A chamada deve ser técnica e estruturada, de modo que ambos os senhores possam sair imediatamente se a proposta claramente não for adequada. Como fazer a entrevista por telefone corretamente abrange os aspectos básicos, mas em resumo:

  1. Um pouco de codificação em tempo real. “Encontre o maior valor int em uma matriz int”.
  2. Alguns projetos básicos. “Projete uma representação para modelar HTML.”
  3. Scripting e expressões regulares. “Dê-me uma lista dos arquivos de texto neste diretório que contêm números de telefone em um formato específico.”
  4. Estruturas de dados. “Quando o senhor usaria uma hashtable em vez de uma matriz?”
  5. Bits e bytes. “Por que os programadores acham que perguntar se 31 de outubro e 25 de dezembro são o mesmo dia é engraçado?”

O que o senhor está procurando não são necessariamente respostas mágicas perfeitas, mas algum contexto sobre como essa pessoa resolve problemas e se ela sabe o que faz (mais ou menos 10%). O objetivo é garantir que os candidatos que passarem para a próxima etapa não estejam desperdiçando o tempo deles ou o seu. Portanto, não tenha vergonha de se manter firme e encerrar a chamada mais cedo se houver muitos sinais de alerta.

5. Dê a eles um projeto de audição.

Portanto, o candidato passou nos testes de programação hello world, tem um portfólio incrível, é uma excelente opção cultural e também foi aprovado na triagem telefônica com louvor. É hora de chamá-lo para uma entrevista presencial, certo? Não tão rápido, cowboy!

Já vi candidatos que cumpriram todos os requisitos acima, entraram na empresa e falharam totalmente em “Get Things Done”. Já mencionei que contratar programadores é difícil?

Se o senhor quiser determinar, sem sombra de dúvida, se alguém será uma ótima contratação, dê a ele um projeto de audição. Não estou falando de um problema de programação genérico e abstrato, estou falando do de uma unidade de trabalho real e honesta que o senhor precisa que seja feita agora mesmo no seu produto real. Algo que o senhor daria a um funcionário atual, se ele não estivesse muito ocupado, sabe, fazendo outras coisas.

Esse deve ser um trabalho regular de consultoria com uma taxa por hora e uma declaração de missão de projeto claramente definida. Selecione um projeto pequeno que, idealmente, possa ser realizado em alguns dias, talvez no máximo em uma ou duas semanas. O candidato pode vir ao escritório ou trabalhar remotamente. Sei que nem todas as empresas têm essas pequenas unidades de trabalho que podem ser cortadas para alguém de fora da empresa, mas tentar desesperadamente fazer isso dentro da empresa – para assumir. Eu diria que se o senhor não consegue pensar em qualquer Se o senhor não tem nenhuma maneira de fazer com que um miniprojeto de audição funcione para um forte candidato à contratação, talvez também não esteja estruturando o trabalho adequadamente para seus funcionários atuais.

Se o projeto de audição for um sucesso, fantástico – o senhor agora tem um candidato altamente qualificado que pode, comprovadamente, fazer as coisas acontecerem, e o senhor realizou algo que precisava ser feito. Até hoje, nunca vi um candidato aprovado no projeto de audição deixar de trabalhar. Eu peso muito o desempenho no projeto de audição; é o mais próximo que o senhor pode chegar de realmente trabalhar no emprego sem ser contratado. E se o projeto de audição não der certo, bem, considere o custo desse pequeno trabalho de consultoria como uma taxa de saída barata em comparação com um extenso processo de entrevista com 4 ou 5 outras pessoas em sua empresa. Na pior das hipóteses, o senhor pode passar o projeto de audição para o próximo candidato forte.

(Um período probatório de emprego condicional também pode funcionar, e é conceitualmente muito semelhante. O senhor poderia contratar com uma revisão de 6 a 8 semanas, com a decisão de “ir ou não ir”, com a qual todos concordam antecipadamente).

6. Entre em uma sala conosco e faça um pitch.

Por fim, o senhor deve encontrar os candidatos pessoalmente em algum momento. Isso é inevitável, mas o objetivo das etapas anteriores é que o senhor o senhor deve ter 95% de certeza de que um candidato seria uma ótima contratação antes mesmo de ele entrar em uma sala de entrevista.

Estou longe de ser um especialista em entrevistas presenciais, mas Não gosto de perguntas do tipo quebra-cabeça em entrevistas, para para dizer o mínimo.

Em vez disso, tenho minha própria teoria sobre como devemos entrevistar programadores: peça ao candidato que faça uma apresentação de 15 minutos sobre sua área de especialização. Acho que esse é um indicador de sucesso muito melhor do que uma entrevista tradicional, porque o senhor saberá rapidamente …

  • Essa pessoa é apaixonada pelo que está fazendo?
  • Ela consegue se comunicar com eficiência com um grupo pequeno?
  • Eles têm um bom controle sobre sua área de especialização?
  • Sua equipe gostaria de trabalhar com essa pessoa?

A única coisa que todo programador deve saber, segundo Steve Yegge, é como comercializar a si mesmo, seu código e seu projeto. Concordo plenamente. Agora, o senhor me apresente!

7. Nada disso é garantido.

O senhor pode considerar esta lista pelo seu valor nominal. Já vi essas técnicas funcionarem e, ocasionalmente, já as vi não funcionarem. Adapte essas recomendações à sua situação específica, mantenha o que achar que faz sentido e ignore o restante (embora eu o aconselhe enfaticamente a nunca pular a etapa 1). Mesmo nas melhores circunstâncias, contratar seres humanos é difícil. Uma oportunidade de emprego pode não dar certo por motivos que estão muito além do controle de qualquer pessoa. As pessoas são, como se diz, complicadas.

Se o senhor pensar no trabalho como um relacionamento, no qual passará 40 horas por semana (ou mais) pelo resto de sua vida, cabe a todos os envolvidos “namorar com inteligência”. Tanto a empresa quanto o candidato devem se esforçar de boa fé para determinar se há compatibilidade. Sua meta não deve ser apenas conseguir um emprego ou contratar alguém para um emprego, mas sim se divertir e criar uma conexão amorosa. Não se apresse em fazer nada, a menos que pareça certo para ambos os lados.

(como um aparte, se o senhor estiver procurando maneiras de atrair programadores, o senhor não pode errar com a este excelente conselho de Samuel Mullen.)

[advertisement] Qual é o seu próximo passo na carreira? Carreiras no Stack Overflow tem as melhores listas de empregos de grandes empresas, quer o senhor esteja procurando oportunidades em uma startup ou na Fortune 500. O senhor pode pesquisar em nosso anúncios de emprego ou criar um perfil e deixe que os empregadores encontrem o senhor.