>>>>>>>>>>>>>>>>>>>>> Paylaş

Kodlamada Sonsuz Evren, Python

Published On: Ocak 15, 202415,7 min readBy Categories: Programlama

Teknoloji ile İlk Tanışmam

Windows’un Frontpage programıyla kolaylaştırılmış kodlama ile tanıştım. O sihirli kutuyla ilk temasım… Öncesinde daha çok kod yazıyorduk derken bile, aslında o satırların ne anlama geldiğini tam kavramadan, belki de sadece <marquee> etiketleriyle yazıları kaydırmanın heyecanını yaşıyordum. Yıl 1997-1998’di. Çoğu kişi için internet, telefon hatlarından gelen o cızırtılı sesle bağlanılan, yavaş ve pahalı bir lükstü.

Unutamadığım o dial-up sesi… “Pişt, gurr, tık tık, cırrr…” ve sonunda o büyülü anons: “Bağlandınız!” Saniyede 3-5 KB hızla indirilen resimler, satır satır yüklenen web sayfaları… Hepimiz sabırlı olmayı öğrenmiştik o günlerde. Bir resmin yüklenmesi için geçen sürede çay demler, kitabınızdan birkaç sayfa okur, sonra dönüp bakardınız: “Acaba yüklendi mi?”

Ben şanslıydım, çok küçük yaşta bilgisayar ile tanışıp o “kodlama” denen gizemli dünyaya adım atmıştım. Babamın eve getirdiği 486 işlemcili, 8 MB RAM’li o büyülü kutu, benim için yeni bir dünyanın kapılarını aralamıştı. Windows 95’in o ikonik başlangıç müziği hala kulaklarımda. İlk öğrendiğim komutlar dir, cd ve format c: idi – sonuncusunu bir kez yanlışlıkla kullandım ve tabii ki büyük bir ders aldım!

Tabii o zamanlar “kodlamak” demeye bin şahit ister; Frontpage’in sürükle-bırak arayüzüyle, hazır şablonlarla oynamak, belki birkaç <b> etiketiyle yazıyı kalınlaştırmaktı tüm marifetim. İlk yaptığım web sitesi, mahalledeki arkadaşlarımın telefon numaralarını içeren basit bir rehberdi. Her arkadaşa farklı renkte arka plan, yanıp sönen yazılar ve hatta o dönem popüler olan “Ziyaretçi Sayacı” bile koymuştum. Sitenin altına da gururla “Bu site Frontpage ile hazırlanmıştır” yazmıştım.

Ama olsun, yine de kendimi önemli bir adam gibi, bir şeyler yaratan biri gibi hissediyordum. O yıllarda Bill Gates, o devasa Windows imparatorluğuyla bizim için hayranlıktan öte bir figürdü. Windows 98 kutusunu açıp, o CD’yi sürücüye yerleştirdiğimde hissettiğim heyecanı anlatamam. Sanki saf bilgi, saf potansiyel elimdeydi. (Hatırladığım kadarıyla ülkemizde Steve Jobs, o karizmatik sunumları ve farklı felsefesiyle henüz bugünkü popülerliğine ulaşmamıştı. Belki de Apple’daki o ayrılık dönemi de bunda etkiliydi, kim bilir?)

İlk Heyecandan Uzaklaşma ve Yeniden Keşif

Sonra hayatın koşturmacası, okul derken o ilk heyecanlar biraz geride kaldı. Lise yıllarım bilgisayarla “kullanıcı” seviyesinde bir ilişki içinde geçti. Word’de ödevler hazırlamak, Excel’de basit tablolar oluşturmak… Kodlama dünyasından uzaklaşmıştım. Sanırım herkesin hayatında böyle duraksamalar olur; bazen tutku dediğimiz şey, bir süreliğine uyku moduna geçer.

İnternetin yaygınlaşması ile ICQ, MSN Messenger gibi platformlarda saatlerce sohbet ettiğimiz zamanlar… mIRC ile Türknet kanallarında takıldığımız, “nick” kavgaları yaptığımız, hat düşünce “ya tam konuşurken gitti!” diye hayıflandığımız dönemler… Bunlar hep dijital dünyanın bana sunduğu deneyimlerdi, ama kodlama o sıralar hayatımda yoktu.

Ta ki Python karşıma çıkana kadar. Üniversite yıllarımda bir ders için basit bir program yazmamız gerekiyordu. Seçenekler arasında C++, Java ve Python vardı. İlk ikisi bana fazla karmaşık gelmişti – tüm o süslü parantezler, noktalı virgüller, derleyiciler… Açıkçası ilk başta Python da pek ilgimi çekmemişti. Ne o cafcaflı arayüzler, ne de karmaşık görünen yapılar… Sadece sade, anlaşılır ve inanılmaz esnek bir dil.

