Qual a eficácia dos desafios de programação no processo de recrutamento? [fechadas]

14

Acho que nossa empresa pode criar desafios projetados para encontrar candidatos a engenheiros de software que sejam:

  • Bom para resolver problemas, não para impressionar os recrutadores.
  • É mais provável que tenha medo de vir até nós em uma feira de carreira.
  • É mais provável que sejam subutilizados em seu trabalho de programação atual, mas são introvertidos demais para fazer algo a respeito.

Para um exemplo, consulte este artigo que discute o Facebook ocultando um endereço de email em uma imagem usando Piet .

Eu simplesmente não consigo encontrar estudos ou dados concretos sobre se isso realmente funciona ou não.

JoeB
fonte
Discordo. Não é incomum ter títulos de duas linhas nos sites da SE, e esse título específico é muito claro. Encurtá-lo pode torná-lo mais confuso.
Arseni Mourzenko
1
Não consigo imaginar um estudo sério. Como você decide se aqueles que são contratados após esse desafio são melhores do que aqueles que teriam sido contratados de outra maneira ou vice-versa? Os programadores diferem, sua educação muda muito ao longo das décadas, a mudança de recrutador, os desafios mudam, um sistema de pontuação utilizável é dificilmente imaginável.
usuário desconhecido
1
Oi Joe: as solicitações de estudos tendem a ser ruins aqui: nossa experiência não está na recuperação de informações. Se isso fosse formulado como "Qual a eficácia dos desafios de programação no processo de recrutamento?", Provavelmente seria muito melhor.
1
@mattnz: Não vejo de onde vem sua conclusão. Você pode realizar testes em animais com fumaça de tabaco em ratos. Você pode medir a velocidade da reação em um simulador depois que as pessoas bebem álcool. Como podemos transferir esses métodos para contratar programadores?
usuário desconhecido
3
@mattnz, o número de mortes por 10.000 pessoas durante um período específico, seja por câncer de pulmão ou por acidentes de trânsito, é uma quantidade (mais ou menos) objetivamente mensurável. Bondade de um desenvolvedor, ou sucesso de um projeto de SW, nem sequer são termos bem definidos.
Péter Török

Respostas:

7

Como qualquer ferramenta, elas podem ser extremamente úteis ou extremamente perigosas. Uma furadeira elétrica facilitará muito sua vida - até você perfurar a parte superior da mão e pousar no pronto-socorro. O mesmo acontece com os desafios de programação no recrutamento.

O bom : essa pode ser uma maneira eficaz de detectar alguém que, no papel, pode não ser tão atraente como programador. Aquele formado em algo que tem muito pouco a ver com o que as pessoas normalmente consideram "campos de programação" - Biologia, Ciência Política, História da Arte ...

Se eles explodirem em seus desafios, então ótimo. Eles aprenderam a programação, de alguma forma, e aparentemente está preso. Se eles ficarem atolados, sua aplicação pode realmente ser apenas algo que escapou ao RH.

O ruim : um desafio de programação mal escrito não avalia realmente a habilidade de programação . Ele testa a resolução de quebra-cabeças por meio de habilidades de programação . O problema é que, mais tarde, há uma questão de duas variáveis ​​- você é bom em resolver quebra-cabeças e pode fazer essa solução por código. É possível ter um programador perfeitamente talentoso que falha completamente na parte de resolução de quebra-cabeças.

A maioria dos desafios de programação que eu vi também falha em detectar pessoas próximas ao que você deseja, dependendo de como está escrito.


Existem maneiras de mitigar os dois. Para o último, eu consideraria aceitar "crédito parcial" na forma de soluções que não parecem estar chegando lá: "Aqui está como eu resolveria isso ..." etc. se você estiver realmente procurando por um problema solucionadores. Afinal, poucas pessoas codificam sozinhas e, se a resposta delas estivesse correta, elas poderiam perguntar a um colega sênior "Ei Jim, você conhece uma boa maneira de implementar o X?", Que pode muito bem ser alguém que você deseja seu time.

O primeiro é um pouco mais difícil, porque o ônus disso está em você. Escolha quebra-cabeças / problemas / desafios importantes. Se ninguém no seu grupo já se deparou com algo que se parecesse remotamente com o problema do Vendedor ambulante em seu trabalho, não faça um giro inteligente do Vendedor ambulante como o desafio que você enfrenta. Dessa forma, se eles estão falhando no aspecto de "resolver o problema e codificá-lo", pelo menos estão falhando em algo que realmente surgirá, em vez de alguma esperteza arbitrária que sua equipe cuspiu durante o almoço.

Fomite
fonte
+1. Criar um bom desafio de programação é um desafio real para o recrutador.
Simon Bergot
6

Muito efetivo.

... desde que seu processo de recrutamento não contenha apenas desafios de programação. Enquanto eu traste e odeio fazer a avaliação técnica de qualquer entrevista, ele faz agir como um simples indicador para filtrar idiotas. E filtrar idiotas é o cerne do processo de recrutamento, para que você possa gastar mais do seu tempo com aqueles que estão aptos para o papel.

Ao entrevistar, considero muito importante ver o que as pessoas dizem sob pressão. Se eles estão dispostos a cuspir um monte de porcaria flagrante, é facilmente identificável e saberei que essa pessoa não vale o meu tempo.

É mais provável que tenha medo de vir até nós em uma feira de carreira.

Isso não é uma coisa ruim. Se o seu candidato em potencial não está disposto a apostar que ele vale a pena ser empregado lá, você realmente quer recrutá-lo?

JK
fonte
1
Pode haver outras razões pelas quais alguém teria medo de procurá-las ... Por exemplo, algumas pessoas acham difícil / assustador tentar vender, ou mesmo apenas apresentar elas mesmas. Sentimentos atrapalham. Isso não significa que eles não seriam brilhantes e / ou valiosos uma vez que passassem pela fase inicial de contato.
Supr
0

Suponho que você queira que alguém trabalhe como parte de uma equipe - assim, o melhor programador é a pessoa que trabalha melhor com os membros da equipe existentes. Você deseja reunir um grupo de pessoas que possam se comunicar efetivamente entre si, que realmente se dão bem (elas não precisam ser amigas, mas precisam de bom relacionamento e respeito), que estão dispostas a concordar e use padrões comuns de desenvolvimento (código e processo), dispostos a ajudar suas faculdades quando lidarem com um novo problema ou tiverem um bloqueio mental (teoria dos quatro olhos). Você também precisa encontrar uma mistura de tipos de personalidade; portanto, se você tem uma equipe de introvertidos que raramente fala, a contratação de um membro mais falador da equipe pode melhorar a dinâmica da equipe, o que tornará a equipe mais produtiva. Por outro lado,

Depois de conseguir que uma pessoa se encaixe nessa mistura, considere a habilidade / habilidade técnica. Estes também precisam complementar. Todos têm áreas diferentes nas quais são fortes, outros são bons e alguns não têm idéia. Portanto, você precisa reunir um conjunto de forças relevantes para o projeto em questão. Lembre-se de que um codificador intermediário que trabalha bem com um bom codificador terá o nível de seu trabalho aumentado pela pessoa mais forte. O elo mais fraco da cadeia são os relacionamentos, não as habilidades (desde que a habilidade esteja na equipe)

Boa sorte em montar isso.

adam f
fonte