Estudar por matéria
Entrevistas de código
Para uma entrevista de código você aprende de cor complexidades, estruturas de dados, padrões de algoritmos e perguntas de design. O Lumi pergunta de volta até você conseguir produzi-los sem travar no quadro branco.

Como transformar esta matéria em cards
Faça um cartão por estrutura de dados com o custo de cada operação, e um cartão por padrão de algoritmo, como dois ponteiros ou janela deslizante, com o sinal que permite reconhecê-lo. Para design, um cartão por componente, como o cache, a fila de mensagens ou o balanceador de carga, com sua função. A armadilha é resolver cem problemas sem nunca fixar os padrões, e tropeçar no mesmo tipo de pergunta. Com o Lumi você descreve a solução de memória antes de vê-la, e essa recordação constrói o reflexo (Roediger e Karpicke, 2006). Volte a um padrão com vários dias de intervalo, e sempre diga a complexidade em voz alta (Cepeda et al., 2006).
O que você precisa saber de cor
- Complexidade de tempo e espaço das operações usuais, notação Big O.
- Estruturas de dados, array, lista ligada, pilha, fila, tabela hash, árvore, grafo.
- Padrões de algoritmos, dois ponteiros, janela deslizante, recursão, programação dinâmica.
- Ordenações e travessias clássicas, com seu custo.
- Os blocos de construção das perguntas de design, cache, fila de mensagens, balanceador de carga, banco de dados.
Como a Lumi ajuda você a lembrar

Você ensina seus cartões ao Lumi, complexidades, estruturas, padrões, design. Ele esquece com o tempo, como você, e então te testa pouco antes de você esquecer. Conforme a entrevista se aproxima, a Névoa cobre o que você sabe menos, programação dinâmica ou grafos por exemplo, e o Lumi pergunta isso primeiro. Você chega reconhecendo o padrão de imediato.
Cartões de exemplo
Três cartões do jeito que você escreveria, com a resposta que a Lumi espera.
Qual é a complexidade da busca binária?
O(log n) em um array ordenado.
Qual estrutura funciona no princípio last in, first out?
A pilha.
Qual sinal aponta para uma janela deslizante?
Uma pergunta sobre um subarray ou substring contíguo para otimizar.
Card de exemplo
Teste, o Lumi transforma em perguntas de completar no seu navegador.
Entrevistas de código · ensine este cartão para Lumi
A busca binária em um array ordenado roda em tempo O(log n). Uma tabela hash dá acesso médio em tempo O(1). Uma pilha funciona no princípio last in, first out. Uma busca em largura de um grafo usa uma fila.
A pergunta de Lumi
A busca binária em um array ordenado roda em tempo O(_____).
Escolha a palavra que falta


Acerte para acender Lumi
Sua lâmpada se apaga quando um fato escapa.
Perguntas frequentes
- Quantos problemas devo resolver antes de uma entrevista?
- O número importa menos do que o que você retém deles. Depois de cada problema, coloque o padrão em um cartão e deixe o Lumi perguntar de volta para que ele fique.
- Como revisar perguntas de design de sistemas?
- Um cartão por componente com sua função e trade-offs. O Lumi pergunta de volta, e você então junta as respostas em voz alta.
- O Lumi substitui a prática em uma plataforma de problemas?
- Não, os dois trabalham juntos. A plataforma te dá os problemas, e o Lumi faz você reter as complexidades e padrões que vêm deles.
Leia a seguir
Fontes
- Roediger, Karpicke (2006). Test-enhanced learning. Taking memory tests improves long-term retention. Psychological Science, 17(3). doi.org/10.1111/j.1467-9280.2006.01693.x
- Cepeda, Pashler, Vul, Wixted, Rohrer (2006). Distributed practice in verbal recall tasks. A review and quantitative synthesis. Psychological Bulletin, 132(3). doi.org/10.1037/0033-2909.132.3.354
Ensine isto ao Lumi
Dê suas anotações de entrevistas de código ao Lumi, ele as devolve como perguntas no momento certo.