İlk Python kodum şuydu:

print(“Merhaba, Dünya!”)

Basit, değil mi? Ama bu basitliğin ardında derin bir felsefe yatıyordu: Kodun okunabilir olması, karmaşık olmayan sözdizimi, pragmatik yaklaşım… Tıpkı yıllar önce Frontpage ile web sitesi yapar gibi hissettim bir an; Python ile de aklınızdaki fikri, doğru araçlarla hayata geçirebiliyordunuz.

Python’la İlk Adımlar ve Keşifler

Hesap makinesi kodlamakla başladık tabii, her acemi kodcunun ilk sınavı gibiydi:

Hesap Makinesi, Python Kodu
def toplama(a, b):
return a + bdef cikarma(a, b):
return a – b

def carpma(a, b):
return a * b

def bolme(a, b):
if b == 0:
return “Sıfıra bölünemez!”
return a / b

while True:
print(“\nBasit Hesap Makinesi”)
print(“1. Toplama”)
print(“2. Çıkarma”)
print(“3. Çarpma”)
print(“4. Bölme”)
print(“5. Çıkış”)

secim = input(“Seçiminiz (1-5): “)

if secim == ‘5’:
print(“Hesap makinesi kapatılıyor…”)
break

sayi1 = float(input(“Birinci sayı: “))
sayi2 = float(input(“İkinci sayı: “))

if secim == ‘1’:
print(“Sonuç:”, toplama(sayi1, sayi2))
elif secim == ‘2’:
print(“Sonuç:”, cikarma(sayi1, sayi2))
elif secim == ‘3’:
print(“Sonuç:”, carpma(sayi1, sayi2))
elif secim == ‘4’:
print(“Sonuç:”, bolme(sayi1, sayi2))
else:
print(“Geçersiz seçim!”)

Bu basit kodla bile, programlamanın temel taşlarını öğrenmiştim: Fonksiyonlar, koşullar, döngüler… Sonra basit metin tabanlı macera oyunları denedim; hani “Kuzeye git”, “Kapıyı aç” yazdığımız türden.

Bir keresinde, bir hafta sonu boyunca uyumadan “Zindan Kaşifi” adını verdiğim basit bir oyun yazmıştım. Oyuncu karakter “@” işaretiyle, duvarlar “#” ile, hazineler “*” ile gösteriliyordu. Klavye yön tuşlarıyla karakteri hareket ettirip, hazineleri topluyordunuz. Grafikler mi? Yok tabii ki! Tamamen ASCII karakterlerinden oluşan bir dünya! Ama yine de, kendi yarattığım o küçük evrendeki her hazineyi topladığımda hissettiğim başarı duygusu paha biçilemezdi.

İşte o an, kodun sadece hesaplama yapmadığını, aynı zamanda interaktif dünyalar yaratabildiğini görmek müthişti! Bilgisayar ekranındaki o basit karakterler, zihnimde detaylı bir mağara sistemine, karanlık koridorlara, gizli geçitlere dönüşüyordu. Hayal gücümün ve kodun birleşimi, sınırsız bir yaratıcılık potansiyeli sunuyordu.

Topluluk Gücü ve Python’un Ekosistemi

Üniversite yılları ve internetin artık ceplerimize kadar girmesiyle birlikte, forum siteleri ve sonrasında GitHub gibi platformlar adeta bir hazine sandığına dönüştü. Stack Overflow’da saatlerce geçirdiğim zamanlar… Bir problemi çözmek için gece yarılarına kadar forum başında oturup, dünyanın öbür ucundaki bir geliştiricinin cevabını beklemek… Bazen cevabı bulduğumda sevinçten zıpladığım anlar!

Python’un kütüphane dünyası… İşte orası tam bir “sonsuz evren”di. PyPI (Python Package Index) adeta bir galaksi gibi, içinde binlerce “yıldız” barındırıyordu – her biri farklı bir problemi çözmeye adanmış kütüphaneler.

Hatırlıyorum, bir projem için veri görselleştirme yapmam gerekiyordu. Matplotlib kütüphanesini keşfettiğimde, sanki sihirli bir değnek bulmuş gibiydim. Birkaç satır kodla, karmaşık grafikleri, renk geçişlerini, 3D görselleştirmeleri yapabilmek inanılmazdı. Aşağıdaki kod parçasıyla bile etkileyici bir grafik oluşturabiliyordum:

 

