Python Nedir? Sıfırdan Python Öğrenme Rehberi
Python; sade söz dizimi, geniş ekosistemi ve hızlı geliştirme döngüsüyle hem yeni başlayanlar hem de üretim yapan ekipler için güçlü bir dildir. Bu rehberde Python’ın çalışma mantığını, doğru öğrenme sırasını ve “temelden projeye” giden yolu; ezber yerine mühendis zihniyetiyle anlatıyorum. Eğer hedefin python kodlama öğrenme sürecini rastgele içeriklerle değil, doğru bir iskeletle ilerletmekse bu yazı bir yol haritası gibi işini görecek.
İçindekiler
- Python nedir?
- Interpreter mantığı: Python nasıl çalışır?
- Değişken “kutu” değil “etiket”: referans ve bellek
- If/elif/else, mantıksal operatörler ve indentation disiplini
- For/while, iterable mantığı ve sonsuz döngü tuzakları
- Listeler, slicing, mutability ve shallow/deep copy
- Dict/hash, JSON, set/tuple: doğru yerde doğru yapı
- Fonksiyonel parçalama, scope ve temiz kod
- Try/except, dosya işlemleri ve logging
- OOP: class, __init__, encapsulation/inheritance
- Berk Akademi yaklaşımı bu konuları nasıl oturtur?
- Sık sorulan sorular
Python nedir?
Python, geliştiricinin niyetini az kodla anlatmasını hedefleyen yüksek seviyeli bir programlama dilidir. “Okunabilirlik” ve “hızlı geri bildirim” Python’ın iki temel avantajıdır. Bu yüzden; otomasyon, veri işleme, web geliştirme ve test otomasyonu gibi alanlarda sık tercih edilir.
Interpreter mantığı: Python nasıl çalışır?
Python, çoğu senaryoda “interpreter” (yorumlayıcı) yaklaşımıyla anılır: kodu çalıştırırken hızlı geri bildirim verir, dene–gör–düzelt döngüsü hızlıdır. Buradaki kritik nokta şudur:
- Eskiden öğrenme genelde “kod yaz ve çalıştır” düzeyinde kalırdı.
- Şimdi ise hızın yanına disiplin koymak gerekiyor: küçük fonksiyonlar, test edilebilir parçalar, log bırakma ve net hata yönetimi.
Yani Python’ın hızlı olması, “düzensiz” kod yazmayı haklı çıkarmaz; tam tersine doğru tekniklerle çok temiz ilerlenebilir.
Değişken “kutu” değil “etiket”: referans ve bellek
Yeni başlayanların en kritik kırılımı burada: Python’da değişkeni “içinde değer duran kutu” gibi düşünmek hataya sürükler. Daha doğru model: değişken, bellek üzerindeki nesneyi işaret eden bir etikettir. Bu bakış açısı, özellikle listeler gibi değiştirilebilir (mutable) yapılarda “neden iki değişken birlikte değişti?” sorusunu netleştirir.
Eskiden bu konu “detay” diye geçiştirilirdi. Şimdi ise sürdürülebilir kod yazmak için referans davranışını erken aşamada kavramak şart: kopyalama, paylaşım, yan etkiler (side effect) ve veri güvenliği doğrudan buna bağlıdır.
If/elif/else, mantıksal operatörler ve indentation disiplini
Python’da blok yapısı süslü parantezle değil girinti (indentation) ile kurulur. Bu, yeni başlayanlar için ilk günlerde “hata sebebi”, doğru öğrenildiğinde ise büyük bir avantajdır: kodun yapısı gözüyle okunur.
- Kuralların doğru sıralanması (öncelik sırası)
- Mantıksal operatörlerle (and/or/not) okunabilir koşullar kurmak
- “Kural bazlı sistem” mantığı: doğrulama, yetkilendirme, form kontrolü
For/while, iterable mantığı ve sonsuz döngü tuzakları
Döngüler, bilgisayarın gücünü “tekrar eden işler”e yönlendirdiğiniz yerdir. Python’da for döngüsü çoğunlukla “iterable” (üzerinde gezilebilen yapı) mantığıyla okunur: liste, string, range, dict…
While ise koşul kontrolüyle ilerler ve en büyük tuzak burada oluşur: koşulu güncellemezseniz sonsuz döngü. Modern yaklaşım; while’ı net bir bitiş koşuluyla, for’u ise veri üzerinde güvenli gezinmek için kullanmaktır.
Listeler, slicing, mutability ve shallow/deep copy
Listeler Python’ın “işi büyüten” veri yapısıdır. Ancak listeler mutable olduğu için referans davranışı daha görünür hale gelir. Bu yüzden üç başlık kritik:
- Slicing: veri alt kümeleriyle çalışmak (okunur ve pratik)
- Mutability: aynı listeyi paylaşınca yan etkiler oluşması
- Shallow vs Deep Copy: kopyaladığınızı sandığınız verinin aslında paylaşılmaması gereken iç referansları taşıması
Eskiden “copy yap geç” gibi yüzeysel anlatılırdı. Şimdi veri güvenliği ve hata önleme açısından bu farklar erken aşamada öğretilmeli; çünkü gerçek projede en pahalı bug’lar genelde “kopya sandığın şey kopya değilmiş” sınıfındadır.
Dict/hash, JSON, set/tuple: doğru yerde doğru yapı
Modern uygulamalar “key-value” düşünür: kullanıcı profili, ayarlar, ürün özellikleri, API payload’ları… Dict arka planda hash mantığıyla çalıştığı için hızlı erişim sağlar. Ayrıca:
- JSON: API iletişiminin ortak dili; okuma/yazma pratiği şart
- Set: tekrarsız veri ve üyelik kontrolü için ideal
- Tuple: sabit, değişmesini istemediğin yapıların güvenli temsili
Fonksiyonel parçalama, scope ve temiz kod
Python’ı hızlı yapan şey, aynı zamanda spagetti koda açık hale de getirir. Bu yüzden “fonksiyonel parçalama” (böl–parçala–yönet) yaklaşımı olmazsa olmazdır:
- Tek sorumluluklu fonksiyonlar
- Scope yönetimi (global/local): veri nerede yaşar, nerede değişir?
- DRY: tekrar eden kodu tek yere toplamak
- İsimlendirme standartları: kodu “kendini anlatan” hale getirmek
Try/except, dosya işlemleri ve logging
Kusursuz kod yoktur; yönetilen hata vardır. Try/except; uygulamanın çökmesini engeller ama asıl değer “iz bırakmak”tır. Dosya işlemleri (read/write) ve logging, gerçek projelerde hata ayıklamayı kat kat kolaylaştırır. Modern yaklaşım: hatayı yutmak değil; doğru seviyede loglayıp kontrollü şekilde sürdürmektir.
OOP: class, __init__, encapsulation/inheritance
Python her ne kadar “script dili” gibi başlansa da proje büyüdükçe modelleme ihtiyacı doğar. OOP; gerçek dünyayı koda taşır:
- Class ve object farkı
- __init__ ile doğru kurulum
- Method/attribute ayrımı
- Encapsulation ile veri güvenliği
- Inheritance ile mimariyi büyütmek (dozunda ve doğru yerde)
Berk Akademi yaklaşımı bu konuları nasıl oturtur?
Berk Akademi’de yaklaşım “konu anlatıp geçmek” değil; her başlığı bir problem ihtiyacına bağlayarak öğretmektir. Yani önce problem doğar (ör. veri kopyalama hatası), sonra doğru araç devreye girer (shallow/deep copy). Bu sayede python kodlama öğrenme süreci; ezberden çıkar, refleks seviyesine taşınır.
Sık sorulan sorular
Python öğrenmeye nereden başlamalıyım?
Interpreter mantığı + değişken/referans + koşullar/döngüler üçlüsü temel iskelettir. Sonra veri yapıları, fonksiyonel parçalama ve hata yönetimi gelir. OOP ve web (Django) ise ancak bu temel oturduğunda “doğru zamanda” verim verir.
Ne kadar sürede iyi seviyeye gelirim?
Düzenli pratikle 6–10 haftada temel uygulamalar çıkarılabilir. Üretime yakın seviye ise; proje disiplini, temiz kod alışkanlığı ve hata yönetimi/refactor refleksiyle 3–6 aya yayılır.
Bu rehber kimler için?
Sıfırdan başlayıp doğru temeli atmak isteyenler, kodu büyütürken “neden bozuldu?” sorusunu azaltmak isteyenler ve python kodlama öğrenme sürecini sistemli hale getirmek isteyenler için.