Qual é a sua pergunta da entrevista favorita? [fechadas]

21

Que pergunta você achou especialmente valiosa ao entrevistar desenvolvedores de software? O que há com a questão que a tornou particularmente útil?

Estou procurando uma pergunta em particular que você gostaria de fazer, não apenas uma abordagem de entrevista como "faça com que eles escrevam código".

Tim Goodman
fonte
2
A pergunta - como foi formulada - não é construtiva, mas tem boas respostas. Reformule a pergunta para corresponder às melhores respostas e eu recomendo que ela seja reaberta.
ChrisF
@ ChrisF: Eu reformulei para tentar obter um pouco mais das "experiências de compartilhamento" e "perguntar por quê", o que também deve afetar mais o "convite para respostas mais longas". Deixe-me saber se precisa de uma revisão adicional.
Tim Goodman
isso é melhor!
ChrisF
Olhando para a pergunta e as respostas agora, ainda parece bastante construtivo. Parece que nenhuma das respostas contém o "porquê" e apenas listou as perguntas.
Adam Lear

Respostas:

29

Dê uma olhada neste código de exemplo e me diga como você o aprimoraria.

David Anderson
fonte
8
tosse tosse excluir?
Craige 15/02
22

Isso é um pouco específico para o meu cenário, mas acho que foi uma ótima pergunta, no entanto:

Então você diz aqui que nunca tocou em C # ou .NET antes, certo? Ok, então aqui está uma estação de trabalho. Descubra como escrever um programa que consulta esse banco de dados aqui e imprima uma lista de clientes com seus pedidos, classificados pelo nome do cliente. Você pode usar qualquer recurso que desejar.

A única pergunta que já tive que realmente testou minha capacidade de aprender.

Fishtoaster
fonte
foi isso antes do StackOverflow existir?
eds
1
Er, isso não deveria ser uma pergunta que você gostaria de fazer?
Paddyslacker
8
+1, é uma pergunta perfeita a ser feita. Se eles não conseguirem descobrir construções básicas de linguagem com o Google, nada as salvará.
Josh K
Eu gosto disso, mostra como eles conseguem entender uma linguagem de programação que nunca usaram. Eu poderia roubar essa para os meus perguntas da entrevista :)
Richard
1
Parece inútil, qualquer um pode copiar e colar o código .net de baixa qualidade diretamente do msdn.
dotjoe
15

Esta não é uma questão de codificação, mas uma questão comportamental:

Conte-me uma ocasião em que você simplesmente não pôde concluir todo o seu trabalho a tempo de cumprir um prazo. O que você fez? Qual foi o resultado?

Paddyslacker
fonte
3
Por que essa é uma boa pergunta? Parece-me inútil
Joe Phillips
9
O ponto é que, com a resposta dos desenvolvedores, recebo muitas informações. Primeiro, se eles não admitem que essa situação já lhes tenha acontecido, então eles estão se enganando ou não têm experiência em projetos reais. Segundo, se eles não falarem sobre como comunicariam esse problema à equipe, mas apenas falarão sobre o quanto eles trabalhariam para corrigi-lo, não quero contratá-los. A falta de comunicação é responsável pela maioria dos problemas que vejo nos projetos. Quero contratar comunicadores proativos.
Paddyslacker 13/09/10
3
Posso fazer uma pergunta semelhante, mais geral ( "diga-me sobre um tempo em que algo deu errado, eo que você fez em resposta ...") Muito aberto, e ainda assim eu tinha um entrevistado juro cima e para baixo que nada tinha sempre deu errado para ele. Escusado será dizer que eu não o recomendei para contratar.
precisa
13

Como você entrou na programação?

Ótima maneira de ver se a pessoa tem paixão por programar e quebrar o gelo.

Gordon
fonte
11

Ao entrevistar alguém que afirma ter uma quantidade não trivial de experiência em Java, eu perguntar-lhes sobre hashcode()e equals()e a relação entre eles. Não é realmente possível adquirir uma experiência significativa em Java sem tomar conhecimento das possíveis armadilhas e qualquer pessoa que desconheça o problema estará adicionando erros difíceis de encontrar ao meu projeto.

Eu também vou perguntar sobre ArrayListe LinkedListe os prós e contras relativos. Espero que isso prove que eles estão pelo menos cientes e pensando nas implicações de desempenho do código que escrevem.