Grafik Kodu, Python
import matplotlib.pyplot as plt
import numpy as np# Veri oluştur
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

# Grafiği çiz
plt.figure(figsize=(10, 6))
plt.plot(x, y, ‘r-‘, linewidth=2, label=’sin(x)’)
plt.title(‘Sinüs Dalgası’)
plt.xlabel(‘x’)
plt.ylabel(‘sin(x)’)
plt.grid(True)
plt.legend()
plt.savefig(‘sinus.png’)
plt.show()

İnsanların yazdıkları kodları, çözdükleri problemleri açıkça paylaşmaları… Bu, rekabetten çok işbirliğine dayalı, muazzam bir kültürdü. Gece 3’te bir hata ile boğuşurken, dünyanın öbür ucundaki birinin yazdığı bir blog yazısında çözümü bulmak… Bu deneyim, kodlamanın yalnız bir uğraş değil, global bir topluluk hareketi olduğunu gösteriyordu.

Bir web framework’ü (Django ya da Flask gibi) kullanarak birkaç saatte çalışan bir prototip site ortaya çıkarmak ya da NumPy ve Pandas ile devasa veri setlerini anlamlandırmaya çalışmak… Bazen şöyle düşünüyorum: Python olmasaydı, bugün veri bilimi bu kadar popüler olur muydu? TensorFlow ve PyTorch gibi kütüphaneler, yapay zeka devrimini hızlandıran araçlar haline geldi. Python olmasaydı, belki de yapay zeka bu kadar hızlı ilerlemezdi.

Çözülemeyen problemler üzerine saatlerce kafa yormak, o meşhur “bug” avına çıkmak, bazen kodu çözüp zafer naraları atmak, bazen hatayı bulup nasıl düzelteceğini bilememenin o sinir bozucu ama öğretici çaresizliği… Hepsi bu öğrenme sürecinin parçasıydı.

Bir keresinde, bir veri analizi projesinde günlerce süren bir hata ile boğuştum. Kod çalışıyor ama sonuçlar anlamsız geliyordu. Üç gün sonra fark ettim ki, veri setindeki tarihlerin formatı farklıydı – bazıları “gün/ay/yıl”, bazıları “ay/gün/yıl” formatındaydı! O kadar basit bir hata, beni günlerce uğraştırmıştı. Ama o deneyim, veri temizleme ve doğrulama konusunda bana çok şey öğretti.

 

Pygame ile Oyun Dünyasına Adım

Özellikle oyun geliştirme kütüphanesi Pygame ile tanışınca, eski günlerdeki o basit metin maceralarımın yerini ekranda hareket eden küçük karakterler aldı. Basit bir “pong” oyunu yazmak bile, fizik motorlarından olay döngülerine kadar birçok temel bilgisayar bilimi konseptini eğlenerek öğretmişti.

İlk Pygame projem, klasik “Snake” (yılan) oyunuydu. Ekranda hareket eden yeşil bir kare (yılanımız), kırmızı kareler (yemlerimiz) ve siyah bir arka plan… Kod açısından 200 satırdan az, ama öğrenme açısından paha biçilemez bir deneyimdi. Oyun döngüsü, çarpışma tespiti, skor sistemi, kullanıcı girdisi işleme – hepsi bu basit oyunda vardı.

Sonraki projemde biraz daha iddialı oldum: “Uzay Savunması” adını verdiğim, klasik Space Invaders benzeri bir oyun. Uzaylı gemileri yukarıdan aşağıya hareket ediyor, siz de altta bir gemiyi sağa sola hareket ettirip ateş ediyordunuz. Ses efektleri ekledim, patlama animasyonları, seviye sistemi… Her yeni özellik, yeni bir öğrenme fırsatıydı.

Pygame ile en büyük projemse, “Pixel Dünyası” adını verdiğim bir simülasyon oldu. Piksel tabanlı bir dünyada, farklı elementler (su, kum, ateş, buhar, vb.) fizik kurallarına göre etkileşime giriyordu. Suyun akması, kumun yığılması, ateşin yayılması… Basit kurallarla karmaşık davranışlar ortaya çıkıyordu. Bu projeyi arkadaşlarıma gösterdiğimde, gözlerindeki o hayranlık ifadesi hala aklımda. “Sen mi yaptın bunu gerçekten?” diye sormuşlardı. Evet, ben yapmıştım ve Python sayesinde yapmıştım.

Python’un Tıp Dünyasındaki Yeri ve Potansiyeli

