Qual é a melhor maneira de avaliar novos programadores? [fechadas]

52

Qual é a melhor maneira de avaliar os melhores candidatos para conseguir um novo emprego (falando apenas em termos de habilidades de programação)? Na minha empresa, tivemos muitas experiências ruins com pessoas com boas notas, mas que não têm habilidades reais de programação. Suas habilidades são apenas como macacos de código, sem a capacidade de analisar os problemas e encontrar soluções.

Mais coisas que tenho que observar:

  • O sistema educacional no meu país é péssimo - realmente é péssimo. As pessoas que são boas nesse tipo de trabalho são boas porque têm talento para isso ou realmente tentam aprender por conta própria.

  • A universidade / graduação / pós-graduação não significa necessariamente que você sabe exatamente como fazer as coisas.

  • Certificações também não significam nada aqui, porque as pessoas encarregadas do curso de certificação também não possuem habilidades (ou estão em empregos com baixos salários).

Precisamos realmente obter os bons candidatos que são flexíveis e não têm pensamento mecânico (porque esse tipo de pessoa por experiência tem um desempenho baixo).

Estamos em uma instituição governamental e as pessoas candidatas não necessariamente vêm de fora, mas temos a possibilidade de aceitar ou não candidatos até encontrar o correto.

Espero não parecer muito agressivo na minha pergunta; e BTW eu sou um programador.

edit: Eu descobri que pedi algo realmente complexo aqui. Desmarcarei "a resposta correta" apenas para deixar a discussão fluente, sem qualquer viés.

Rafael
fonte
Eu valorizaria a criatividade, como você diz em relação ao código. Eu não gosto da abordagem de força bruta, se gerações de programadores anteriores usaram uma abordagem específica, isso pode significar que é ótimo ou apenas que ela é perpetuada há muito tempo. Além disso, a educação não deve se concentrar nas habilidades comerciais, e eu diria que é super importante, mas colocar as notas reais adquiridas além de um nível competente básico como não tão importante. Eu adoraria ver mais do sistema da Khan Academy de muitos módulos pequenos de aprovação / reprovação com outras dependências de aprovação de módulo e um período de resfriamento antes de poder retomar um módulo.
alan2here

Respostas:

52

Em relação à seleção de candidatos, costumo seguir um plano de três greves:

  • Teste regular com perguntas de codificação semelhantes ao FizzBuzz e muitas perguntas de conhecimento, onde eles precisam dar exemplos codificados. Dependendo da posição, podem ser princípios OO, princípios de design SQL etc. Eu incremento as dificuldades das perguntas ao longo do teste para ver até onde elas podem ir. A idéia não é realmente ter todas as perguntas respondidas (se tiverem, melhor), mas também ver se elas conseguem reconhecer quando não sabem alguma coisa. Confiar é essencial e não quero que alguém minta para mim na minha equipe.

  • Retorne ao teste com o candidato e discuta as respostas. Possível extensão das perguntas para atingir os limites do candidato. Isso pode ser extenso e, quanto mais extenso, melhor.

  • Última parte, mas não menos importante, The Code Review . Peço ao candidato que traga um pedaço de código (geralmente espaço o teste / discussão anterior e esta revisão por alguns dias, para deixá-los escrever e polir um pedaço de código). Em seguida, fazemos uma revisão regular do código com duas pessoas: uma pessoa que trabalhará diretamente com o candidato e a pessoa que revisou o teste com o candidato anteriormente. Em relação à revisão de código, você pode ler este artigo em JohnFX .

No final de tudo isso, você poderá decidir se deseja ou não que este candidato faça parte de sua equipe.

