Dica #22: Você vê a galera trabalhando em big tech e fica se perguntando como esse pessoal conseguiu? Não tem segredo não. É tudo muito treino, estudo e preparação. Segue o fio que eu te falo como eu me preparei pras entrevistas... 🧵👇
... O nosso foco vai ser estudar algoritmos e estrutura de dados. Existem outros tópicos como system design (fica pra próxima) e behavioral questions (veja a dica #18) mas sem algoritmos não adianta nem tentar. O “algoritmo” 😎 para estudar algoritmos é...
1⃣Estudar algoritmos e estrutura de dados
2⃣Praticar #1 no leetcode.com
3⃣Repita o ciclo
1⃣ Você precisa saber os conceitos básicos das seguintes categorias:
- Strings/Arrays
- Listas
- Mapas/Dicionários
- Algoritmos de ordenação
- Busca binária
- Filas
- Pilhas
- Árvores e BSTs
- Heaps/Filas de prioridades
- Grafos
- BFS
- DFS
- Tries
- UnionFind...
... Eu nunca encontrei programação dinâmica ou algoritmos gulosos nas entrevistas. Backtracking eu só vi cair uma vez, então em termos de custo/benefício eu recomendo focar nesses aí...
Se você não sabe NADA de algoritmos, eu recomendo começar com o livro “Entendendo algoritmos: Um guia ilustrado”: amzn.to/3GHeltA. Depois dele, você pode checar o cracking the coding interview que vai te ensinar os algoritmos mas bem focado no preparo pras entrevistas...
2⃣ Agora que você sabe a base. Tá na hora de você encarar o leetcode.com. O leetcode é o site que a galera aqui nos US usa de fato para se preparar, com centenas de questões reais que já cairam em várias das minhas entrevistas...
... eu recomendo começar na aba "explore" e selecionar tópicos, por exemplo, "arrays". Esses tópicos vão te ensinar os problemas mais comuns daquela categoria e fortalecer ainda mais a base...
3⃣ Agora vamos repetir mais exercícios e voltar pra teoria toda vez que se enrolar em algo. Eu recomendo fazer ainda mais exercícios no leetcode, dessa vez "avulsos" da aba problems...
... ordene por difculdade e comece fazendo os "easy" primeiro. É normal tomar pau no início. Não desista. Quando tiver mandando bem nos "easy" passe para os medium. O nosso objetivo é ficar bom em resolver problemas medium...
... Por que medium? A maioria das empresas não pergunta questões hard. Eu não acho que vale a pena o esforço. As hard é bom fazer de curiosidade e/ou se você gostar...
... E se você quiser mais dicas no preparo e não peder as próximas dicas sobre system design, não deixe de:
✅Dar follow
♥️ Dar like
↩️Dar RT pra gente compartilhar o conhecimento com mais pessoas
Finalmente, minhas DMs estão sempre abertas pra trocar idéia. 👊#bolhadev
Dica pra Jr, Pl e Sr #17: Ontem vi um pergunta no Twitter “Durante uma entrevista, como se dar bem em questões de soft skills” e isso me lembrou de falar do método STAR. Segue o fio... 👇🧵
STAR é um acrônimo formado a partir das palavras em inglês:
1⃣ Situation
2⃣ Task
3⃣ Action
4⃣ Result
O método STAR descreve como responder perguntas de comportamento/soft skills em entrevistas de forma objetiva e com detalhes suficientes. Vamos entender mais do método...
1⃣ Situation → Você precisa explicar a situação, dar um overview do que aconteceu pra seu entrevistador ter o contexto necessário pra entender sobre o que você está falando. Descreva onde e quando a situação aconteceu.
Dica pra Jr, Pl e Sr #17: Foque sua carreira em se evoluir no caminho: Implementer → Solver → Finder. Quer saber mais? Segue a thread... 🧵
1⃣ Implementer é a pessoa que normalmente resolve tasks pequenas e tarefas onde o foco é escrever código ou resolver um problema com escopo bem limitado e problema bem definido. Por que implementer? O foco aqui é executar uma boa solução com qualidade.
2⃣ No próximo level, temos o Solver. Você normalmente sabe que um problema existe ou te passam um problema mas não a solução exata. Cabe ao solver ir atrás de resolver o problema, e qual solução seguir. Os problemas aqui são de complexidade/ambiguidade média.