Mid-Level ve Senior Bir Geliştirici İçin İşe Alım ve Temel Gereksinimler
Orta seviye bir geliştiricinin nitelikleri
Orta seviye pozisyonlar söz konusu olduğunda, temel gereksinim adayların görevleri bağımsız olarak yerine getirme becerisine sahip olmalarıdır. Tabii ki, orta seviye geliştiricilere derinlemesine bilgi gerektiren oldukça karmaşık teknik görevler verilmediği sürece, bu görevleri bağımsız olarak tamamlayabilmeleri gerekir. Bununla birlikte, bu seviyede geliştiriciler, iş gereksinimlerini de anlamalı ve ardından bunları teknik çözümlere çevirebilmelidir.
Orta düzey geliştiriciler, belirli bir uygulamanın belirli bir bağlamda tam olarak ne yaptığını anlayabilmelidir. Sonuç olarak, herhangi bir görev hakkında daha derin bir anlayış kazanabilecekler. Bu sayede değişiklikleri daha doğru değerlendirebilir ve daha etkin bir şekilde uygulayabilirler. Planlama aşamasında, iyi bir orta seviye geliştirici gereksinimleri okuyabilmeli ve bir şeyin eksik olduğunu veya geliştirilebileceğini bilmelidir.
Kod geliştirmek bir ekip işidir, bu nedenle standardizasyon çok önemlidir, çünkü yeni bir kişinin neyin ne olduğunu hızlı bir şekilde anlamasını sağlar ve hata sayısını en aza indirir. Tipik bir uygulamanın yapısını anlamak, onu oluşturma görevini oldukça basit hale getirir. Bu da doğru uygulama ilkelerinin tartışılmasına ve iyi kodun kötü koddan ayırt edilmesine olanak tanır. Orta düzey bir geliştirici, kendi alanında bir uygulama oluştururken kesinlikle standart şablonlara ve çözümlere aşinadır. Yalnızca belirli çözümlere aşina değil, aynı zamanda neden ihtiyaç duyulduğunu gerçekten anlıyorlar ve en iyi etki için bunları ne zaman ve nasıl uygulayacaklarını biliyordur.
Orta seviye bir geliştirici, diğer ekip üyeleriyle nasıl verimli ve etkili bir şekilde etkileşime geçeceğini bilir. Ve bu özellikle fikir birliğine varmanın zor olduğu durumlar için geçerlidir.
Orta seviye geliştiricilerle nasıl mülakat yapılır?
Mülakatlarda aşağıdaki örnek durumsal soruları adaylarınıza iletebilirsiniz ve benzer durumlardaki yaklaşımlarını görebilirsiniz.
- Nasıl düzeltileceğini kimsenin bilmediği (veya bilmek istemediği) görevleri üstlendiğiniz bir durum oldu mu?
- Karmaşık bir teknik sorunu çözmede karmaşıklık ve performans arasında bir denge bulmak zorunda kaldınız mı?
- Dokümantasyon oluşturmada önemli bir rol oynadığınız bir durumla karşılaştınız mı?
- Sorunları çözmede ve kritik hataları düzeltmede inisiyatif almanız gerekti mi?
- Aynı anda birkaç proje üzerinde çalışmak zorunda kaldınız mı?
Kıdemli bir geliştiricinin nitelikleri
Kıdemli bir geliştirici çok sayıda kod görmüştür, bir sürü hata yapmıştır ve tüm bu süreçlerden doğru sonuçları çıkarmıştır. Tüm geliştiriciler her zaman soru sorar ancak kıdemli geliştiriciler doğru soruları doğru soyutlama düzeyinde nasıl soracaklarını bilirler. Kıdemli bir geliştiricinin ana sorumluluğu, her zaman doğru kararların, işletmeye maksimum fayda sağlayan kararların alınmasını ve maliyetlerin en aza indirilmesini sağlamaktır. İyi bir kıdemli geliştirici her zaman daha fazla değer elde etmenin yollarını arar ancak aynı zamanda zaman ve para gibi kaynakları en iyi şekilde kullanmanın gerekli olduğunun da farkındadır. İyi bir kıdemli yazılımcı, her zaman son noktayı düşünür, bu nedenle sorunları ortaya çıkmadan önce bile çözebilirler. Örneğin, sistemin darboğazlarını önceden düşünürler, araçların yanlış kullanımından kaynaklanan güvenlik açıklarını ve sorunları hatırlarlar. Kıdemli bir geliştirici tarafından yazılan kod, sürdürülebilirlik ve ölçeklenebilirlik göz önünde bulundurularak yapılacaktır.
İyi bir kıdemli geliştirici şunları yapmalıdır:
- Orta seviye bir geliştiriciden çok sayıda karmaşık görevi daha hızlı çözebilmelidir.
- Yeterince iyi olan bir ürünü, çok iyi veya yeterince iyi olmayan bir üründen ayırt edebilmedir.
- Yazılımın yeniden düzenleme maliyeti, gerçekten hangi kalıplara ihtiyaç duyulduğu ve soyutlama seviyeleri söz konusu olduğunda ne zaman bir çizgi çizileceğini bilmedir.
- Olağanüstü iletişim becerilerine sahip olmalıdır, çünkü yalnızca başkalarına doğru kararın ne olduğunu söylemekle kalmamalı, aynı zamanda müşterisini ve ekibini kendileriyle aynı fikirde olmaya ikna etmelidir.
- Herhangi bir önemli kararı, ilgili herkes tarafından gerçekten anlaşılabilecek bir şekilde açıklayabilmeli ve gerekçelendirebilmelidir. Bu sayede, ekibin kendisi deneyimlerinden ders alma şansına sahip olur ve bu nedenle yol boyunca çoğu sıkıntılı noktalardan kaçınırken daha hızlı gelişme sağlar.