Matthieu
fonte
4
Concordo com as questões de codificação e de conhecimento, nunca concordei em pedir aos candidatos que tragam um pedaço de código. Na minha opinião, não é fácil encontrar um pedaço substancial de código que: mostre algo não trivial, não exija muito conhecimento de um sistema maior e que você possa mostrar a outras pessoas.
Andrea Zilio
Eu diria que revisão de código. O FizzBuzz é muito usado. E você pode assustar as pessoas. Sou programador em serviços de saúde e financeiros, e coisas como fizzbuzz são inúteis. Você precisa entender uma interação muito mais complicada. Peça exemplos de código, mesmo que seja um FPS no pygame. Se eles não têm exemplos de código, não são codificadores.
precisa
11
@ChristopherMahan O valor do FizzBuzz (e codificação similarmente trivial) é como um simples gatekeeper. Se eles não podem implementar o FizzBuzz, no idioma de sua escolha, eles podem escrever QUALQUER código?
Vatine 21/03/12
O @Vatine FizzBuzz testa a capacidade de raciocínio lógico, não a habilidade de programação. Concedido, é preciso ser capaz de fazê-lo. Uma simples questão de programação seria: exibir na tela uma lista de itens classificados de uma maneira interessante. Eles teriam que codificar, mas seriam capazes de aproveitar a experiência para criar algo para escrever, e não precisariam também tentar descobrir o quebra-cabeças. Uma vez eu falhei em uma entrevista porque eles queriam que eu usasse regex e respondi que, para esse problema, regex é um exagero e o python possui recursos internos para fazer isso. Eu não queria trabalhar lá, eu acho.
Christopher Mahan
A Revisão de Código é uma péssima idéia, e a refutação de JohnFX é insuficiente. Conheço muitos desenvolvedores que são ótimos, mas não trabalham em nada fora das bases de código proprietárias de seus empregadores. São pessoas com famílias e coisas para fazer fora do trabalho. No entanto, quando eles trabalham, eles são muito produtivos.
MrFox 31/10/2013
20

Comece dando a eles o FizzBuzz para resolver. Isso deve eliminar o pior deles.

Então, algo um pouco mais difícil - por exemplo, como reverter uma string sem funções internas da biblioteca. Peça que eles conversem enquanto resolvem para ver qual é o processo de pensamento deles.

Você pode continuar dando problemas mais difíceis se eles acharem isso muito fácil, até que esteja convencido de que eles podem caminhar e não apenas conversar.

Oded
fonte
11
Eu acho que pode depender do nível do programador que você está entrevistando. Embora possa ser bom acessar a capacidade de uma contratação de nível júnior, consideraria essas perguntas em uma entrevista um indicador claro de que não era uma empresa na qual queria trabalhar.
jfrankcarr
3
Eu discordo da parte falante. Você costuma conversar consigo mesmo ou com outras pessoas enquanto resolve problemas? Que tal dar espaço a uma pessoa e deixá-la pensar um pouco? Portanto, a menos que seja completamente trivial, acho que não é uma boa prática.
Andrey Rubshtein
11
@Andrey - A parte da conversa é obter uma visão do processo de pensamento deles. Você quer ver como eles pensam sobre um problema e a abordagem para resolvê-lo. Você tem uma opção melhor?
Oded
5
@ Oded, sim, na verdade eu faço. Deixe-os pensar um pouco, sozinhos , como fariam na vida real, especialmente se for um problema difícil, e depois pergunte a eles o quanto quiser. Como em qualquer prova oral.
Andrey Rubshtein
4
Mesmo como atendente de uma escola que possui vários profissionais de CS recentemente reconhecidos, acho que o fizzbuzz trivial é um bom filtro. A maioria das pessoas com quem me formei provavelmente não conseguiu resolvê-lo em um período de tempo razoável. Essas pessoas lutavam para encontrar emprego ou não. Eu acho que seguir joelonsoftware.com/articles/GuerrillaInterviewing3.html é bom.
Rig
14

Basta procurar paixão pelo trabalho.

Para citar Joel, procure pessoas que sejam " inteligentes e faça as coisas " .

O resto não importa

