O que direi pode ser um pouco controverso por natureza, mas estou muito desanimado hoje - e por isso vou perguntar isso.
Acabei de ter uma entrevista com uma grande empresa de tecnologia para uma posição de estágio, onde me pediram muitas perguntas típicas de entrevistas orientadas a algoritmos. Agora, considerando meu histórico, considero-me forte em algoritmos (também obtive boas notas em algoritmos de nível de pós-graduação - material envolvendo a completude do NP e além (algoritmos de aproximação e aleatórios), mas, infelizmente, fui reprovado na entrevista. pense em um método muito eficiente de resolver um problema de cordas em aproximadamente ~ 10 minutos.Quando a entrevista terminou, tomei um copo de água, comi uma banana e relaxei por um tempo e tentei o problema novamente.Vola! resposta: eu poderia chegar em menos de 5 minutos, e o pior de tudo - eu estava na pista e o entrevistador deu dicas, mas muita pressão me cozinhou. Toda a minha experiência me fez pensar em entrevistas técnicas. Eu tinha algumas perguntas e queria colocá-las neste fórum -
É realmente possível julgar a capacidade técnica de alguém em meia hora? Honestamente? Ou é apenas um lançamento de dados?
As perguntas técnicas da entrevista medem a capacidade de resolução de problemas? Este ponto é muito discutível? Como um estudante de doutorado, eu sei que a resolução de problemas matemáticos envolve resolver algo que você nunca ouviu falar antes. Por outro lado, questões como - a fusão de duas listas vinculadas em ordem classificada ou a impressão de todos os elementos de uma árvore binária no k-ésimo nível tornam-se "meros exercícios" quando alguém vê a solução ou resolveu o problema de antemão?
As pessoas que se destacam nessa entrevista continuam a se tornar grandes programadores? Eles desenvolvem mecanismos de jogos elegantes, bibliotecas de gráficos, escrevem estruturas de junção rápida? Existe alguma evidência para apontar para uma relação positiva entre se sair bem em entrevistas técnicas e a capacidade real de programação? Ou essas entrevistas são mais voltadas para encontrar o tipo de pessoa "fazendo as coisas" (Spolsky)?
Posso apostar que muitos acadêmicos que publicam idéias inovadoras - ICML, VLDB, Mobicom - serão reprovados nessas entrevistas. Mas posso garantir que elas são algumas das pessoas mais inteligentes que você encontrará neste planeta.
Eu estou principalmente na academia (estudante de graduação) - então eu aprecio muito a percepção de alguém do outro lado da cerca. Alguém que realmente conduz essas entrevistas?
[Ok pessoal. Obrigado por todas as respostas agradáveis e atenciosas. Como não quero fazer outra pergunta, pedirei que você responda a essa pergunta para mim.
Suponha que o candidato X tenha um bom portfólio público de obras em que ele contribuiu para algum projeto conhecido de código aberto onde - você pode realmente verificar seus patches, verificar os bugs que ele fechou e dar uma olhada nos projetos que ele criou. Nesse caso, a pergunta é: quanto de peso você está disposto a atribuir ao seu trabalho publicamente disponível / verificável versus o quão bem ele se sai ao responder a uma pergunta de entrevista em árvore binária muito artificial em menos de 15 minutos?]
Respostas:
Tenha em mente que...
Muitas vezes, durante a entrevista, atalhos imperfeitos (como testes técnicos) são utilizados porque, como você mencionou, não há um processo perfeito para 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 é isso que é, um jogo de probabilidades que todos jogam.
fonte
Não exatamente. É possível eliminar as pessoas que não conseguem programar e as 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 mais a sua situação sem saber o problema que você foi solicitado a resolver.
Esse não é o objetivo das minhas perguntas técnicas. Em vez disso, estou tentando descobrir se o candidato tem uma compreensã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 trabalhou.
É sobre isso. A grandeza é rara. Fico feliz em encontrar alguém competente.
fonte
Sim. Sim, honestamente. Isso não quer dizer que 30 minutos são tempo suficiente para obter uma imagem completa do que uma pessoa é capaz. O trabalho do entrevistador é fazer o melhor possível para ter uma ideia de quem é o entrevistado e o que ele pode fazer. Encontrar as pessoas que colocaram algo em seu currículo que realmente não conheciam é direto. Descobrir exatamente o que o entrevistado pode fazer, incluindo todas as suas habilidades e pontos fortes, não é.
Sim. Eles permitem que você veja como o entrevistado pensa. Obter a resposta correta nem sempre é necessária. Ver alguém lidar com um problema com o qual enfrenta problemas é tão benéfico quanto ver alguém responder a um problema corretamente, sem muitos problemas. Sempre faço uma pergunta que acho que o entrevistado talvez não consiga responder.
Não conheço nenhuma prova empírica que diga que as entrevistas técnicas encontrem 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 será contratado. Ser uma boa opção para a empresa também é muito importante.
Com base na sua pergunta, acho que a maior coisa que você precisa entender é que os dias que definiram claramente o feedback como uma nota terminaram. Obter a resposta certa é apenas parte do resultado. Escrever um bom código, comunicar suas idéias e ouvir os outros também é importante. No entanto, essas áreas são mais subjetivas e precisam ser tratadas como tal.
Assim como você resolveu o problema, dê um passo atrás e limpe sua cabeça. Muito entra em uma entrevista e o entrevistador sabe que não é um sistema perfeito. Eles estão tentando fazer o melhor que podem pela empresa, assim como você está tentando fazer o melhor por você.
fonte
Em meia hora, você pode julgar que a capacidade 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 seus requisitos, você os contratará. Sim, é injusto se você demonstrar abaixo de sua capacidade real. Tudo o que posso dizer é melhorar na demonstração.
Se alguém apresentasse 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.
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 a partir 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 realizar tarefas fora de sua zona de conforto.
A razão pela qual pensadores inovadores podem reprovar as entrevistas de emprego é que as oportunidades para resolver problemas chamativos e inovadores são muito raras, e você só será confiável para resolvê-los depois de provar que pode resolver problemas mundanos e difíceis que seus colegas não pode, por exemplo, por que o software falha quando fica acima de 16% da carga.
fonte
Muito poucas pessoas sabem se suas técnicas de entrevista realmente funcionam, porque nunca aprendem mais sobre aqueles que falharam. Mas quando nada desaprova sua hipótese, eles a tomam como confirmação de que são verdadeiras. Portanto, há um elemento definido de jogar os dados.
Se as teorias econômicas afirmando que os mercados são racionais e eficientes fossem verdadeiras, as empresas procurariam contratar pessoas que eram más em entrevistas, de maneiras que não as tornariam ruins em seu trabalho. Então, alguém que usava um terno inadequado, suava, parecia muito nervoso e tinha problemas para resolver problemas técnicos sob a pressão de uma entrevista - se houvesse evidências externas, eles poderiam resolver 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 na bola do dinheiro para o mundo corporativo). Eventualmente, os vieses da entrevista desapareceriam.
Na prática, isso vai contra a natureza humana. Os entrevistadores gostam de extrovertidos confiantes, não importa qual seja a posição, e mesmo que a entrevista técnica forneça informações piores que o currículo e as referências (como talvez seja verdade no seu caso), eles levarão em consideração.
Quanto às suas perguntas:
Um pouco. Os testes têm uma baixa relação sinal / ruído, mas podem ser ajustados para eliminar os completamente desqualificados às custas das entrevistas qualificadas, mas ruins na técnica.
Veja # 1. Parte do barulho vem da variação de se as pessoas já viram o problema antes.
Veja # 1. Provavelmente existe uma pequena correlação positiva entre esses testes e se tornar um ótimo programador.
Meu conselho - Estude algumas amostras de perguntas técnicas para obter uma familiaridade básica. Lembre-se de que é um pouco dos dados, então, durante a entrevista, tente ser confiante. Se você puder explicar o que está pensando sem se distrair do pensamento, faça-o. Se realmente estiver indo mal, admita que você fica nervoso nas entrevistas e diga que parece que 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.
fonte