Outros forneceram respostas que eu votei como uma obrigação . A razão pela qual escrevo outra resposta é porque o que eu quero dizer provavelmente não se encaixa em um comentário e porque algo precisa ser dito sobre como pode ser uma boa entrevista de emprego em programação.
Na primeira boa entrevista, lembro que conversamos muito, sem pressa. Primeiro por uma hora, por telefone, sobre o design orientado a objetos e os prós e contras de implementá-lo em C ++. Então, no local, conversei com várias pessoas sobre suas práticas de desenvolvimento de software, integração, teste, controle de versão e gerenciamento de configuração, sobre equipes e responsabilidades, sobre tecnologia e design. Foi uma entrevista de um dia inteiro que incluiu almoço com as pessoas que me entrevistaram. Em retrospectiva, tratava-se de me encaixar produtivamente no que eles já estavam fazendo.
Desde então, as boas entrevistas têm sido longas, conversas de uma a duas horas sobre desenvolvimento de software. Não houve perguntas sobre solução de problemas, quebra-cabeças e desafios de codificação.
Se eu fosse entrevistar alguém para um trabalho de programação hoje, continuaria gostando. Gostaria de solicitar opiniões sobre diversos tópicos e deixar de lado a profundidade:
- Quais são as suas preferências de linguagem de programação? Por quê?
- Como abordar o tratamento de exceções?
- Os benefícios do design em camadas não são um mito?
- A integração contínua não é um fardo para a eficiência?
- Quem escreveu um pedaço de código deve possuí-lo, certo?
- O que você faz para entrar no "fluxo".
- Como os defeitos relatados devem ser incluídos no plano do projeto?
- ...
Essas são perguntas com mais de uma resposta e tratam de tópicos sobre os quais um desenvolvedor de software deve ter uma opinião informada. Concordo plenamente com as respostas que mencionam problemas reais anteriores experimentados como um tópico de conversa (não como perguntas).
Os estudos mais científicos sobre desenvolvimento eficaz de software desde a Peopleware dizem que os melhores programadores são aqueles que entendem a dinâmica do desenvolvimento de software, mesmo que não tenham o QI mais alto. Prefiro pegar um novato que está ansioso para aprender do que alguém com n
anos de experiência que se resumem a 1
anos de experiência repetidas n
vezes. Meu preconceito pessoal é para candidatos que tendem a pensar fora da caixa e, ao mesmo tempo, sabem como se encaixar na (atual) caixa (minha).