AI MaestroSoloLabsSeviye 0

Programlama Dilleri Haritası — Seviye 0

KAZANIM Bu dersin sonunda: bir dil adı duyduğunda ne olduğunu ve ne için kullanıldığını bilir, basit bir kod parçasına bakıp ne dediğini kabaca okuyabilir, "benim ürünüm hangi dilde, neden?" sorusuna cevap verebilirsin.

Önce beklentiyi doğru kuralım: bu modül sana dil öğretmeyecek — dil tanıtacak ve OKUTACAK. Kodu yapay zekâ yazıyor; senin işin hangi dili göreceğini bilmek, adı geçince tanımak, bir parçasına bakınca "ne yapmaya çalışıyor"u sezmek ve dil seçiminin mantığını denetleyebilmek. Şoför olmak için motor ustası olman gerekmiyor; ama kaputu açınca neye baktığını bilmen gerekiyor.

Programlama dili nedir? Bilgisayara talimat yazmanın grameri. Diller arasındaki fark, insan dilleri arasındaki fark gibi değildir — hepsi aynı bilgisayara emir verir; farkları hangi iş için tasarlandıkları ve çevrelerinde hangi hazır malzeme ekosisteminin biriktiğidir. Dil seçimi bu yüzden zevk değil, ekosistem kararıdır.


Bölüm 1 · Yakın plan: aynı işi dört dilde yaz, karakterlerini gör

Ortak görevimiz şu, bilerek basit: "Elimizde üç ürünün fiyatı var; toplamını bul, ekrana yaz." Aynı işi dört dilde yazıp her satırın Türkçesini vereceğiz — diller böyle karşılaştırınca kişilik kazanır.

JavaScript / TypeScript — web'in ana dili