Bu süreçte Python, toplulukların gücüyle logaritmik olarak büyümeye devam etti. Gelişen kütüphanelerle akla gelen, hatta gelmeyen her şey yapılabilir olmaya başladı. Özellikle görüntü işleme olayları çok ilgi çekiciydi. Akademik düzeyde görüntü işleme çalışanlar sükseli gelse de benim girdiğim yol hekimlikti, kader ağlarını örmüştü diyelim.

Tıp fakültesindeyken, dersler ve klinik rotasyonlar arasında bile Python’a zaman ayırmaya çalışıyordum. Patoloji laboratuvarında bir hocanın “Keşke şu mikroskop görüntülerindeki hücreleri otomatik sayabilseydik” sözü bana ilham vermişti. OpenCV kütüphanesini kullanarak basit bir hücre sayma programı yazdım. Program mükemmel değildi ama temel bir iş yapıyordu. Hocanın gözlerindeki o şaşkınlık ifadesi paha biçilemezdi: “Sen doktor mu olacaksın, mühendis mi?”

Ama Python’un o esnekliği burada da kendini gösterdi. Görüntü işleme kabiliyetleri, özellikle radyoloji alanında DICOM dosyalarını analiz etmekten, belki ileride yapay zeka destekli teşhis sistemlerine kadar birçok kapı araladı.

Uzmanlık eğitimim sırasında, MR görüntülerindeki tümörleri segmente eden bir algoritma üzerinde çalıştım. Scikit-image ve TensorFlow kullanarak, beyin tümörlerinin sınırlarını otomatik olarak belirleyen bir model geliştirdik. Model, deneyimli bir radyolog kadar iyi değildi ama yine de umut vericiydi. Belki de gelecekte, yapay zeka algoritmaları radyologlarla birlikte çalışacak, onların iş yükünü azaltıp, teşhis doğruluğunu artıracak.

Bunları başka bir zaman ayrıntılı şekilde yazacağım, zira kodun insan hayatına dokunduğu o anlar bambaşka bir motivasyon kaynağı. Bir satır kodun, bir hastanın hayatını kurtarabilme potansiyeli olduğunu düşünmek… Bu, programlamanın sadece bir hobi veya iş değil, aynı zamanda bir insanlık hizmeti olabileceğini gösteriyor.

Python’un Geleceği ve Sonsuz Potansiyeli

Python’un geleceği için düşüncemi merak ediyorsanız eğer, o konuda benim de kafa yormadığım gün yok! Şimdi şöyle bir düşünün bakalım: Python sürekli gelişiyor, değişiyor, yeni kütüphaneler, framework’ler ekleniyor. Tıpkı dur durak bilmeyen, sürekli kendini yenileyen bir maraton koşucusu gibi.

Python 2’den Python 3’e geçiş süreci bile başlı başına bir maceraydı. O geçiş döneminde yaşadığımız uyumluluk sorunları, “bu kütüphane Python 3 ile çalışır mı acaba?” endişeleri… Şimdi geriye dönüp baktığımda, o geçiş sürecinin bile Python’un evrimindeki önemli bir adım olduğunu görüyorum.

Üstelik Python, sadece basit programlar veya web siteleri yazmak için değil, devasa, karmaşık projeler geliştirmek için de ideal. Spotify, Instagram, Dropbox gibi servisler, Python’un gücüne güveniyor. Netflix, içerik önerilerini Python ile optimize ediyor. Google, arama algoritmasının bir kısmında Python kullanıyor.

Veri bilimi, yapay zeka, makine öğrenmesi… Bunlar artık Python denince akla ilk gelenler. Anaconda dağıtımı, Jupyter Notebook, TensorFlow, PyTorch, Scikit-learn… Bu araçlar, Python’u veri bilimi dünyasının vazgeçilmez bir unsuru haline getirdi.

Geçen hafta bir yapay zeka konferansındaydım. Konuşmacılardan biri, “Python olmasa, bu yapay zeka devrimi bu kadar hızlı gerçekleşemezdi” dedi. Salondaki herkes başını onaylayarak salladı. Python’un o erişilebilir, demokratik yapısı, yapay zeka araçlarının geniş kitlelere yayılmasını sağladı.

Hatta NASA bile uzay araştırmalarında, Mars’taki keşif araçlarının kontrolünde Python kullanıyor! Curiosity ve Perseverance’ın Mars yüzeyindeki hareketlerinin bir kısmı, Python kodlarıyla programlanıyor. Belki bir gün senin yazdığın bir Python kodu, Jüpiter’in yörüngesindeki bir sondayı kontrol edecek, kim bilir?

