Teknik mülakatlar, birçok yazılımcı için iş arama sürecinin en stresli parçasıdır. İyi haber şu: mülakatlar büyük ölçüde öngörülebilir bir yapıya sahiptir ve hazırlıkla başarı şansı belirgin şekilde artar. Amaç ezberlemek değil, düşünme biçiminizi açıkça gösterebilmektir.
Tipik aşamalar
- Ön görüşme: Deneyim, beklentiler ve motivasyon.
- Teknik görüşme: Temel kavramlar, dil ve çerçeve bilgisi.
- Kodlama: Canlı kodlama veya ev ödevi proje.
- Sistem tasarımı: Daha deneyimli pozisyonlarda.
- Ekip ve kültür görüşmesi: Davranışsal sorular.
Temel konular (.NET örneği)
- Nesne yönelimli programlama ve SOLID
- Değer ve referans tipleri, nullable reference types
- async/await ve eşzamanlılık
- LINQ ve koleksiyonlar (doğru koleksiyon seçimi)
- Dependency injection ve servis ömürleri
- ASP.NET Core istek hattı (middleware)
- SQL: JOIN, indeks, transaction (indeksler, ACID)
- REST ve HTTP temelleri (REST API, durum kodları)
- Git iş akışı ve test yazımı
Kodlama sorularında yaklaşım
Doğru cevaba ulaşmak kadar, oraya nasıl gittiğiniz de değerlendirilir:
- Soruyu tekrar edin ve netleştirin: Girdi boş olabilir mi? Ne kadar büyük olabilir?
- Örnekle düşünün: Küçük bir örneği elle çözün.
- Önce basit çözüm: Çalışan bir çözümle başlayın, sonra iyileştirin.
- Sesli düşünün: Sessiz kalmak yerine fikirlerinizi anlatın.
- Test edin: Uç durumları kendiniz deneyin.
- Karmaşıklığı konuşun: Çözümün zaman ve bellek maliyetini açıklayın.
Takıldığınızda ipucu istemek olumsuz değildir; nasıl iş birliği yaptığınızı gösterir.
Ev ödevi projeler
- Teslim tarihine uyun ve kapsamı aşmayın.
- README'de varsayımlarınızı ve kararlarınızı açıklayın.
- Test ekleyin, temiz commit geçmişi bırakın.
- "Daha fazla zamanım olsa şunları yapardım" bölümü olgunluk gösterir.
Sistem tasarımı
Deneyimli pozisyonlarda "Bir URL kısaltma servisi tasarlayın" gibi sorular sorulur. Gereksinimleri netleştirmek, kaba bir mimari çizmek, veri modelini konuşmak, darboğazları ve ölçeklenmeyi tartışmak beklenir. Monolit-mikroservis, önbellek ve mesaj kuyruğu gibi kavramlar bu sorularda sık geçer.
Davranışsal sorular
"Zor bir hatayı nasıl çözdünüz?", "Bir ekip arkadaşınızla anlaşmazlığı nasıl yönettiniz?" gibi sorular için önceden birkaç somut hikâye hazırlayın. Durum, görev, yaptığınız eylem ve sonuç sırasıyla anlatmak cevabı netleştirir.
Siz de soru sorun
- Ekip nasıl çalışıyor, code review süreci var mı?
- Canlıya alım ne sıklıkla ve nasıl yapılıyor?
- İlk üç ayda benden ne bekleniyor?
- Teknik borç ve öğrenmeye ne kadar zaman ayrılıyor?
Bu sorular hem ilginizi gösterir hem de işin size uygun olup olmadığını anlamanızı sağlar.
Sık sorulan sorular
Algoritma soruları her şirkette sorulur mu?
Hayır. Birçok şirket, günlük işe daha yakın pratik görevleri tercih eder. Yine de temel veri yapıları ve karmaşıklık bilgisi her zaman faydalıdır.
Bilmediğim bir soru gelirse?
Bilmediğinizi dürüstçe söyleyin ve nasıl öğreneceğinizi veya nasıl yaklaşacağınızı anlatın. Uydurmak, bilmemekten daha olumsuz değerlendirilir.
Sonuç
Teknik mülakat, bilginin yanında düşünme ve iletişim biçimini ölçer. Temel konuları tekrar etmek, sesli düşünmeyi pratik etmek ve somut hikâyeler hazırlamak; mülakat stresini yönetilebilir hale getirir. Yol haritası için bkz. junior .NET yol haritası.