O que uma etapa de live coding avalia de verdade
Uma entrevista de programação quase nunca é só sobre o código final. O entrevistador observa como você escolhe a abordagem, se você sabe o custo de tempo e de espaço dela, em quais casos de borda você pensa antes de ele perguntar e com que clareza você explica suas escolhas enquanto digita.
É muita coisa para segurar na cabeça ao mesmo tempo, e é por isso que um problema que você resolveu na semana passada pode parecer impossível no dia. O copiloto entrega as peças na ordem em que você precisa delas, para você gastar sua atenção explicando, e não tentando lembrar.
Do problema à resposta em quatro passos
Não existe modo de programação para ativar nem tipo de etapa para escolher antes. A mesma sessão que ouve o entrevistador também lê a sua tela, então funciona em etapas silenciosas e em desafios para fazer em casa, além de chamadas de pair programming.
- Pressione “Start” ou simplesmente capture o problema: o primeiro “Capture” ou “Answer” já inicia a sessão.
- Pressione ⌘/Ctrl + H com o problema na tela. Problemas longos podem levar várias capturas, incluindo os exemplos e as restrições.
- Pressione ⌘/Ctrl + Enter. Em poucos segundos você recebe a abordagem, o código completo na linguagem selecionada no editor, a complexidade de tempo e de espaço, os casos de borda e uma frase para falar em voz alta.
- Não ficou bom? “Regenerate” (gerar de novo) responde outra vez e procura erros, “Another approach” (outra abordagem) traz uma solução diferente e “Explain simpler” (explicar mais simples) adiciona, abaixo do código, uma explicação passo a passo em palavras simples.
O que vem em toda resposta de programação
O código mantém a assinatura da função do código inicial, então encaixa em problemas do LeetCode, HackerRank, Codility e CodeSignal. Ele também lida com SQL e com arquivos como Terraform, YAML ou um Dockerfile.
Toda resposta lista os casos de borda que o código trata, prontos para o momento em que o entrevistador perguntar se você terminou. “Another approach” traz uma solução realmente diferente, com uma linha comparando as duas, para você discutir o trade-off antes de decidir.
- Código completo e executável na linguagem do editor
- Complexidade de tempo e de espaço
- Casos de borda apontados antes de alguém perguntar
- Uma frase para falar em voz alta e uma explicação em palavras simples quando você pedir
As perguntas de acompanhamento partem do código
O app continua ouvindo enquanto você trabalha na tela. Quando o entrevistador pergunta "dá para otimizar?" ou "por que um hash map?", a resposta parte do código que já apareceu. Se você pedir código em voz alta, como "escreva sem recursão", também recebe o código completo.
Se preferir pensar sozinho, digite o que quer no campo “Ask”, por exemplo "só uma dica" ou "liste os casos de borda", e você recebe exatamente isso. Nada disso reinicia a sessão nem gasta créditos extras.
Antes da entrevista
A sobreposição fica fora do compartilhamento e da gravação de tela, então o entrevistador vê o seu editor, não o assistente. Mas o ponteiro do mouse continua sendo compartilhado, e clicar na sobreposição tira o foco do editor, algo que algumas plataformas de programação registram. Use os atalhos de teclado.
- Aprenda os atalhos: ⌘/Ctrl + Enter para responder, ⌘/Ctrl + H para capturar, ⌘/Ctrl + B para ocultar ou mostrar a sobreposição.
- Se quiser, defina uma linguagem de programação preferida em “Interview Setup” (preparação da entrevista). Ela só é usada quando a tela não mostra nenhuma linguagem.
- Faça uma sessão curta com qualquer problema no estilo LeetCode para o fluxo ficar familiar.
- Confira as regras da etapa. Plataformas de programação com supervisão são diferentes entre si, e algumas proíbem ferramentas externas.