Bir yazılım mühendisi olarak iş arıyorsunuz. CV'niz güçlü, GitHub profiliniz dolu, yıllardır production sistemleri ayağa kaldırıyorsunuz. İş görüşmesine giriyorsunuz ve karşınızdaki kişi size şunu soruyor: "Bu binary tree'yi (ikili ağacı) ters çevirecek bir fonksiyon yazın. Whiteboard'da (beyaz tahta). 20 dakikanız var."
Ve siz orada, kuru silgi kokulu bir beyaz tahtanın karşısında, elinizde titreyen bir keçeli kalemle, hayatınızda production'da asla kullanmayacağınız bir algoritmayı sıfırdan yazmaya çalışırken düşünürsünüz: "Bu ne saçmalık?"
Teknoloji sektörünün mülakat sistemi tamamen ve geri dönülemez biçimde bozuktur. Google, Meta ve Amazon gibi büyük şirketlerin başlattığı bu "whiteboard algoritma mülakatı" trendi, tüm sektöre yayıldı. Artık 5 kişilik bir startup bile size "Bir linked list'i O(n) zamanda tersine çevirecek bir algoritma yazın" sorusu soruyor.
Sorun şu: Bu tarz sorular, bir insanın gerçek dünyada ne kadar iyi bir mühendis olduğunu ölçmez. Bu sorular, bir insanın LeetCode adlı web sitesinde ne kadar çok pratik yaptığını ölçer. Ve LeetCode pratiği ile gerçek mühendislik becerisi arasındaki korelasyon şaşırtıcı derecede düşüktür.
Gerçek dünyada, bir yazılım mühendisi ne yapar? Belirsiz gereksinimleri anlaşılır hale getirir. Mevcut bir kod tabanını (codebase) okuyup anlar. Ekip arkadaşlarıyla iletişim kurar. Teknik borcu (technical debt) yönetir. Veritabanı şemasını tasarlar. CI/CD pipeline'ı kurar. Log okur, debug yapar, monitoring kurar. Ve evet, bazen algoritma da yazar. Ama o algoritma, beyaz tahtada değil IDE'de yazılır; Stack Overflow ve dokümantasyona bakılarak yazılır; ve genellikle zaten bir kütüphane olarak mevcuttur.
Suku Tech'te birini işe alırken ben asla algoritma sorusu sormam. Bunun yerine adaya gerçek bir senaryo veririm: "İşte bir proje. Müşteri şunu istiyor. Bu teknoloji yığınını (tech stack) kullanıyoruz. Nasıl bir mimari kurarsın? Hangi trade-off'ları (ödünleşimleri) kabul edersin? İlk hafta neye odaklanırsın?" Bu sorular, o insanın gerçek dünyada nasıl düşündüğünü, nasıl karar verdiğini ve ekiple nasıl çalışacağını gösterir.
Mevcut mülakat sistemi, ezbere dayalı, stres altında performans ölçen ve gerçek dünya becerilerini tamamen görmezden gelen bir tiyatrodur. En kötü tarafı ise bu sistemin gerçekten yetenekli ama "LeetCode çalışmaya zamanı olmayan" (çünkü gerçek projeler üzerinde çalışıyorlardı) mühendisleri eleyip, gerçek proje deneyimi sıfır olan ama 500 LeetCode sorusu çözmüş adayları geçirmesidir. Sektör olarak bunu düzeltmemiz gerekiyor; yoksa en iyi mühendisler kapıda kalırken, en iyi ezberleyicileri işe almaya devam edeceğiz.