Python Programlama
Python'un nereden geldiği, neden bu kadar sevildiği ve 2026'da hâlâ neden 'gelecek vaat eden' bir dil olduğu üzerine — sadece tanımla geçiştirilmemiş, deneyimden anlatılmış samimi bir giriş.
Table of Contents
Modül 1: Giriş ve Kurulum
- 1
Python Nedir, Neden Bu Kadar Popüler?
Python'un nereden geldiği, neden bu kadar sevildiği ve 2026'da hâlâ neden 'gelecek vaat eden' bir dil olduğu üzerine — sadece tanımla geçiştirilmemiş, deneyimden anlatılmış samimi bir giriş.
- 2
Python Sürümlerinin Tarihi: 2'den 3.14'e, AI Winter'lardan 'No-GIL' Devrimine
Python 2 ile Python 3 arasındaki büyük ayrılık nasıl oldu, neden 12 yıl sürdü, ve modern Python sürümlerinde gelen yenilikler (3.10 match, 3.11 hız, 3.12 type system, 3.13 no-GIL) sana ne kazandırıyor — sürümleri sadece numarayla değil ruhuyla anlatıyoruz.
- 3
Python Implementasyonları: CPython, PyPy, MicroPython, Jython, IronPython, Pyodide
'Python tek bir program' diye düşünüyorsan, bu ders kafanı yumuşak bir tokat gibi açacak. CPython resmî implementasyon ama tek değil — alternatiflerin nerede ve neden işe yaradığını anlatıyoruz.
- 4
Pythonic Felsefesi: Zen of Python ve 'Doğru Yol' Mantığı
`import this` yazınca karşına çıkan o 19 satırlık şiir gerçekte ne anlatıyor? Tim Peters'ın 1999'da yazdığı bu şifreli mesajlar, Python'un her tasarım kararının arkasında yatıyor. 'Pythonic kod' tanımı ile başlayıp her satırı tek tek açıyoruz.
- 5
Windows'a Python Kurulumu: python.org, py launcher ve PATH'in Mistik Sırrı
Windows üzerinde Python kurmak teorik olarak 3 tıklama ama pratikte 'PATH bulamıyor', 'Microsoft Store kurma yapma', 'py mi python mu yazayım' gibi 5-6 tuzak var. Hepsini tek tek geziyoruz, sen 30 dakika sonra cool kid olarak çıkıyorsun.
- 6
macOS'a Python Kurulumu: System Python'a Neden Dokunmuyoruz, Homebrew ve Modern Yollar
macOS'ta zaten 'python3' var ama Apple onu sistem işleri için tutuyor — sen ona dokunma. Bu derste Homebrew, asdf, pyenv ve resmi installer arasındaki tercihi yapmayı, sürüm yönetiminin gizli inceliklerini öğreneceksin.
- 7
Linux'a Python Kurulumu: Ubuntu, Fedora, Arch, Alpine ve Kaynaktan Derleme
Linux'ta Python kurmak hem en kolay hem en kafa karıştırıcı yol. Sistem zaten bir python3 ile geliyor ama bu seninki değil. Bu derste Ubuntu/Debian, Fedora, Arch ve Alpine için adım adım, sonra kaynaktan derlemeyi (./configure --enable-optimizations) öğreniyoruz. VPS'e deploy senaryosuna kadar uçuyoruz.
- 8
pyenv ile Çoklu Python Sürümü Yönetimi: Sürümler Arası 'Anahtar' Olma Sanatı
Bir projende 3.10, başka projende 3.13 lazım. CI'da 3.11 test ediyorsun. Production'da 3.12. Bunların hepsini tek Linux/macOS makinende sürdürmek pyenv ile saniyeler meselesi. Bu ders pyenv'in tüm komutlarını, .python-version dosyasını, virtualenv plugin'ini ve gerçek senaryolarını işliyor.
- 9
Python REPL'i Etkili Kullanma: Keşif, Prototip ve Hata Ayıklamanın Sessiz Sanatı
REPL — Read-Eval-Print Loop. Python öğrenirken bunu 'hesap makinesi' gibi görüyorsun. Profesyonel olduğunda 'ikinci elin' gibi oluyor. Bu derste: tab completion, history, _ operatörü, help/dir/type, multi-line, pretty print, PYTHONSTARTUP, alternatifler (bpython, ptpython), ve breakpoint() ile debugger entegrasyonu.
- 10
IPython: Standart REPL'in 'Süper Güçler' Versiyonu
IPython sadece daha güzel renkli bir REPL değil. %timeit ile mikrosaniye benchmark, ?? ile kaynak kodu görme, !ls ile shell escape, %save ile dosyaya yazma — bütün veri bilimi/AI dünyası bu komutlar üzerinde dönüyor. Bu ders sana 'günlük 50 kez kullanacağın' magic'leri tek tek öğretir.
- 11
Jupyter Notebook ve JupyterLab: Veri Bilimi Dünyasının Tuvalini Tanımak
AI ve veri bilimi öğrenmek istiyorsan Jupyter'i bilmiyor olmak imkansız. Bu ders sıfırdan başlatma, hücre tipleri, magic commands, görselleştirme entegrasyonu, paylaşma yolları (Colab/Kaggle/Binder), git ile sürüm kontrolü problemleri ve production'a Jupyter taşımanın neden kötü fikir olduğunu konuşuyor.
- 12
VS Code'da Modern Python Geliştirme: Sıfırdan Production-Grade IDE Setup
VS Code 2024'ün en yaygın Python IDE'si. Bu derste sıfırdan başlayıp Python extension, Pylance, debugger, Jupyter, settings.json yapılandırma, multi-root workspace, remote development (WSL/SSH/Container), ve günlük üretkenliği 2x'leyen klavye-shortcut'ları gezeceğiz.
- 13
PyCharm: JetBrains Dünyasının Python IDE'si — Community ve Professional Karşılaştırması
VS Code modern standart olsa da PyCharm hâlâ en güçlü Python IDE'si — özellikle büyük kod tabanlarında. Community ücretsiz vs Professional yıllık ~$249. Hangi senaryoda hangisi mantıklı? Bu derste IDE'nin tüm gücünü, refactoring araçlarını, debugger excellence'ını, ve VS Code ile pragmatik karşılaştırmayı inceliyoruz.
- 14
İlk Python Script'in: hello.py'den python -m'e Komut Satırının İncelikleri
İlk gerçek .py dosyanı yazıyorsun. Modül 1'in capstone'u: shebang, encoding declaration, if __name__ == '__main__', python -m flag'i, sys.argv, exit code'lar, .pyc cache, ve her gün karşılaşacağın komut satırı pratikleri. 4 hands-on script ile bitiyoruz.
Modül 2: Veri Tipleri ve Operatörler
- 1
Değişkenler: Python'da 'Etiket vs Kutu' Felsefesi ve Assignment'ın İçsel Gerçeği
Diğer dillerde değişken bir 'kutu'dur — değer kutuya konur. Python'da değişken bir 'etiket'tir — nesneye yapıştırılır. Bu fark gibi görünmeyebilir ama Python'un %30'unun davranışını açıklıyor: mutable default tuzağı, list aliasing, fonksiyon parametre semantics, garbage collection. Bu derste 'a = 5 yazınca aslında ne olur' sorusunun derinlemesine cevabını alıyoruz.
- 2
PEP 8 İsimlendirme: Profesyonel Python Kodunun Görsel Disiplini
Bir Python kodu açtığında 30 saniye içinde 'profesyonel mi yoksa amatör mü' anlayabilirsin — isimlendirme. snake_case, PascalCase, UPPER_SNAKE, _private, __mangling. Bu derste her tipin nerede kullanıldığını, neden bu konvansiyon olduğunu, ruff ile otomatize etmeyi ve Türkçe değişken adı tartışmasını işliyoruz.
- 3
Python'un int Tipi: Sınırsız Tam Sayı ve Diğer Dillerde Olmayan Süper Güç
Java'da int 2.1 milyarda taşar, C'de tanımsız davranış. Python'da int sınırsız — 1000! veya RSA için 4096-bit sayı, hepsi doğal yazılır. Bu derste: integer literals (binary/hex/octal), underscore separator, bit operasyonları, small int caching, performans karakteristikleri, ve 'neden Python kriptoda Java'yı yener'.
- 4
float — IEEE 754, '0.1 + 0.2' Mistik Hatası ve Precision'ın Karanlık Sanatı
0.1 + 0.2 == 0.3 yazınca Python False döner. Bu bug değil — IEEE 754 standardının 1985'ten beri yaşayan gerçeği. Bu derste float'un içsel yapısını (sign+exponent+mantissa), neden bazı sayıların binary'de 'sonsuz tekrar ettiğini', math.isclose'un nasıl kullanıldığını, NaN/inf davranışlarını, AI/ML'de neden float32 baskın olduğunu ve finansal hesapta float'tan kaçınmanın hayati önemini öğreniyoruz.
- 5
complex Sayılar: Python'da '3 + 4j' Built-in — Sinyal İşlemeden Quantum'a Köprü
Java/C# karmaşık sayı için kütüphane gerektirir; Python `j` syntax'iyle dilin parçası yapmış. Bu ders: complex'in matematiksel altyapısı, polar/kartezyen dönüşüm, cmath modülünün gücü, 2D rotation matrisi yerine complex çarpma kısayolu, sinyal işleme + Mandelbrot fraktalı + AC devre analizi gibi gerçek uygulamalar.
- 6
Decimal Modülü: Finansal Hesabın 'Tam Hassas' Aracı ve KDV Faciasının Çözümü
Float'la para hesaplamak — yıllar içinde bankaları sallayan klasik bug kaynağı. Python'un `decimal` modülü bu sorunu çözer: tam ondalık precision, kontrollü yuvarlama (ROUND_HALF_UP, ROUND_HALF_EVEN), context yönetimi. Bu derste: TR KDV hesabı, döviz çevirici, e-ticaret sepeti, PostgreSQL NUMERIC entegrasyonu — gerçek production pattern'leri.
- 7
fractions Modülü: Tam Hassas Rasyonel Sayılar — 1/3 + 1/6 = 0.5 Kanıtla
Float 0.1'i tam saklayamaz. Decimal saklar ama 1/3'ü değil. Fraction modülü bütün rasyonel sayıları **kesirli** saklayarak tam matematik yapıyor. Bu derste: müzik teorisinde armoni oranları, mutfakta tarif ölçeklendirme, geometrik hesap, bilim simülasyonlarında precision kurtarma — niş ama bilinmesi değerli bir araç.
- 8
bool ve None: Truthiness'in Felsefesi ve Sentinel Değer Sanatı
Python'da `True` aslında `int`'in alt sınıfı (`True + 1 == 2`!). Her tip 'doğru/yanlış' bağlamında değerlendirilebilir — buna 'truthiness' denir. None ise 'değer yok' anlamına gelen tek-elemanlı bir sentinel. Bu derste: bool gerçek doğası, falsy değerler tablosu, `is None` vs `== None`, Optional type hint, default arg sentinel pattern, ve günlük kodda en sık karşına çıkan 'küçük' detayların derinliği.
- 9
Aritmetik Operatörler ve Operator Overloading: Vector(1,2) + Vector(3,4) Mucizesi
+ ve - tek satırda Vector toplayabiliyor mu? Money * 1.18 ile KDV hesaplayabiliyor mu? Python'un magic method'ları (__add__, __sub__, __mul__, __radd__) sayesinde evet. Bu derste: 7 aritmetik operatör derinlemesine, augmented assignment, NotImplemented sentinel'ı, sıralı tip dönüşümü, ve gerçek Vector + Money sınıfları.
- 10
Karşılaştırma Operatörleri ve Sortable Class: __eq__, __lt__ ve total_ordering Sırrı
< > == != <= >= görünüşte basit ama Python'da chained comparison (`0 < x < 10`), her tip için custom karşılaştırma, ve `@total_ordering` decorator gibi süslü özellikler var. Bu derste: 6 karşılaştırma operatörü derinlemesine, custom sortable class yapımı, __hash__ ve __eq__ kontratı, list/tuple/string karşılaştırma kuralları, ve sıralama için key fonksiyon pattern'leri.
- 11
Mantıksal Operatörler: and, or, not — Short-circuit'ün Pythonic Sanatı
and, or, not görünüşte ilkokul mantığı ama Python'un short-circuit semantiği ile zarif validator'lar, default chain'leri, lazy evaluation pattern'leri yazabiliyorsun. Bu derste: De Morgan kanunları kod ile, any() ve all() built-in'leri, conditional expression, ve gerçek dünya validator + permission check örnekleri.
- 12
Bit-level Operatörler: Permission Flags, RGB Manipülasyon ve Düşük-Seviye Hızın Dünyası
AI yapacağım, bit-level lazım mı? Doğrudan değil — ama Linux dosya izinleri (chmod 755), RGB color hex (0xFF8000), network protokolleri, IntFlag enum, kompakt veri yapıları — hepsi bit operatörü kullanıyor. Bu derste: 6 bit operatörü, bit manipulation pattern'leri, IntFlag modern alternatif, ve günlük programcılıkta nerelerde kullanılacağı.
- 13
Operator Precedence ve Assosiyatiflik: Parantezsiz Doğru Kod Yazma Sanatı
'a or b and c' nasıl evaluate edilir? '5 + 3 * 2' neden 11 değil 16? '~5 << 2' nedir? Python'un 18 seviyeli precedence tablosu ve sol/sağ assosiyatiflik kuralları. Bu derste: tam precedence tablosu, klasik tuzaklar, IDE warning'lerinin neden olduğu davranışları, ve 'parantez ne zaman gerek' net kararı.
- 14
Type Conversion: int, float, str, bool, list, dict, set, bytes — Cast'in 8 Yüzü
Python'da bir değeri başka tipe dönüştürmek genelde tek satır: int('42'), float(3), str(123). Ama detaylar var: __int__/__float__/__str__ magic methods, hangi dönüşüm hata atar, NumPy/pandas dtype'ları, datetime parsing, JSON serialization. Bu derste 'cast'ın 8 yaygın senaryosu, custom class'lar için cast desteği, ve Pydantic gibi modern data validation kütüphanelerinin nasıl çalıştığı.
- 15
id(), is, == — Identity vs Equality: Python Bellek Modelinin Final Sınavı
Modül 2'nin capstone'u. `is` ve `==` arasındaki fark — yıllar içinde gördüğüm Python interview sorularının %50'si bunun üzerinde. Bu derste: id() fonksiyonu, identity vs equality kontratı, small int caching ve string interning'in derinlemesine implementasyon detayları, weakref kavramı, ve ne zaman is — ne zaman == kararı.