Wywiad wiki — Przewodnik dla inżynierów oprogramowania
Ogólnie rzecz biorąc, wywiad z inżynierem oprogramowania ma 4 rodzaje rund: -
- Runda techniczna
Okrągły projekt wysokiego poziomu (HLD).
Okrągły projekt niskiego poziomu (LLD).
- Runda behawioralna
Liczba rund dla każdej roli zależy od firmy. Na przykład Amazon, zwykle mają 4 rundy, w których pierwsze 2 rundy byłyby związane ze strukturą danych (DS) i algorytmami, a reszta byłaby rundami projektowymi, jeśli dotyczy roli SDE2 +. Dla nich zamiast tego nie organizują osobnej rundy behawioralnej, zadają kilka pytań przywódczych w każdej rundzie.
Każda runda jest ważna i na każdą powinniśmy poświęcić czas. Zwykle nowicjusze, którzy są poza studiami, nie będą mieli rund HLD i LLD. Ale zamiast tego mogą spodziewać się rundy OO (Object Oriented), w której sprawdzą twoje umiejętności zorientowane obiektowo.
Tutaj, na tej wiki, podzielę się wszystkimi treściami, na które natknąłem się podczas przygotowywania wywiadu. Dzieliłbym się kursami, książkami, blogami i repozytoriami GitHub, które były dla mnie bardzo przydatne podczas przygotowań do rozmowy kwalifikacyjnej. Nie oznacza to, że musisz postępować tak samo podczas rozmów kwalifikacyjnych, ponieważ każdy ma swój własny styl uczenia się. Ale możesz użyć tej wiki jako przewodnika lub odniesienia do przygotowania. W końcu to ty uczestniczysz w rozmowie kwalifikacyjnej.
Omówię każdą rundę osobno. Zacznijmy od rundy technicznej.
Runda techniczna
Jedna z najważniejszych rund zarówno dla świeżaków, jak i doświadczonych. Tutaj sprawdzają Twoją wiedzę na temat struktury danych i algorytmów. Te rundy nie sprawdzają Twojej wiedzy na temat zaawansowanych algorytmów, które istnieją w celu rozwiązywania złożonych problemów. Ale powinieneś przynajmniej znać te najczęstsze. Widziałem, jak ludzie mieli bardzo dziwne i śmieciowe problemy, które można rozwiązać tylko za pomocą unikalnych algorytmów. Ale to jest bardzo rzadkie. Nie sugeruję spędzenia tam czasu, ponieważ powinniśmy ufać podstawowemu prawdopodobieństwu stawienia mu czoła. Jeśli chcesz zobaczyć typowy wzór pytań podczas rozmowy kwalifikacyjnej, możesz odwiedzić następującą stronę internetową (https://algo.monster/problems/stats)
Rzeczy, których nie należy pomijać:
Struktura danych,
Tablica, połączona lista, stos, kolejka, sterta, mapa, zestaw, próba, drzewo, BST
Algorytmy
Algorytmy sortowania, programowania dynamicznego, chciwego, wyszukiwania, dzielenia i rządzenia oraz grafów.

Projekt na wysokim poziomie
Sprawdza twoją wiedzę na temat projektowania ogólnej architektury systemu. Zawiera opis architektury systemu, projektu bazy danych oraz krótki opis systemów, usług, platform i relacji między modułami. Pytania były kiedyś bardzo niejasne, jak projekt WhatsApp, projekt Redbus itp. Tutaj musisz wymyślić projekt w mniej niż 30–45 minut, w zależności od ankietera. Tutaj ankieter nie oczekuje, że będziesz kodować, ale powinieneś być w stanie zaprojektować bazy danych, interfejs API itp., Jeśli zostaniesz o to poproszony.
Projekt niskiego poziomu
Opisuje szczegółowy opis każdego modułu, co oznacza, że zawiera rzeczywistą logikę dla każdego komponentu systemu i zagłębia się w specyfikację każdego modułu. Tutaj musisz kodować klasy, interfejsy itp. Powinieneś również bardzo dobrze znać wzorce projektowe. Jeśli znasz język obiektowy, będzie to dodatkowym atutem.

Rundy behawioralne
Myślę, że tutaj przedstawiać się nie muszę. To jedna z rund, które ludzie omijali, ale moim zdaniem warto spędzić przynajmniej jeden dzień na przygotowaniach. Większość ankieterów naprawdę przejmuje się tym, co mówisz w tej rundzie. Amazon, Google itp. naprawdę traktują te rundy bardzo poważnie i powinieneś być świadomy zadawanych pytań oraz strategii, którą należy zastosować, aby odpowiedzieć na te pytania.
Zasoby:
Runda techniczna
1.https://www.geeksforgeeks.org/top-algorithms-and-data-structures-for-competitive-programming/(Najważniejszy)
2.https://takeuforward.org/interviews/strivers-sde-sheet-top-coding-interview-problems/(Problemy)
3.https://www.youtube.com/user/purpongie(Instruktaż)
4.https://cses.fi/problemset/list(Problemy)
5.https://github.com/donnemartin/interactive-coding-challenges(Uczenie się)
6.https://leetcode.com/discuss/interview-question/2001789/Collections-of-Important-String-questions-Pattern(Problemy)
7.https://github.com/jwasham/coding-interview-university(Uczenie się)
8.https://leetcode.com/discuss/interview-question/2069641/the-only-lists-you-need-for-your-interview-preparation(Uczenie się)
Runda HLD
1.https://www.youtube.com/c/SystemDesignInterview/videos(Instruktaż)
2.https://www.youtube.com/watch?v=0163cssUxLA&list=PLA8lYuzFlBqAy6dkZHj5VxUAaqr4vwrka(Instruktaż)
3.https://www.youtube.com/watch?v=xpDnVSmNFX0&list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX(Instruktaż)
4.https://blog.bytebytego.com/?utm_source=linkedin_post(Blog)
5.https://leetcode.com/discuss/general-discussion/125038/system-design-interview-prep(Uczenie się)
6.https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers(kurs płatny)
7.https://github.com/donnemartin/system-design-primer(Uczenie się)
8.https://github.com/checkcheckzz/system-design-interview(Uczenie się)
runda LLD
1.https://workat.tech/machine-coding/practice(Problemy z kodowaniem maszynowym)
2.https://www.youtube.com/playlist?list=PL564gOx0bCLouDCUMtmj6hMEu1JS7QYEr(Instruktaż)
3.https://github.com/prasadgujar/low-level-design-primer/blob/master/questions.md(Problemy)
4.https://betterprogramming.pub/how-to-ace-the-low-level-design-interview-3f1be6401070(blog)
Runda behawioralna
1.https://www.youtube.com/watch?v=RzlUQCy84rQ(Zasada przywództwa Amazonii)
2.https://leetcode.com/discuss/interview-question/1729926/a-guide-for-behavioral-round(przewodnik)
3.https://drive.google.com/file/d/1sb6Kll5enH3H70uaNwnjWPkN9pNtSu9-/view(pdf)
4.https://igotanoffer.com/blogs/product-manager/behavioral-interview-questions-tech-companies#techniques(Pytania na Facebooku)
5.https://leetcode.com/discuss/interview-question/437082/Amazon-Behavioral-questions-or-Leadership-Principles-or-LP(Pytania Amazon LP)
6.https://www.techinterviewhandbook.org/behavioral-interview-questions/(Pytania)
7.https://www.principle.cards/(Sprawdź się)
Aby uzyskać najnowsze aktualizacje wywiad-wiki, możesz śledzić moje repozytorium GitHubhttps://github.com/aashan007/Interview-wiki