CaffGeek
fonte
7
O problema é que você não pode dizer se eles são inteligentes.
4
@ Chade: a paixão pelo aprendizado não "faz as coisas". Para descobrir se alguém pode fazer as coisas, você precisa pedir que façam alguma coisa.
Kevin cline
2
@ Kevin Cline, tweaked meu post. Eles precisam ter paixão pelo trabalho, geralmente isso é demonstrado pelo desejo de aprender. Sim, são necessárias algumas perguntas, a conversa deve fluir, não deve ser apenas uma série de perguntas. Mas, para descobrir se eles fazem as coisas, peça exemplos onde eles tinham um obstáculo e como eles o superaram. Todos enfrentam obstáculos em seu trabalho, seja de tecnologia, pessoas, processos, mas uma pessoa inteligente, que faz as coisas, encontrará uma maneira de superá-la e poderá explicá-la, em detalhes, o suficiente para vendê-lo. a capacidade deles.
CaffGeek
3
@mouviciel não na minha experiência. Alguns dos programadores mais inteligentes que conheço são muito extrovertidos.
4
Se você não puder sentar em uma sala com um candidato a desenvolvedor e descobrir se ele é inteligente ou não, encontre alguém que possa.
Jeffo
13

Com base nos meus 25 anos de programação (que, reconhecidamente, inclui apenas 5 ou 6 instâncias de contratação de outros programadores):

Indicadores positivos:

  • Apaixonado por tecnologia

  • Programas como hobby

  • Falará sobre assuntos técnicos se incentivado

  • Projetos secundários pessoais significativos (e muitas vezes numerosos) ao longo dos anos

  • Aprende novas tecnologias por conta própria

  • Opinião sobre quais tecnologias são melhores para vários usos

  • Muito desconfortável com a ideia de trabalhar com uma tecnologia que ele não acredita estar “certa”

  • Claramente inteligente, pode ter ótimas conversas sobre diversos tópicos

  • Começou a programar muito antes da universidade / trabalho

  • Possui alguns “icebergs” ocultos, grandes projetos pessoais sob o radar do CV

  • Conhecimento de uma grande variedade de tecnologias não relacionadas (pode não estar no CV)

Indicadores negativos:

  • Programar é um trabalho diário

  • Realmente não quero “conversar”, mesmo quando incentivado a

  • Aprende novas tecnologias em cursos patrocinados pela empresa

  • É um prazer trabalhar com a tecnologia escolhida, "todas as tecnologias são boas"

  • Não parece muito inteligente

  • Começou a programar na universidade

  • Toda a experiência de programação está no currículo

  • Focado principalmente em uma ou duas pilhas de tecnologia (por exemplo, tudo relacionado ao desenvolvimento de um aplicativo java), sem experiência fora dele

