Canlı Kodlamada Uzmanlaşmak

Bütünleşik Geliştirme Ortamı (IDE)’nızdan uzakta, bir uzman programcının gözleri önünde beyaz tahta üzerine kod yazma fikri eteklerinizi mi tutuşturuyor? Endişelenmenize gerek yok çünkü sizler için hazırladığımız ipuçlar sayesinde teknik iş görüşmelerindeki canlı kodlama kısmını başarıyla geçebilirsiniz.

İş veren yöneticiler, kısa bir süre içerisinde iyi yazılan kod üretme becerinizden daha fazlasına da bakıyor. Görüşmeciler aynı zamanda anlam belirsizliği ile nasıl başa çıktığınız, analitik becerileriniz, baskı altında bile sakin kalıp kalamadığınız ve hatta bir takım ile birlikte ne kadar etkili çalışabildiğiniz gibi diğer faktörleri de inceliyor.

Öncelikle yapmanız gereken şey bilgisayarınızdan uzaklaşmak, bir kağıt ve kalem almak ve sürekli pratik yapmaktır. Cracking the Coding Interview, Hackerrank.com, Pramp.com ve InterviewCake.com pratik yapabileceğiniz problemlere erişim sağlamak için mükemmel kaynaklardır. Hem ders çalışırken hem de görüşme esnasında aşağıda belirteceğimiz 5 ipucuyu mutlaka uygulayın. Sonrasında da teknik mülakatınızdan bir uzman gibi başarılı sonuçlarla çıkın

1. İlk Olarak Netleştirici Sorular Sorun

İşe alan yöneticiler, daha gerekli bilgilerin hepsine sahip bile olmadan hemen işe koyulan bir çalışan olup olmadığınızı öğrenmek isterler. Yoksa siz bir proje üzerinde saatlerinizi harcadıktan sonra mı ürettiğiniz çözümün asıl problemi çözemediğini fark ediyorsunuz? Mülakatlarda karşınıza çıkacak olan teknik sorular ve özellikle canlı kodlama soruları bilerek anlam belirsizliği yaratacak şekilde sorulur. Görüşmeci soruları bu şekilde sorarak; sizin kendisinden daha fazla bilgi almak isteyip istemeyeceğinizi ve çözümleri kodlamak için değerli vaktinizi harcamadan önce aldığınız bilgiler doğrultusunda proje kapsamındaki kısıtlamalar ile olası güçlükleri önceden hesaplayıp hesaplayamayacağınızı görmek ister.

Önemli İpucu:

Eğer netleştirici bir soru aklınıza gelmiyorsa öncelikle problemin kısıtlamalarına bakın. Hangi tip veri ile çalışmanız gerektiğini belirtiyor mu? Hep integer mi olması lazım yoksa string de kullanabilir misiniz? Peki veri seti null ise ne olacak?

2. Kurduğunuz Mantığı Açıklayın

Canlı kodlamaya hemen başlamadan önce problemi nasıl çözmeyi planladığınızı görüşmeciye kısaca açıklayın ve stratejiniz ile ilgili birkaç yorumu tahtaya yazın. Kodlamaya başladıktan sonra kodlamaya devam ederken kurduğunuz mantığı mülakatı yapan kişilere açıklamaya devam edin. Sanki bir sınıfa ders anlatıyormuşsunuz gibi davranın. Öğretmeniniz tahtada bir problemi çözerken çözüm ile ilgili size neleri anlatmasını isterdiniz? Buna benzer olarak siz de mülakatı yapan kişiye çözümünüzü anlatın.

Önemli İpucu:

Eğer görüşmeci yanlış yola saptığınızı fark ederse çoğu zaman size birtakım ipuçları verecektir. Eğer kodlama esnasında sessiz kalıyorsanız görüşmeci yanlış kod yazdığınızı fark edemeyebilir. Sırf görüşmeci size ipucu verdi diye kodlama mülakatınızdan olumsuz sonuç alacaksınız diye bir şart yoktur. Bu gibi durumlarda görüşmeciniz verilen ipucuyu nasıl anladığınızı ve bunu kullanıp kullanmadığınızı görmek istiyordur.

3. Kodlarınız ile İlgili Yorumlar Yapın

Canlı kodlama mülakatı esnasında potansiyel patronlarınıza programlama stilinizi gösterme şansına sahip olursunuz. En iyi kodlama stratejilerini takip ettiğinizi bilmelerinden emin olun ve kodunuzun daha karmaşık olan yerleri ile ilgili kısa yorumlar yapın. Yorumlarınızda çok ince detaylara inmek zorunda değilsiniz. Önemli olan yazdığınız kodlar ile ilgili yorum yapmayı bilen bir kişi olduğunuz görüşmecilerinize etkili bir şekilde yansıtabilmenizdir.

4. Cevaplarınızı Test Edin

Görüşmecilerinizden yaptığınız hataları size belirtmelerini beklemeyin. Çözümünüzü bitirdiğiniz gibi yapacağınız ilk şey yazdığınız kodu örnek veri üzerinde test etmek olsun. Bunu yaparsanız hem kodunuzu test ettiğiniz için mülakatı yapan kişilerin gözünde pozitif bir itibar bırakmış hem de hata yaptığınız durumda görüşmeciden önce bunu siz tespit edeceğiniz için günü kurtarmış olursunuz.

Önemli İpucu:

Çözümünüzü test edeceğiniz veri olarak kısıtlamaları kullanmayı tercih edin. Mantık hataları çoğu zaman veri aralığının dışında kalır.

5. Algoritmanızı Optimize Edin

Çözümünüzün çalışır durumda olduğundan emin olduktan sonra, kendinize sesli bir şekilde daha etkili bir algoritma oluşturmanın mümkün olup olmadığını sorun. Şirketlerin çok büyük boyutlardaki veri setleri ile çalıştığını sakın unutmayın. Algoritmalarındaki gereksiz bir kod veya fazladan bir loop şirket ürünlerinin performanslarını çok önemli boyutta etkileyebilir. Bunu çok iyi anladığınızı göstermeyi başarırsanız görüşmecinizin takdirini kazanmış olursunuz.

Önemli İpucu:

Evinizde problemler üzerinde pratik yaparken, geliştirdiğiniz çözümlerinizin algoritmik zorluğunu da hesaplamaya yönelik egzersizler yapın. Hangi algoritmaların daha fazla maliyeti olacağını tespit edin ve problemi çözmek için daha iyi bir yolun olup olmadığını düşünün. Eğer bir veri setini ekstra işlem gerektirmeden sadece bir tane loop ile bağlayabilirseniz o zaman aynen onu yapın!

Orijinal Kaynak: Launch Code – How to Crush Your Live Coding Interview