Geçenlerde Yakov Fain’in 5 java developer ile yaptığı mülakatlarla ilgili yazısını
ve gelen yorumları ilgiyle okudum.
Fain, görüştüğü kişilerin kendilerini 5-8 yıllık tecrübeli denebilecek Java geliştiriciler olarak tanımladıklarını
belirtiyor. Ancak bu yazılımcıların yapabildiklerinin genel manada Spring
, Hibernate
gibi frameworklerin xml
dosyalarının konfigürasyonu, java nesnelerinin veritabanına map edilmesi ve bunların sistemde birbirleri ile entegrasyonu
ile ilgili ayarlardan ibaret olduğunu belirtiyor. Yazıya gelen yorumlardan bazılarında da Hibernate
’deki lazy problemine
çözüm üretirken, lazy ihtiyacının ne olduğunu, bunun nasıl çalıştığını tam manası ile kavrayamamış programcılardan bile
bahsediliyor.
Zaman zaman çalıştığım şirketteki iş görüşmelerine bende katılıyorum. Malesef yukarıda tasvir edilen tablo bizim için de
geçerli. Çoğu yazılım geliştirici arkadaşımız kendilerini Java
, Spring
, Hibernate
gibi konularda tecrübeli ve
deneyimli olarak nitelemelerine rağmen, görüşmelerde çoğunlukla bu konularla ilgili temel bazı sorularıma tatmin edici
cevaplar alamadığımı belirtmeliyim.
Bazı arkadaşların hemen, mülakatlarda Spring
, Hibernate
gibi teknolojiler üzerinde çok durulmaması gerektiğini,
önemli olanın temel mühendislik ve programlama kabiliyetlerini sorgulamak olduğunu dillendirdiklerini duyar gibiyim.
Salt teknoloji odaklı bir sorgulamayı bende tasvip etmiyorum, ve bu tür kütüphane ve frameworklerin sağlam bir eğitime
sahip yazılım geliştiriciler tarafından makul bir zaman içerisinde öğrenilip, projelerde başarılı biçimde uygulanabileceğini
kabul ediyorum.
Ancak bu gibi framework ve kütüphanelerde java
ve yazılım dünyasında karşılaşılan problemlere üretilen çözümlerin genel
yapıları, uygulanan tasarım kalıpları, iyi pratikler ve dil kalıpları hakkında konuşarak mülakat sürecinde karşımızdaki
kişinin mühendis ve teknik kimliği, bilgi ve deneyimleri hakkında sağlıklı bir fikir sahibi olmak mümkündür. Burada dikkat
edilmesi gereken husus mülakatta bu framework ve kütüphanelerin kullanım biçimleri, spesifik API’leri düzeyinde konuşmaktan
uzak durmaktır.