Entrevista técnica e habilidade do programador [fechado]

14

O que vou dizer pode ser um pouco polêmico por natureza, mas hoje estou muito desanimado - e por isso vou perguntar isso.

Acabei de fazer uma entrevista com uma grande empresa de tecnologia para um cargo de estágio, onde me perguntaram muitas perguntas típicas de entrevista orientada por algoritmos. Agora, considerando meu histórico, considero-me strong em algoritmos (também tenho boas notas em algoritmos de nível de pós-graduação - envolvendo NP-completude e além (algoritmos de aproximação e randomizados), mas infelizmente eu fui reprovado na entrevista. pense em um método muito eficiente de resolver um problema de corda em aproximadamente ~ 10 minutos. Uma vez terminada a entrevista, tomei um copo de água, comi uma banana e relaxei por um tempo e tentei o problema novamente. E vola! resposta eu poderia chegar em menos de 5 minutos. E o pior de tudo - eu estava realmente nessa faixa e o entrevistador fez dica sobre isso, mas muita pressão me cozinhou. Toda a minha experiência me fez pensar em entrevistas técnicas. perguntas e eu queria colocá-los neste fórum -

  1. É realmente possível julgar a habilidade técnica de alguém em meia hora? Honestamente? Ou é apenas um lance de dados?

  2. As perguntas técnicas da entrevista medem a capacidade de resolver problemas? Este ponto é muito discutível? Como estudante de doutorado, sei que a resolução de problemas matemáticos envolve a solução de algo sobre o qual você nunca ouviu falar antes. Por outro lado, questões como - unir duas listas encadeadas em ordem de classificação ou imprimir todos os elementos de uma árvore binária no nível kth tornam-se "meros exercícios" uma vez que alguém tenha visto a solução ou resolvido o problema antecipadamente?

  3. As pessoas que saem com cores voadores nessas entrevistas se tornam ótimas programadoras? Eles vão e projetam um mecanismo de jogo elegante, bibliotecas de gráficos, escrevem estruturas de junção de garfo rápidas? Existe alguma evidência que aponte para uma correlação positiva entre se dar bem em entrevistas técnicas e capacidade de programação real? Ou essas entrevistas são mais voltadas para encontrar o tipo de pessoa "fazendo as coisas acontecerem" (Spolsky)?

Eu posso apostar que muitos acadêmicos publicando idéias inovadoras em - ICML, VLDB, Mobicom - irão reprovar essas entrevistas. Mas posso assegurar-lhes que eles são algumas das pessoas mais inteligentes que você encontrará neste planeta.

Eu estou principalmente na academia (estudante de pós-graduação) - então eu apreciarei muito algumas percepções de alguém do outro lado da cerca. Alguém que realmente conduz essas entrevistas?

[Ok, todos Obrigado por todas as respostas agradáveis e atenciosas. Como não quero fazer outra pergunta, peço que responda a essa pergunta para mim.

Suponha que o candidato X tenha um bom portfólio público de trabalhos em que ele tenha contribuído para algum projeto conhecido de código aberto, onde você pode verificar seus patches, verificar os bugs que ele fechou e observar os designs criados por ele . Nesse caso, a questão é quanto peso você está disposto a dar ao seu trabalho publicamente disponível / verificável versus quão bem ele responde a uma pergunta de entrevista de árvore binária em 15 minutos?]

    
por user396089 29.02.2012 / 02:14
fonte

5 respostas

11

Tenha em mente que ...

  1. O principal objetivo de um processo de entrevista não é chegar à verdade absoluta sobre a capacidade pessoal de cada entrevistado, mas selecionar poucos candidatos de um grupo de muitos.
  2. É MUITO MUITO mais caro contratar um desenvolvedor ruim do que passar um bom desenvolvedor.

Então, muitas vezes, ao entrevistar, atalhos imperfeitos (como questionários técnicos) são tomados porque, como você mencionou, não há um processo perfeito para ser capaz de julgar uma pessoa em 30 minutos. Mas como a maioria não tem o luxo de trabalhar com você lado a lado, você deve simplesmente aceitar que é o que é, um jogo de probabilidades que todos jogam.

    
por 29.02.2012 / 03:50
fonte
9

Is it really possible to judge someone's technical ability in half and hour?

Não exatamente. É possível eliminar as pessoas que não conseguem programar e aquelas que não conseguem explicar as coisas em seu currículo. Além disso, geralmente estou apenas tentando avaliar a inteligência geral e o interesse no campo. É difícil comentar sua situação sem saber o problema que você foi solicitado a resolver.

Do technical interview questions measure problem solving ability?

Esse não é o objetivo das minhas perguntas técnicas. Em vez disso, estou tentando descobrir se o candidato tem uma noção dos fundamentos da ciência da computação. Para avaliar a capacidade de resolver problemas, peço a um candidato que conte sobre um problema interessante em que eles trabalharam.

Do people who come out with flying colors in these interview go on to become great programmers? Or are these interviews more geared towards finding "getting things done" type of person (Spolsky)?

É sobre isso. A grandeza é rara. Fico feliz em encontrar alguém competente.

    
por 29.02.2012 / 02:36
fonte
5
  1. Sim. Sim, honestamente. Isso não quer dizer que 30 minutos é tempo suficiente para obter uma visão completa do que uma pessoa é capaz de fazer. O trabalho do entrevistador é fazer o melhor para sentir quem é o entrevistado e o que ele pode fazer. Encontrar as pessoas que colocam algo em seu currículo que eles realmente não sabem é direto. Descobrir exatamente o que o entrevistado pode fazer, incluindo todas as suas habilidades e pontos strongs, não é.

  2. Sim. Eles permitem que você veja como o entrevistado pensa. Obter a resposta correta nem sempre é necessário. Ver alguém lidando com um problema com o qual lutam é tão benéfico quanto ver alguém responder a um problema corretamente sem muita dificuldade. Eu sempre faço uma pergunta que acho que o entrevistado pode não ser capaz de responder.

  3. Não conheço nenhuma prova empírica que diga que as entrevistas técnicas encontram os melhores candidatos, mas é a melhor coisa que tentei. Pessoas diferentes são boas em coisas diferentes e obter respostas técnicas corretas não é a única coisa que decide se alguém é contratado. Ser um bom ajuste para a empresa também é muito importante.

Com base na sua pergunta, acho que a coisa mais importante que você precisa entender é que os dias de feedback claramente definidos, como uma nota de carta, acabaram. Obtendo a resposta certa é apenas parte do resultado. Escrever um bom código, comunicar suas idéias e ouvir os outros é igualmente importante. No entanto, essas áreas são mais subjetivas e precisam ser tratadas como tal.

Assim como você resolveu o problema, dê um passo para trás e limpe sua cabeça. Muito vai para uma entrevista e o entrevistador sabe que não é um sistema perfeito. Eles estão tentando fazer o melhor que podem para a empresa, assim como você está tentando fazer o melhor para você.

    
por 29.02.2012 / 02:46
fonte
5

Em meia hora você pode julgar que a habilidade técnica de uma pessoa é pelo menos tão boa quanto x. Ou seja, a capacidade deles pode ser maior do que demonstraram, mas você pode ter certeza de que não é pior. Se x for maior que suas necessidades, você as contrata. Sim, é injusto se você demonstrar abaixo da sua capacidade real. Tudo o que posso dizer é melhorar na demonstração.

Se alguém dissesse uma resposta praticamente memorizada, eu daria a eles um problema mais difícil. Na academia, a memorização é uma habilidade importante. Em um trabalho, é principalmente redundante quando você tem o google ali mesmo.

Vendo como a maioria dos grandes programadores são empregados, é seguro assumir que eles passaram por uma entrevista de emprego em algum momento. Não, você não pode dizer se alguém será um ótimo programador de uma entrevista de meia hora. Felizmente, a maioria das empresas não precisa de grandes programadores. Eles se dão muito bem com programadores sólidos e confiáveis que não têm medo de lidar com tarefas fora de sua zona de conforto.

A razão pela qual os inovadores pensadores podem rejeitar as entrevistas de emprego é que as oportunidades de resolver problemas chamativos e inovadores são muito raras, e você só terá a confiança necessária para resolvê-los depois de provar que pode resolver questões mundanas, mas difíceis problemas que seus colegas não conseguem, como por que o software falha quando fica acima de 16% de carga.

    
por 29.02.2012 / 05:11
fonte
3

Muito poucas pessoas sabem se as técnicas de entrevista realmente funcionam, porque nunca aprendem mais sobre as que falharam. Mas quando nada refuta sua hipótese, eles tomam como confirmação de que são verdadeiros. Portanto, há um elemento definido de jogar os dados.

Se as teorias econômicas dizendo que os mercados são racionais e eficientes eram verdadeiras, então as empresas procurariam contratar pessoas que fossem más em uma entrevista de maneiras que não as prejudicassem em seu trabalho. Então, alguém que usava um terno desajeitado, suava, parecia muito nervoso e tinha problemas técnicos sob a pressão de uma entrevista - se houvesse provas externas, eles poderiam, de outra forma, fazer problemas técnicos e as pressões do trabalho não eram como aquelas. de uma entrevista (como geralmente não são) - representaria a melhor chance de uma empresa obter um candidato melhor do que poderia atrair e agiria de acordo. (Pense Money-ball para o mundo corporativo). Eventualmente, os preconceitos da entrevista desapareceriam.

Na prática, isso vai contra a natureza humana. Entrevistadores como extrovertidos confiantes, não importa qual seja a posição, e mesmo que a entrevista técnica forneça informações piores do que o currículo e as referências (como talvez seja verdade no seu caso), eles levarão isso em conta.

Quanto às suas perguntas:

  1. Um pouco. Os testes têm uma fraca relação sinal-ruído, mas podem ser ajustados para eliminar totalmente a desqualificação às custas das entrevistas qualificadas, mas ruins em entrevistas técnicas.

  2. Veja o # 1. Parte do ruído vem da variação em saber se as pessoas já viram o problema antes.

  3. Veja o # 1. Provavelmente há uma pequena correlação positiva entre esses testes e se tornar um ótimo programador.

Meu conselho - Estude algumas questões técnicas para obter uma familiaridade básica. Lembre-se que é uma jogada de dados, por isso, durante a entrevista, tente estar confiante. Se você puder explicar o que está pensando sem se distrair de pensar, faça isso. Se estiver realmente indo mal, admita que você fique nervoso nas entrevistas e que eles saibam que parece algo com o qual você normalmente não teria problemas - possivelmente dando um exemplo de um problema semelhante, mas mais difícil, que você resolveu.

    
por 29.02.2012 / 03:36
fonte

Tags