Wiki de entrevistas — Guia para engenheiros de software

Nov 27 2022
Geralmente, uma entrevista de engenheiro de software tem 4 tipos de rodadas: - - Rodada técnica - Rodada de design de alto nível (HLD) - Rodada de design de baixo nível (LLD) - Rodada comportamental O número de rodadas para cada função depende da empresa. Por exemplo, Amazon, eles geralmente têm 4 rodadas nas quais as 2 primeiras rodadas seriam relacionadas à estrutura de dados (DS) e algoritmos, e o restante seria rodadas de design se fosse para a função SDE2+.

Geralmente, uma Entrevista de Engenheiro de Software tem 4 tipos de rodadas:-

- Rodada Técnica

- Rodada de Projeto de Alto Nível (HLD)

- Rodada de Projeto de Baixo Nível (LLD)

- Rodada Comportamental

O número de rodadas para cada função dependeria da empresa. Por exemplo, Amazon, eles geralmente têm 4 rodadas nas quais as 2 primeiras rodadas seriam relacionadas à estrutura de dados (DS) e algoritmos, e o restante seria rodadas de design se fosse para a função SDE2+. Para eles, eles não mantêm uma rodada separada para comportamento, em vez disso, eles fazem algumas perguntas de liderança em cada rodada.

Cada rodada é importante e devemos dedicar tempo a cada uma. Normalmente, calouros que estão fora da faculdade não terão rodadas de HLD e LLD. Mas eles podem esperar uma rodada OO (Orientada a Objetos), onde testarão suas habilidades em Orientação a Objetos.

Aqui neste wiki, compartilharei todo o conteúdo que encontrei durante minha preparação para a entrevista. Eu estaria compartilhando cursos, livros, blogs e repositórios do GitHub que foram muito úteis para mim durante minha preparação para a entrevista. Isso não significa que você tenha que seguir o mesmo para suas entrevistas, pois cada um tem seu próprio estilo de aprendizado. Mas você pode usar este wiki como guia ou referência para a preparação. No final, é você quem está participando da entrevista.

Vou cobrir cada rodada separadamente. Vamos começar com a rodada técnica.

Rodada Técnica

Uma das rodadas mais importantes para iniciantes e experientes. Aqui eles testam seus conhecimentos de estrutura de dados e algoritmos. Essas rodadas não testam seu conhecimento de algoritmos avançados que existem para resolver problemas complexos. Mas você deve pelo menos conhecer os mais comuns. Tenho visto pessoas recebendo problemas muito estranhos e inúteis que só podem ser resolvidos com alguns algoritmos exclusivos. Mas isso é muito raro. Não vou sugerir passar um tempo lá, pois devemos confiar na probabilidade básica de enfrentá-lo. Se você quiser ver o padrão comum de perguntas em entrevistas, visite o seguinte site (https://algo.monster/problems/stats)

As coisas que você não deve pular:

Estrutura de dados,

Matriz, lista encadeada, pilha, fila, heap, mapa, conjunto, trie, árvore, BST

Algoritmos

Ordenação, programação dinâmica, ganância, pesquisa, divisão e conquista e algoritmos de gráfico.

Design de alto nível

Ele testa seu conhecimento sobre como projetar a arquitetura geral de um sistema. Inclui uma descrição da arquitetura do sistema, design do banco de dados e uma breve descrição dos sistemas, serviços, plataformas e relacionamentos entre os módulos. As perguntas costumavam ser muito vagas, como projetar WhatsApp, projetar Redbus etc. Aqui, você precisa criar um design em menos de 30 a 45 minutos, dependendo do entrevistador. Aqui, o entrevistador não espera que você codifique, mas você deve ser capaz de projetar os bancos de dados, API etc., se solicitado.

Design de baixo nível

Ele descreve uma descrição detalhada de cada módulo, o que significa que inclui lógica real para cada componente do sistema e se aprofunda na especificação de cada módulo. Aqui você tem que codificar as classes, interfaces, etc. Você também deve ter um conhecimento muito bom de padrões de design. Se você conhece uma linguagem orientada a objetos, seria um ponto positivo.

Rodadas comportamentais

Acredito que aqui não preciso fazer nenhuma apresentação. Esta é uma das rodadas que as pessoas costumavam pular, mas, na minha opinião, gastam pelo menos um dia para se preparar. A maioria dos entrevistadores realmente se preocupa com o que você diz nesta rodada. Amazon, Google, etc. realmente levam essas rodadas muito a sério e você deve estar ciente das perguntas feitas e qual estratégia deve ser seguida para responder a essas perguntas.

Recursos:

rodada técnica

1.https://www.geeksforgeeks.org/top-algorithms-and-data-structures-for-competitive-programming/(Mais importante)

2.https://takeuforward.org/interviews/strivers-sde-sheet-top-coding-interview-problems/(Problemas)

3.https://www.youtube.com/user/purpongie(Tutorial)

4.https://cses.fi/problemset/list(Problemas)

5.https://github.com/donnemartin/interactive-coding-challenges(Aprendendo)

6.https://leetcode.com/discuss/interview-question/2001789/Collections-of-Important-String-questions-Pattern(Problemas)

7.https://github.com/jwasham/coding-interview-university(Aprendendo)

8.https://leetcode.com/discuss/interview-question/2069641/the-only-lists-you-need-for-your-interview-preparation(Aprendendo)

Rodada HLD

1.https://www.youtube.com/c/SystemDesignInterview/videos(Tutorial)

2.https://www.youtube.com/watch?v=0163cssUxLA&list=PLA8lYuzFlBqAy6dkZHj5VxUAaqr4vwrka(Tutorial)

3.https://www.youtube.com/watch?v=xpDnVSmNFX0&list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX(Tutorial)

4.https://blog.bytebytego.com/?utm_source=linkedin_post(Blog)

5.https://leetcode.com/discuss/general-discussion/125038/system-design-interview-prep(Aprendendo)

6.https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers(curso pago)

7.https://github.com/donnemartin/system-design-primer(Aprendendo)

8.https://github.com/checkcheckzz/system-design-interview(Aprendendo)

Rodada LLD

1.https://workat.tech/machine-coding/practice(Problemas de Codificação de Máquina)

2.https://www.youtube.com/playlist?list=PL564gOx0bCLouDCUMtmj6hMEu1JS7QYEr(Tutorial)

3.https://github.com/prasadgujar/low-level-design-primer/blob/master/questions.md(Problemas)

4.https://betterprogramming.pub/how-to-ace-the-low-level-design-interview-3f1be6401070(blog)

Rodada Comportamental

1.https://www.youtube.com/watch?v=RzlUQCy84rQ(Princípio de liderança da Amazon)

2.https://leetcode.com/discuss/interview-question/1729926/a-guide-for-behavioral-round(orientar)

3.https://drive.google.com/file/d/1sb6Kll5enH3H70uaNwnjWPkN9pNtSu9-/view(pdf)

4.https://igotanoffer.com/blogs/product-manager/behavioral-interview-questions-tech-companies#techniques(Perguntas do Facebook)

5.https://leetcode.com/discuss/interview-question/437082/Amazon-Behavioral-questions-or-Leadership-Principles-or-LP(Perguntas do Amazon LP)

6.https://www.techinterviewhandbook.org/behavioral-interview-questions/(Questões)

7.https://www.principle.cards/(Teste-se)

Para as atualizações mais recentes do wiki da entrevista, você pode seguir meu repositório do GitHubhttps://github.com/aashan007/Interview-wiki