Röportaj wiki — Yazılım mühendisleri için rehber
Genel olarak, bir Yazılım Mühendisi Mülakatı 4 çeşit turdan oluşur: -
- Teknik Tur
- Üst Düzey Tasarım(HLD) Yuvarlak
- Düşük Seviyeli Tasarım (LLD) Yuvarlak
- Davranış Turu
Her rol için tur sayısı şirkete bağlı olacaktır. Örneğin Amazon, genellikle ilk 2 turun Veri Yapısı (DS) ve algoritmalarla ilgili olacağı ve geri kalanının SDE2+ rolü içinse tasarım turları olacağı 4 turu vardır. Onlar için davranışsal için ayrı bir tur tutmazlar, her turda birkaç liderlik sorusu sorarlar.
Her tur önemlidir ve her tur için zaman ayırmalıyız. Genellikle, üniversiteden yeni mezun olan öğrenciler HLD ve LLD turlarına sahip olmayacaklardır. Ancak bunun yerine Nesne Yönelimli becerilerinizi test edecekleri bir OO (Nesne Yönelimli) turu bekleyebilirler.
İşte bu wikide, röportaj hazırlığım sırasında karşılaştığım tüm içeriği paylaşacağım. Mülakata hazırlanırken çok işime yarayan kursları, kitapları, blogları ve GitHub depolarını paylaşıyor olurdum. Bu, herkesin kendi öğrenme tarzı olduğu için mülakatlarınız için aynı şeyi izlemeniz gerektiği anlamına gelmez. Ancak bu wiki'yi hazırlık için bir rehber veya referans olarak kullanabilirsiniz. Sonunda, görüşmeye katılan sizsiniz.
Her turu ayrı ayrı ele alacağım. Teknik turla başlayalım.
Teknik Tur
Hem yeni başlayanlar hem de deneyimli insanlar için en önemli turlardan biri. Burada Veri yapısı ve Algoritmalar hakkındaki bilginizi test ederler. Bu turlar, karmaşık sorunları çözmek için var olan gelişmiş algoritmalar hakkındaki bilginizi test etmez. Ama en azından en yaygın olanları bilmelisiniz. İnsanların yalnızca bazı benzersiz algoritmalarla çözülebilecek çok tuhaf ve saçma problemler yaşadıklarını gördüm. Ama bu çok nadirdir. Bununla yüzleşmenin temel olasılığına güvenmemiz gerektiği için orada vakit geçirmeyi önermeyeceğim. Ortak mülakat soru modelini görmek isterseniz aşağıdaki web sitesini ziyaret edebilirsiniz (https://algo.monster/problems/stats)
Atlamamanız gerekenler:
Veri yapısı,
Dizi, Bağlantılı Liste, Yığın, Kuyruk, Yığın, Harita, Küme, Trie, Ağaç, BST
algoritmalar
Sıralama, Dinamik Programlama, Açgözlü, Arama, Böl ve fethet ve Grafik algoritmaları.
Üst Düzey Tasarım
Bir sistemin genel mimarisini tasarlama bilginizi test eder. Sistem mimarisi, veritabanı tasarımı ve sistemlerin, hizmetlerin, platformların ve modüller arasındaki ilişkilerin kısa bir açıklamasını içerir. Eskiden WhatsApp tasarımı, Redbus tasarımı vb. gibi sorular çok belirsizdi. Burada görüşmeciye bağlı olarak 30-45 dakikadan daha kısa bir sürede bir tasarım bulmanız gerekiyor. Burada görüşmeci sizden kod yazmanızı beklemiyor ancak istenirse veritabanlarını, API'yi vb. tasarlayabilmeniz gerekir.
Düşük Seviyeli Tasarım
Her modülün ayrıntılı bir açıklamasını açıklar, yani her sistem bileşeni için gerçek mantığı içerir ve her modülün teknik özelliklerine derinlemesine girer. Burada sınıfları, arayüzleri vb. kodlamanız gerekir. Ayrıca Tasarım kalıpları hakkında da çok iyi bilgiye sahip olmalısınız. Nesneye yönelik bir dil biliyorsanız, bu bir artı puan olacaktır.
davranış turları
Burada herhangi bir giriş yapmama gerek olmadığına inanıyorum. Bu, insanların atladığı ama bence hazırlık için en az bir gün ayırdığı turlardan biri. Görüşmecilerin çoğu aslında bu turda ne söylediğinizi önemsiyor. Amazon, Google vb. bu turları gerçekten çok ciddiye alıyor ve sorulan soruları ve bu soruları cevaplamak için nasıl bir strateji izlenmesi gerektiğini bilmelisiniz.
Kaynaklar:
Teknik tur
1.https://www.geeksforgeeks.org/top-algorithms-and-data-structures-for-competitive-programming/(En önemli)
2.https://takeuforward.org/interviews/strivers-sde-sheet-top-coding-interview-problems/(Sorunlar)
3.https://www.youtube.com/user/purpongie(Öğretici)
4.https://cses.fi/problemset/list(Sorunlar)
5.https://github.com/donnemartin/interactive-coding-challenges(Öğrenme)
6.https://leetcode.com/discuss/interview-question/2001789/Collections-of-Important-String-questions-Pattern(Sorunlar)
7.https://github.com/jwasham/coding-interview-university(Öğrenme)
8.https://leetcode.com/discuss/interview-question/2069641/the-only-lists-you-need-for-your-interview-preparation(Öğrenme)
HLD Turu
1.https://www.youtube.com/c/SystemDesignInterview/videos(Öğretici)
2.https://www.youtube.com/watch?v=0163cssUxLA&list=PLA8lYuzFlBqAy6dkZHj5VxUAaqr4vwrka(Öğretici)
3.https://www.youtube.com/watch?v=xpDnVSmNFX0&list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX(Öğretici)
4.https://blog.bytebytego.com/?utm_source=linkedin_post(Blog)
5.https://leetcode.com/discuss/general-discussion/125038/system-design-interview-prep(Öğrenme)
6.https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers(Ücretli kurs)
7.https://github.com/donnemartin/system-design-primer(Öğrenme)
8.https://github.com/checkcheckzz/system-design-interview(Öğrenme)
LLD Yuvarlak
1.https://workat.tech/machine-coding/practice(Makine Kodlama Sorunları)
2.https://www.youtube.com/playlist?list=PL564gOx0bCLouDCUMtmj6hMEu1JS7QYEr(Öğretici)
3.https://github.com/prasadgujar/low-level-design-primer/blob/master/questions.md(Sorunlar)
4.https://betterprogramming.pub/how-to-ace-the-low-level-design-interview-3f1be6401070(Blog)
Davranışsal Yuvarlak
1.https://www.youtube.com/watch?v=RzlUQCy84rQ(Amazon Liderlik ilkesi)
2.https://leetcode.com/discuss/interview-question/1729926/a-guide-for-behavioral-round(rehberlik etmek)
3.https://drive.google.com/file/d/1sb6Kll5enH3H70uaNwnjWPkN9pNtSu9-/view(pdf)
4.https://igotanoffer.com/blogs/product-manager/behavioral-interview-questions-tech-companies#techniques(Facebook soruları)
5.https://leetcode.com/discuss/interview-question/437082/Amazon-Behavioral-questions-or-Leadership-Principles-or-LP(Amazon LP soruları)
6.https://www.techinterviewhandbook.org/behavioral-interview-questions/(sorular)
7.https://www.principle.cards/(Kendini test et)
En son röportaj-wiki güncellemeleri için GitHub depomu takip edebilirsiniz.https://github.com/aashan007/Interview-wiki