Python mu JavaScript mi? Hangi Dille Başlamalı
Python ve JavaScript'i aynı örneklerle yan yana karşılaştır, hedefine göre hangi dille başlayacağına karar ver ve 30 günlük çalışma planıyla hemen başla.
Kodlamaya başlamaya karar verdin ama ilk soruda takıldın: Python mu, JavaScript mi? Bu rehberin sonunda iki dilin farkını aynı programları yan yana görerek anlayacak, kendi hedefine göre hangisiyle başlaman gerektiğine karar verecek ve elinde ilk 30 gün için gün gün bir çalışma planı olacak. Bütün örnekleri hiçbir şey kurmadan tarayıcıdaki kod editöründe çalıştırabilirsin.
1. Aynı program, iki dil
Farkı anlamanın en iyi yolu, aynı işi yapan programı iki dilde yan yana görmek. Aşağıdaki program önce bir selam yazıyor, sonra 3 ile çarpım tablosunun ilk beş satırını gösteriyor.
Python
isim = "Deniz"
print("Merhaba, " + isim + "!")
for sayi in range(1, 6):
print(sayi, "x 3 =", sayi * 3)
JavaScript
const isim = "Deniz";
console.log("Merhaba, " + isim + "!");
for (let sayi = 1; sayi <= 5; sayi++) {
console.log(sayi + " x 3 = " + sayi * 3);
}
İki program da aynı çıktıyı verir:
Merhaba, Deniz!
1 x 3 = 3
2 x 3 = 6
3 x 3 = 9
4 x 3 = 12
5 x 3 = 15
Hemen göze çarpan farklar şunlar:
- Değişken tanımlama: Python'da
isim = "Deniz"yazman yeterli. JavaScript'te başınaconst(değişmeyecek değer) ya dalet(değişebilecek değer) koyarsın. - Ekrana yazdırma: Python'da
print, JavaScript'teconsole.log. - Döngü: Python'daki
range(1, 6)"1'den başla, 6'ya gelmeden dur" demektir. JavaScript'te aynı şeyi üç parçayla yazarsın: başlangıç (let sayi = 1), koşul (sayi <= 5) ve artış (sayi++). - Bloklar: Python'da döngünün içine giren satırları girinti (satır başındaki boşluk) belirler. JavaScript'te ise süslü parantezler
{ }belirler.
2. Karşılaştırma tablosu
| Konu | Python | JavaScript |
|---|---|---|
| Yazım | Sade, İngilizceye yakın; daha az sembol | Süslü parantez ve noktalı virgül daha çok |
| Bloklar | Girintiyle belirlenir (zorunlu) | { } ile belirlenir; girinti okunabilirlik içindir |
| Nerede çalışır? | Python yorumlayıcısı gerekir (bu sitede tarayıcı editörü yeterli) | Her modern tarayıcıda yerleşik; sunucuda Node.js ile |
| Görsel sonuç | Turtle ile çizim, metin tabanlı oyunlar | Web sayfası, düğmeler, canvas ile oyunlar |
| Tür davranışı | Uyumsuz türleri toplamaya çalışınca hata verir | Bazı durumlarda türleri kendiliğinden dönüştürür |
| Sık kullanıldığı alanlar | Veri analizi, yapay zekâ, otomasyon, bilimsel hesaplama, eğitim | Web sitelerinin etkileşimli kısımları, web uygulamaları, tarayıcı oyunları |
| Paylaşmak | Kodu ya da çıktıyı paylaşırsın | Bir web sayfası olarak doğrudan açılabilir |
3. En önemli fark: türler ve hata mesajları
Yeni başlayanlar için iki dil arasındaki en öğretici fark, birbirine uymayan türlerle (metin ve sayı) ne olduğu. Önce Python'a bakalım:
print("5" + "3")
print(5 + 3)
print(int("5") + 3)
Çıktı 53, 8 ve 8 olur. Tırnak içindeki "5" bir metindir; iki metni toplamak onları yan yana yapıştırır. int("5") ise metni sayıya çevirir. Peki print("5" + 3) yazarsan? Python durur ve şu hatayı verir:
TypeError: can only concatenate str (not "int") to str
Yani "metne yalnızca metin ekleyebilirim, sayı ekleyemem" der. Şimdi JavaScript:
console.log("5" + 3);
console.log("5" - 3);
console.log(Number("5") + 3);
Çıktı 53, 2 ve 8 olur. JavaScript hata vermez; + işaretinde sayıyı metne çevirip yapıştırır, - işaretinde ise metni sayıya çevirip çıkarır. Bu esneklik bazen işini kolaylaştırır ama yeni başlayanlar için "program çalışıyor ama sonuç yanlış" türünden, bulması zor hatalara yol açabilir. Python'un açık hata mesajı ise sorunu hemen gösterir. Bu yüzden pek çok eğitimci, programlama mantığını ilk kez öğrenenler için Python'u tercih eder.
input(), tarayıcıda form kutuları) metin olarak gelir. Hesap yapmadan önce sayıya çevirmeyi unutma.4. JavaScript'in süper gücü: tarayıcı
JavaScript'in en büyük avantajı, her bilgisayar ve telefondaki tarayıcıda zaten çalışıyor olmasıdır. HTML ile bir sayfa yapıp içine JavaScript eklediğinde, tıklanabilen düğmeler ve hareket eden oyunlar yapabilirsin. Aşağıda tıklama sayan küçük bir sayfa var:
<button id="buton">Tıkla</button>
<p id="sonuc">Henüz tıklamadın</p>
<script>
let tiklama = 0;
function etiketYaz(sayi) {
if (sayi === 0) return "Henüz tıklamadın";
return sayi + " kez tıkladın";
}
function tikla() {
tiklama = tiklama + 1;
return etiketYaz(tiklama);
}
document.getElementById("buton").addEventListener("click", function () {
document.getElementById("sonuc").textContent = tikla();
});
</script>
Düğmeye ilk tıklayışta yazı "1 kez tıkladın", ikincide "2 kez tıkladın" olur. Burada iki parça var: etiketYaz ve tikla fonksiyonları işin mantığını yapar; son satırlar ise bu mantığı sayfadaki düğmeye bağlar. Mantığı ayrı fonksiyonlarda tutmak, onu sayfa olmadan da test edebilmeni sağlar. Bu yaklaşımla ilk sayfanı yapmak için HTML ve CSS ile ilk web sayfası, daha büyük bir proje için JavaScript Pong oyunu rehberine bakabilirsin.
5. Fonksiyonlar ve listeler: kavramlar aynı
Dil değişse de düşünme şekli aynı kalır. Bir puan listesinin ortalamasını ve en yüksek değerini bulan program iki dilde de aynı adımları izler.
Python
def ortalama(puanlar):
return sum(puanlar) / len(puanlar)
puanlar = [70, 85, 90, 65]
print("Ortalama:", ortalama(puanlar))
print("En yüksek:", max(puanlar))
if ortalama(puanlar) >= 75:
print("Harika gidiyorsun!")
else:
print("Biraz daha pratik!")
JavaScript
function ortalama(puanlar) {
let toplam = 0;
for (const p of puanlar) {
toplam += p;
}
return toplam / puanlar.length;
}
const puanlar = [70, 85, 90, 65];
console.log("Ortalama:", ortalama(puanlar));
console.log("En yüksek:", Math.max(...puanlar));
if (ortalama(puanlar) >= 75) {
console.log("Harika gidiyorsun!");
} else {
console.log("Biraz daha pratik!");
}
İkisi de Ortalama: 77.5, En yüksek: 90 ve Harika gidiyorsun! yazar. Python'da sum, len ve max gibi hazır fonksiyonlar işi kısaltır; JavaScript'te toplamı bir döngüyle kendimiz hesapladık. Görüldüğü gibi fonksiyon, liste, koşul ve döngü kavramları birebir aynı. Bu temel taşları iki dilde yan yana çalışmak istersen değişken, koşul, döngü rehberi tam bunu yapıyor.
6. Hedefine göre hangisi?
Seçimi kolaylaştırmak için kendine "Kod yazarak ilk ne yapmak istiyorum?" diye sor.
| Hedefin | Önerilen başlangıç | Neden? |
|---|---|---|
| Programlama mantığını sağlam öğrenmek | Python | Sade yazım, açık hata mesajları |
| Scratch ya da blok kodlamadan geçiş | Python | Bloklardaki kavramlar kısa satırlara kolay dönüşür |
| Tarayıcıda oynanan oyun yapmak | JavaScript | Oyun doğrudan tarayıcıda çalışır, paylaşması kolay |
| Kendi web siteni yapmak | HTML + CSS, sonra JavaScript | Web'in üç temel dili birlikte çalışır |
| Veriyle uğraşmak, hesap yapmak, işleri otomatikleştirmek | Python | Bu alanlarda çok yaygın kullanılır |
| Henüz bilmiyorum | Python | Genel amaçlı; sonradan JavaScript'e geçmek kolay |
Bu kararı kod olarak da yazabiliriz. Aşağıdaki program yaşına göre basit bir başlangıç önerisi verir:
yas = int(input("Kaç yaşındasın? "))
if yas >= 13:
print("Metin tabanlı dillerle rahatça başlayabilirsin.")
else:
print("Bloklarla ısınıp sonra Python'a geçmek iyi bir yol.")
Örneğin 11 girersen "Bloklarla ısınıp sonra Python'a geçmek iyi bir yol." yazar. Bu katı bir kural değil, kaba bir öneri: klavyeyi rahat kullanan ve okumayı seven 10–12 yaş çocukları da metin tabanlı dillerle başlayabilir. Bloklarla ısınmak istersen blok kodlama sayfasına, blok kodlamadan geçiş için Scratch'tan Python'a geçiş rehberine göz at. Sitede bu ikisi dışında birçok dil de var; hepsine diller sayfasından ulaşabilirsin.
7. İlk 30 gün planı
Plan günde yaklaşık 20–30 dakika ve haftada 5 gün çalışmaya göre hazırlandı; kalan günler dinlenme ya da tekrar içindir. Tablodaki konular iki dil için de geçerli. Python seçtiysen Python derslerinden, JavaScript seçtiysen JavaScript derslerinden ilgili konuyu bulabilirsin.
| Hafta | Konular | Hafta sonu mini projesi |
|---|---|---|
| 1. hafta (1–7. gün) | Ekrana yazdırma, değişkenler, metin ve sayı türleri, kullanıcıdan girdi alma | Adını ve en sevdiği şeyi sorup bir cümle kuran program |
| 2. hafta (8–14. gün) | Karşılaştırma, if / else, mantıksal işlemler (ve, veya), basit hesaplamalar | Girilen sayının tek mi çift mi olduğunu söyleyen program |
| 3. hafta (15–21. gün) | for ve while döngüleri, listeler (diziler), listede dolaşma | Çarpım tablosu ya da alışveriş listesi programı |
| 4. hafta (22–30. gün) | Fonksiyonlar, rastgele sayılar, öğrendiklerini birleştirme | Sayı tahmin oyunu ya da bilgi yarışması |
Plana uymanın püf noktaları
- Her gün bir şeyi değiştir: Dersteki örneği çalıştırmakla yetinme; bir sayıyı, bir metni ya da bir koşulu değiştirip ne olduğunu gör.
- Hata günlüğü tut: Karşılaştığın hata mesajlarını ve nasıl çözdüğünü bir yere yaz. Aynı hatayla ikinci kez karşılaştığında hemen tanırsın.
- Gün kaçırırsan baştan başlama: Kaldığın yerden devam et. Planın amacı düzen, mükemmellik değil.
- 30. gün bitince: 4. haftanın projesini büyüt. Python seçtiysen sayı tahmin oyunu, JavaScript seçtiysen yılan oyunu güzel bir sonraki adım.
8. İkinci dile ne zaman geçmeli?
İlk dilde değişken, koşul, döngü, liste ve fonksiyonu kullanarak küçük bir oyunu kendi başına yazabildiğinde ikinci dile geçmeye hazırsın demektir. O noktada ikinci dili öğrenmek, ilkinden çok daha hızlı olur; çünkü kavramları zaten biliyor, yalnızca yeni yazım kurallarını öğreniyorsun. Sık görülen bir yol, Python ile mantığı öğrenip ardından web projeleri için HTML, CSS ve JavaScript'e geçmektir. Tersi de gayet mümkündür.
Sık yapılan hatalar
- Dil seçerken haftalarca araştırmak: Karşılaştırma yazıları okumak kod yazmak değildir. Bu rehberdeki tabloya bak, bir dil seç ve bugün başla.
- İki dili aynı anda başlatmak: Başlangıçta yazım kuralları birbirine karışır; örneğin Python'da süslü parantez kullanmaya ya da JavaScript'te girintiye güvenmeye başlarsın. İlk birkaç ay tek dile odaklan.
- Python'da girintiyi önemsememek:
forya daifsatırından sonraki satırı girintisiz yazmakIndentationErrorhatası verir. Girintide hep aynı sayıda boşluk kullan (genellikle 4). - JavaScript'te parantezleri kapatmayı unutmak: Her
{için bir}, her(için bir)olmalı. Kodu düzgün girintilemek, eksik parantezi görmeyi kolaylaştırır. - Metni sayı sanmak: Girdi olarak gelen
"5"bir metindir. Python'daint(), JavaScript'teNumber()ile çevir. - Hatalardan kaçmak: Hata mesajı bir ipucudur. Son satırı oku, satır numarasına bak. Ayrıntılar için en sık kod hataları rehberine göz at.
Kendin dene
Seçtiğin dilde, kolaydan zora doğru ilerle. Hepsini editörde deneyebilirsin.
- Kolay: Bölüm 1'deki programı 3 yerine 7 ile çarpım tablosu yapacak ve 10 satır gösterecek şekilde değiştir.
- Kolay: Python'da
print("5" * 3), JavaScript'teconsole.log("5" * 3)yazınca ne çıkacağını önce tahmin et, sonra çalıştır. Sonuçlar neden farklı? - Orta: Ortalama programına en düşük puanı da yazdıran bir satır ekle (Python'da
min, JavaScript'teMath.min). - Orta: Tıklama sayacına "Sıfırla" düğmesi ekle; tıklanınca sayı 0 olsun ve yazı "Henüz tıklamadın"a dönsün.
- Zor: Bölüm 1'deki programı diğer dile kendin çevir: Python biliyorsan JavaScript'e, JavaScript biliyorsan Python'a. Çıktıların birebir aynı olduğunu kontrol et.
Sık sorulan sorular
Python mu daha kolay, JavaScript mi?
Yeni başlayanların çoğu Python'un yazımını daha sade bulur: daha az sembol kullanılır ve hatalar daha açık mesajlarla gösterilir. JavaScript ise tarayıcıda hemen görsel sonuç verdiği için bazı öğrencilere daha heyecan verici gelir. Kolaylık biraz da neyi yapmak istediğine bağlıdır.
Yanlış dili seçersem emeğim boşa gider mi?
Hayır. Değişken, koşul, döngü, liste ve fonksiyon gibi temel kavramlar iki dilde de aynıdır. Bir dili öğrendikten sonra ikincisini öğrenmek çok daha hızlı olur, çünkü yalnızca yeni yazım kurallarını öğrenirsin.
JavaScript ile Java aynı şey mi?
Hayır, isimleri benzese de farklı dillerdir. JavaScript özellikle web tarayıcılarında kullanılır; Java ise farklı bir yazım ve çalışma biçimine sahip ayrı bir dildir.
Python ile oyun yapabilir miyim?
Evet. Sayı tahmin oyunu ve bilgi yarışması gibi metin tabanlı oyunlarla başlayabilir, Turtle ile basit görsel oyunlar yapabilirsin. Python için oyun kütüphaneleri de vardır. Ancak oyununu bir bağlantıyla herkesin tarayıcısında oynatmak istiyorsan JavaScript daha doğrudan bir yoldur.
Bilgisayarıma bir şey kurmam gerekiyor mu?
Başlangıç için hayır. Bu sitedeki tarayıcı tabanlı kod editöründe hem Python hem JavaScript kodlarını kurulum yapmadan çalıştırabilirsin. İleride kendi bilgisayarında çalışmak istersen Python için Python yorumlayıcısını, JavaScript için de tarayıcıyı ya da Node.js'i kullanabilirsin.
Günde ne kadar çalışmalıyım?
Kısa ve düzenli çalışmak genellikle uzun ve seyrek çalışmaktan daha verimlidir. Bu rehberdeki 30 günlük plan günde yaklaşık 20–30 dakika ve haftada 5 gün varsayar; kendi temponu buna göre ayarlayabilirsin.