Também gosto de fazê-los expressar uma opinião sobre algum tópico técnico (a utilidade ou não de Maven, exceções verificadas versus não verificadas etc.) e depois interpretar o advogado do diabo para ver como eles podem argumentar sobre o que querem.

Dan Dyer
fonte
+1 Gosto de ArrayList e LinkedList. Eu vi muitos comentários sobre SO sobre pessoas dizendo que ArrayLists deve ser abolida, mas eu posso pensar de muitos usos onde eles são melhores do que Linked
Evan Solha
RI MUITO! Certa vez, dois entrevistadores me perguntaram sobre a diferença entre uma lista e um mapa. Eu dei a eles um olhar tão surpreso que eles realmente se desculparam (e então eu respondi a pergunta deles e continuamos a entrevista, é claro).
Hila 15/02
6

"Qual foi o último (melhor) livro técnico que você leu?"

ou, mais geralmente:

"Como você mantém seu conhecimento atualizado?"

É incrível quantas pessoas nunca leem um livro técnico desde que terminaram a escola. E se você nunca leu um livro desde que terminou a escola e dez anos atrás, provavelmente nunca ouviu falar de coisas como testes de unidade, padrões de projeto, princípios SOLID ...

Resposta ao comentário :

Você pode me rebaixar se quiser, mas essa é uma das minhas perguntas favoritas da entrevista. Blogs, wikipedia e SO são ótimas fontes para as últimas notícias de alta tecnologia. Mas não acho que você possa aprender assuntos realmente complexos (como o que encontra nos livros de Knuth) em profundidade lendo os blogs.

Se eu tiver que escolher entre dois desenvolvedores, onde um mostra essa vontade de aprender novos assuntos complexos e o outro não, contratarei o primeiro. Mesmo se ele ou ela quiser mais dinheiro. Vai valer a pena a longo prazo.

nikie
fonte
-1. Eu raramente abro livros técnicos, mas sei o que é TTD e conheço alguns dos padrões de design. Aprendi muito mais com o SO (por exemplo, o que é padrão de fábrica) e com os blogs de Jon Skeet e outros profissionais, do que aprenderia com um livro medíocre. Nenhum dos livros que eu vi explicou, por exemplo, por que as verificações FxCop e StyleCop são tão importantes para escrever um código-fonte descendente que pode ser reutilizado (nem mesmo mencionou essas ferramentas).
Arseni Mourzenko
3
+1 Você pode aprender muito com artigos e blogs on-line, mas mesmo assim, não ler livros técnicos implica em falta de iniciativa e mediocridade também em mim.
Dunk
5

Inverta esta lista vinculada. Agora faça isso em tempo linear. Agora faça isso em tempo linear e espaço constante.

Fishtoaster
fonte
23
MyList.reverse ()
Joe Phillips
5

Você se considera uma pessoa de sorte?

Eu li isso em uma entrevista de um dos membros fundadores da Bruel & Kjaer e isso me impressionou. As pessoas de sucesso têm grande probabilidade de se considerarem sortudas. Eles vêem os contratempos como oportunidades de fazer melhorias e tendem a compartilhar seus sucessos (sorte) com as pessoas ao seu redor - pessoas sortudas trazem mais sorte. *

As pessoas que se consideram azaradas têm maior probabilidade de ser uma maçã ruim em sua equipe.

* Nesse contexto, a sorte deve ser lida como uma oportunidade de reunião de preparação , não como um trevo de quatro folhas.

oosterwal
fonte
1
+1 Gostaria de fazer um voto positivo várias vezes mais.
Ocodo 15/02
Napoleão disse uma vez: "Dê-me generais que têm sorte!"
Zachary K
4

O que sempre funcionou para mim ...

"Conte-me sobre seus projetos anteriores" .

E, em seguida, use suas respostas como um ponto de partida para perguntar-lhes sobre seu papel nos projetos e por que eles tomaram certas decisões. Em vez de fazer a entrevista no SAT, eu apenas converso com eles. Isso sempre foi mais do que suficiente para julgar se o desenvolvedor era adequado para uma posição.

