Kimlik, kişilik ve eğitim

Ben küçükken (geçen yüzyıl diyelim…) hayatımı biçimlendiren şeylerden biri okuduğum bir yazıda geçen bir laftı. Sanırım CCC üyesi biriyle yapılan bir röportajda “if I have a computer, why should I work” gibi bir laf edilip arkadan “iyi programcı tembel olur” diye bir hayat felsefesi getiriliyordu. Demek ki daha o sıralarda bu tür yazıları okuyacak kadar kafamda bir meslek hedefi, algısı varmış. Muhtemelen bu yazı da epey motivasyonumu yükseltmişti.

Tabii işin gerçeği şu: Tembellik göreceli bir bakış, program yazarken düşüncelerimizi, mantığımızı, belki bunlar kadar önemlisi kontrollü paranoyamızı anlayıp, analiz edip bir metod dahilinde kayıt altına alıyoruz. Bunu yapmak çok da tembellere, hele disiplinsiz tembellere göre iş değil. Ama olan şu, söz konusu kayıt altına alma işi bir kere düzgün yapıldı mı, bir daha aynı konu üzerinde “düşünmek” ihtiyacı (umulur ki) kalmıyor. Dolayısıyla programlaması yapılan konuyu hayattan çıkarmak ya da en azından sıkıcı kısımlarından kurtulmak mümkün hale geliyor.

Burada karşımıza çıkan önemli noktalar şunlar:

  • Çoğu konuda, genelde sanılanın aksine bir tek doğru olmadığı, ama bu farklı doğruların belli bir mantık çerçevesinde açıklanabildiği bir hayat bakışı gelişiyor zamanla. Burada önemli noktalardan biri şu; “Mantık”, “istatistik” ve “matematik” çoğu zaman sıradan insan içgüdülerinde doğru olduğu sanılan şeylerin aslında hesaplamalar yapıldığı zaman yanlış olduğunu gösteriyor. Mesela basit bir örnek olarak, Istanbul içinde ortalama araç kullanma hızı bugünlerde 32 km/h ve mevsim ilerledikçe 28 km/h’ye kadar düşecek. Çoğu insan 140, 150 km/h gibi hızlarda araba kullanarak bir yere “çabuk” gittiklerini sanıyorlar, ama öyle değil. Programcılık, hayatın her noktasına bu tür analitik bir gözlükle bakma alışkanlığı getiriyor.
  • Yine çoğu konuda, eğer harici değişkenlerde bir değişiklik yoksa, aynı konuyu defalarca yeninden gündeme alıp her seferinde farklı bir sonuç bulma umudu, bazı insanlar için hayat tarzıyken, programcılar için sadece bir işkence oluyor. Değişkenler aynıysa, sonuç nasıl farklı olsun? Eğer bir şey gerçekten değişiyorsa, demek ki bir faktör/değişken değişmiş olmak zorunda. Önemli olan bir nokta, ki bunu da çoğu programcı anlamıyor, şu; Bugün başarılamayan bir şey, yarın başarılıyorsa, ve görünen değişkenlerde bir değişiklik yoksa, demek ki görülmeyen bir değişken daha var ortamda.
  • Düşünerek yapılan şeyler, içgüdüsel olarak yapılan şeyler, planlı hareketler, plansız hareketler v.s. Bunların hayatında programlama olan birine ifade ettiği şeylerle olmayan birine ifade ettiği şeyler arasında ciddi farklar var. Programlama sonuçta “düşünceleri tekrarlanabilir açıklıkta kayıt altına alma işi” Dolayısıyla korkarım “düşündüğünün farkında olarak düşünmek” gibi bir alışkanlığımız, ve sıradan insanların bunu çoğunlukla yapamadığını unutmak gibi bir kabahatimiz var.
  • Eğitim iyidir, programlama bilgi, yetenek ve yetkinliklerinin, alışkanlıklarının akademik bir disiplin altına alınması hayatı çok kolaylaştırır… Çoğu programcıda eğitimi geçmişte kalan ya da sadece belli metodların öğrenilmesiyle sınırlı bir aktivite gibi görme alışkanlığı var. Bu basitçe yanlış. Konunun metodlar kadar düşünce organizasyonu, analizin objektifliği, matematiğin işteki rolü gibi “seksi olmayan” tarafları olduğunu, bunun da sıkıcı da olsa, kitap, makale v.s. okuyarak bırakın geliştirmeyi ancak güncel tutulabileceği kolay unutuluyor. Bu sanırım “iyi programcı tembel olur” diye bakarken “tembelliği yüceltmek” kolay geldiği için ortaya çıkan bir durum.