Yeni Kod Yazılım Kursu Logo
Menü

İyi Yazılımcıların Ortak Özellikleri

Ben İyi Bir Yazılımcı Olabilir Miyim?

Kimin iyi yazılımcı olacağını söylemek mümkün değil, ancak iyi yazılımcıların ortak özellik ve davranış şekillerine baktığımızda kimlerin iyi yazılımcı olabileceğini söylemek mümkün oluyor. Kendinizi, aşağıda listelediğimiz iyi yazılımcıların ortak özellikleri ile kıyaslayarak bu işe uygun olup olmadığınızı tahmin edebilirsiniz:

  • Çok iyi İngilizce konuşurlar: Yazılımın hangi alanında uzmanlaşırsanız uzmanlaşın, kaynaklar ve ekosistemin İngilizce olduğunu göreceksiniz. Eğer iyi bir yazılımcı olacaksanız, İngilizce'nizi de paralelinde nasıl ilerleteceğinize ilişkin bir planınız olmalı.
  • Üşengeç değiller: Yazılımda "(1)sorun tespit etme (2)çözüm tasarlama (3)deneme (4)yanılma (5)çözümü iyileştirme" döngüsü günlük yaşamın içinde sürekli tekrar eder. Gerek hataları gidermek, gerekse iyileştirme yapmak için sürekli kendi yazdığınız kodları siliyor olacaksınız. Bazen açığa çıkmış bir sorun olmasa bile, daha iyi olacağına inandığınız için mimarisel değişiklikler yapmak için projenin bir bölümünü en baştan yazmaya kalkışmalısınız. Yazılım kariyeriniz boyunca yazdığınız kodların büyük bir bölümünü kesinlikle sileceksiniz. Bazı sorunların neden kaynaklandığını anlamak için en baştan yeni ortamlar yaratmanız gerekecek. Yardıma ihtiyacınız olduğunda, durumunuzu tasvir etmek için detaylı olarak durumu aktarmanız gerekecek. Bu süreçler kimileri için yorucu gelebilir. Özellikle üşengeç bir karakteriniz var ise bu süreçler sizi yıldırabilir. Sürekli kestirmeden ve "tahminler üzerinden" sonuca ulaşmaya çalışmak çok işinize yaramayacaktır. İyi bir yazılımcı olabilmek için sürekli birşeyler denemekten, denemek için zahmet göstermekten çekinmiyor olmalısınız.
  • Okumayı ve öğrenmeyi severler: Yazılım en dinamik sektörlerden birisi. Sürekli yeni kütüphaneler, paradigmalar, prensipler, deneyimler, makaleler, yaklaşımlar vb. ortaya çıkıyor ve eski süreçler üzerinde çok yıkıcı etkileri olabiliyor. Örneğin 15 yıldır yazılım geliştiren bir kişinin tahminen ilk 12 yıl boyunca öğrendiği dil, teknik, mimari vb. araçların %60'ından fazlasını hiç kullanmadığını iddia etmek çok yanlış olmaz. Bu da, aynı yazılımcının yaratıcı kalabilmesi için sürekli kendini yenilemesi gerektiği anlamına geliyor. İyi bir yazılımcı her yıl birçok kitap, makale okur; etkinlik, toplantı ve sunumlara katılır, video izler.
  • İşlerini severler & işleri kimi zaman onları heyecanlandırır: Yazılım, sevmeden yapması en zor mesleklerden biridir. Özellikle bu kadar çok işini seven yazılımcının olduğu bir dönemde. İşini sevmeyen yazılımcılar çok kısa sürede yenilikleri takip etmede aksamaya başlar, kendini geliştiremez, gelişmelere ayak uyduramamaya başlar. İşlerini seven yazılımcılar uzun çalışma saatlerine de aldırış etmez. Yaptığı işten zevk aldıkları için, iş saatleri dışında da sürekli yazılım sektörünün içinde (sohbet, youtube, kitap, toplantı, başka yazılımcılarla arkadaşlık vb.) kalabilirler bu sayede gelişimleri aksamaz.
  • Yardıma ve yardımlaşmaya açıktırlar: İşlerini yaparken gerek tanıdıkları, gerek tanımadıkları birçok insandan yardım talep ederler ve yeri gelince de başkalarına yardımcı olmaktan çekinmezler. Bu süreç, birbirine saygılı, çok kültürlü ve açık bir toplumun parçası olmak anlamına da gelmektedir.
  • Soğukkanlı, sakin, ağırbaşlı ve mantıklı kişilerdir: Anlaşmanız gereken bir bilgisayar olduğu için, onunla benzer davranışlarda bulunanlar, bilgisayar ile daha iyi geçinirler. Panik yapmamak, karamsarlığa düşmemek, zor durumlarda mantıklı kalabilmek ve harekete geçebilecek gücü bulabilmek önemli vasıflarıdır.

Ayrıca kendilerine "nerd" (tam Türkçe karşılığı olmasa da "inek öğrenci" diyebiliriz) denmesinden övünç duyarlar veya buna alınmazlar. Bu da ne tür bir karakterle karşı karşıya olduğumuzu anlamanıza belki daha yardımcı olur.

Dikkat edilirse, alışageldiğimiz, sözel mantık, sayısal mantık, şekil yeteneği, analitik düşünce, IQ vb. gibi yeteneklere hiç değinmedik. Çünkü bunu "işini sevmek" maddesi ile kapsıyoruz. Eğer bir konuda "yeteneğiniz" yok ise, o işi sevmeniz ve o iş için motivasyonunuzu yüksek tutmanız mümkün olmaz. Ancak hiç yazılım yazmamış bir kişi haklı olarak, yazılım geliştirmeyi öğrenmeden o işi sevip sevmeyeceğini de bilemeyeceğini ifade edecektir. Bu durumda bizim yine size tavsiyemiz eski tarz sorular sormak olacaktır:

  • Bulmaca, bilmece, sudoku, zeka sorusu vb. çözmekten hoşlanır mısınız?
  • Problem çözmek, zor sorular üzerine düşünmek hoşunuza gider mi?
  • Satranç, Go gibi oyunlar oynamaktan hoşlanır mısınız?

Eğer bu sorulara cevabınız "EVET" ise muhtemelen yazılımcılık seveceğiniz bir iş olacaktır. Eğer yazılım kariyerinize başlamak istiyorsanız, yazılım nasıl öğrenilir adlı yazımıza göz atabilirsiniz.