14 Yaşında – İlk Hata Ayıklama Deneyimleri

Programlama temellerini öğrenirken genelde istekli bir şekilde bilgisayar başına oturuyordum. Ama her zaman aynı formül tutmuyor tabi. Yazdığım kodlar istediğim gibi çalışmamışsa motivasyonumu olabildiğince yükseltip o şekilde mola vermeye gayret ediyordum. Çünkü böyle yapmazsam bilgisayar başına oturmak için cesaret bulmak zor oluyordu. Bu alanda kendimi geliştirirken her gün en az bir kere derleyiciyi açmayı prensip edindim. Hiçbir şey yapmayacak olsam bile çalışmalar nerede kalmış diye bir göz gezdirmek, beni vakti geldiğinde ekrana boş boş bakmaktan kurtarıyordu.

O dönemde bir heyecanla yazmaya başladığım hesap makinesi bana birçok şey öğretti. Ortaya çıkan sonuç ne kadar basit olursa olsun, birileriyle paylaşılabilecek kadar somut olması beni üzerinde çokça uğraşmaya yöneltmişti. Yaptığım yazım hatalarından dolayı birçok kez “galiba bu iş bana göre değil” diye düşünsem de, tüm bunlar bana kod yazarken hataları nasıl çözebileceğimi, nasıl hatasız kod yazabileceğimi gösterdi.

İlk defa yazım hatası yaptığımda hatayı nerede arayacağımı şaşırırken, unuttuğum noktalı virgüller, yanlış yere koyduğum parantezler beni büyük oranda geliştirdi. Biraz acımasız davrandılar (!) gerçi ama olsun.

Düşe kalka çalışmalarım sonucunda 18 ayrı işlem yapabilen bir hesap makinesi çıkarmıştım ortaya, üstelik belli kalıptaki havuz problemlerini bile çözebiliyordu. Hesap makinesine havuz problemlerini eklemem benim algoritma kavramıyla tanışmamı sağlasa da tam olarak öğretmedi, ya da öğretmemiş desem daha doğru. Bunu daha sonra oyun geliştirme sürecinde anladım.

Java ile ilk oyunumu yazmaya çalışırken haritadaki bir noktanın diğer noktaya doğrusal olarak ilerlemesini sağlamam gerekiyordu. Koordinat sistemi üzerinde bunu nasıl formülleştirebilirim diye uzunca bir süre denemeler yaptım. 0,0 pozisyonundan 12,18 pozisyonuna ilerlerken X ve Y değerleri öyle bir oranla artırmalıydı ki ikisi de aynı anda hedefe ulaşsın. Bu problemin çözümünü geometrik olarak uzun süre araştırmama rağmen istediğim sonuca ulaşamadım. Boş kaldığım her vakit kağıt üzerinde hesaplar yapıp sonradan onları oyunuma uyarlamaya çalışıyordum. Bu denemeler kulağa başarısızlık gibi gelse de bana düşüncelerimi kodlayabilme pratiği kazandırdı. Algoritma nedir, işte bu sayede öğrendim.

Hatırı sayılır derecede vakit ayırdığım bir diğer mesele ise oyundaki kesişmeleri tespit etmek oldu. Herhangi bir fizik altyapısı kullanmadığımdan ana karakter ile oyundaki engellerin birbirine temas edip etmediğini nasıl öğreneceğim hakkında hiçbir fikrim yoktu. İnternetten yaptığım araştırmalar sonucunda bazı formüllere ulaştım, bir kare ile başka bir karenin veya bir daire ile başka bir dairenin temas ettiğini anlamak pozisyon ve genişlik değerleri elinizdeyse basit oluyordu. Fakat bir daire ile bir karenin teması nasıl anlaşılacaktı. Böyle bir formüle rastlamamıştım, ümitsizce ihtiyacım olan şeyin formüller olduğunu düşünürken internette bir fizik kütüphanesiyle (box2d) karşılaştım. Hala daha kullanmakta olduğum bu kütüphane resmen hayatımı kurtardı diyebilirim.

Bu sektörde karşıma çıkan tüm sorunları bir şekilde aşacak çözümler buldum şimdiye kadar. Çok yakın tarihte bunun bir örneğini daha yaşadım. Okuldaki bir hocamın ricası üzerine yazmaya başladığım bir kare bulmaca oluşturma programı bir türlü istediğim sonucu vermiyordu. Kelimeleri kutucuklara yerleştirecek olan algoritmam ne yaptıysam doğru düzgün çalışmadı. Ben de kelimeleri uygun kutucuklara yerleştirme işini kullanıcının yapacağı basit bir arayüz tasarladım. Şu anda program sorunsuz çalışıyor…

Tüm bu yaşadıklarım bana programlamanın ne kadar ucu açık bir alan olduğunu, kendi çizdiğim sınırlara takılmak yerine farklı yollardan da sonuca ulaşılabileceğini öğretti. Yeter ki farklı açılardan bakmayı bileyim…

CEVAP VER

Please enter your comment!
Please enter your name here