Contratando um desenvolvedor júnior, o que devo perguntar? [fechadas]

56

No momento, estamos contratando um desenvolvedor júnior para me ajudar, pois tenho mais projetos do que posso gerenciar atualmente. Nunca contratei alguém que não fosse amigo ou pelo menos conhecido. Tenho uma entrevista por telefone com o único candidato que realmente se destacou para mim (no papel), mas nunca fiz isso antes.

Nossos projetos são aplicativos da Web com alta escalabilidade e uso intensivo de dados que processam milhões de transações por hora, em vários servidores e clientes. Para ser específico do idioma / pilha, usamos ASP.Net MVC2, WebForms e C # 4, MSSQL 2008 R2, todos executados no Windows Server 2008 R2

O que devo perguntar a ele? Como devo estruturar a ligação?

Jeremy Boyd
fonte
5
Por que um desenvolvedor júnior e não sênior?
Job
10
Custo; empresa só se tornou lucrativa neste trimestre ... e meu ego é frágil;)
Jeremy Boyd
48
De muitas maneiras, um desenvolvedor "barato" pode ser mais caro do que um desenvolvedor experiente / caro. O frágil comentário do ego é absolutamente assustador. Se você nunca contratar pessoas mais inteligentes que você, será sempre o professor e nunca o aluno. Você ficará na poeira dessa maneira.
JohnFx
6
Existem alguns falsos juniores por aí (<3 anos de experiência, mas muitas habilidades). A idade é importante?
James P.
2
Se você estiver contratando Junior Developers, isso significa que você não poderá avaliar a experiência deles. Porque eles não têm muita experiência em sua curta carreira. Por outro lado, você pode avaliar suas habilidades de programação e também ver como eles escrevem código. Portanto, o primeiro passo pode ser um teste de habilidades, como http://tests4geeks.com. No segundo, você pode pedir que eles escrevam programas simples em casa. No seu caso, pode ser o aplicativo MVC que mostra a lista de alguns dados usando JSON e AJAX. A lista é atualizada automaticamente por um temporizador item para postado pode ser visto sem referesh ..
dura

Respostas:

49

Pergunte sobre quais blogs de tecnologia eles lêem, pergunte o que o candidato acha interessante na tecnologia atual e por quê.

Essencialmente, para uma entrevista por telefone, você deseja descobrir se é alguém que está entusiasmado com tecnologia e programação e está interessado em aprender e saber mais.

Como este é um júnior, você não pode esperar que eles conheçam muitos tópicos avançados, mas deseja ter certeza de que eles podem pensar como um programador - ofereça a eles um problema simples e peça que eles o orientem sobre como eles o resolveriam. Isso lhe dará uma visão de como eles pensam e resolvem problemas.

Oded
fonte
Eu gostaria de poder escolher duas respostas, porque a sua e a de Peter K. são uma ótima combinação.
Jeremy Boyd
5
Essa resposta é limitada e prejudicará as pessoas que seguem apenas esse conselho. Para a tela do telefone, siga os conselhos de Steve Yegge . Para pessoalmente, tenha desafios de codificação e siga o Guia de entrevistas de Joel para entrevistas . Tem uma pergunta de design - "quais são todas as etapas necessárias para fazer <inserir um software comum e não trivial>?" Você descobrirá que, independentemente da experiência, todos os bons contratados têm respostas boas e rápidas para esses problemas.
Robert P
Gostaria de poder +3 blogs @RobertP de pessoas do setor como Yegge, Joel e Atwood são tesouros para quem quer entrevistar ou em qualquer posição de liderança. ou qualquer pessoa do setor realmente, mas principalmente se você estiver em posição de orientar ou avaliar outros engenheiros.
21812 Jimmy Hoffa
26

Adotei uma abordagem aberta para entrevistas por telefone, mas para colocar alguma estrutura, geralmente peço à pessoa que fale através do currículo que enviou. Freqüentemente, a maneira como eles passam pelo currículo levará a outras perguntas e você entenderá melhor como elas são.

A outra coisa a se pensar durante a entrevista por telefone é perguntar: eu poderia trabalhar com essa pessoa? Eles são energéticos? Irritante? Preciso?

Peter K.
fonte
20

Código com eles.

Você definitivamente deveria fazer as coisas usuais da entrevista. Mas eu não contrato ninguém sem fazer uma sessão de programação em pares com eles.