Só fui contratado uma vez para um trabalho em que já conhecia o idioma que está sendo usado; portanto, questões específicas de idioma não têm muito valor para mim. Pessoalmente, também não me importo muito com trivialidades de sintaxe ( como você faria um tipo de algodão doce preso em um curral cheio de zebras famintas? ) E pegava perguntas, por isso nunca faço esse tipo de pergunta.

GrandmasterB
fonte
+1. Eu pergunto isso também. Mas às vezes é difícil descobrir qual era a função do candidato no projeto (gerente de projeto? Desenvolvedor líder? Desenvolvedor de manutenção? Operador de máquina de café?), Especialmente quando eles trabalhavam em um projeto grande com muitas pessoas.
Nikie
2
Se você pudesse ter algum emprego no mundo, qual seria?

Estou realmente procurando apenas uma coisa: uma tentativa séria de responder. A única resposta errada é rir, e dizer ao entrevistador que é a pergunta mais clichê do mundo. (Eu votei sem contratação).

É realmente uma configuração para a minha pergunta favorita de todos os tempos:

Se você quer ser [uma estrela do rock], por que está se candidatando para ser um [engenheiro de desenvolvimento da Internet III] aqui na [HugeCorp]?

Funciona melhor se eles realmente derem uma resposta audaciosa. Eles raramente vêem isso acontecer e isso é apenas uma oportunidade para alguém brilhar dizendo algo como "as horas aqui estão melhores" ou "minha carreira aqui durará mais do que a típica estrela do rock".

Eu também menti sobre não haver resposta errada para a primeira pergunta. A menos que você esteja entrevistando para um emprego dos sonhos totalmente incrível, o trabalho para o qual eles estão entrevistando é a resposta errada. E se você está entrevistando para o emprego dos sonhos e ainda não o tem, deve se perguntar por que não está se candidatando.

Shemnon
fonte
"E se você está entrevistando para o emprego dos sonhos e ainda não o tem, deve se perguntar por que não está se candidatando." - Soa como uma pergunta "maldita se você faz, maldita se não" - especialmente se você tratar a resposta da maneira que descreve. Se alguém tem um trabalho dos sonhos em mente, talvez ainda não se sinta pronto para assumir o cargo e precise de mais experiência com o que pode aprender na sua empresa. Por que manter isso contra eles?
Mark Freedman
4
-1 Recusei ofertas de emprego de empresas nas quais as pessoas fizeram perguntas estúpidas e totalmente irrelevantes como essas. # 1 Não tem nada a ver com o trabalho ou como você se sairia # 2 Em vez de entrevistar a pessoa que o entrevistador está realmente tentando mostrar como eles são mais espertos do que o entrevistado, enganando-os e acredite que a arrogância deles é muito forte # 3 Acho que não gostaria de trabalhar com pr @ # k $ que faz esses tipos de perguntas em uma entrevista de emprego, se eu não gostei delas na entrevista. Fazer a pergunta sobre uma cerveja, é outra história.
Dunk
@ Dunk: Você está certo, as perguntas mais complicadas dizem mais sobre o entrevistador do que sobre o entrevistado. Mas perguntar sobre os objetivos e desejos de uma pessoa em geral faz sentido. Você quer que seus funcionários sejam felizes com o trabalho deles (pessoas infelizes não são produtivas) e deseja saber se tem o emprego certo para eles.
Nikie
@ Dunk, já que os clientes com quem lido diariamente fazem perguntas clichê e repetem frequentemente os mesmos erros estúpidos, uma pergunta clichê como essa também ajuda a selecionar o tipo de pessoa que não pode lidar com os clientes no meu trabalho. A vantagem é que o trabalho vale a pena compensar por ter que tolerar esse comportamento. Então, nesse sentido, é realmente a pergunta do prefeito.
shemnon 16/02
@ Mark Freedman - eu não seguro contra eles. Isso lhes dá a chance de serem honestos e diretos sobre sua carreira. Se um entrevistado sente que está "condenado se o fizerem e condenado se não o fizerem", o trabalho não é para eles. Se você não estiver disposto a esticar o pescoço com uma resposta honesta, isso já é uma marca contra.
Semnon
2

Ao fazer entrevistas em c #, adoro perguntar: "Como você lida com erros em um método"? Se eu receber uma resposta decente para essa pergunta, pergunto "Como você configura / manipula o tratamento de erros em um aplicativo Web?"

