Bir yazılımcıya, bir ve yalnız bir şey öğretecek olsam, o ne olurdu biliyor musunuz?
“Yazılım alemine girerken, egonu kapının önündeki kutuya bırak.”
Büyük ego sahibi olmak, hem kişinin kendisi, hem de etrafındakiler açısından pek olumlu bir şey değildir genel anlamda. Ama bunu neden özellikle yazılımcıya öğretmek istiyorum ki ben?
Çünkü yazılımcı büyük ego sahibi olursa, şu durumlar gerçekleşir:
- Kendisini mükemmel zannettiği için, yaptığı her şeyi de mükemmel zanneder.
- Kendisini dünyanın merkezi zannettiği için, kendine özel bir dünya yaratmaya kalkışır.
Siz aradan çekilin, ben direkt yazılımcı kardeşime konuşayım:
Bak yazılımcı kardeşim,
Hiç birimiz mükemmel değiliz. Sen de değilsin. Yazdığın kodlar da mükemmel değil. Hiç bir zaman da olmayacak. Ancak ve ancak yazdığın kodların mükemmel olmadığına inanırsan, her yazdığın yeni kodda, hiç erişemeyeceğin o mükemmele bir adım daha yaklaşabilirsin.
Öte yandan, yazdığın koda yalnız eleştirilere olumlu bakmakla kalmaz, kendin de sürekli olarak eleştirel gözle bakabilirsen, o zaman kendini geliştirebilirsin.
Kodu yazdığın andan itibaren, kod artık senin değildir ve ayrı bir varlıktır. Başkasının koduna karşı kendi kodunu kayırmaktan vazgeçebilirsen, o zaman iyi bir yazılımcı olma yolunda hızlı ilerleyebilirsin demektir.
İşte bu sebepten, yazılım alemine girerken, egonu kapının önündeki kutuya bırak.
Bir de yazılımcı kardeşim, kodumuzu yazarken, her birimiz yoktan yapılar var ederiz, yaratırız. Pek çoğumuz için, yazılımın esas çekiciliği bundan kaynaklanır.
Ama yazılımcı kardeşim, bu yapıları yaratırken şunu unutma: Bu yapıları yalnız kendin için yaratmıyorsun. Yazdığın kodlar, senden başka nice yazılımcının elinden geçecek. Özellikle de o “ben denemek için yazdım” dediğin kodlar…
Yarattığın yapıları, kendin anlayacağın gibi değil, herkesin anlayacağı gibi yaratmaya çalış. Koda ve yapılara, kendi görüş açından değil, kodu ilk defa görecek olan yazılımcının gözünden bakmaya çalış, bunu alışkanlık haline getir. Kodunu öyle bir yaz ki, bakan birisi senin yazdığını anlayamasın. Kodun üzerinde sorulması gereken soru kalmasın.
Eğer koduna kendi bakış açından değil, nötr bir bakış açısından bakabilirsen, işleri kendine göre kolaylaştırmak, her şeyi ancak kendi anlayacağın gibi yapmak yerine, basitliğe ve açıklığa ulaşmaya gayret edebilirsen, o zaman takdir edilen bir yazılımcı olmak yolunda hızlı yol alabilirsin.
İşte bu sebepten, yazılım alemine girerken, egonu kapının önündeki kutuya bırak.
Sanırım zaman içinde, yazılımcıya ne öğretilmesi gerektiği konusundaki fikrilerim de değişiyor. On yıl önce sorsaydınız, sanırım öğretmek için seçeceğim ilk şey bu olmazdı; tam olarak ne seçmiş olacağımı çıkaramıyorum ama muhtemelen teknik bir şey olurdu…
Şimdi ise, yaklaşımların daha önemli olduğunu düşünüyorum. Çünkü, zaman içinde, doğru yaklaşım sahibi olanlar, doğru bilgileri edinebiliyor. Ben de zaman içinde, teknik bilginin edinilmesinin kolay, yaklaşımların ise değiştirilmesinin zor olduğunu öğrendim.
Hep olduğu gibi, söylemesi kolay, yapması zor…
Ferid Mövsümov der ki
Elinize sağlık çok isabetli tespitler olmuş. Yazılım bir takım oyunu ve tüm takımlarda olduğu gibi takım oyunu çok önemli. Kendini değil, takımını projeni düşünerek kod yazmak gerekiyor.
zeynep s gonenc der ki
Bir metod yazarken üzerinde en çok düşündüğüm şeylerden biri de adı oluyor. Hem kolay kullanılacak, hem diğerleriyle uyum içinde olacak, hem de ilk bakan ne işe yaradığını şıp diye anlayacak. Bunlar hep senin yüzünden.