Kacam.net

Ver o mundo

Perguntas de entrevista: uma pergunta manjada, cinco camadas abaixo

O enunciado é exatamente a frase com que o entrevistador abre: «qual a diferença entre processo e thread?», «TCP ou UDP?». A definição de manual não é a chegada, é a largada: ele grava a versão que você já decorou, puxa você cinco camadas para baixo e, no fim, faz você contar tudo de novo em sessenta segundos.

Por enquanto estas instruções existem só em 简体中文.

Como usar

Esta leva interroga, não ensina. É uma entrevista simulada: ficar sem resposta é um desfecho normal, e ela não vai te acobertar nem completar sua frase quando você travar. Se o que você quer é entender o assunto em vez de ensaiar para uma entrevista, vá para Sistemas de computação, Bancos de dados ou Algoritmos — lá a postura é guiar.

Como uma pergunta manjada preenche quarenta minutos: a escada de cinco camadas

  • Camada 1 · Definição — o que é cada termo e quais são as diferenças. Sem resposta: você nunca estudou.
  • Camada 2 · Mecanismo — qual estrutura e qual passo produzem essa diferença. Sem resposta: você decorou só a conclusão.
  • Camada 3 · Números — qual a diferença? Quantos microssegundos, quantas vezes, quantas E/S. Sem resposta: você nunca pôs a mão.
  • Camada 4 · Escolha — num caso concreto, qual você escolhe, a que custo e quando essa escolha está errada. Sem resposta: você não sabe aplicar.
  • Camada 5 · Limites — em que condições tudo o que você acabou de dizer deixa de valer. Sem resposta: sabe tudo de cor, mas não entendeu.

A régua: a camada 4 é o que passa numa entrevista, a camada 5 é entender de verdade, e o que para na camada 1 é anotado como decorado.

Seis atos — o primeiro e o último só existem nesta série

  • No primeiro ato ele não interrompe, não comenta e não dá dica: você despeja de uma vez a versão que já tem, e ela fica gravada como linha de base. O silêncio é proposital — ele está ouvindo, só ainda não está corrigindo.
  • Os quatro atos do meio descem a escada; o campo de batalha é o terceiro: mecanismo e números.
  • O último ato põe sessenta segundos no relógio e faz você contar tudo de novo, lado a lado com a versão de abertura — porque o que uma entrevista cobra não é «eu entendi», é uma frase que você consiga dizer em voz alta.

Como começar

  1. Escolha uma, abra e copie o prompt.
  2. Cole numa conversa totalmente nova, não diga nada e espere a primeira pergunta.
  3. Depois responda como numa entrevista: despeje de uma vez a sua versão decorada. Não tem problema sair ruim — é a linha de base com que ele vai comparar no fim.
  4. A partir daí ele começa a apertar. Ficar sem resposta é um desfecho normal: isto não é material de estudo, é entrevista simulada.

Cinco comandos que você pode gritar a qualquer momento

  • 跳过 vá já para o próximo ato
  • 提示 me dê uma dica, não a resposta
  • 直说吧 diga a resposta completa
  • 重讲 pule para o último ato, regrave a versão de sessenta segundos e compare com a de abertura
  • 复盘 pule para o fechamento e imprima o cartão de retrospectiva

Três armadilhas

  • O texto que você copia traz o gabarito no fim — não leia antes. Uma das colunas se chama «impressões digitais de recitação»: são exatamente as frases que você provavelmente vai soltar. Quem lê não tem mais o que treinar.
  • Não entregue adjetivo onde cabe número. «Bem mais rápido», «o custo é mínimo» — ele te trava na hora e pede a cifra. Conclusão sem ordem de grandeza é anotada como decorada.
  • Os dois últimos grupos são presos a uma linguagem: o de Java se você escreve Java, o de Go se você escreve Go. Não são tradução um do outro — cada um escolhe suas próprias perguntas —, então não precisa fazer os dois.

Entrevista de backend semana que vem? Processo e thread, TCP e UDP, por que árvores B+, níveis de isolamento, os três modos de falha do cache e idempotência: as seis mais frequentes e quase sem sobreposição. Levou pancada em entrevistas e quer achar os buracos? Comece por «da URL até a página aparecer»: ela escancara todos os pontos fracos de uma vez, e daí você escolhe as próximas.

Sistemas operacionais e concorrência

死锁:怎么产生、怎么破、怎么查
四个条件背得滚瓜烂熟 —— 那你们代码里真的破了哪一条?
★★★☆☆ · cerca de 40 min

Redes

三次握手为什么不是两次、TIME_WAIT 为什么是 2MSL
「三次是为了确认双方收发能力正常」—— 举一个两次会出事的例子。
★★★★☆ · cerca de 40 min

Cache e mensageria

缓存穿透、击穿、雪崩
穿透、击穿、雪崩 —— 先别说方案,说清你指的是哪一种。
★★★☆☆ · cerca de 35 min
分布式锁怎么做才对
「setnx 加个过期时间就行」—— 然后它会一个一个坑问过来。
★★★★☆ · cerca de 40 min

Sistemas distribuídos e arquitetura

CAP 和 BASE
「三个里只能选两个」—— 那你真的有得选吗?
★★★★☆ · cerca de 35 min
熔断、降级、隔离
「熔断降级保证稳定」—— 熔断打开那一刻,用户看到的是什么?
★★★☆☆ · cerca de 35 min

Java e a JVM

OOM 和内存泄漏怎么定位
「dump 下来用工具看一下」—— 先说清,它报的是哪一种 OOM?
★★★★☆ · cerca de 40 min

Go e seu runtime

defer、panic、recover
「defer 延迟执行、后进先出」—— 那它的参数是什么时候求值的?
★★★★☆ · cerca de 35 min
Estes prompts são de código aberto O texto é mantido no repositório público kacam-net/hero-prompts. Se algum não aperta o suficiente, ou falta uma linha no gabarito dele, vá lá e mude: entrar no ar aqui é outra decisão, tomada pelo catálogo deste lado.