flowchart LR
A["🐍 Neden Python?"] --> B["Python 3 İndir"]
B --> C["PyCharm IDE"]
C --> D["İlk: print('Hello World')"]
D --> E["ASCII Şekil Çizimi"]
E --> F["💡 Sıralı Yürütme"]
F --> G["➡️ Forward Pass habercisi"]
style A fill:#e3f2fd,stroke:#3776ab,stroke-width:2px
style F fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style G fill:#fce4ec,stroke:#c2185b,stroke-width:3px
2 Kurulum ve Geliştirme Ortamı
Python 3 + PyCharm + Hello World — ML yolculuğunun başlangıç noktası
- Mosh’un videosu: Python for Beginners — Chapters 1-4 (≈15 dk)
- Bölüm aralığı: 0:00 — 15:14 (Mosh’un kursunun açılış dört chapter’ı)
- Kaynaklar: python.org/downloads · PyCharm Community
- Okuma süresi: ≈25 dk
2.1 Bu Derste Ne Var?
Programlamaya sıfırdan başlıyorsan, ilk yarım saatin büyük kısmı kodla değil ortam kurmakla geçer — ve bu, sandığından önemlidir. Yanlış sürüm Python, karışık bir IDE, bozuk bir PATH; bunlar saatlerini yer. Bu derste Mosh’la birlikte işi doğru kurup hemen çalışan bir ilk programa ulaşacağız.
Dersin dört parçası:
- Neden Python? — Mosh’un girişi ve dilin “öğrenmesi neden bu kadar kolay” iddiası.
- Python 3’ü kurmak. — Resmi indirme, Python 2 / Python 3 ayrımı, neden Python 3.
- PyCharm Community Edition. — IDE nedir, neden gerekli, kurulum.
- İlk program. —
print("Hello World")→ ASCII üçgen → sıralı yürütme kavramı.
Dersin sonunda Python 3 kurulu, PyCharm açık, ilk iki programın çalışmış olacak. Daha önemlisi: Python’un küçük talimatları sırayla çalıştırdığını sezgisel olarak anlamış olacaksın — bu sezgi, sonraki tüm derslerin (değişkenler, döngüler, fonksiyonlar) zeminidir.
- Python = ML’in lingua franca’sı. PyTorch, TensorFlow, scikit-learn, NumPy, pandas, JAX, Hugging Face transformers — hepsi Python. Bir ML mühendisi günde 8 saat Python yazar. Bu kurs onu ana dil yapma kursudur.
print()= ML’in en çok kullanılan debug aracı. PyTorch eğitim döngüsündeprint(x.shape),print(loss.item()),print(grad.norm())günde yüzlerce kez çağrılır. Mosh “merhaba dünyayı bas” derken, gelecekteki tensor-shape debugging’inin temelini atıyor.- Sıralı yürütme = forward pass’in habercisi. Python kodu yukarıdan aşağı satır satır çalışır — bir sinir ağının forward pass’iyle aynı yapı.
x → W₁x+b₁ → ReLU → W₂... → çıktızinciri, Mosh’un “talimatların sırası çok önemlidir” cümlesinin matematiği. - IDE seçimi = üretkenliğin alt yapısı. Mosh PyCharm gösterir — gerçek dünyada ML topluluk üç IDE’ye bölünmüştür: VS Code + Python/Jupyter extension (en yaygın), PyCharm Professional (ağır refaktor), Cursor / Claude Code (AI-destekli). Hepsi açık. Mosh’un PyCharm Community seçimi yanlış değil — başlangıç için mantıklı.
- Python 3 = standart. Mosh haklı: Python 2 resmen 2020’de öldü. Hiçbir modern ML kütüphanesi Python 2 desteklemez.
- Builder pisti. Mosh kursun sonunda
pip install ...görecek (Ders 11). O zamanvenv,conda,uv, Jupyter notebook gibi modern ML iş akışları da kapıyı açacak.
2.2 Neden Python? — Mosh’un İlk Sözü
Mosh kursa doğrudan vaatle başlıyor:
“Bu kursta size programlamaya başlamak için bilmeniz gereken her şeyi öğreteceğim. piton.” — Mosh (Türkçe dublaj), 0:00
Türkçe dublajdaki “piton” kelimesi makine çevirisinden gelen bir tuhaflık — Mosh “Python” diyor. Öne sürdüğü dört iddia var:
- Python en popüler programlama dillerinden biri. 2026 itibarıyla GitHub’da en aktif birinci-iki dilden biri (JavaScript ile rotasyon halinde). Stack Overflow’da en çok sorulan dil. TIOBE indeksinde uzun süredir zirvede.
- İş piyasasında en aranan dillerden. Veri bilimi, ML/AI mühendisliği, backend, otomasyon — çoğu iş ilanında Python istenir.
- Güçlü ama kolay. Mosh “cerrah dil kullanımı kolay” diyor (dublaj tuhaf, kastettiği: succinct — öz, kısa).
“temelde sadece python içinde ne yapmak istediğinizi yazmanız yeterli değil mi?” — Mosh (Türkçe dublaj), 0:41
Java’da “Hello World” basıp çalıştırmak için:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}Python’da:
print("Hello World")Hepsi bu.
- Öğrenme eğrisi düşük.
“İlk programınızı saniyeler içinde yazmaya başlayabilirsiniz.” — Mosh (Türkçe dublaj), 0:50
2.2.1 Builder Notu — ML Eki
ML işi yapmak isteyen biri için Python’ın cazibesi sadece “kolay olması” değil, kütüphane evreni. Mosh bunu Ders 11’de açacak (pip), ama bilmen gereken: scikit-learn, NumPy, pandas, PyTorch, transformers, langchain, FastAPI — hepsi pip install ile geliyor, hepsi Python’la yazılmış / sarmalanmış. Bir dakikanı şu cümleyi içsel olarak öğrenmeye ver: Python’u öğrenmek = ML ekosisteminin bilet kasasına girmek.
2.3 Python 3’ü Kurmak
Mosh’un ilk pratik adımı: Python interpreter’ını bilgisayara yükle.
2.3.1 İndirme Sayfası
python.org/downloads — resmi indirme noktası. Hiçbir üçüncü taraf siteden indirme.
2.3.2 Python 2 vs Python 3
Mosh tarihsel bir ayrımı açıklıyor:
“piton iki Pitonun eski bir versiyonudur […] aktif olarak korunuyor ya da desteklenmiyor.” — Mosh (Türkçe dublaj), 2:57
“piton üç, python’un geleceği gibidir, aktif olarak korunan ve desteklenen bir sürümdür.” — Mosh (Türkçe dublaj), 3:07
Tarihsel arkaplan: Python 2.7 son sürümüydü; Python Software Foundation 1 Ocak 2020’de Python 2 desteğini resmen kesti. Mosh’un videosu Python 3.6 döneminde çekilmiş (2018-2019); 2026 itibarıyla Python 3.12-3.13 güncel sürümler. İyi haber: Python 3.6 ile yazılan kod, Python 3.13’te hiçbir değişiklik gerektirmeden çalışır.
Tek pratik karar: En son Python 3’ü indir.
2.3.3 Platform-Spesifik Kurulum
Windows’ta .exe yükleyiciyi çalıştırırken ilk ekranda “Add Python 3.x to PATH” kutusunu işaretle. Atlarsan komut satırında python komutu çalışmaz — saatler yer.
| Platform | Komut |
|---|---|
| macOS | .pkg dosyası çift tıkla → “Continue” → “Install” |
| Windows | .exe çalıştır → ☑️ Add to PATH → Install |
| Linux | sudo apt install python3 (Debian/Ubuntu) veya sudo dnf install python3 (Fedora) |
Yükleme bittiğinde terminal açıp:
python3 --versionÇıktı Python 3.13.x (veya benzer) olmalı. Bu gördüğünde, Python interpreter’ı bilgisayarında çalışıyor.
2.3.4 Builder Notu — “Gerçek” ML Setup
Gerçek ML setup’ı şudur: sadece sistem Python’ı yetmez. Profesyonel olarak çalışan herkes proje başına izole Python ortamı kullanır. Seçenekler:
venv(Python’un yerleşik sanal ortam aracı).python3 -m venv .venv→source .venv/bin/activate. En basit.conda/mamba(Anaconda ekosistemi). Veri bilimi/ML dünyasında yaygın; C kütüphane bağımlılıklarını da yönetir (CUDA, MKL).uv(yeni nesil, hızlı paket yöneticisi — 2024+ standardı olmaya başladı).uv venv→uv pip install ....poetry(paket yayınlama odaklı;pyproject.toml+ lockfile).
Mosh bu derste sadece sistem Python’ını kuruyor — bu, başlangıç için doğru. Ama kursun sonuna doğru pip install numpy derken, projeni .venv içinde açmanı şiddetle tavsiye ederim. Sebep: PyTorch + CUDA + numpy + pandas + scikit-learn sürüm çatışmaları tüm sistem Python’ını kırabilir; izole ortam bu riski sıfırlar.
2.4 PyCharm Community Edition
Python interpreter’ı kurmak yeterli değil — kod yazmak için bir editör/IDE lazım. Mosh’un seçimi: PyCharm Community Edition (JetBrains).
2.4.1 IDE Nedir?
Mosh bunu kendine has tarzıyla tanıtıyor:
“Entegre geliştirme ortamı. temelde sadece […] python kodumuzu çalıştırabileceğimiz özel bir ortam.” — Mosh (Türkçe dublaj), 5:20
Daha teknik tanım: IDE (Integrated Development Environment) = editör + interpreter çalıştırıcı + debugger + paket yöneticisi + version control entegrasyonu, tek bir uygulamada. Notepad’le de Python yazabilirsin (Mosh bunu söylüyor) ama IDE şunları yapar:
- Otomatik tamamlama (autocomplete) — yazarken fonksiyon/değişken önerileri.
- Hata tespiti — kod henüz çalışmadan önce sözdizimi hatalarını altı çizili gösterir.
- Debugger — kodun içine breakpoint koy, satır satır çalıştır, değişkenleri izle.
- Yeniden adlandırma (refactoring) — bir değişkeni 50 yerde aynı anda değiştir, güvenle.
2.4.2 PyCharm Community vs Professional
jetbrains.com/pycharm/download/ sayfasında iki sürüm:
- Community Edition — ücretsiz ve açık kaynak. Bu dersin tüm ihtiyaçları için yeterli.
- Professional Edition — ücretli (öğrenci/öğretmen olarak ücretsiz). Web framework desteği (Django, Flask), database tools, scientific tools (Jupyter, NumPy görüntüleyici).
Mosh Community’yi seçiyor:
“Topluluk sürümü var ve bu ücretsiz ve açık kaynak […] python kullanmaya başlamak için gereken her şeye sahip olmalı.” — Mosh (Türkçe dublaj), 6:06
2.4.3 Builder Notu — IDE Pisti
PyCharm Community gerçekten doğru başlangıç. Ama ilerledikçe ML topluluğunun gerçek pratiklerini bilmek faydalı:
| IDE | Kim Kullanır | Güçlü Yön |
|---|---|---|
| PyCharm Community | Genel Python başlangıç, web/backend | Refaktor + debugger; öğrenmesi sağlam |
| VS Code + Python ext | ML/AI mühendisleri (en yaygın 2026 anketleri) | Esnek, Jupyter entegre, Copilot/Continue, ücretsiz |
| Jupyter Notebook / Lab | Veri bilimi, ML araştırma, prototip | Hücre-hücre çalıştırma, görselleştirme, paylaşım |
| Cursor / Claude Code | AI-destekli geliştirme (yükselen) | LLM doğal entegre — kod yazma + sohbet |
Pratik öneri: Bu kursta PyCharm Community kullan (Mosh’un yolu). Kursu bitirdikten sonra VS Code + Python + Jupyter extension kombinasyonuna geç — modern ML’in standardı orada. Cursor / Claude Code daha üst düzey, ileride.
2.5 İlk Program — Hello World
Mosh’un ana hedefi bu bölümde: kavramı laflarla anlatmak yerine çalışır kod göstermek.
2.5.1 Proje Oluştur
PyCharm açıkken New Project:
- Location — projenin klasörü. Mosh
draftsadını veriyor; senpython-temellerikoyabilirsin. - Interpreter — kullanılacak Python sürümü. Açılan kutudan Python 3 seç.
Mosh önemli bir uyarı veriyor:
“tercüman olarak seçilen üç kişi, aksi takdirde sen Bu videoda yaptıklarımızı tam olarak takip edemeyebiliriz.” — Mosh (Türkçe dublaj), 8:16
(Dublaj kırık ama anlam: “Interpreter olarak Python 3 seçilmiş olduğundan emin ol.”)
2.5.2 Yeni Python Dosyası ve İlk Satır
Sol panelde proje klasörüne sağ tıkla → New → Python File. Adı app (Mosh) ya da istediğin.
Yeni boş dosyaya tek satır yaz:
print("Hello World")Üç parça analiz edelim:
print— Python’un yerleşik bir fonksiyonu. Parantez içine ne verirsen onu konsola yazdırır. Fonksiyonları Ders 5’te detaylı göreceğiz.( )— parantezler, fonksiyonun argümanlarını çevreler."Hello World"— tırnak içinde string (metin dizisi). Stringleri Ders 2’de derinleştireceğiz.
2.5.3 Çalıştır
PyCharm’da üç yoldan biri:
- Sağ üstte ▶ (Run) düğmesi.
- Sağ tık → Run ‘app’.
- Klavye: macOS
⌃R, Windows/LinuxShift+F10.
Konsol (alt pencere) açılır:
Hello World
Process finished with exit code 0
Tebrikler — ilk Python programını çalıştırdın. exit code 0 = “sorunsuz bitti”.
2.5.4 Builder Notu — print() ML’in Sırrı
print() ML’in en hafife alınan ama en çok kullanılan debug aracıdır. Şu satırları bir PyTorch eğitim döngüsünde günde yüzlerce kez göreceksin:
print(x.shape) # tensor boyutunu kontrol et
print(loss.item()) # loss değeri
print(y_pred[:5], y[:5]) # ilk 5 tahmin vs gerçek
print(grad.norm()) # gradient'in büyüklüğüMosh “Hello World” derken aslında tensor-shape debugging’in temelini atıyor.
2.6 ASCII Şekil Çizimi — Birden Fazla print
Mosh dördüncü bölümde tek bir print yerine birkaç tane art arda kullanıyor ve ekrana bir ASCII üçgeni çiziyor.
print(" /|")
print(" / |")
print(" / |")
print("/___|")Çalıştırınca konsolda:
/|
/ |
/ |
/___|
Her print(...) ekrana bir satır basar ve sonra otomatik bir satır sonu ekler.
2.6.1 Görsel — Sıralı Yürütme
2.7 Sıralı Yürütme — Python’un Kalbi
Bu, dersin en önemli kavramı.
“talimatların sırası aslında çok önemlidir. Bu, temel olarak python programlarınızın nasıl gideceği şeklindedir.” — Mosh (Türkçe dublaj), 14:32
2.7.1 Python = Talimat Listesi
Python interpreter’ı bir kod dosyasını şöyle çalıştırır:
- Birinci satıra git → çalıştır.
- İkinci satıra git → çalıştır.
- Üçüncü satıra git → çalıştır.
- … son satıra kadar.
Buna procedural execution (prosedürel / sıralı yürütme) denir.
2.7.2 Builder Notu — Forward Pass
Sinir ağının forward pass’i tam olarak budur. Bir PyTorch modeli şuna benzer:
class Net(nn.Module):
def forward(self, x):
x = self.layer1(x) # 1. talimat
x = torch.relu(x) # 2. talimat
x = self.layer2(x) # 3. talimat
x = torch.relu(x) # 4. talimat
return self.output(x) # 5. talimatPython yorumlayıcısı bu satırları yukarıdan aşağıya çalıştırır. Her satır bir önceki satırın çıktısını alıp dönüştürür ve bir sonrakine verir. Bu zincir = forward pass.
İlginç soru: Backward pass nasıl çalışır? O forward’un tersini hesaplar — son satırdan başlayıp birinci satıra doğru. Bu yapı Calculus zincir kuralı ve otomatik türev (autodiff) ile sağlanır. PyTorch’un loss.backward() çağrısı tam olarak bu satırların ters sırada türevini alır.
Yani Mosh’un “sıra önemli” sezgisi sadece programlama değil, modern derin öğrenmenin matematik motorunun çekirdek varsayımı.
2.8 Bu Dersin Özeti
- Neden Python: popüler, iş piyasasında aranan, sözdizimi sade. ML/AI’ın lingua franca’sı.
- Python 2 vs 3: Python 2 (2020’de EOL), Python 3 (mevcut). Daima Python 3 öğren.
- Kurulum: python.org/downloads → resmi yükleyici. Windows’ta “Add to PATH” işareti.
- IDE seçimi: PyCharm Community Edition (ücretsiz, açık kaynak) bu ders için yeterli. Modern ML için VS Code + Jupyter alternatif.
- İlk program:
print("Hello World")— Python’un en sade satırı, ML eğitim döngülerinin en çok çağrılan satırı. - ASCII şekil: birden fazla
print(...)ardı sıra → her biri bir satır basar. - Sıralı yürütme: Python kod satırlarını yukarıdan aşağıya çalıştırır. Bu, sinir ağı forward pass’inin temelidir.
Python 3’ü kur, PyCharm Community Edition’ı aç, bir .py dosyasına print("Hello World") yaz ve çalıştır — Python interpreter satırları yukarıdan aşağıya yürütür ve sıra her şeyi belirler; bu beş kelime sonraki tüm dersin (değişkenler, döngüler, fonksiyonlar, sinir ağları) temelidir.
2.9 Kontrol Soruları
Bir arkadaşın Python öğrenmeye başlıyor ve sana “Python 2 mi, Python 3 mü kurayım?” diye soruyor. Hangisini söyle, neden?
Cevap: Python 3 — üç katmanlı gerekçe:
- Resmi destek bitti. PSF Python 2 desteğini 1 Ocak 2020’de kesti.
- Modern kütüphaneler Python 2 desteklemez. PyTorch, TensorFlow, pandas, transformers — hepsi sadece Python 3.8+ destekliyor.
- Sözdizimi farkları küçük. Python 3 öğrenip Python 2 koduyla karşılaşırsan birkaç saatte uyum sağlarsın.
İdeal: en son Python 3.13 ya da kararlı 3.12.
Aşağıdaki kodu çalıştırdığında çıktı nedir?
print("Sabah")
print("Ogle")
print("Aksam")Cevap:
Sabah
Ogle
Aksam
Her print(...) ekrana bir satır basar + otomatik \n ekler. Üç çağrı = üç satır.
Mosh’un üçgen örneğinde son satırı en başa taşırsa şekil neden bozuluyor?
Cevap: Aynı dört string, farklı sıra → farklı görsel. Python kod satırlarını yazıldığı sırada çalıştırır. Çıktının görsel düzeni programdaki satır düzeninin doğrudan yansıması. Hiçbir Python mucizesi sırayı düzeltmez; sıra programcının sorumluluğu.
Bir PyTorch eğitim döngüsünde print(loss.item()) satırı ne işe yarar? Mosh’un anlattığı print ile aynı mı?
Cevap: Aynı print, aynı amaç — ölçek farklı.
Mosh print("Hello World") → “Hello World” basıyor. ML mühendisi print(loss.item()) → eğitim sırasında loss değerini basıyor. Her ikisi de Python’un yerleşik print fonksiyonu.
for epoch in range(100):
for batch in dataloader:
loss = model(batch).loss
loss.backward()
optimizer.step()
print(f"Epoch {epoch}, Loss: {loss.item():.4f}")ML mühendisi günde yüzlerce print çağırır — tensor shape, gradient norm, prediction. Mosh’un birinci derste öğrettiği fonksiyon, PyTorch’la geçecek tüm gelecekte günlük araç.
2.10 Egzersizler
Egzersiz 1. Terminali aç ve python3 --version (macOS/Linux) veya python --version (Windows) komutunu çalıştır. Çıktıdaki sürüm numarasını not al. Çıktı Python 2.x veya command not found veriyorsa, kurulumu nereden bozulduğunu (PATH, Microsoft Store, eski yükleme) düşün ve düzelt.
Egzersiz 2. PyCharm’da yeni proje + ders1.py aç. Üç print(...) ile kendi adın, doğum yılın, bugünün tarihini bas. Çıktı dört satır mı, üç satır mı, neden?
Egzersiz 3. ASCII bir şekil çiz: kare, ok (→), kalp, ya da seçtiğin başka bir şekil. Sadece print(...) satırları kullan. En az 4 satırdan oluşsun. Stringlerin içindeki boşluk sayılarını dikkatle ayarla.
Egzersiz 4. (Sıralı yürütme deneyi) Şu kodu iki kere çalıştır — bir kere yazıldığı sırada, bir kere ortadaki iki satırı yer değiştirerek:
print("Adım 1")
print("Adım 2")
print("Adım 3")
print("Adım 4")İki çıktı arasındaki farkı kendi sözlerinle yaz. Bonus: ikinci satırda kasıtlı bir hata yarat (örn. pront("Adım 2")) ve çalıştır. 1. satır çıkıyor mu? 3. ve 4. satırlar çıkıyor mu? Bu seni Ders 10’daki try/except konusuna hazırlıyor.
Egzersiz 5. (Builder eksen — sonraki dersin habercisi) Şu kodu yaz ve çalıştır:
ad = "Deniz"
print("Merhaba", ad)
print("Merhaba", ad, "!")İki şey gözlemle:
printvirgülle birden fazla şey alabiliyor — bunları arada bir boşluk koyarak bastırıyor.adbir değişken: bir string’i bir isimle etiketledik.
Mosh Ders 2’de tam olarak bunu (değişkenler) işleyecek. ML’de learning_rate = 0.001, batch_size = 64, model = MyNet() — hepsi aynı kalıp.
2.11 Sonraki Ders İçin Hazırlık
Ders 2: Değişkenler ve Veri Tipleri
Ders 2’de Mosh’un üç chapter’ına (Variables & Data Types, Strings, Numbers) gireceğiz. Bilgileri ekrana basmak iyi başlangıç ama programlar bilginin kendisi üzerinde çalışır — onu saklar, dönüştürür, karşılaştırır. Değişkenler bunun aracı.
- Mosh’un Ch 5-7’sini izle (15:14 - 48:31, ~33 dk).
- Şu cümleyi içselleştir: “Değişken = etiketli kutu, atama = etiket asma.”
Python kodunu yukarıdan aşağıya, satır satır çalıştırır — ve sıra her şeyi belirler. print("Hello World") Python’un en sade satırı; bir PyTorch eğitim döngüsünün en çok çağrılan satırı print(loss.item()). Aynı print, aynı zihinsel model. Mosh’un ilk yarım saatinde gördüğün küçük talimatlar, gelecek dört yılın günlük araçları.