Yazılım Öğrenme Rehberi

Başlangıçtan İleri Seviyeye

Reklam
728x90 Leaderboard

Temel Programlama Notları

Programlama Temelleri

Programlama Nedir?

Programlama, bilgisayarlara ne yapması gerektiğini söyleme sanatıdır. Bir programlama dili kullanarak bilgisayarın anlayabileceği talimatlar yazarsınız ve bilgisayar bu talimatları yerine getirir.

💡 Programlama Öğrenmenin Faydaları:
  • Problem çözme yeteneklerinizi geliştirir
  • Mantıksal düşünme becerilerinizi artırır
  • Yaratıcılığınızı ortaya çıkarır
  • İyi bir kariyer fırsatı sunar
  • Kendi projelerinizi hayata geçirebilirsiniz

Temel Kavramlar

1. Değişkenler (Variables)

Veri saklama birimleridir. Bir kutu gibi düşünebilirsiniz, içine değer koyarsınız.

C# Örneği:

// Değişken tanımlama
int yas = 25;
string ad = "Ahmet";
double maas = 5000.50;
bool aktif = true;

// Değişken kullanımı
Console.WriteLine("Ad: " + ad);
Console.WriteLine("Yaş: " + yas);

JavaScript Örneği:

// Değişken tanımlama
let yas = 25;
const ad = "Ahmet";
var maas = 5000.50;

// Değişken kullanımı
console.log("Ad: " + ad);
console.log("Yaş: " + yas);

2. Veri Tipleri (Data Types)

  • int: Tam sayılar (1, 2, 100, -5)
  • double/float: Ondalıklı sayılar (3.14, 2.5)
  • string: Metin ("Merhaba", "Ahmet")
  • bool: Mantıksal (true, false)
  • char: Tek karakter ('A', 'x')

3. Operatörler (Operators)

Aritmetik Operatörler:

int a = 10;
int b = 3;

int toplam = a + b;      // 13
int fark = a - b;        // 7
int carpim = a * b;      // 30
int bolum = a / b;       // 3
int kalan = a % b;       // 1 (mod)

Karşılaştırma Operatörleri:

int x = 5;
int y = 10;

bool esitMi = (x == y);           // false
bool esitDegilMi = (x != y);      // true
bool buyukMu = (x > y);           // false
bool kucukMu = (x < y);           // true
bool buyukEsitMi = (x >= y);      // false
bool kucukEsitMi = (x <= y);      // true

Mantıksal Operatörler:

bool a = true;
bool b = false;

bool ve = a && b;        // false (AND)
bool veya = a || b;      // true (OR)
bool degil = !a;         // false (NOT)

4. Koşullar (Conditionals)

Karar yapıları. "Eğer şu olursa, bunu yap" mantığı.

if-else:

int yas = 18;

if (yas >= 18) {
    Console.WriteLine("Reşitsiniz");
} else {
    Console.WriteLine("Reşit değilsiniz");
}

// Çoklu koşul
int not = 75;

if (not >= 90) {
    Console.WriteLine("AA");
} else if (not >= 80) {
    Console.WriteLine("BA");
} else if (not >= 70) {
    Console.WriteLine("BB");
} else {
    Console.WriteLine("Geçemedi");
}

switch-case:

int gun = 3;

switch (gun) {
    case 1:
        Console.WriteLine("Pazartesi");
        break;
    case 2:
        Console.WriteLine("Salı");
        break;
    case 3:
        Console.WriteLine("Çarşamba");
        break;
    default:
        Console.WriteLine("Geçersiz gün");
        break;
}

5. Döngüler (Loops)

Tekrarlayan işlemler için kullanılır.

for Döngüsü:

// 1'den 10'a kadar sayıları yazdır
for (int i = 1; i <= 10; i++) {
    Console.WriteLine(i);
}

// Dizi elemanlarını yazdır
string[] isimler = {"Ahmet", "Ayşe", "Mehmet"};
for (int i = 0; i < isimler.Length; i++) {
    Console.WriteLine(isimler[i]);
}

while Döngüsü:

int sayac = 0;

while (sayac < 5) {
    Console.WriteLine("Sayaç: " + sayac);
    sayac++;
}

foreach Döngüsü:

string[] meyveler = {"Elma", "Armut", "Muz"};

foreach (string meyve in meyveler) {
    Console.WriteLine(meyve);
}

6. Fonksiyonlar (Functions/Methods)

Yeniden kullanılabilir kod blokları.

// Parametresiz fonksiyon
void SelamVer() {
    Console.WriteLine("Merhaba!");
}

// Parametreli fonksiyon
void SelamVerKisiye(string isim) {
    Console.WriteLine("Merhaba " + isim);
}

// Değer döndüren fonksiyon
int Topla(int a, int b) {
    return a + b;
}