Sempre fico impressionado com a quantidade de desenvolvedores que não têm problemas com a primeira pergunta e nenhuma pista sobre a segunda. Até entrevistei muitos que não conseguiam descrever como os erros estavam sendo tratados no projeto atual.

Jeff Siver
fonte
2

Algo assim:

multiplicar um valor de 7 sem a utilização *, /e +operações. :)

dmitko
fonte
4
Sua base de código exige conhecimento de manipulação de bits ou é apenas para avaliar o interesse em detalhes minuciosos?
Peter Taylor
2
Note, ele não disse "ou"
Ben L
1
@ Ben, acho que você acabou de jogar uma bomba lógica no alçapão -: /
ocodo 15/02/11
2
Não é só (x << 3) - x?
user13278
1
Ou ainda mais simples: #x -(-x) - (-x) -(-x) - (-x) -(-x) - (-x)
nikie
1

Semelhante ao de David, mas um pouco diferente:

Dê uma olhada no código de produção real confuso de uma versão anterior que posteriormente corrigimos e melhoramos. Diga-me o que faz. Diga-me onde estão os problemas (correção e estilo). Diga-me como você o consertaria e melhoraria.

Isso ajuda a distinguir pessoas que podem apenas escrever um novo código e pessoas que podem lidar com a realidade das bases de código herdadas.

Uri
fonte
0

há muitos anos, perguntaram-me a diferença entre os regexps / a * / e / a *? /

Pessoalmente, costumo fazer algumas perguntas sobre recursão.

Zachary K
fonte
1
O ?denota ganancioso ou zero ou um ? Eu vi as duas sintaxes.
Paul Nathan
1
Qual dialeto?
Isso foi perl5, também foi há cerca de 11 anos atrás. Então, sim, era ganancioso versus não ganancioso.
Zachary K
0

Estou surpreso com o número de respostas com falha para esta pergunta:

Como você procuraria por um item em uma lista não classificada?

oosterwal
fonte
É uma pergunta bastante profunda: como uma correspondência é definida? você tem algum conhecimento sobre pedidos parciais na lista? Que tipo de lista é essa? Os itens são classificáveis? Qual é o tamanho da lista? Qual é o custo computacional relativo da comparação versus verificação de uma correspondência? Diferentes respostas a essas perguntas poderia mudar a abordagem ideal .....
mikera
Com que frequência essa pesquisa ocorrerá? Poderia ser um gargalo para o desempenho?
precisa saber é o seguinte
WTF, pessoal. Comece no primeiro ou no último item, compare, se não for uma correspondência, passe para o próximo item. A única pergunta é: nos preocupamos com várias correspondências ou interrompemos a pesquisa na primeira correspondência? Se você quiser fornecer algumas dicas, pode adicionar: Para listas vinculadas, isso não importa, mas para listas indexadas, se eu também quiser extrair correspondências, percorrerei a lista na ordem inversa, para não precisar atualizar o índice fora da condição do loop.
NotGaeL
0

Minha pergunta favorita é:

(Presumivelmente em uma combinação de Java / C # e pseudocódigo)

Usando contêineres não exóticos, projete uma classe que se comportaria como um dicionário com o melhor desempenho possível, o que também permite enumerar as chaves não na ordem "aleatória", mas na ordem em que essas chaves foram adicionadas ao dicionário, pois foi criado pela primeira vez.

Job
fonte
Este leva a muitas perguntas de esclarecimento. É justo usar apenas duas tabelas de hash ou uma tabela de hash e uma lista de matrizes: uma que mantém a ordem e outra para manter a ordem? Tem que ser possível remover coisas? (Isso torna um pouco mais complicado.) Se um valor é atualizado, isso conta como adicioná-lo novamente?
dsimcha
@dsimcha, bom ponto. Tenho 20 a 30 minutos para conversar e começo com: sinta-se à vontade para solicitar esclarecimentos a qualquer momento. Se você sentir que está preso, ficaria feliz em fornecer uma dica ou guiá-lo na direção certa. Se a pessoa ainda está girando suas rodas, então eu diria que ela não entende as estruturas de dados. Quanto a esclarecer o que quero, prefiro deixar isso em aberto e levá-lo em direções diferentes.
Job