Minha abordagem: levarei de 2 a 3 horas e um problema de brinquedo (por exemplo, "Vamos criar o Twitter v 0.1" para um desenvolvedor de pilha cheia ou "Vamos implementar a lista de primitivos" para uma pessoa de back-end). Vamos nos sentar no mesmo computador e discutiremos como resolvê-lo. Vou escrever o primeiro teste de unidade e dizer: "faça passar". Talvez eu escreva os próximos testes para ajudá-los a seguir em frente. E então eu geralmente os deixo correr, pulando apenas ocasionalmente. Quando ficarmos com pouco tempo, vou pará-los e perguntar para onde eles levariam a seguir e o que eles gostariam de fazer antes de colocá-lo ao vivo.

Coisas que procuro:

  • Eles podem colaborar bem?
  • Eles entendem o básico?
  • Eles podem dividir um problema em partes?
  • Eles valorizam o código limpo?
  • Eles pegam seus próprios bugs?
  • Eles tentam besteira quando não sabem alguma coisa?
  • Eles gostam de codificar?
William Pietri
fonte
17
Eu duvido seriamente que um Junior vá se sair bem em uma sessão de programação em pares com a moda no estilo TDD, ou mesmo testes de unidade em geral.
Martin Blore 24/03
3
Depende do histórico do programador júnior. Acabei de contratar um na semana passada que foi ótimo nisso. De maneira mais ampla, isso é parte do que estou tentando descobrir ao entrevistar. Se eles não forem bons na parte de testes, eu mesmo escreverei os testes ou deixarei que eles avancem sem testes. De qualquer maneira, deixe-me ver quais são seus pontos fortes e fracos.
William Pietri
2
Eu não gostaria de fazer isso agora, após 10 anos de experiência, não importa quando eu era júnior. Um pensamento horrível!
AnthonyBlake
3
Eu me consideraria um programador júnior e gostaria desta abordagem para mostrar como e o que posso fazer. Muitas vezes me deparo com perguntas que exigem definições perfeitas do dicionário, com pouca consideração ao seu uso e implementação geral. Você gostaria de citar uma lista memorizada dos usos da staticpalavra-chave na Wikipedia ou mostrar como posso usá-la em um contexto viável e aplicável?
AMCC
7

What's your Stack Overflow account name?

Uma das melhores maneiras de conhecer como o código de alguém será exibido é vendo-o em primeira mão. Uma das melhores maneiras de fazer isso é via SO.

Caso contrário, perguntas padrão se aplicam. Pergunte sobre situações difíceis e como elas as superaram. Pergunte sobre quais novos idiomas eles estão aprendendo ou pensando sobre o aprendizado e por quê. Pergunte a eles qual IDE eles usam e por que eles escolheram? Qual controle de origem?

Você pode aprender muito fazendo perguntas abertas que podem não estar relacionadas a um projeto específico, mas permitirá que elas trabalhem com você seu processo de pensamento.

EricBoersma
fonte
É melhor pedir a conta do github, embora eles provavelmente teriam compartilhado essas informações se tivessem uma conta.
Job
7
Dessa vez, entrei no SO e percebi que 90% das pessoas se preocupam apenas com o desenvolvimento da Web ... então deixei ... tanto para o meu representante.
Pemdas 18/03/11
3
Embora isso possa funcionar, não é necessariamente preciso. Pode-se fazer um esforço significativo no trabalho remunerado do que nos conselhos informais contribuídos.
NoChance
5
Pelo que vale a pena, alguns dos melhores desenvolvedores da minha empresa não têm uma conta SO ou têm uma reputação <100. É claro que é ótimo se eles tiverem uma conta com alto rep, mas você não pode ler muito sobre isso. eles não tendo um alto.
perfil completo de Jeremy Wiggins
Na verdade, se o candidato estiver um pouco ativo no SO (ou se ele já esteve ativo algumas vezes no passado), você provavelmente encontrará o link para ele no currículo. Por outro lado, os entrevistadores raramente têm tempo para examinar algo assim. O que em alguns casos pode ser bom para você, porque, por exemplo, não tenho orgulho de todas as perguntas / respostas que publiquei no SO.
Radu Murzea
6

Uma coisa que eu não vi aqui na minha leitura rápida é a necessidade de perguntar a eles sobre:

1 - Disposição para aprender

2 - Capacidade de auto-ensinar versus treinamento formal

3 - Exemplo de algo que eles aprenderam no passado

4 - Um exemplo de áreas com as quais não se sentem confortáveis

5 - Pergunta geral de alto nível como "se você está encarregado de criar um aplicativo da Web sobre ... quais tarefas precisam ocorrer e quem deve executá-las" - Isso deve lhe dar uma idéia sobre o conhecimento atual deles sobre o processo de desenvolvimento - É não precisa ser preciso, mas pelo menos você conhecerá a visão deles como é hoje.