Neden kullanılır: Tarayıcıda çalışan TEK dil JavaScript'tir — web'de görünen her etkileşim odur; Node.js sayesinde sunucu tarafını (mutfağı) da yazar. TypeScript = JavaScript + tip güvenliği: değişkenlerin ne taşıdığını önceden ilan edersin, build kapısı yanlışları yayından önce yakalar (örnek oturumdaki "Type error: 'baslik' yok" hatası TypeScript'in yakalayışıydı).

Nerelerde kullanırız: Web sitesi/uygulaması, PWA (tarayıcıdan kurulabilen, uygulama gibi davranan web sitesi), ürünlerinin neredeyse tamamı. Referans stack'imiz (Next.js) baştan sona bu dil. Diff'te göreceğin uzantılar: .ts, .tsx, .js.

Nasıl yazılır + yazılanın anlamı:

const fiyatlar: number[] = [120, 45, 80];
const toplam = fiyatlar.reduce((t, f) => t + f, 0);
console.log(`Sepet toplamı: ${toplam} TL`);
  • Satır 1: "fiyatlar adında bir kutu aç, içine bu üç sayıyı koy." (const = sabit kutu; : number[] = TypeScript'in tip ilanı: "bu kutuda yalnız sayı listesi olabilir" — başka şey koymaya kalkarsan build kırılır, işte tip güvenliği bu.)
  • Satır 2: "Listeyi baştan sona gez, elemanları biriktirerek topla (reduce = indirgeyerek biriktir), sıfırdan başla, sonucu toplam kutusuna koy."
  • Satır 3: "Konsola (geliştirici ekranına) şu cümleyi yaz; ${toplam} yerine kutudaki değeri koy."

Python — AI ve otomasyonun dili

Neden kullanılır: Okunabilirlik kralı — kodu neredeyse İngilizce cümle gibidir, bu yüzden bilim insanlarından otomasyoncuya herkesin ortak dili oldu. Asıl gücü ekosisteminde: yapay zekâ/veri dünyasının kütüphaneleri (model eğitimi, veri analizi) önce Python'da yazılır.

Nerelerde kullanırız: AI-ağır işler (model çalıştırma, RAG boru hatları), veri işleme, tek seferlik otomasyon script'leri (bu programın PDF üreticisi ve e-posta okuyucusu birer Python script'i). Web ürününün gövdesinde görmeyebilirsin; ama makine dairesinde hep o var. Uzantı: .py.

Nasıl yazılır + yazılanın anlamı:

fiyatlar = [120, 45, 80]
toplam = sum(fiyatlar)
print(f"Sepet toplamı: {toplam} TL")
  • Satır 1: "fiyatlar kutusuna bu listeyi koy." (Tip ilanı yok — Python rahat kabullenir; hız kazandırır, ama tip hatası ancak çalışırken patlar. TypeScript'le felsefe farkı tam burada.)
  • Satır 2: "sum = topla. Hazır fonksiyon; JavaScript'teki reduce cambazlığına gerek kalmadı." Python'un karakteri bu: sık işin hazır, kısa bir yolu vardır.
  • Satır 3: "Ekrana yaz; süslü parantezdeki değeri cümleye göm."

Üç satır — dördü değil. Python'un "az törenli" mizacı: aynı iş, en az seremoniyle.

SQL — veritabanına soru sorma dili

Neden kullanılır: Diğerleri gibi "program akışı" yazmaz; veritabanına soru sorar ve emir verir. 50 yıldır tahtında, çünkü soruyu nasıl bulacağını değil ne istediğini söylersin — gerisini veritabanı çözer.

Nerelerde kullanırız: Verisi olan her ürünün altında. Bizim stack'te Prisma bu dili senin yerine üretir ama raporlama/denetim anlarında ("kaç kullanıcı kaydoldu?") çıplak SQL görürsün.

Nasıl yazılır + yazılanın anlamı:

SELECT SUM(fiyat) AS toplam
FROM siparisler
WHERE musteri_id = 42;
  • Satır 1: "Bana fiyat sütununun toplamını getir, sonucun adı toplam olsun."
  • Satır 2: "siparisler tablosundan (arşiv dolabının o çekmecesinden)."
  • Satır 3: "Ama sadece 42 numaralı müşterinin satırlarını hesaba kat."

Neredeyse İngilizce bir rica cümlesi: select sum... from... where... — SQL'in tüm sırrı bu. Güvenlik notu: kırmızı bölge kelimeleri (ders 2.5) SQL kelimeleridir — DROP (tabloyu yok et), DELETE (satırları sil), TRUNCATE (içini boşalt). SELECT okur, zararsızdır; o üçlü yazar/yıkar.

Java — kurumsal dünyanın temsilcisi

Neden kullanılır: İki sebep: (1) "Bir kez yaz, her yerde çalışsın" — Java kendi taşınabilir motoru (JVM) üstünde koşar, banka sunucusundan karta kadar. (2) Katı disiplin: her şeyin tipi, sınıfı, töreni bellidir — 500 kişilik ekipte kimse kimsenin kutusuna yanlış şey koyamaz. Bu yüzden bankalar, sigortalar, devasa kurumsal sistemler ve (eski nesil) Android onunla yazıldı.

Nerelerde kullanırız: Senin yeni ürünlerinde muhtemelen hiç. Ama kurumsal müşteri entegrasyonlarında ("bizim sistem Java'dır" cümlesi), banka API'lerinin arkasında ve iş ilanlarında sürekli karşına çıkar — tanı diye buradayız.

Nasıl yazılır + yazılanın anlamı:

public class Sepet {
    public static void main(String[] args) {
        int[] fiyatlar = {120, 45, 80};
        int toplam = 0;
        for (int f : fiyatlar) { toplam += f; }
        System.out.println("Sepet toplamı: " + toplam + " TL");
    }
}
  • Satır 1-2: Tören kısmı. Java'da kod boşlukta duramaz: önce bir sınıf (class Sepet), içinde resmî giriş kapısı (main) açılır. Python 3 satırda bitirmişti; Java daha "merhaba" demeden 2 satır protokol ister. Bürokrasi değil, karakter: büyük ekiplerde bu zorunlu düzen kaosu önler.
  • Satır 3: "fiyatlar kutusuna tam sayı (int) listesi koy" — tip ilanı zorunlu, TypeScript'teki gibi ama pazarlıksız.
  • Satır 4-5: "Toplamı sıfırdan başlat; listedeki her f için toplama ekle." (Python'un hazır sum'ı yok; döngüyü elle kurdun — Java açık açık yazdırmayı sever.)
  • Satır 6: "Ekrana yaz."

Dört dilden çıkan ders

Aynı iş: Python 3 satır, TypeScript 3 satır (tip sigortalı), SQL tek soru cümlesi, Java 7 satır tören. Hiçbiri "daha iyi" değil — mizaçları farklı: Python hız/rahatlık, TypeScript web+sigorta, SQL veri sorgusu, Java kurumsal disiplin. Kod okurken artık şunu seziyorsun: dilin gevezeliği çoğu zaman bilinçli bir güvenlik/ölçek tercihidir.


Bölüm 2 · Tanıman yeten diller (kategori kategori)

Bunları öğrenmeyeceksin; "adı geçince ne olduğunu bilme" düzeyi hedef. Karşılaşma olasılığı senin (web ürünü kuran, AI yöneten) perspektifinden.

Mobil dünya

Dil Nedir / ne için Karşılaşma
Swift Apple'ın modern dili — iPhone/iPad/Mac uygulamaları Orta: native iOS yaptırırsan
Objective-C Swift'ten önceki Apple dili; eski iOS projelerinde yaşar Düşük: miras kodda
Kotlin (listelerde yeni ama bil) Android'in modern dili — Java'nın o alandaki tahtını devraldı Orta: native Android'de

Not: PWA-öncelikli üründe mobil bile çoğunlukla JavaScript'le çözülür; native'e geçince bu ikili devreye girer.

Kurumsal ve web'in diğer emektarları

Dil Nedir / ne için Karşılaşma
C# Microsoft'un Java'sı; kurumsal uygulamalar + oyun motoru Unity Düşük-orta
PHP Web'in emektarı; WordPress (internetin ~%40'ı) bununla yazıldı Orta: hazır site/eklenti dünyasında
Ruby Bir dönemin startup gözdesi (Shopify, GitHub onunla kuruldu); zarif ama yıldızı soldu Düşük

Sistem ve performans dünyası

Dil Nedir / ne için Karşılaşma
C Neredeyse her şeyin atası; işletim sistemleri, sürücüler — makineye en yakın okunabilir dil Düşük: altyapının derinliklerinde
C++ C'nin büyük kardeşi; oyun motorları, tarayıcılar, performans-kritik işler Düşük
Go Google'ın sade sunucu dili; bulut araçlarının (Docker, Kubernetes) dili Düşük-orta: altyapı araçlarında
Rust (2026'da bil) C++ gücünde ama bellek-güvenli; sistem yazılımının yükselen yıldızı Düşük
Assembly Makine diline en yakın katman; insan zor okur — "en dip kat" olduğunu bilmen yeter Sıfıra yakın

Veri ve bilim dünyası

Dil Nedir / ne için Karşılaşma
R İstatistikçilerin dili; akademik veri analizi Düşük (Python devraldı)
MATLAB Mühendislik/simülasyon platformu; laboratuvar demirbaşı Düşük
PL/SQL SQL'in Oracle'a özel, programlanabilir uzantısı Sıfıra yakın: banka/kurum içi

Miras (legacy) kanadı

Dil Nedir / ne için Karşılaşma
Visual Basic / VB.NET Microsoft'un "herkes yazsın" dilleri; ofis makroları, eski kurum içi uygulamalar Düşük
Delphi / Object Pascal 90'ların hızlı masaüstü efsanesi; hâlâ dönen eski sistemlerde Sıfıra yakın
Perl Web'in ilk dönem script dili; yerini Python aldı Sıfıra yakın

"Miras" küçümseme değildir — bu dillerdeki sistemler dünyayı hâlâ döndürüyor. Ama YENİ ürün bunlarla başlamaz: bir teklifte yeni işin bu dillerle yapılması öneriliyorsa "neden?" diye sormak için kırmızı bayraktır.


Bölüm 3 · "Peki benim ürünüm hangi dilde yazılmalı?"

Kod bilmeyen ürün sahibinin en rahatlatıcı gerçeği: bu kararı dil düzeyinde vermezsin — çatı düzeyinde verirsin (arac-envanteri Bölüm 1). Next.js'i seçtiğin an dilin TypeScript olmuştur; karar zinciri "iş → çatı → dil" yönünde akar.

Vibe coding'e özel ikinci ilke: AI hangi dilde en az hata yapıyorsa o. JavaScript/TypeScript ve Python, AI'ın eğitim verisinde en bol dillerdir — AI bu ikisinde en isabetli kodu yazar. Nadir bir dil seçmek, en iyi ustanın bilmediği malzemeyle bina yaptırmaktır.

Denetim penceresi. Üç soruya cevap verebiliyorsan mezunsun:

  1. "Ürünüm hangi dil(ler)de yazılı?" — bilmiyorsan iste: "Bu projede kullanılan dilleri ve her birinin rolünü listele."
  2. "Bu seçim neden yapılmış; bugün yapılsa yine aynı mı olurdu?"
  3. Kırmızı bayrak: teklif/projede miras kanadından bir dil YENİ iş için mi öneriliyor?

Mini egzersiz (SANDBOX). Üret: Claude Code'a de ki: "Bölüm 1'deki sepet toplamı işini bir de Go ve PHP ile yaz; her satırın Türkçesini altına ekle." Denetle: iki yeni örneği bu moduldeki dörtlüyle karşılaştır — hangi mizaca benziyorlar?

Kontrol soruları. (1) Dil seçimi neden aslında çatı seçimidir? (2) TypeScript'in JavaScript'e eklediği sigorta nedir? (3) SQL'de hangi kelimeler kırmızı bölgedir? (4) Java'nın "töreni" neyin bedeli/karşılığıdır?

Mentor istemi.

AI Maestro "Programlama Dilleri Haritası" modülünün hocası ol. Önce bana 5 satırlık basit
bir kod göster (dilini söyleme) ve hangi dil olduğunu mizacından tahmin ettir. Sonra
rastgele 8 dil adı say; her biri için "nedir + ne için + karşıma çıkar mı" cevabı
vereyim, değerlendir. Son olarak kendi projemdeki dilleri birlikte çıkaralım. Jargon yok.

Bu konu nerede derinleşiyor? (sarmal harita)

Dil haritası tanıma katmanıydı; diller programda şu noktalarda tekrar karşına çıkacak:

  • TypeScript'in tip sigortası → build kapısında iş başında görürsün (2.3); örnek oturumdaki "Type error" vakası birebir budur
  • SQL'in kırmızı kelimeleri (DROP/DELETE/TRUNCATE) → veritabanı kırmızı bölge protokolü (2.5) ve terminal renk sistemi
  • Python → yerel AI/otomasyon dünyasında fiilen kullanacaksın (4.7 Ollama, AI ürün haritası otomasyon kategorisi)
  • "Dil kararı = çatı kararı" ilkesi → araç envanteri Bölüm 1'de gerekçesi, capstone 3. adımda kendi kararın olarak
  • "Projemin dili ne?" denetimi → mimari okuma dersinin (2.7) harita çıkarma istemine dahildir

Sıradaki Seviye 0 dosyası: arac-envanteri.md · Sözlüğe dön: kavramlar-seviye-0.md