// Kullanım
SelamVer();                    // Merhaba!
SelamVerKisiye("Ahmet");       // Merhaba Ahmet
int sonuc = Topla(5, 3);       // 8

7. Diziler (Arrays)

Aynı tipte birden fazla değeri saklar.

// Dizi tanımlama
int[] sayilar = {1, 2, 3, 4, 5};
string[] isimler = new string[3];

// Dizi elemanlarına erişim
isimler[0] = "Ahmet";
isimler[1] = "Ayşe";
isimler[2] = "Mehmet";

Console.WriteLine(isimler[0]);  // Ahmet

// Dizi uzunluğu
int uzunluk = sayilar.Length;   // 5

8. Listeler (Lists)

Dinamik boyutlu diziler.

using System.Collections.Generic;

// Liste oluşturma
List sehirler = new List();

// Eleman ekleme
sehirler.Add("İstanbul");
sehirler.Add("Ankara");
sehirler.Add("İzmir");

// Eleman silme
sehirler.Remove("Ankara");

// Eleman sayısı
int adet = sehirler.Count;

// Listeyi dolaşma
foreach (string sehir in sehirler) {
    Console.WriteLine(sehir);
}

Nesne Yönelimli Programlama (OOP)

Class (Sınıf) ve Object (Nesne)

// Class tanımlama
public class Araba {
    // Properties (Özellikler)
    public string Marka { get; set; }
    public string Model { get; set; }
    public int Yil { get; set; }
    
    // Constructor (Yapıcı metot)
    public Araba(string marka, string model, int yil) {
        Marka = marka;
        Model = model;
        Yil = yil;
    }
    
    // Method (Metot)
    public void BilgiGoster() {
        Console.WriteLine($"{Yil} {Marka} {Model}");
    }
}

// Object oluşturma
Araba benimArabam = new Araba("Toyota", "Corolla", 2020);
benimArabam.BilgiGoster();  // 2020 Toyota Corolla

Encapsulation (Kapsülleme)

public class BankaHesabi {
    private double bakiye;  // private - dışarıdan erişilemez
    
    public double Bakiye {
        get { return bakiye; }
        private set { bakiye = value; }
    }
    
    public void ParaYatir(double miktar) {
        if (miktar > 0) {
            bakiye += miktar;
        }
    }
    
    public void ParaCek(double miktar) {
        if (miktar > 0 && miktar <= bakiye) {
            bakiye -= miktar;
        }
    }
}

Hata Yönetimi (Exception Handling)

try {
    int sayi = int.Parse("abc");  // Hata oluşur
}
catch (FormatException ex) {
    Console.WriteLine("Geçersiz format: " + ex.Message);
}
catch (Exception ex) {
    Console.WriteLine("Bir hata oluştu: " + ex.Message);
}
finally {
    Console.WriteLine("Her durumda çalışır");
}

Örnek: Basit Hesap Makinesi

using System;

class HesapMakinesi {
    static void Main() {
        Console.WriteLine("=== Hesap Makinesi ===");
        
        Console.Write("Birinci sayıyı girin: ");
        double sayi1 = Convert.ToDouble(Console.ReadLine());
        
        Console.Write("İkinci sayıyı girin: ");
        double sayi2 = Convert.ToDouble(Console.ReadLine());
        
        Console.WriteLine("\nİşlem seçin:");
        Console.WriteLine("1. Toplama");
        Console.WriteLine("2. Çıkarma");
        Console.WriteLine("3. Çarpma");
        Console.WriteLine("4. Bölme");
        
        int secim = Convert.ToInt32(Console.ReadLine());
        double sonuc = 0;
        
        switch (secim) {
            case 1:
                sonuc = sayi1 + sayi2;
                Console.WriteLine($"Sonuç: {sonuc}");
                break;
            case 2:
                sonuc = sayi1 - sayi2;
                Console.WriteLine($"Sonuç: {sonuc}");
                break;
            case 3:
                sonuc = sayi1 * sayi2;
                Console.WriteLine($"Sonuç: {sonuc}");
                break;
            case 4:
                if (sayi2 != 0) {
                    sonuc = sayi1 / sayi2;
                    Console.WriteLine($"Sonuç: {sonuc}");
                } else {
                    Console.WriteLine("Sıfıra bölme hatası!");
                }
                break;
            default:
                Console.WriteLine("Geçersiz seçim!");
                break;
        }
        
        Console.ReadKey();
    }
}
🎯 Öğrenme İpuçları:
  • Her gün düzenli pratik yapın
  • Küçük projelerle başlayın
  • Hataları öğrenme fırsatı olarak görün
  • Kod yazarken yorum satırları ekleyin
  • Başkalarının kodlarını okuyun
  • Online platformlarda (LeetCode, HackerRank) pratik yapın
  • Bir proje yaparak öğrenin (To-Do List, Hesap Makinesi, vb.)