Program yazmaya nereden başlamalı: Fikirden koda yolculuk
İlk programınızı yazmak için yıllarca eğitim almanıza veya güçlü bir bilgisayara ihtiyacınız yok. Bir kod düzenleyici (örneğin VS Code) kurmanız, Python gibi basit bir dil seçmeniz ve ekrana metin yazdıran 3-5 satır kod yazmanız yeterli. Tüm kurulum süreci yaklaşık 15 dakika sürer ve sonucu anında görürsünüz. Bu talimatta, araç seçiminden portföye ekleyebileceğiniz tam teşekküllü bir mini uygulama oluşturmaya kadar belirli adımları inceleyeceğiz.
Çalışma alanının hazırlanması: 15 dakikada araçlar
Kod yazmadan önce geliştirme ortamını hazırlamanız gerekir. Bu aşamadaki hatalar genellikle yeni başlayanların motivasyonunu kırar, bu nedenle kanıtlanmış algoritmayı takip edin.
- Kod düzenleyici. Visual Studio Code (VS Code) indirin ve kurun. Bu, çoğu geliştirici tarafından desteklenen ücretsiz bir endüstri standardıdır. Kurulumdan sonra, gelecekteki diliniz için mutlaka bir uzantı ekleyin (örneğin Python veya JavaScript).
- Yorumlayıcı veya derleyici. Başlangıç için en uygun seçenek Python'dur. Resmi web sitesinden (python.org) son sürümü indirin. Windows'a kurarken mutlaka "Add Python to PATH" kutucuğunu işaretleyin, aksi takdirde sistem başlatma komutunu görmeyecektir.
- Sürüm kontrol sistemi. GitHub'a kaydolun. Bu, kodlarınız için bulut tabanlı bir depolama alanıdır ve gelecekteki işverenleriniz için dijital özgeçmişiniz olacaktır.
Çekingenler için hayat kurtaran ipucu: Ana bilgisayarınıza program yüklemek istemiyorsanız, VS Code'un taşınabilir sürümünü indirin. Yönetici hakları olmadan doğrudan bir flash bellekten veya herhangi bir klasörden çalışır.
Hazırlık kontrolü: Düzenleyicide terminali açın (genellikle Ctrl + ~) ve python --version yazın. Yanıt olarak bir sürüm numarası görünürse (örneğin, 3.12.0), çalışmaya hazırsınız demektir.
İlk programlama dilinin seçimi
Yeni başlayanların yaptığı en büyük hata, hangi dilin "en iyi" olduğu konusunda uzun tartışmalara girmektir. En iyi dil yoktur, amacınıza uygun bir araç vardır. İlk proje için sözdizimi basitliği ve sonuç alma hızı kritik öneme sahiptir.
Başlangıç için popüler dillerin karşılaştırılması
| Dil | Giriş Zorluğu | İdeal Uygulama Alanı | İlk Programa Kadar Geçen Süre | Perspektifler (Junior) |
|---|---|---|---|---|
| Python | Düşük | Veri analizi, Yapay Zeka, otomasyon, backend | 5 dakika | Yüksek, geniş talep |
| JavaScript | Orta | Web siteleri, etkileşimli arayüzler | 10 dakika | Frontend'de muazzam talep |
| Go (Golang) | Orta | Yüksek yüklü sunucular, mikroservisler | 15 dakika | Büyüyen pazar, yüksek maaşlar |
| C++ | Yüksek | Oyun motorları, sistem yazılımları | 1 saat+ | Zorlu başlangıç, dar uzmanlık |
Öneri: Python ile başlayın. Sözdizimi insan diline maksimum derecede yakındır. Metin çıktı komutu sezgisel olarak anlaşılır: print("Merhaba"). Bu, parantezler ve noktalı virgüllerle uğraşmak yerine programlama mantığına odaklanmanızı sağlar.
Başlangıçta C++ ve Assembly'den kaçının. Bu diller, belleğin manuel yönetimini ve karmaşık derleyici kurulumunu gerektirir. Projeler oluşturmak yerine, tek bir hatayı çözmek için bir hafta harcama riskiniz var.
Temel kavramlar: Projeden önce bilinmesi gerekenler
Tüm teoriyi aynı anda öğrenmeye çalışmayın. İlk programı oluşturmak için üç temel unsuru anlamak yeterlidir:
- Değişkenler — verileri saklamak için hücreler (sayılar, metin).
- Koşullar — eylem seçme yeteneği (
eğerA olduysa, B yap). - Döngüler — eylemleri defalarca tekrar etme yeteneği.
Kalın ders kitapları okumak yerine hemen pratiğe geçin. İki sayı isteyen ve toplamlarını yazdıran basit bir hesap makinesi yazmayı deneyin.
# Python'da en basit betik örneği
a = float(input("İlk sayıyı girin: "))
b = float(input("İkinci sayıyı girin: "))
result = a + b
print(f"Toplama sonucu: {result}")
Bu kod zaten veri girişini, matematiksel işlemi ve biçimlendirilmiş çıktıyı kullanır. Nasıl çalıştığını anlayın, işlemi çarpma veya çıkarma ile değiştirin — işte programlamanın başlangıcı budur.
Pratik: İlk projeyi oluşturuyoruz (Yapılacaklar Listesi)
Teori, pratik olmadan işe yaramaz. Hadi bir konsol uygulaması olan "Yapılacaklar Listesi"ni (ToDo List) birlikte oluşturalım. Bu uygulama size veri listeleri, dosyalar ve döngülerle çalışmayı öğretecek. Uygulama 1-2 saat sürecektir.
Proje yapısı
todo_app adında bir klasör oluşturun ve içinde main.py adında bir dosya yaratın.
Uygulama kodu
Bu kodu dosyaya kopyalayın. Görev eklemenize, görüntülemenize, silmenize ve program kapatıldıktan sonra verilerin kaybolmaması için listeyi bir dosyaya kaydetmenize olanak tanır.
import os
FILE_NAME = "tasks.txt"
def load_tasks():
if not os.path.exists(FILE_NAME):
return []
with open(FILE_NAME, "r", encoding="utf-8") as f:
return [line.strip() for line in f.readlines()]
def save_tasks(tasks):
with open(FILE_NAME, "w", encoding="utf-8") as f:
for task in tasks:
f.write(task + "\n")
def show_menu():
print("\n--- MENÜ ---")
print("1. Görevleri göster")
print("2. Görev ekle")
print("3. Görev sil")
print("4. Çıkış")
def main():
tasks = load_tasks()
while True:
show_menu()
choice = input("Bir eylem seçin: ")
if choice == "1":
if not tasks:
print("Liste boş.")
else:
for i, task in enumerate(tasks, 1):
print(f"{i}. {task}")
elif choice == "2":
task = input("Görevi girin: ")
tasks.append(task)
save_tasks(tasks)
print("Görev eklendi!")
elif choice == "3":
if not tasks:
print("Silinecek bir şey yok.")
continue
# Seçim için listeyi göster
for i, task in enumerate(tasks, 1):
print(f"{i}. {task}")
try:
num = int(input("Silinecek görevin numarası: ")) - 1
if 0 <= num < len(tasks):
removed = tasks.pop(num)
save_tasks(tasks)
print(f"Silindi: {removed}")
else:
print("Geçersiz numara.")
except ValueError:
print("Bir sayı girin!")
elif choice == "4":
print("Görüşmek üzere!")
break
else:
print("Geçersiz komut.")
if __name__ == "__main__":
main()
Çalıştırma ve yayınlama
- Terminalde
python main.pykomutuyla programı çalıştırın. Menüdeki tüm işlevleri test edin. - Git deposunu başlatın:
git initkomutunu çalıştırın. - Dosyaları ekleyin:
git add . - Değişiklikleri kaydedin:
git commit -m "İlk proje: ToDo listesi" - GitHub'da bir depo oluşturun ve kodu
git pushkomutuyla oraya gönderin.
Artık arkadaşlarınıza gösterebileceğiniz veya özgeçmişinize ekleyebileceğiniz bir proje bağlantınız var.
Pazar istatistikleri: İşverenlerin %60'ından fazlası, junior pozisyonlara alım yaparken öncelikle diplomasına değil, adayın GitHub profiline bakar. Basit çalışan projelerin bile varlığı, mülakat şansını önemli ölçüde artırır.
Yeni başlayanların sık yaptığı hatalar
- "Eğitim sendromu": Kendi başınıza kod yazmaya çalışmadan sonsuz video ders izlemek. Sadece yazmaya ve hata yapmaya başladığınızda öğrenirsiniz.
- Her şeyi aynı anda öğrenmeye çalışmak: Dilin tüm komutlarını ezberlemeniz gerekmez. Profesyoneller sürekli sözdizimini googellar. Mantığı anlamak önemlidir, detaylara her zaman bakabilirsiniz.
- Hata mesajlarını görmezden gelmek: Hata metnini dikkatlice okuyun. Vakaların %90'ında, sorunun hangi satırda olduğu ve hangi sembolün eksik olduğu doğrudan yazılır.
- Açıklama yazmamak: Karmaşık kod bölümlerine hemen açıklamalar yazın. Bir hafta sonra, o fonksiyonu neden yazdığınızı kendiniz unutursunuz.
Sıkça Sorulan Sorular (SSS)
Programlamayı öğrenmek ne kadar sürer? Basit betikler yazmak için temel seviyeye düzenli çalışmalarla (günde 1 saat) 2-3 haftada ulaşılabilir. İşe alım için yeterli seviyeye (Junior) genellikle 6-12 aylık yoğun pratik gerekir.
Güçlü bir bilgisayar gerekli mi? Hayır. Öğrenim ve web geliştirme veya Python betikleri ile çalışmak için son 10 yılda üretilen herhangi bir dizüstü bilgisayar yeterlidir. Güçlü donanım sadece ağır grafikli oyun geliştirmek veya sinir ağlarını eğitmek için gereklidir.
Matematik zorunlu mu? Çoğu alan için (web geliştirme, otomasyon, bot oluşturma) lise müfredatı yeterlidir. Derin matematik sadece özel alanlarda gereklidir: makine öğrenimi, kriptografi, oyun motoru geliştirme.
Takılırsanız nerede yardım aranır? Uluslararası kaynakları kullanın: Stack Overflow (hazır çözümler için arama), dil dokümantasyonu, resmi forumlar. Ayrıca Telegram'daki Türkçe topluluklar ve özel sohbet grupları da faydalıdır. Soruyu doğru şekilde formüle etmek ve cevabı bulmak, bir programcının kilit becerisidir.