İyi Yazılımcı Olmak İstiyorum, Ne Yapmalıyım?

İyi Yazılımcı Olmak İstiyorum, Ne Yapmalıyım?

Yeni blog adresimde ilk yazımı yayınlamak nasip oldu. Bu yazıyı Medium profilime de post edeceğim.

YouTube kanalımda ve Twitter hesabımda bana en çok gelen soruların başında insanların yazılım geliştirme bilgi ve becerilerinin eksik olduğunu düşünmeleri ve daha iyi yazılımcı olmak için ne yapmaları gerektiği oluyor. Bu endişelerin çeşitli nedenleri olabiliyor. Burada sorun sizde değil, size öyle hissettiren de demek ile yanlış bir tablo çizmek ve sizleri yanlış yönlendirmek de istemem. Yani kendinizi iyi bir yazılımcı hissetmiyor olmanızın temelinde zamanınızı doğru kullanmıyor, doğru kaynaklardan öğrenmiyor, öğrenirken sabır göstermiyor, yüzeysel öğreniyor, kendinizi farklı tecrübeler kazandıracak şekilde aktif tutmuyor, yanlış insanlardan öğütler alıyor, veya yanlış beklentiler içine giriyor olmak gibi sorunlar yatıyor olabilir.

Bu tür bir düşünceye tonlarca nedenin sebep olabileceği durumda bu yazının hepsinden bahsetmesi zor. Ben ise burada bir tane nedene değinmeye çalışacağım. İnsanların ortak sorunlarından bir tanesinin devamlı olarak kendilerini başkaları ile karşılaştırmak olduğunu düşünüyorum. Diğer mesleklerde nasıl bilmiyorum ama yazılım mühendisliği doğası itibari ile bizleri bilgisayar ve İnternet ile devamlı haşir neşir ediyor ve öğrenmek istediklerimizi hep bu ortamlarda buluyoruz. Dolayısıyla blog yazıları olsun, video eğitimler olsun, sosyal medya olsun, devamlı farklı insanlara ve fikirlere maruz kalıyoruz. Bu süreçte kendimizi bu insanlar ile kıyaslayabiliyor ve bu kadar şeyi nasıl bildiklerini merak edip kendimize bakınca sahte bir yazılımcı görmeye başlayabiliyoruz.

İnsanların bu tür düşünmeleri çok normal. Hepimiz irili ufaklı benzer yollardan geçmiş oluyor ve kendimizce farklı mücadele mekanizmaları geliştirebiliyoruz. Benim diyeceğim şeyler aslında defalarca söylenmiş şeyler olacak belki. Ama maalesef benzer öğütleri devamlı duya duya koku almaya benzer şekilde bu öğütlere karşı zamanla algılarımız kapanmaya başlıyor ve çözüm burnumuzun dibinde olsa bile biz, beyaz atlı prens gibi gerçekleşmesi imkansız bir çözüm arıyoruz. Bir de çözüm basit olunca, basit olan bayağı olur izlenimine kapılıyor, çözümün 500 sayfalık bir kitapta ya da 3 saatlik bir konuşmada olması gerektiğini düşünebiliyoruz.

Ben sosyal medyada çok kişiyi takip etmiyorum. Ama arada bir gördüğüm insanlar ya da takip ettiğim insanlar genelde yazılımı yıllardır yapan ve kendilerini devamlı aktif tutan insanlar. Aktif tutmalarının sebeplerinin arkasında para yatıyor olabilir, ama ben daha çok bu insanların öğrenmeyi seven, tecrübelerini paylaşmakdan zevk alan; kısacası yaptıkları mesleği seven insanlar olduklarını düşünüyorum. Çünkü bu insanların çoğu, öğrettikleri şeylerin değerine kıyasla hiç bir şey kazanmıyorlar bilgilerini paylaştıkları insanlardan. İyi pozisyonlarda ve tanınmış iş yerlerinde çalışıyor olabilirler ama bu da işlerini severek yapmalarının kendilerine verdiği azim ve sabırla çalışmanın yardımlarından bir tanesi. Dolayısıyla kendinizi kıyasladığınız insanların ne kadar emek ve yıl harcadıklarının farkında olmaz iseniz, bu size moral bozukluğu ve gereksiz zaman israfından başka bir şey olarak geriye dönmez.