NoChance
fonte
4

Fale-me sobre um projeto em que você trabalhou no passado

  • Descreva a arquitetura geral do projeto. Alto nível está bom.
  • O que você mais gostou no projeto.
  • O que você não gostou no projeto.
  • O que é algo que, em retrospectiva, você teria feito diferente?

Esta é uma ótima pergunta para entrevistas na minha opinião, telefone ou não. Se eles puderem falar de maneira inteligente sobre um projeto em que trabalharam, é provável que "entendam". Você está contratando um desenvolvedor de nível júnior, por isso não é importante que eles sejam especialistas ainda, mas eles devem pelo menos entender bem seu campo o suficiente para falar sobre isso. Normalmente, as pessoas que você deseja contratar não terão problemas em lidar com isso, enquanto as pessoas de quem você deseja ficar longe responderão em algumas frases ou menos.

O que você faz para se manter atualizado?

  • Quais blogs você lê?
  • Que livros você leu / está lendo?
  • Algo mais?

Em um setor que muda constantemente, acho importante que eles se mantenham atualizados. Esta não é a pergunta mais importante que faço em uma entrevista, mas se eles não conseguem encontrar nada a dizer, não é um grande sinal.

Diga-me como você escreveria uma aula de bicicleta

Talvez seja uma pergunta melhor para uma entrevista pessoal, para que eles possam escrever algum pseudo-código, mas acho que também poderia funcionar para uma entrevista por telefone ... Descreva uma bicicleta (ela possui guidão, rodas, etc. Alguém o monta. ) e peça que descrevam como modelariam as classes. Nada de inovador aqui, mas se eles se debatem com essa questão, provavelmente ainda são muito jovens para ser um trunfo.

Jeremy Wiggins
fonte
2

Já existem muitas dicas de entrevistas boas, mas acho que você não pode preencher essa posição até saber exatamente o que elas farão no dia a dia. Se seu primeiro pensamento foi: "O que eu precisar que eles façam". simplesmente pare. Encontre um pedaço específico de código para eles revisarem. Escolha o melhor e o pior código para eles olharem e verem se sabem a diferença. Dê a eles áreas para trabalhar em um primeiro projeto rápido que pode ter sido negligenciado.

Espero que você tenha contratado o melhor programador, mas todos têm áreas em que são melhores / mais experientes do que outros. Aproveite-o e defina seu papel de acordo.

Ah, e contrate alguém com um histórico de fazer as coisas.

JeffO
fonte
0

Quando você está em uma discussão individual com o desenvolvedor, pode conhecê-lo e verificar se eles são honestos com você.

Para fazer isso, você pode fazer a seguinte pergunta para saber como ele é realmente honesto

  1. Se eles fizeram alguma certificação, como uma Certificação Microsoft, verifique com eles se eles realmente estudaram e limpe-a.

  2. Alguns desenvolvedores juniores que fizeram seus projetos finais do ano não teriam feito o projeto sozinhos, ou seja, seus amigos devem ter feito isso por eles, etc.

Ser honesto desempenha um papel muito importante, quando o desenvolvedor júnior é encarregado de projetos confidenciais.

Se você acredita que pode confiar neles, pode dar um questionário sobre quais tecnologias estão sendo recrutadas, seguido de um texto prático com algum cenário para verificar se eles têm a capacidade lógica, ou seja, para verificar se eles têm contato constante na programação.

Karthik Sreenivasan
fonte
11
assumindo o pior das pessoas?
tp1
+1 para a suposição. @ tp1 Manter todas as opções em aberto. : D
Karthik Sreenivasan
0

O CEO da Sandglaz Nada Aldahleh escreveu recentemente um post sobre isso, com base em sua própria experiência em contratar desenvolvedores para sua startup. Aqui estão algumas das coisas que ela procura:

  • mentalidade para resolver problemas
  • fortes habilidades de comunicação
  • faça perguntas de arquitetura e algoritmo; um desenvolvedor júnior deve ser capaz de arquitetar novos recursos pequenos e as perguntas de algoritmo podem estar dizendo sobre a mentalidade de solução de problemas e o tipo de base que eles têm
  • quebra-cabeças para isolar habilidades analíticas

E, claro, o teste de programação, que não deve consistir da pergunta do Fizz Buzz. Uma tarefa da vida real que pode ser concluída dentro de algumas horas em seu escritório seria o melhor tipo de teste.

Você pode ler mais conselhos dela aqui: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

user104460
fonte