Ekşi Sözlük’ün kurucusu olarak tanıdığımız Sedat Kapanoğlu ile yazılım dünyasındaki yolculuğunu ve yeni kitabı “Sokak Kodcusu”nu konuşmak üzere bir araya geldik. Kapanoğlu, yazılım dünyasında kendi kendine edindiği tecrübeleri ve teknolojinin gelişimini bizlerle paylaşırken, kod yazmaya nasıl başladığından yapay zekanın kod dünyasına etkilerine kadar birçok konuyu bu röportajda ele aldı.
Şimdi sana neden kod diye sormak isterdim ama öyle yapmayacağım. 5N1K olsun; kod yazmaya ne zaman başladın, nasıl başladın, niye başladın?
9 yaşımda başladım, ilk kodumu o zaman yazdım. Ağabeyim eve ödünç bir bilgisayar getirmişti, o zamanların eski bilgisayarlarından Sinclair ZX Spectrum. Benim birkaç ağabeyim var, baktım küçük ağabeyim onda bir şeyler yazıyor, yazdıktan sonra ekrana bir grafik çizdirdi, ben bir anda şok oldum; nasıl böyle bir şey olabilir, nasıl yapılabilir diye. Sen ne yazdın da orada grafik çıktı diye büyülendim. Ondan sonra baktım, o bilgisayarın kullanma kılavuzu, orada da örnek kodlar ve programlar var. O programlardan birini yazdım. İlk olarak ekrana Sedat yazan ve onu sürekli tekrar ettiren bir kod yazdım: “10 PRINT SEDAT, 20 GO TO 10”. Ekranı Sedat’larla doldurdu. Ben bunu yazdıktan sonra, kendi kendime benim bunu yapmam lazım dedim çünkü muhteşem bir şeydi. Ne istersem yapıyor bilgisayar, benim şahsi yaratıcım gibi; yani ben ne dersem onu elde edebiliyorum bilgisayara söyleyerek. İlk kodumu o zaman yazdım ama ne yazık ki ödünç bilgisayar olduğu için geri gitti. Bunun üzerine bilgisayarsız kaldığım bir dönem oldu. Meğersem bu benim bilgisayarımmış diyerek kağıda klavyeler ve ekranlar çizdim; onların üzerinde çalıştım, daha doğrusu çalışıyor taklidi yaptım ve birkaç sene sonra babamı bana bilgisayar alması için nihayet ikna ettim. Kendi bilgisayarım oldu, onun üzerinde kendi kendimi geliştirerek yazılım öğrendim. Kodlama maceram bu şekilde başladı, hiçbir zaman da formal eğitimini almadım; o şekilde de devam etti serüvenim.
Peki, o kodu gördüğün ağabeyin şimdi ne iş yapıyor?
Kendisi müzisyen, Kültür Bakanlığı’nda bağlama sanatçısı.
Şimdi senin o büyülendiğin dönemde bilgisayar bile aslında birçok insan için çok fantastik bir cihaz. Yani geliyorsun oyun oynuyorsun, insanlar iş yapıyor tabii. Şu an iş yaptığımızla o zaman iş yaptığımız arasında çok fark var ve oradaki fark gibi o günkü kodla bugünkü kod arasında da fark var. O zaman neredeyse her şeyi bir kodcunun kendisi yapması gerekirken, yani bir evren inşa edecekse en temelinden girmesi gerekirken, şimdi kütüphaneler var; giriyorsun internette rehberler, videolar ve yapay zeka var. O günkü kodla bugünkü kodu karşılaştırmanın istesem, kalite açısından mesela…
Aslında çok güzel bir noktaya değindin. Gerçekten eskiden kod yazmak daha basitti çünkü bilgisayarların kapasiteleri sınırlıydı, yapabileceklerimiz sınırlıydı ve yazabileceğimiz kodlar da ufak ve sınırlıydı. Bugün ise dediğin gibi yeni kütüphaneler, işletim sistemleri, arayüzler ve bir sürü olanak var. Biz bu bileşenleri kullanarak bir kod elde ediyoruz ancak karşılığında bilgisayarların ve yazılımların ihtiyaçları da değişti. Bir yazılımı geliştirmek artık tek başına yetmiyor, o yazılımın mobil versiyonunu yapacaksınız, iPhone için yapacaksınız, Android için yapacaksınız, web için yapacaksınız… Bütün bunları ayrı ayrı geliştirmeniz gerekiyor. Ayrıca arka planda sunucu tarafını da yapacaksınız çünkü artık internete bağlısınız ve yazılımlarınızı internet üzerinden sunuyorsunuz. Her şey bir sunucu üzerinden çalışıyor ve bu bağlantıları ve katmanları geliştirmek ekstra bir karmaşıklık ekliyor. Haliyle yazmamız gereken kod miktarı değişmiyor, işin hammaliyesi neredeyse aynı diyebilirim.
Bugün elimizde çok fazla olanak var ancak bu gereksinimleri karşılama kısmında yine de yazılımcıya çok iş düşüyor. Kalite konusunda da benzer bir durum var. Ben kod kalitesinden şunu anlıyorum: Başka bir yazılımcı o koda baktığında o kodu nasıl daha kolay anlayabilir ve üzerinde nasıl daha kolay geliştirme yapabilir. O kod ne kadar az bakım ister diye düşünüyorum. Bu konuda çok büyük bir fark olduğunu düşünmüyorum. Eskiden programlama dilleri daha ilkel ve basitti, sistem de basitti. Ancak şimdi diller daha karmaşık. Fakat dediğin gibi, elimizdeki altyapılar, metin editörleri ve bileşenler sayesinde bununla daha iyi başa çıkabiliyoruz. O yüzden kalite konusunda nesnel bir fark olduğunu düşünmüyorum. İki dönemi de görmüş biri olarak aynı şeylerle başa çıkıyoruz diyebilirim. Her şey değişti ama hiçbir şey değişmedi gibi.
Peki, yapay zekanın kod yazımına etkisi hakkında ne düşünüyorsun? Yakın gelecekte ve uzak gelecekte kodlama dünyasını nasıl etkileyecek?
Yapay zeka bence harika bir gelişme oldu. Aslında 80’lerden beri geliştirilen bir şey ama son zamanlarda büyük kırılımlar yaşadı. Yapay zekaya dair bir korku var; kontrolden çıkarsa işimizi elimizden alacak, dünyayı ele geçirecek, hepimizi yok edecek tarzında farklı korku seviyeleri var. Ben açıkçası yapay zekadan korkmuyorum. Onu kontrol edebileceğimizi düşünüyorum ve yazılımcılık denen mesleğin tamamen yerini alabileceğine inanmıyorum. Yazılımcılık aslında kodları takır takır yazmak değil; yazılımcılığın %90’ı düşünmek ve araştırmak. Geri kalan %10’luk kısmında kod yazıyoruz. Yazılımcı, problemi nasıl çözerim, buraya basınca ne olsun, ekrana ne çıksın gibi kararları düşünür. Yapay zekanın yaptığı, %90’lık kısımdan %10’luk kısmı belki kurtarmak çünkü tasarımı yapay zeka yapamaz. İnsanın ne kastettiğini anlamaz. Logoyu bir tık büyütelim deyince ‘tık’tan ne kastediyor, bunu yazılımcı anlayabilir çünkü aralarında bir iletişim oluşmuştur. Yapay zeka ise kendi varsayımları ve eğitim veri setine göre hareket eder. Dolayısıyla bir yazılımcının yerine tam olarak geçemeyecek. Yakın zamanda yapay zeka bir araç gibi hızlandırıcı olarak kullanılacak, işimizi kolaylaştıracak ama doğruluğunu teyit etmemiz gerekecek çünkü yanlış şeyler de üretebiliyor. Yanlış bir şey üretince stresi yok; işten kovulma, maaştan kesilme gibi dertleri yok. Koda bugün başlasam bu zor bir soru olurdu çünkü benim başladığım dönemde internet, kaynak ve doküman yoktu. Şimdi internet var, her şey daha kolay.
Ancak rekabet de var, yazılımcılık muteber bir meslek haline geldi ve birçok insan bu alana yöneliyor. Bu doğal bir akış…
Kitabı 10 yıl önce yazmak istesen nasıl olurdu? O zamanki tasarımdan bahsedebilir misin?
Arkadaşım Aziz Kedi, Gibi dizisinin yazarı, böyle bir kitap yazalım dediğinde birkaç sayfa yazmıştım. O dönem yazdığım kitap teknikten çok geyik bir kitaptı. Ancak 10 yıl sonra Manning Publications, Street Coder kitabını yazmamı istediğinde baştan tasarlamam gerekti. Manning çok teknik bir yayınevi ve anlattığınız şeyin teknik konularda olması gerekiyor. İçeriği buna göre düzenledim. Kitapta somut, faydalı ve doğrudan yazılım hayatınızda uygulayabileceğiniz teknikler var. İlk kitap daha anılarımı anlatıyordu, bu ise daha teknik bir kitap oldu.
Kimdir Sokak Kodcusu, kime denir?
Sokak Kodcusu, sokakta yetişmiş anlamında; alaylı yani. Piyasada kendini geliştirmiş, oranın şartlarıyla yetenek setini doğru bir şekilde ölçeklendirmiş biri. Sokaklarda öğrenmiş, iş yerlerinde çalışmış, gece gündüz demeden sabahlamış, kendini bu şekilde yetiştirmiş biri.
Üniversitede formal eğitim alan biri çok kıymetli bilgiler öğrenir ancak bu bilgiler her zaman yeterli olmaz. Ben de kitapta bu teknikler ve anti-tekniklerden bahsediyorum.
Sokak Kodcusu, aldığı formal eğitimi sorgulayıcı şekilde kullanabilmeli, işini daha hızlı yapabilmek için alternatif çözümler üretebilmeli. Bu kitapta da buna değiniyorum.
Kitap her bilgi düzeyine göre mi? Kimler okumalı?
Yazarken yeni ve orta seviye yazılımcıları hedefledim ancak kitap çıktıktan sonra her seviyeden geri bildirim aldım. Hem deneyimli yazılımcılar hem de yeni başlayanlar faydalı buldu. Kitap yol gösterici bir rehber niteliğinde. İnternet rehberlerle dolu ancak doğru yolu gösterecek bir mentora her zaman ihtiyaç var.
Kitabı bir buçuk senede yazdığını söylemiştin, devamı gelecek mi?
Manning Publications ile bazı devam konseptleri üzerinde konuşuyoruz ancak henüz somut bir şey yok. Yeni bir kitap yazarsam yine en az Sokak Kodcusu kadar kıymet katacak bir kitap olmasını isterim. Şu an için somut bir plan yok ama konuşmaya devam ediyoruz.
Eklemek istediğin bir şey var mı?
Umarım Türkiye’deki yazılımcılar da Sokak Kodcusu’nu okuyarak çok daha iyi noktalara gelirler. Teşekkür ederim.
Bu yazı Digital Report Dergisinin 19. sayısında yayınlanmıştır.