Yukarıdaki ifadeleri beyan etmemdeki sebep, birincisi kendinizi kıyasladığınız insanlar yanlış insanlar olabilir. Yani bana bu soruları soranların bu işi bir kaç senedir ya da maksimum 5 senedir yaptıklarını görünce, kendilerini azim ve sabırlar 15 sene, 20 sene geliştirmiş insanlar ile kıyaslamaları morallerini bozmaktan başka bir şeye yaramıyor. Kendinizi kıyaslamak yerine, bu insanların yöntemlerini takip edebilirsiniz. Bu yöntemler de başta dediğim gibi, sabırla ve azimle çalışmak ve kendinizi devamlı geliştirme yöntemleri araştırmak. Tabi bu tavsiyeyi böyle söyleyince sanki günün her saati hem bu insanlar hem de siz yazılım çalışmalısınız, yazılımdan başka bir şey düşünmemelisiniz gibi bir çağrışımda bulunuyor olabilir. Bulunmasın. Burada usul, gaza gelip sabah akşam yazılım üzerine bir şeyler öğrenmek, sonra bir ay geçmeden sıkılıp ben bu işi yapamıyorum diye havlu atmak değil. Burada usul, mantıklı zaman aralıkları ile kendinizi geliştirmeye çalışmak ve bunu devamlı bir şekilde yıllarca yapmak. Bir de kendinizi kıyasladığınız insanların her konuda uzman olmadıklarının farkında olmanız lazım. Yani web üzerine çok iyi olan birisinin gömülü sistemler ile çok bir fikri olmayabilir. Sürümden kazanmak, yani economy of scale, ile ne kadar az çeşit üzerine yoğunlaşırsanız, ondan o kadar çok yapabilirsiniz gerçeğinin farkında olmanız lazım. Eğitim videolarına bakarken, JS üzerine uzman olan birisinin videosundan, .NET üzerine uzman olan birisin videosuna, oradan devamlı Microservisleri kullanan birisinden embed sistemler üzerine çalışan birisinin videosuna geçer, sonra bunların hepsi bir insanda toplanmış gibi kendinizi yargılamaya başlarsanız, daha en baştan hesaplamayı yanlış yapıyorsunuz demektir.

Ben ne zaman bir şeyler öğrenmeye kalkışsam, maymun iştahlı olmaktan çok defa fayda değil zarar görmüşümdür. Eğer siz de böyle iseniz, kendinizi yetiştirmeniz ve bu hususta olgunlaşmanız gerekiyor. Yıllar sonra kendimi ikna etme şeklim değişti. Daha yavaş, daha oturaklı, ama devamlılık arz eden bir şekilde bilgi ve yeteneklerimi geliştirmek üzerine kendimi eğitmeye çalıştım. Yoğun işlerim arasında bilgisayar bilimi üzerine master yapmayı düşündüğüm zaman, gözümde 2 sene fazla büyüyordu. Bugün ise masterı bitirmem üzerinden 6 yıldan fazla zaman geçti. O düşüncelerim üzerinden ise 8 sene. O gün kendime bu 2 yıl akşam eve geldiğinde dizi film izleyerek de geçer, haftada bir kaç gün ödev yaparak da diyordum. Kendimi ikna etmem gerekiyordu. Kendinize bu açıdan da bakmanız lazım. Evet akşamları evde oyun oynamak, film izlemek, geyik yapmak sizin de hakkınız. Ama yıllar bunları yaparak da geçecek, ama arada bir devamlı olmak kaydı ile bir kaç saatinizi bir şeyler öğrenmek için harcadığınızda da geçecek. Bir yıl sonra nerede olmak istediğinizi sizin karar vermeniz lazım.

Kendinizi başkaları ile kıyaslamak yerine, önce kendiniz ve kendinizin dünkü hali ile kıyaslamayı deneyin. Dünkü Tarık ile bugünki Tarık aynı kişiler mi, yoksa biraz daha farklı, biraz daha olgun, biraz daha bilgili, ve biraz daha bilinçli mi? Dünyada herkes farklı hızlarda ve sularda bir hedefe doğru yol almış gidiyorlar. Siz de onlardan bir tanesiniz. Bazılarımız daha dalgalı ve fırtınalı sularda, bazılarımız çarşaf gibi denizlerde sımsıcak güneş ışığı altında serüvenine devam ediyor. Bu kadar geminin bir yerlere yetişmeye çalıştığı bir dünyada hızınızın bir önemi yoktur demiyorum. Ama daha önemli olanın hala demir attığınız limanda mı yoksa çoktan derin sularda seyahat mi ettiğiniz olduğunu söylemek istiyorum. Sizden 10 yıl önce limandan ayrılmış bir gemiye bakarak moral bozmak çok akıl kârı olmasa gerek. Şunu da unutmamak gerekiyor ki, bu gemi her geçen zaman yazılımdan daha farklı dertlere önem verilen son rıhtıma yaklaşıyor. Eğer yola yeni çıkmış iseniz, değerlendirebileceğiniz çok güzel yıllarınız var demek olabilir. Burada ilk hedefiniz, yanlış rota tutmaktan dolayı gemiyi kayalıklara oturtmamak ya da yanlış kararlardan dolayı gemiyi alabora etmemek. Bunu da sizden çok yıllar önce bu yola çıkmış ve son limanlarına sağ salim ulaşmış insanların yollarına bakarak başarabilirsiniz. Dolayısıyla, o insanlar ile kendiniz karşılaştırmak yerine, bırakın onların öğrendikleri size yol göstersin, onların hataları sizin hata yapmanızı azaltsın. O zaman daha mutlu ve bilgili bir insan olursunuz.

Şimdilik diyeceklerim bu kadar.