'Ekşi Sözlük'ün kurucusu'ndan 'Sokak Kodcusu' kitabı: İmkansızlıklara karşı pratik çözümler
14:05 15.05.2024 (güncellendi: 15:12 16.05.2024)
Serhat Ayan'la Yeni Seyler Rehberi
Abone ol
Ekşi Sözlük kurucusu Sedat Kapanoğlu, Serhat Ayan’la Yeni Şeyler Rehberi’ne konuk oldu.
Kapanoğlu, Ekşi Sözlük’ün kurucusu olarak tanınsa da her şeyden önce bir yazılımcı olduğunu ifade etti:
“Kendimi en başta yazılımcı olarak tanımlıyorum. Yazılım geliştirmeyi kendi kendime öğrendim. Daha sonra Amerika’ya gittim ve Microsoft’ta Windows ekibinde mühendis olarak çalıştım. İnsanlar beni büyük oranda Ekşi Sözlük’ü geliştiren, kuran kişi olarak biliyorlar. Bunun haricinde sonsuz yazılım projesiyle ilgilenmişliğim var. Son yıllarda yazılımla ilgili tecrübelerimi kitaplaştırdım ‘Sokak Kodcusu’ adıyla. Yakın zamanda Türkçeye çevrildi. Tekrardan yazılımcı kimliğimle sahnedeyim.”
Ekşi Sözlük’ü zor şartlar altında kurduğunu ve imkansızlıkları yenmek için pratik çözümlere başvurduğunu kaydeden Sedat Kapanoğlu, Sokak Kodcusu kitabında değindiği konulardan bahsetti:
“Aslında Ekşi Sözlük’ü kodladığımda şöyle bir durumdaydım: Evsizim, iş yerimde kalıyorum, 7 aydır maaş alamıyorum, canım çok sıkılmış. Kendime ayırdığım vakit sırasında kodladım can sıkıntısından. Ekşi Sözlük’ü hayata geçirebilmek için kendi tecrübemden istifade etmem gerekti. Ekşi Sözlük benim yaptığım ilk interaktif web uygulaması. O güne kadar hiç yapmamışım öyle bir şey. İmkanlarım da yoktu. En kısa sürede yayına almak istedim. Öyle bir akşam oturdum. Bugün bir yazılımcıya söylesen ‘O öyle mi yapılır’ diyeceği korkunç tekniklerle tam üç saatte kodladım ve yayına aldım. Sonra arkadaşlarımı çağırdım. Kitapta da bahsettiğim bir yaklaşım var. Hiçbir zaman pratikleri ‘en iyi ve en kötü’ pratikler diye ayırmayın. Bazen kötü pratiklerin kullanılabildiği alanlar da olabilir. Hepsine hakim olun. Ekşi Sözlük’ü ilk yaptığım zaman metin dosyası formatında bir veri tabanında tutuyordum. Bunu bir yazılımcıya söyleseniz sizi tekme tokat kapıdan kovar. Fakat o dönemki teknik imkansızlıklar bunu gerektirdi. Kanada’da softcom adında ucuz bir hosting şirketi bulmuştum. Orada host edecektim fakat aldığım planda veritabanı yükleme imkanı yoktu. Metin dosyası tek seçeneğimdi. O şekilde başlattım. Korkunç çünkü ölçeklenebilir değildi. Sıkıntıları da site popülerleştikçe fark ettim. Aynı anda iki kişi giremiyordu. Bir içeriği silmem gerekirse bütün dosyayı indirip satırları silip dosyayı geri yüklemem gerekiyordu. O esnada da siteyi kullanıma kapatmam gerekiyordu. Bu kadar ilkeldi. Ama mecburdum. O an işe yarayan teknikleri kullandım. Zaman içinde hepsi düzeldi. Şu anda bir veri merkezinde birçok sunucudan oluşan bir yapı Ekşi Sözlük. Artık modern kod pratikleriyle geliştiriliyor. Bir yazılım ekibi üzerinde çalışıyor. Ama o dönem uygun olan pratikleri uygulayabilmek, kendimi frenlememek gerekti. Önemli olan elde etmek istediğim ürün ve sonuçtu. Sokak Kodcusu kitabında da bu sonuçları elde etmek için bugün kötü pratik olarak bilinen bazı kodlama teknikleri üzerinden tavsiyeler verdim.”
Yazılım dünyasında her daim tek bir çözüm bulunmadığının altını çizen Kapanoğlu, sözlerini şöyle sürdürdü:
“Aslında Sokak Kodcusu’nda bir Street Fighter göndermesi var. Yetiştiğim sokaklarda atari salonları da vardı ve bolca Street Fighter oynamışlığım vardı. Fakat buradaki ‘Sokak’ kelimesi işin aslında sektörde yetişmiş olmakla alakalı. Ben bu işin okulunu okumadım ama liseden mezun olur olmaz profesyonel olarak çalışmaya başladım. İlk işim de hasta takip sistemi için grafik ara birim altyapısı geliştirmekti. Ben her şeye bodoslama girince, üniversitede öğretilen şeyleri sonradan öğrenmem gerketi. Onlar faydasız bilgiler değil. Fakat neyin ne zaman gerektiğine ikna olarak, benimseyerek öğrendim. O şekilde kendimi geliştirdim. Dolayısıyla ‘sokak’ kısmı dediğim gibi. Firmalarda sabahlayarak, bazen evsiz ve aç kalarak öğrendim. O dönem edindiğim tecrübeleri aktardım. Bazen başka şehirlere seyahat etmem ve çok hızlı yazılım geliştirmem gerekiyordu. O zaman istasyonlar arası iletişim çok kötü olduğundan, bilhassa kırsaldaki meteoroloji istasyonlarıyla bağlantı kötü olduğundan, Meteoroloji genel Müdürlüğü için sıfırdan veri tasarımı, protokol veri transferi yapan, hata düzelten protokol tasarımı yapmam gerekmişti. Bunların hepsini bir ay gibi bir kısa sürede yaptım. Fakat kodlama pratiklerini inceleseniz şaşıracağınız şeyler olabilir. Tabii esas olan ürünün kalitesi ve istenen sonuçları vermesi. Kitapta bunlardan bahsettim. Bazı pratikler kötü olabilir ama kullanılabileceği alanlar olabilir. İyi pratikler de faydalı ve onların da kullanılması gerekiyor. Ben alternatifleri gösterip okurun gözünde netleşmesini istedim. Bu kod pratikleri ne zaman kullanışlı olabilir bunu okur anlayabiliyor. Kitabın teması bu şekilde.”
Üniversite okumanın avantajlarına değinen Kapanoğlu, her ne kadar yazılım öğrenmek önemli olsa da bireysel gayret ve çabanın ciddi önem arz ettiğini vurguladı:
“Tabii ki bu işi sokakta öğrenebilir gençler ama benim tavsiyem, yapabilirlerse üniversiteyi mutlaka okumaları. Şundan dolayı bunu diyorum: Üniversite okuduğunuz zaman çok kısa sürede size bilgi yüklüyorlar. Sistem zaten sizi eğitmek için tasarlanmış. Konusunda uzman akademisyenlerle çalışıyorsunuz. Bu birini çok hızlı bir yere getirir. Ben bugün üniversite okumuş birinin bildiklerini biliyorum ama onun üç katı vaktini harcamışımdır öğrenmek için. Kendi imkanlarımla yapmak zorunda kaldım. Bu verimsiz oluyor. O yüzden yapabilirlerse üniversite okusunlar. Türkiye’de durumu bilmiyorum ama Amerika’da boot-camp tarzı kodlama kursları var. Sizi kısa sürede kodlama konusunda ayağa kaldıran, temelleri öğreten ve hızlıca iş yapabilir hale getiren kurslar bunlar. Bir yılda ‘junior’ denilen yeni başlayan yazılımcı seviyesine çıkarabiliyorlar sizi. Ama bu tabii çok sıkı çalışma gerektiriyor. Sadece buna güvenerek kendinize iş bulmanız zor. Bu birincisi. İkincisi, yazılımcı sayısı artıyor. Sizin rakiplerinizden daha doğrusu piyasa ortalamasından üstün olmanız lazım ki iyi iş fırsatları tanısınlar size. Eğitim tek başına yeter veya kurs tek başına yeter diyemem. Kendi başınıza da çok sıkı çalışmanız lazım bir yere gelmek için.”