Além disso, eu sugiro:

  • O teste do FizzBuzz (ou algo parecido para testar a capacidade básica de escrever um algoritmo.
  • Versão mais difícil do teste do FizzBuzz (para levá-los ao ponto de falha ou quase-falha).
  • Discuta seu código e veja se eles estão dispostos a ser autocríticos e procure melhorias (o que provavelmente não tiveram tempo de fazer em um teste curto no local), como:
    • bons nomes de variáveis ​​(eu tive codificadores experientes e experientes que usam variáveis ​​na produção como "flag" (WTF ??)
    • modularização.
    • Antecipando problemas e fazendo "codificação defensiva"
  • Uma vontade de ver "falhas" como oportunidades de melhoria. Eu acho que os melhores codificadores sempre procuram falhas no código anterior. Eles não são tão egocêntricos que pensam que encontrar uma falha deles é uma afronta pessoal. Eles vêem isso como uma oportunidade de fazer melhor. (Aqueles que não conseguem enxergar falhas de maneira inabalável ou ficam impressionados ao ver uma falha (e ficam super confiantes ou, para evitar isso, ignoram as falhas).
  • Eles podem depurar?
  • Eles podem testar a unidade? (Conversei com muitos programadores que dizem "QC faz isso". Não estou falando sobre testes, estou falando sobre testes: você escreve uma função, funciona? Faz esforços razoáveis ​​para lidar com problemas prováveis ​​(entrada NULL, etc.)? Se você não pode fazer isso, como sabe quando termina?
  • Eles têm boas habilidades de comunicação? (no mínimo: boa compreensão e autoconhecimento sobre quando eles entendem e não o entendem e vontade de dizer "eu não entendo, por favor, explique novamente".

Grande parte do resumo acima é de Como identificar um bom programador , que é um ótimo artigo, focado um pouco mais em indicadores de longo alcance. Definitivamente, confirma minhas intuições e experiência. Também há muitas coisas (como "paixão") que normalmente não são mencionadas em uma lista de verificação de "o que é um bom programador".

Clay Nichols
fonte
10

Avaliar a inteligência de programação é uma forma de teste de Turing. Portanto, atualmente não existem procedimentos de avaliação de formulário fechado que garantam o funcionamento. São necessários programadores inteligentes para reconhecer outros programadores inteligentes, mas apenas com alguma probabilidade razoável.

Suas chances serão melhores se você tiver entrevistadores em sua equipe que sentirão cheiro de trabalhos na neve e não gostarem instintivamente de trabalhar com pessoas estúpidas (mesmo as que são bonitas, têm currículos com aparência impressionante e podem jorrar todas as soluções enlatadas usuais de memória) .

(Uma metodologia de possibilidade que ajudaria a qualidade do fluxo de pilha como efeito colateral é desenterrar perguntas antigas sobre fluxo de pilha, relacionadas de alguma forma aos requisitos de seu trabalho, mas que, na sua opinião, têm respostas inferiores; pergunte ao entrevistado como ele responderia e peça-lhes que publiquem, se for uma boa resposta. Semelhante a uma recapitulação para OCR de origem coletiva.)

hotpaw2
fonte
7

Dê a eles um problema, de preferência um associado ao domínio do problema em que eles estejam trabalhando e peça que discutam como eles abordariam isso. Você pode tê-los apenas discutindo, pseudo-código ou escrevendo partes do código real, dependendo de quão confiante você está no nível de habilidade deles

Por exemplo, se sua organização fez conferências, peça que descrevam como codificariam um sistema de registro online seguro. Eles devem ser capazes de cobrir alguns princípios básicos e fazer boas perguntas sobre exatamente o que precisa ser implementado. À medida que você interage, você deve determinar se eles serão adequados para sua organização e a função que você precisa que eles cumpram.

Eu não sou um grande fã de programação de testes triviais e quebra-cabeças. Embora possam ser divertidas para algumas pessoas, elas também podem incomodar e / ou estressar outras pessoas, incluindo pessoas que podem ser as mais adequadas para sua equipe. Além disso, as informações sobre muitos desses testes estão disponíveis on-line e incentivam os testes e outras táticas que reduziriam sua viabilidade para avaliar a capacidade do programador.

jfrankcarr
fonte
Concordo com você sobre as desvantagens do teste de trivia / cérebro para a seleção de candidatos. o problema é que revisar / discutir o código com todos os candidatos consumirá muito tempo. E talvez o resultado seja mais subjetivo. não exatamente o que estou procurando, prefiro algo que precise de menos supervisão pessoal. e mais tarde, quando eu tenho candidatos mais adequados, em seguida, falar / discutir / entrevistá-los
Rafael
3
Consome muito tempo? Alguém vai ter que conversar com os candidatos. Nenhum teste escrito funcionará. O conteúdo do teste rapidamente se tornará conhecimento público e os candidatos chegarão com respostas memorizadas.
Kevin cline
10
@kevincline: Exatamente, você tem que falar com eles. Eu estava entrevistando na Xerox (nos anos 70) e me perguntaram como lidaria com colisões em um algoritmo de hash. Eu não tinha muita escolaridade formal em programação, mas fazia isso há cerca de 5 anos na época, então disse que não sabia o que era um hash. Meu entrevistador me explicou e depois fez a pergunta novamente. Continuamos por mais de uma hora quando descobri e resolvi vários tipos de problemas de colisão. Ele me disse que se eu pudesse fazer isso em uma hora, eu poderia lidar com qualquer coisa que eles jogassem em mim. Eu consegui o emprego. Porque ele falou comigo.
precisa
@ PeterRowell É assim que as coisas precisam ser. +1
Quíron
3

A leitura desta pergunta e de algumas das respostas recebidas me levou a escrever um artigo que eu acho interessante.

Práticas de recrutamento estranhas ao contratar desenvolvedores de software

Ok, o título do artigo é um lixo, mas o artigo chega ao cerne do problema. Não é problema do candidato que você escolheu entrevistá-los, por mais inapropriados que sejam para o papel que você tem em mente. Se você não conseguiu definir um procedimento de contratação bem fatorado para permitir que você encontre as pedras preciosas, você terá que conviver com as consequências e, sim, isso significa obter alguns candidatos que possam nunca atenda às suas expectativas. Filtrar seus candidatos com base em suas cartas e currículos exige que você primeiro peça aos seus candidatos que escrevam uma carta sobre si mesmos e o que eles querem da função e, em seguida, veja como o currículo é escrito. Se você tem apenas um ou dois candidatos em potencial para entrevistar, provavelmente já fez a pré-triagem corretamente.

Quando você encontrar os 1 ou 2 candidatos que você considera realmente valiosos, simplesmente não faça um punhado de perguntas insanas aos testadores, mas invista tempo para conhecer essas pessoas e participar de discussões abertas sobre software engenharia em geral. Você aprenderá mais com uma abordagem casual sobre o candidato do que nunca na situação tradicional (e um tanto contraditória) da entrevista. Além disso, não basta se contentar com uma única entrevista, mas trate seus candidatos-chave para várias reuniões em que a discussão aberta é usada e onde o candidato pode se encontrar com seus colegas em potencial. O tempo nunca é desperdiçado, pois candidatos inadequados não prosperarão muito bem em uma discussão altamente técnica e mostrarão suas falhas muito rapidamente ao baixarem a guarda.

S.Robins
fonte
Bons pontos. No entanto, eu teria cuidado com muitas entrevistas. Tanto o candidato quanto o seu tempo são valiosos (principalmente se o candidato estiver atualmente empregado em outro lugar). Na minha experiência, mais e mais entrevistas têm retornos decrescentes, então eu limitaria a uma ou duas entrevistas. Uma entrevista por telefone (adicional) também pode ser um compromisso.
sleske
11
@lesleske, concordo em princípio, principalmente se as mesmas pessoas comparecerem a todas as entrevistas. Portanto, é melhor compartilhar o ônus de encontrar o melhor ajuste para a empresa e a equipe, e oferece a você a chance de aprender com as observações de outras pessoas. As entrevistas ruins não vão além, mas quanto mais interessados ​​tiverem interesse no candidato, mais entrevistas você precisará, portanto, não é incomum ter 3 ou mesmo 4 entrevistas em equipes muito amplas. Muitos mais, no entanto, dariam a impressão de serem terrivelmente desorganizados. Também vale a pena informar o candidato sobre o número de entrevistas antecipadas.
precisa saber é o seguinte
@ s-robins opiniões interessantes, só quero colocar alguma luz sobre alguns aspectos da minha pergunta. Devido a um motivo fora de nosso controle, não podemos selecionar nossos candidatos com base em um processo normal de recrutamento. Em vez disso, os candidatos só vêm e precisamos dizer se ele tem as habilidades / conhecimentos corretos para aceitar o trabalho. Talvez em processos normais de recrutamento essas coisas não ocorram com muita frequência. mas em nossa posição precisamos lidar com essa situação.
Rafael
@ Rafael, se eu entendo seus comentários corretamente, você está dizendo que recebe candidatos de "algum outro lugar" para avaliar e que sua dificuldade está em fazer uma avaliação objetiva de um candidato sem conhecimento prévio sobre ele. Isso parece mais um problema sistêmico dentro da organização em que você trabalha. Sugiro que me encontre com as pessoas que enviam candidatos à sua maneira e trabalhe com elas para criar um sistema para filtrar os candidatos obviamente inapropriados antes de entrevistá-los. Talvez até solicite que um processo de inscrição mais formal seja implementado.
S.Robins
@ s-robins você entendeu bem ...
Rafael
1

Você não disse para qual idioma, mas é bastante fácil testar o conhecimento de alguém. Também depende do nível que você está procurando, mas há um grande número de perguntas sobre as perguntas da entrevista.

No entanto, você decide realizar sua entrevista, não faça as perguntas da entrevista do "quebra-cabeça do pensamento lateral" .

BЈовић
fonte
2
propusamente, não especifiquei a linguagem que estamos usando para desenvolver, porque acreditamos que um bom programador (com seu curso de capacitação respestiva) pode aprender a programar em qualquer linguagem independente de sua sintaxe.
Rafael
2
@Rafael norvig.com/21-days.html . Como eu disse, depende se você está procurando um programador júnior ou sênior.
BЈовић
Porque eu estou falando sobre a maioria dos candidatos são recém-formados. Estou me referindo a programadores júnior, mas a minha pergunta vai no contexto mais amplo que o meu processo de recruta pessoal específica
Rafael
@ Rafael Nesse caso, você está esperando muito de um júnior. Leia o artigo que eu publiquei no comentário acima, onde ele diz quanto tempo leva para dominar uma linguagem de programação.
BЈовић
Não estou falando sobre dominar uma linguagem de programação específica, mas sim para obter a melhor pessoa com o melhor conjunto de habilidades genéricas de programação (por isso não especifico a linguagem), não posso esperar que todos isso ocorre quando o candidato domina a linguagem que estamos programando, e é por isso que estamos em posição de promover um curso de capacitação se as pessoas não conhecem a linguagem.
Rafael
1

Sugiro que você faça uma pergunta no FizzBuzz e contrate a primeira que for aprovada. Testes adicionais tendem a ser falhos, pois nem todo bom programador abordará um problema como você, ou lidará com uma entrevista sem gaguejar, ou conhece os idiomas que deseja ou se preocupa, ou tolice, como trocar números inteiros sem uma terceira variável (quem precisa mesmo assim? média, já que a RAM excedeu 128 bytes?).

Pense nisso. Se a pergunta do FizzBuzz elimina 199 de 200, apenas eliminou centenas de entrevistas. Você realmente iria entrevistar centenas de clientes em potencial?

Apenas parece haver retornos decrescentes após o FizzBuzz. Isso pressupõe que 199/200 seja aproximadamente aproximado. E presumo que SEU tempo também é valioso ...

Harold Bamford
fonte
2
Assustador como o FizzBuzz é o teste padrão para avaliar a competência de um programador. No entanto, este é um teste testado e comprovado - não sei dizer quantos programadores com graus de CS não podem fazer isso (no 'idioma de sua escolha') #
685 Nodey The Node Guy
0

Não tenho certeza se isso é um comentário ou resposta, mas basicamente o que Matthieu disse. Você quer perguntas fáceis e estúpidas que levam um ou dois minutos (mas não mais que 5) e devem ser sobre áreas diferentes.

Esses exemplos de perguntas fáceis estúpidas são sobre recursão, como você tem uma lista e deve imprimi-la na ordem inversa sem usar um loop. Uma pergunta simples sobre regex se o regex normalmente é feito em seu desenvolvimento. Uma pergunta sobre bits e bytes se estiver usando C ++ (escreva um modelo que aceite char por muito tempo e imprima a representação binária. A especialização não é necessária, basta usar sizeof () para descobrir o tamanho do bit)

Você deve levar cerca de <= 3 minutos por pergunta

user2528
fonte
0

Pergunte a eles sobre o desafio de programação mais interessante que eles já tentaram resolver, mas não conseguiram, que abordagem eles usaram ao resolvê-lo, por que eles não conseguiram resolver e que outra abordagem eles acham que pode resolvê-lo.

Isso é o suficiente para eu julgar as habilidades de um programador como programador.

Priyadarshi Kunal
fonte
0
  1. Eles podem defender o que afirmam saber? Eles colocaram no currículo / CV como uma habilidade ou algo que fizeram em outro projeto. Veja como eles podem aprofundar o assunto.
  2. Eles podem aprender algo novo? Fale sobre um aspecto de alto nível da tecnologia que você está usando ou algo específico para o domínio comercial em que trabalha e veja se eles conseguem entender o assunto. Eles fazem perguntas inteligentes? Eles podem criar uma analogia? É semelhante a algo que eles fizeram em outro setor ou tecnologia?

  3. Eles preferem estar programando? Não precisa ser o número um na lista, mas eles precisam mostrar uma preferência em escrever código. Quero dizer, escrever código e criar algo, não ficar sentado conversando sobre isso ou desenhando no quadro o dia inteiro. Não para minimizar o planejamento ou promover a codificação de cowboys, mas você precisa ter código eventualmente. Evite aqueles que evitam o teclado. Esta não é uma posição de gerenciamento.

Você pode fazer uma pontuação em uma escala de uma a dez coisas ou apenas confiar em ser capaz de cheirar sua própria espécie.

JeffO
fonte
0

Se isso faz você se sentir melhor, existem maus programadores em praticamente todos os países. Como eliminá-los é o problema.

A primeira remoção de ervas daninhas é o currículo. Uma coisa que procuro é muita experiência no idioma reivindicada e nada para descrever o que eles fizeram nesse idioma. Eu vi currículos que afirmam que conhecem todos os idiomas já inventados e, no entanto, sua experiência mostra que eles realmente só trabalharam com o Access e o Visual Basic. Aqueles vão direto para o lixo. Os resumos de 10 páginas vão direto para o lixo (especialmente os de dez páginas de pessoas com menos de 2 anos de experiência que obtive). Desde os recém-formados com pouca experiência, é preciso 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 preocupa tão pouco que não se preocupou em revisar seu currículo?

Os currículos preparados profissionalmente também estão no 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 em um currículo preparado profissionalmente e sabe que a pessoa não fez sua própria preparação. Este é o tipo de pessoa que confiará nos outros para resolver seus problemas para ele. Você realmente quer isso em uma posição de programação?

Procure coisas que façam a pessoa se destacar pelas que você escolher. É mais difícil, é claro, com os que estão fora da escola, mas procure realizações, contribuições para o código aberto, etc.

A próxima eliminação é a entrevista por telefone. Pergunte sobre conceitos básicos que se relacionam com o trabalho que você tem. Se as pessoas não têm conhecimento básico de conceitos que você precisa, não vale a pena se incomodar em trazer uma entrevista pessoal. Os jovens costumam pensar que isso é injusto, porque podem procurar tudo na Internet, mas a verdade é que nunca conheci um bom programador que tivesse que procurar tudo na Internet. Você deve ter algum conhecimento de sua profissão que não precise procurar sempre.

Após a entrevista por telefone, você deve escolher os melhores 4-5 candidatos e a entrevista. É claro que se você tiver apenas 1-2 bons candidatos, não se incomode em entrevistar pessoas que você já eliminou. Agora você fará as perguntas mais difíceis e terá uma ideia de como elas abordam os problemas. Eu nunca usaria o teste fizzbuzz porque é muito conhecido, portanto as respostas não dizem nada. Em vez disso, crie alguns problemas a partir de sua própria base de código. Posso dar a eles um requisito e um pedaço de código e perguntar 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. Eu pediria que descrevessem o problema de programação mais difícil que tiveram que resolver e que medidas foram tomadas para encontrar a resposta. Gostaria de fazer algumas perguntas técnicas mais aprofundadas. Lembre-se de que você está tentando entender a competência técnica deles, a capacidade de resolver e depurar problemas e de se adaptar à sua equipe existente. Também faço perguntas que eles provavelmente não sabem a resposta para julgar como lidam com o estresse, é um trabalho estressante, não quero alguém que se dobre na entrevista porque o estresse do trabalho é maior que o estresse da entrevista . Eu procuro pontos fortes nas áreas em que atualmente somos fracos e capacidade de trabalhar em equipe e de nos apresentar aos clientes (nossos desenvolvedores lidam extensivamente com os usuários), sua lista pode ser diferente. não quero alguém que desista da entrevista porque o estresse do trabalho é maior que o estresse da entrevista. Eu procuro pontos fortes nas áreas em que atualmente somos fracos e capacidade de trabalhar em equipe e de nos apresentar aos clientes (nossos desenvolvedores lidam extensivamente com os usuários), sua lista pode ser diferente. não quero alguém que desista da entrevista porque o estresse do trabalho é maior que o estresse da entrevista. Eu procuro pontos fortes nas áreas em que atualmente somos fracos e capacidade de trabalhar em equipe e de nos apresentar aos clientes (nossos desenvolvedores lidam extensivamente com os usuários), sua lista pode ser diferente.

HLGEM
fonte
-1

Os candidatos devem receber um problema do mundo real para resolver com a liberdade de usar qualquer tecnologia.

Se ela sai em cores voadoras, está dentro!

SHOUBHIK BOSE
fonte