Yakın zamanda okuduğum bir makalede, James Webb Uzay Teleskobu’nun veri analizi sistemlerinin bir kısmında Python kullanıldığından bahsediliyordu. Evrenin en uzak köşelerinden gelen ışığı analiz eden kodlar, belki de senin bir gün yazacağın kodlara benzeyecek.

Python’un geleceğinde sadece Mars mı var? Benim tahminlerim şöyle: Python zaten popüler bir dil ama bence daha da yaygınlaşacak ve derinleşecek. Özellikle yapay zeka ve veri bilimi alanındaki patlama, Python’un ekosistemini daha da vazgeçilmez kılacak. Ama bununla sınırlı kalmayacak.

Şu anda web geliştirme, masaüstü uygulamaları, bilimsel hesaplama, sistem otomasyonu, evet, hatta video oyunları geliştirmede bile (belki AAA oyun motorlarının script dili olarak değil ama bağımsız yapımlar ve prototipleme için harika) kullanılıyor.

Gelecekte ise, daha da farklı, belki bugün hayal bile edemediğimiz alanlarda karşımıza çıkacak. Örneğin, nesnelerin interneti (IoT) ile evimizdeki her cihazın Python ile konuşması, robotik kolların hassas görevleri Python script’leri ile yapması, biyoteknolojide genetik dizilim analizinden ilaç geliştirmeye kadar kritik roller üstlenmesi, hatta belki de kuantum bilişimin o akıl almaz dünyasına açılan bir kapı olması…

Kuantum bilişim konusu özellikle heyecan verici. IBM ve Google gibi şirketler, kuantum bilgisayarları için Python tabanlı kütüphaneler geliştiriyor. Qiskit ve Cirq gibi kütüphaneler, kuantum algoritmaları yazmayı klasik programlamaya benzer hale getiriyor. Belki de gelecekte, kuantum bilgisayarlar yaygınlaştığında, ilk kuantum programlarımızı Python ile yazacağız.

Geliştiriciler ve o muazzam topluluk, sürekli olarak dili geliştirmek, optimize etmek ve yeni yetenekler eklemek için çalışıyor. Bu da Python’un gelecekte daha da güçlü, daha esnek ve daha akıllı bir dil olacağı anlamına geliyor. Belki de gelecekte, karmaşık algoritmaları veya veri yapılarını düşünürken, Python’un bize sunduğu soyutlamalar sayesinde işin özüne daha rahat odaklanabileceğiz.

Son Sözler: Yaratmanın Devrimci Gücü

Kısacası, Python’un geleceği parlak, ufku geniş, potansiyeli sınırsız! Bu “sonsuz Python evrenin” bir parçası olmak, o evrene kendi küçük yıldız tozumu eklemek istiyordum ve umarım güzel işler yaparak olmaya devam ederim!

Python’la yolculuğumda öğrendiğim en önemli şey şu: Kod yazmak, sadece bir bilgisayara talimat vermek değil, aynı zamanda bir şeyler yaratmanın, dünyayı değiştirmenin, problemleri çözmenin bir yolu. Frontpage ile başlayan o basit web sayfası tasarımından, yapay zeka modelleri geliştirmeye kadar uzanan yolculuğumda, her adımda yeni bir şeyler öğrendim, her projede biraz daha büyüdüm.

Siz de Python öğrenmek istiyorsanız, şunu bilin: Bu yolculuk sadece bir programlama dili öğrenmekten ibaret değil. Aynı zamanda problem çözme becerilerinizi geliştirmek, analitik düşünme yeteneğinizi artırmak, ve en önemlisi, yaratıcılığınızı kodlara dökmek için bir fırsat.

Kim bilir, belki bir gün o hayalini kurduğum Python kodunu yazarım ve gerçekten de bir şeyler değişir… Belki o kod, küçük bir çocuğun kodlamaya ilk adımını atmasını sağlar, belki karmaşık bir bilimsel problemi çözmeye yardım eder, belki de sadece birilerine keyif veren küçük bir oyun olur. Ama ne olursa olsun, o yaratma eyleminin kendisi bir devrimdir.

İşte o an geldiğinde, belki de fısıldarım:

“Merhaba, Yeni Dünya!”

Not: Bu yazı, Dr. Emre Gecer’in Python ile olan serüvenini, kişisel deneyimlerini ve düşüncelerini yansıtmaktadır. Python hakkında daha teknik bilgiler ve kaynaklar için resmi Python dokümantasyonunu (python.org) inceleyebilirsiniz.

İçeriklerden Haberdar Olun!

Yeni eklenen içeriklerin mail adresinize gelmesini ister misiniz?