Etiket: #kariyer

  • Bilgisayar Mühendisliği Nedir, Ne Değildir?

    Bilgisayar Mühendisliği Nedir, Ne Değildir?

    “Bilgisayar mühendisi misin? O zaman şu laptopuma bir bakıversene.” Bu bölümü okuyan ya da bitiren hemen herkes bu cümleyi en az bir kez duymuştur. Bilgisayar mühendisliği popüler bir bölüm ama ne olduğu hakkında yanlış bilinen çok şey var. Tercih döneminde bu bölümü düşünen biri, başka bir alandan geçmek isteyen biri ya da sadece merak eden biri için bu yazıda bölümü biraz yakından anlatmak istiyorum.

    Bu konuyu videoda da anlattım. İzleyerek öğrenmeyi seviyorsan buradan başlayabilirsin 👇

    Kısa tanım

    Bilgisayar mühendisliği, bilgisayar sistemlerinin nasıl tasarlandığını, nasıl çalıştığını ve bu sistemler üzerinde çalışan yazılımların nasıl geliştirildiğini inceleyen mühendislik dalı. Bir yanında donanım (işlemci, bellek, devreler), öbür yanında yazılım (algoritmalar, programlama, veritabanları, ağlar) var. Ortada da ikisini birbirine bağlayan teori: matematik ve problem çözme.

    Ne değildir?

    Bilgisayar tamirciliği değildir. Bir bilgisayar mühendisi bozuk bir laptopu tamir edebilir de, edemeyebilir de. Okulda bilgisayarın içini söküp takmayı değil, işlemcinin bir komutu nasıl çalıştırdığını öğreniyorsun. Teknik servis başka bir uzmanlık.

    Sadece kod yazmak değildir. Kod yazmak işin önemli bir parçası ama tamamı değil. Bir problemi parçalara ayırmak, doğru algoritmayı seçmek, sistemi tasarlamak, başkalarıyla birlikte çalışmak, hatayı bulmak… Kodu yazmak çoğu zaman bu düşünme sürecinin son adımı.

    Matematik dehası olmayı gerektirmez. Matematik dersleri var ve kolay değil: kalkülüs, lineer cebir, ayrık matematik, olasılık. Ama amaç matematikçi olmak değil, mantıklı düşünmeyi ve problemi modellemeyi öğrenmek. Düzenli çalışan biri bu derslerden geçebilir.

    Oyun oynamayı sevmek yetmez. Oyunlar birçok kişinin bilgisayara ilgisini başlatan şey ama oyun oynamak ile oyun geliştirmek çok farklı işler. Oyun geliştirme de bu bölümün ana konusu değil; kariyer yollarından sadece biri.

    “Bilgisayarı iyi kullanıyorum” demek yeterli bir sebep değildir. Bir arabayı iyi kullanmak, motorun nasıl tasarlandığını bilmek demek değil. Bölüm, bilgisayarı kullanmaktan çok onun arkasındaki mantığı anlamakla ilgili.

    Dört yılda neler öğreniliyor?

    Ders programları üniversiteden üniversiteye değişiyor ama genel akış çoğu yerde benzer:

    DönemTipik dersler
    1. yılProgramlamaya giriş, kalkülüs, fizik, ayrık matematik
    2. yılVeri yapıları, nesne yönelimli programlama, mantık devreleri, lineer cebir, olasılık
    3. yılAlgoritma analizi, işletim sistemleri, veritabanları, bilgisayar ağları, bilgisayar mimarisi, yazılım mühendisliği
    4. yılSeçmeli dersler (yapay zekâ, görüntü işleme, siber güvenlik, mobil programlama gibi) ve bitirme projesi

    Ara dönemlerde çoğu üniversitede staj zorunluluğu var. Staj, okulda öğrendiklerinin iş dünyasında nasıl kullanıldığını görmenin ilk fırsatı.

    İlk iki yıl genelde en zorlayıcı dönem: Matematik ağırlıklı dersler ve programlamaya yeni başlamanın verdiği bocalama bir araya geliyor. Bu dönemi atlatanlar için 3. ve 4. yılda dersler daha uygulamalı ve daha “bilgisayar” hissettiren konulara geliyor.

    Yazılım mühendisliğinden farkı ne?

    Tercih döneminin en çok sorulan sorularından biri. Kısaca:

    • Bilgisayar mühendisliği daha geniş: Donanım tarafını (devreler, mimari) ve teoriyi de kapsar.
    • Yazılım mühendisliği yazılımın yaşam döngüsüne odaklanır: gereksinim analizi, tasarım, test, proje yönetimi.

    Ama pratikte iki bölümün ders programları büyük ölçüde örtüşüyor ve mezunları çoğu zaman aynı işlere başvuruyor. İkisi arasında kararsızsan, bölüm adından çok üniversitenin ders programına, laboratuvarlarına ve staj imkanlarına bakmak daha faydalı.

    Mezun olunca neler yapılır?

    Bilgisayar mühendisliğinin en güzel tarafı kapıların çok olması. Bazı yollar:

    • Yazılım geliştirme: web (ön yüz, arka yüz), mobil uygulama, masaüstü yazılımları.
    • Veri ve yapay zekâ: veri analisti, veri bilimci, makine öğrenmesi mühendisi.
    • Altyapı ve bulut: sistem yöneticisi, DevOps, bulut mühendisi.
    • Siber güvenlik: güvenlik analisti, sızma testi uzmanı.
    • Gömülü sistemler: otomotivden akıllı cihazlara kadar donanımla iç içe yazılım.
    • Oyun geliştirme.
    • Kamu: bakanlıkların ve kurumların bilişim birimleri.
    • Akademi: yüksek lisans, doktora ve araştırma.
    • Teknik olmayan ama teknik bilgi isteyen roller: ürün yöneticisi, iş analisti, danışmanlık.

    Bu yolların ikisini daha önce ayrı yazılarda anlattım: veri analisti olmak için yol haritası ve kamuya girmek isteyenler için KPSS rehberi.

    Bu bölüm kimler için uygun?

    Puanından çok şu sorulara verdiğin cevaplar önemli:

    • Bir şeyin nasıl çalıştığını merak eder misin?
    • Bir problemle saatlerce uğraşıp sonunda çözdüğünde keyif alır mısın, yoksa bu seni yorar mı?
    • Hata yapmayı kaldırabilir misin? Programlama, sürekli hata alıp düzeltmekten oluşan bir iş.
    • Ders bittikten sonra da öğrenmeye devam etmeye hazır mısın? Teknoloji çok hızlı değişiyor; okulda öğrendiklerin bir başlangıç.

    Bu sorulara çoğunlukla “evet” diyorsan, matematikten korksan bile bu bölümde mutlu olma ihtimalin yüksek.

    Başlamadan önce ne yapabilirsin?

    En iyi test, biraz kod yazmayı denemek. Bunun için bilgisayarına bir şey kurman bile gerekmiyor: Bu blogdaki Python dersleri tamamen tarayıcıda, Google Colab üzerinde ilerliyor. İlk birkaç dersi bitirdiğinde “bu bana keyif veriyor mu?” sorusunun cevabını büyük ölçüde almış olursun.

    Benim için bilgisayar mühendisliği

    Benim için bilgisayar mühendisliği, dijital dünyada her şeyi yapabilen ve üretebilen tarafta yer almak demek.

    Ama dürüst olayım, bu taraf aynı zamanda kaygısı bol bir taraf. Bilgiye herkesin ulaşabildiği, birkaç aylık bir kursla ya da bir yapay zekâ aracıyla herkesin “yazılımcı” olabildiği bir dünyada bazen insanın içi sıkılıyor. “Ben neden bu kadar uğraştım?” sorusunu düşünmeden devam edebilmek kimi zaman gerçekten zor.

    Ama devam edince karşına uçsuz bucaksız bir evren çıkıyor. Oyun yapmak istersen yaparsın, bir mobil uygulama geliştirmek istersen geliştirirsin, veriden hikâye çıkarmak istersen çıkarırsın. Bu blogdaki her yazı, her proje de o evrende atılmış küçük bir adım.

    Bu bölümü düşünen birine tek bir tavsiyem olsun: Kaygıları duy ama onların seni durdurmasına izin verme. Üretmeye başladığın an, bu alanın ne kadar geniş olduğunu kendin göreceksin.

  • Kod Kartı: Liste Üreteciyle Tek Satırda Filtre

    Kod Kartı: Liste Üreteciyle Tek Satırda Filtre

    Bir listeden şarta uyan elemanları seçip yeni bir liste yapmak için dört satır yazıyorduk: boş liste, for, if, append. Liste üreteci (list comprehension) aynı işi tek satırda yapıyor.

    İtiraf edeyim, Python öğrenirken bana en zor gelen konulardan biri buydu. İlk gördüğümde satırın nereden başlayıp nerede bittiğini çözemiyordum. Aşağıdaki okuma yöntemini öğrenince her şey yerine oturdu.

    Kod

    notlar = [70, 85, 40, 90, 45]
    # Dört satırlık hali
    gecenler = []
    for n in notlar:
    if n >= 50:
    gecenler.append(n)
    # Tek satırlık hali
    gecenler = [n for n in notlar if n >= 50]
    print(gecenler) # [70, 85, 90]

    Bu satır nasıl okunur?

    [n for n in notlar if n >= 50] satırını soldan sağa şöyle oku: “Listeye n‘yi koy, notlar içindeki her n için, eğer n 50 veya üstüyse.” Yani dört satırlık kodun parçaları aynı, sadece yerleri değişmiş: listeye eklenecek şey en başa, for ortaya, if sona geliyor. Köşeli parantezler de “sonuç bir liste” demek.

    Filtrelemenin yanında dönüştürme

    Baştaki kısımda sadece n yazmak zorunda değilsin; her elemanı değiştirebilirsin:

    print([n + 5 for n in notlar])
    # [75, 90, 45, 95, 50] herkese 5 puan
    print([n + 5 for n in notlar if n < 50])
    # [45, 50] sadece kalanlara 5 puan, sadece onları listele
    isimler = ["ayşe", "mert", "zeynep"]
    print([i.capitalize() for i in isimler])
    # ['Ayşe', 'Mert', 'Zeynep']

    _ ne demek?

    Matrix yağmuru yazısındaki şu satırı hatırla:

    damlalar = [random.randint(-yukseklik, 0) for _ in range(genislik)]

    Burada döngü değişkenini hiç kullanmıyoruz; sadece genislik kadar rastgele sayı üretmek istiyoruz. Python’da kullanılmayan değişkene genelde _ adı verilir. Bu, okuyana “bu değere ihtiyacım yok, sadece tekrar sayısı önemli” der.

    Dikkat

    Liste üreteci kısa ve okunaklı olduğunda güzel. Ama içine çok şey sıkıştırırsan okunmaz hale gelir:

    # Okuması zor
    [n * 2 if n > 60 else n for n in notlar if n % 5 == 0 and n != 45]

    Bir satırı okumak için birkaç kez durman gerekiyorsa dört satırlık for döngüsüne geri dön. Kodu kısa yazmak değil, anlaşılır yazmak amaç.

    Listeleri Python Dersi 7’de, for ve if‘i Python Dersi 5 ve 6’da anlattım.

  • Açık Kaynak Nedir?

    Açık Kaynak Nedir?

    Python derslerinde kullandığımız Python’un kendisi, telefonların çoğunda çalışan Android’in temelindeki Linux, Firefox tarayıcısı… Hepsinin ortak bir özelliği var: Kodlarını herkes okuyabilir. Bunlara açık kaynak yazılım deniyor.

    Kısa tanım

    Açık kaynak, bir yazılımın kaynak kodunun herkese açık olması ve bir lisansla insanlara bu kodu kullanma, inceleme, değiştirme ve paylaşma izni verilmesi demek. Kaynak kod, bir programın insanların okuyabildiği, programlama diliyle yazılmış hali.

    Karşıtı kapalı kaynak (ya da mülk) yazılım: Programı kullanırsın ama kodunu göremez, değiştiremezsin.

    Bir benzetme: yemek tarifi

    Bir restoranda harika bir yemek yedin. Kapalı kaynak, o yemeği sadece restoranda yiyebilmek gibi: Tadına bakarsın ama tarifi sır. Açık kaynak ise tarifin kapıya asılması gibi: İstersen evde yaparsın, tuzunu azaltırsın, kendi versiyonunu arkadaşına verirsin. Biri tarifte bir hata bulursa herkes düzeltmesinden faydalanır.

    Kendin dene: Python’un içine bak

    Python açık kaynak olduğu için, kullandığın hazır fonksiyonların kodunu bilgisayarından okuyabilirsin. Mesela medyanı (ortanca değeri) hesaplayan fonksiyonun içine bakalım:

    import inspect
    import statistics
    print(inspect.getsource(statistics.median))

    Çıktının son kısmı şöyle:

        data = sorted(data)
        n = len(data)
        if n == 0:
            raise StatisticsError("no median for empty data")
        if n % 2 == 1:
            return data[n // 2]
        else:
            i = n // 2
            return (data[i - 1] + data[i]) / 2

    Tanıdık geldi mi? sorted ve len Python Dersi 7’den, if/else Python Dersi 5’ten. Python’u yazan geliştiriciler de bizim derslerde öğrendiğimiz araçlarla kod yazıyor. Açık kaynağın en güzel tarafı bu: “Bu nasıl çalışıyor?” diye merak ettiğinde cevabı kendin okuyabiliyorsun.

    Açık kaynak bedava mı demek?

    Çoğu zaman evet ama asıl mesele bu değil. Açık kaynak dünyasında sık kullanılan bir söz var: “Bedava bira gibi değil, özgür konuşma gibi özgür.” Yani önemli olan fiyat değil, kodla ne yapabileceğin. Ücretsiz olup kodu kapalı olan birçok uygulama var; bunlar açık kaynak değil.

    Açık kaynak kod kullanan şirketler de para kazanabilir: destek hizmeti satarak, bulutta barındırarak ya da açık kaynak bir projenin üstüne kendi ürününü kurarak.

    Lisanslar: “Şu şartlarla kullanabilirsin”

    Kodun herkese görünür olması tek başına yetmez; neye izin verildiğini lisans belirler. En sık karşılaşacağın üç lisans:

    LisansKısaca
    MITÇok serbest. Kodu istediğin gibi kullan, sadece lisans metnini ve telif notunu koru.
    Apache 2.0MIT’e benzer serbestlik, ek olarak patent haklarıyla ilgili maddeler içerir.
    GPLKodu değiştirip dağıtırsan, senin sürümün de aynı şekilde açık kaynak olmak zorunda.

    GitHub’da bir projenin lisansını görmek için depodaki LICENSE dosyasına bakman yeterli. Lisansı olmayan bir kod, herkese açık görünse bile hukuken açık kaynak sayılmaz; sahibi izin vermedikçe kullanım hakları belirsiz kalır.

    Neden önemli?

    • Öğrenmek için: Gerçek projelerin kodunu okumak, ders kitabından sonra gelen en iyi okul.
    • Güven için: Kod herkese açık olduğu için başkaları da inceleyip hataları ve güvenlik açıklarını bulabiliyor.
    • Hız için: Herkes tekerleği yeniden icat etmiyor. Veri biliminde kullandığımız pandas, NumPy, scikit-learn gibi kütüphanelerin hepsi açık kaynak.
    • Kariyer için: Açık kaynak bir projeye yaptığın katkılar herkese açık bir portfolyo gibi çalışır.

    Nasıl katkı verilir?

    Açık kaynak projeye katkı vermek için usta bir yazılımcı olman gerekmiyor. Başlamak için birkaç kolay yol:

    • Kullandığın bir projede hata bulursan, projenin GitHub sayfasında “issue” açarak bildir.
    • Belgelerdeki yazım hatalarını düzelt ya da eksik bir örneği ekle.
    • Belgelerin Türkçe çevirisine yardım et.
    • GitHub’da “good first issue” etiketli işlere bak; bunlar yeni başlayanlar için ayrılmış küçük görevler.

    Bir cümlede

    Açık kaynak, bir yazılımın tarifini herkese açmak demek: Herkes okuyabilir, değiştirebilir, paylaşabilir; kuralları da lisans belirler.

  • Kod Kartı: zip ile İki Listeyi Birlikte Gezmek

    Kod Kartı: zip ile İki Listeyi Birlikte Gezmek

    Elinde birbirine ait iki liste var: bir yanda öğrenci isimleri, öbür yanda notları. İkisini aynı anda gezmek için indeks hesabına girmene gerek yok. zip iki listeyi fermuar gibi birleştirir ve elemanları çift çift verir.

    Kod

    isimler = ["Ayşe", "Mert", "Zeynep"]
    notlar = [85, 70, 92]
    for isim, puan in zip(isimler, notlar):
    print(f"{isim}: {puan}")
    # Ayşe: 85
    # Mert: 70
    # Zeynep: 92

    Bu satır nasıl çalışıyor?

    zip(isimler, notlar) iki listenin aynı sıradaki elemanlarını eşleştirir: önce ("Ayşe", 85), sonra ("Mert", 70), sonra ("Zeynep", 92). Adı da buradan geliyor: fermuarın (zip) iki tarafı diş diş birbirine geçer.

    for isim, puan in ... yazınca her çift, enumerate kartındaki gibi iki değişkene dağıtılır. Çiftlerin hepsini birden görmek istersen listeye çevirebilirsin:

    print(list(zip(isimler, notlar)))
    # [('Ayşe', 85), ('Mert', 70), ('Zeynep', 92)]

    zip olmadan aynı iş şöyle yapılır:

    for i in range(len(isimler)):
    print(f"{isimler[i]}: {notlar[i]}")

    Çalışır, ama isimler[i], notlar[i] diye her seferinde indeksle uğraşmak hem okumayı zorlaştırır hem de hata yapmaya açık kapı bırakır. zip‘li hali ne yaptığını kendisi anlatıyor.

    İkiden fazla liste

    zip istediğin kadar listeyi birleştirebilir:

    sehirler = ["Adana", "İzmir", "Ankara"]
    for isim, puan, sehir in zip(isimler, notlar, sehirler):
    print(f"{isim} ({sehir}): {puan}")
    # Ayşe (Adana): 85
    # Mert (İzmir): 70
    # Zeynep (Ankara): 92

    Dikkat

    Listelerin uzunluğu farklıysa zip en kısa liste bitince durur ve hata vermez:

    kisa = ["Ayşe", "Mert"]
    print(list(zip(kisa, notlar)))
    # [('Ayşe', 85), ('Mert', 70)] 92 sessizce kayboldu

    Bir listeye eleman eklemeyi unuttuysan bunu fark etmeyebilirsin. Python 3.10 ve sonrasında zip(kisa, notlar, strict=True) yazarsan uzunluklar farklı olduğunda hata alırsın ve sorunu hemen görürsün.

    Döngüleri Python Dersi 6’da, listeleri Python Dersi 7’de anlattım.

  • Açı, Üçgen, Türev: Atatürk’ün Geometri Kitabı

    Açı, Üçgen, Türev: Atatürk’ün Geometri Kitabı

    Matematik dersinde “üçgenin iç açıları toplamı” derken bu kelimelerin ne kadar yeni olduğunu hiç düşündün mü? Cumhuriyet’in ilk yıllarında bir öğrenci aynı cümleyi “müsellesin zaviyeleri” diye kurardı. Bugün hepimizin ağzına yerleşmiş olan “açı”, “üçgen”, “artı”, “eksi” gibi kelimelerin bir kısmı, Atatürk’ün ölümünden kısa süre önce kendi eliyle yazdığı 44 sayfalık bir kitapla yerleşti.

    Cumhuriyet’in 103. yılında bu küçük kitabı anlatmak istiyorum. Çünkü bilimi bir ülkenin kendi dilinde konuşulabilir kılmak, en az bir okul ya da bir fabrika açmak kadar büyük bir iş.

    “En hakiki mürşit ilimdir”

    Atatürk’ün en çok bilinen sözlerinden biri 1924 yılına ait. Tam hali şöyle başlıyor: “Dünyada her şey için, maddiyat için, maneviyat için, hayat için, muvaffakiyet için en hakiki mürşit ilimdir, fendir.”

    Sözün devamı daha az bilinir ama bence asıl can alıcı kısım orada: Bilimin her an geliştiğini kavramak ve ilerlemelerini zamanında izlemek gerektiğini, binlerce yıl önceki kuralları bugün aynen uygulamaya kalkışmanın bilimin içinde olmak anlamına gelmediğini söylüyor. Yani bilim bir kere öğrenip rafa kaldıracağın bir şey değil; sürekli güncellenen bir yol gösterici.

    Teknolojiyle uğraşan biri için bu cümle hiç eskimiyor. Gelişmeleri takip etmeyen birinin elindeki bilgi birkaç yılda eskiyor.

    Geometri kitabının hikâyesi

    Yıl 1936. Atatürk Dolmabahçe’de. Sonbaharda Türk Dil Kurumu’ndan Agop Dilaçar ve Süreyya Anderiman Beyoğlu’ndaki bir kitapçıya gönderilip Fransızca geometri kitapları alınıyor. Atatürk bunları inceliyor, ardından 1936-1937 kışında Geometri adındaki kitabı kendi eliyle yazıyor.

    Kitabın bazı özellikleri:

    • 44 sayfa, üç bölüm ve 73 çizimden oluşuyor.
    • Kapakta yazar adı yok. Kitap, geometri öğretenlere ve bu alanda kitap yazacaklara kılavuz olsun diye Kültür Bakanlığı adına yayımlanıyor.
    • Atatürk kendisine önerilen terimleri de düzeltiyor. Örneğin “arta” ve “ekse” diye önerilen kelimeleri “artı” ve “eksi” olarak değiştiriyor.
    • 1937 Kasım’ında yeni geometri kitabının ve terim listesinin okullara ve öğretmenlere gönderilmesi isteniyor.

    Tek bir kitap gibi görünse de asıl etkisi sınıflarda oldu: Öğretmenler ve ders kitabı yazarları bu terimleri kullandıkça kelimeler yerleşti.

    Eski terimler, yeni terimler

    Eski terimKitapla yerleşen terim
    müsellesüçgen
    zaviyeaçı
    dılıkenar
    muvaziparalel
    zaitartı
    nakıseksi
    riyaziyematematik

    Kitapta geçen diğer terimlerden bazıları: boyut, yüzey, çap, yarıçap, çember, teğet, açıortay, köşegen, ikizkenar, paralelkenar, yatay, düşey, toplam, oran, orantı, türev, alan.

    “Çap”, “köşegen”, “açıortay” kelimelerine bir daha bak: kelimenin kendisi ne anlama geldiğini söylüyor. Köşeleri birleştiren doğru, açıyı ortadan bölen doğru. Bir öğrencinin tanımı ezberlemesine gerek kalmıyor.

    İsim vermek neden bu kadar zor?

    Yazılımcılar arasında yaygın bir şaka vardır: Bilgisayar biliminde iki zor şey vardır, önbelleği geçersiz kılmak ve bir şeye isim vermek.

    Kod yazarken bir değişkene x mi diyeceksin, ogrenci_notlari mı? İkisi de çalışır ama ikincisini okuyan herkes ne olduğunu hemen anlar. Python derslerinde değişken adlarını anlamlı seçmeye bu yüzden bu kadar önem veriyoruz.

    Geometri kitabı da aslında bir isimlendirme projesi. “Zaviye” ile “açı” aynı kavramı anlatıyor, ama birini öğrenmek için ayrı bir dil bilmen gerekiyor, diğerini ise günlük hayattan zaten tanıyorsun. Bilimin dilini sadeleştirmek, bilime giriş kapısını genişletmek demek.

    Python ile küçük bir çeviri deneyi

    Eski terimleri yenileriyle değiştiren bir program yazalım. Bunun için bir sözlük (dictionary) kullanıyoruz; sözlükleri Python Dersi 8’de ayrıntılı anlatacağım.

    from datetime import date
    eski_yeni = {
    "müselles": "üçgen",
    "zaviye": "açı",
    "dılı": "kenar",
    "muvazi": "paralel",
    "zait": "artı",
    "nakıs": "eksi",
    "riyaziye": "matematik",
    }
    cumle = "Her müselles üç dılıdan ve üç zaviyeden oluşur."
    for eski, yeni in eski_yeni.items():
    cumle = cumle.replace(eski, yeni)
    print(cumle)
    ilan = date(1923, 10, 29)
    bugun = date(2026, 10, 29)
    gun = (bugun - ilan).days
    print(f"Cumhuriyet {bugun.year - ilan.year} yaşında: {gun:,} gün".replace(",", "."))

    Çıktı:

    Her üçgen üç kenardan ve üç açıden oluşur.
    Cumhuriyet 103 yaşında: 37.621 gün

    “Açıden” kelimesini fark ettin mi? Program kelimeyi doğru değiştirdi ama Türkçenin ünlü uyumunu bilmediği için eki düzeltmedi; doğrusu “açıdan”. Bu küçük hata asıl büyük noktayı gösteriyor: Bir dili değiştirmek kelime değiştirmekten ibaret değil. Yeni terimlerin dilin kurallarına uyması, eklerle söylenebilmesi gerekiyor. Geometri kitabındaki terimlerin tutmasının bir sebebi de bu: “açıdan”, “üçgenin”, “kenarları” diye rahatça çekimlenebiliyorlar.

    Küçük bir alıştırma: Sözlüğe “zaviyeden”: “açıdan” gibi ekli halleri de ekleyerek çıktıyı düzelt. Hangi sırayla eklediğinin neden önemli olduğunu da düşün.

    Bilim için kurulan üniversite

    Aynı dönemin bir başka büyük adımı 1933 Üniversite Reformu. Darülfünun kapatıldı ve yerine Tıp, Hukuk, Edebiyat ve Fen fakülteleriyle İstanbul Üniversitesi kuruldu.

    Reformun en ilginç tarafı zamanlaması. Aynı yıl Almanya’da Naziler, Yahudi kökenli ya da rejime karşı olan bilim insanlarını üniversitelerden atmaya başlamıştı. Türkiye bu akım insanların bir kısmını davet etti. Tıptan matematik ve fen bilimlerine, hukuktan mimarlığa kadar pek çok alanda ders verdiler; matematikçi Richard von Mises ve mimar Bruno Taut bunlardan sadece ikisi. Yani zor bir dönemde hem bilim insanları güvenli bir yer buldu hem de genç Cumhuriyet’in üniversiteleri güçlendi.

    Bugün bize ne söylüyor?

    Bu yazıyı yazarken şunu düşündüm: Bugün yapay zekâ, veri bilimi, bulut bilişim gibi alanlarda kullandığımız terimlerin çoğu İngilizce. “Machine learning” mi diyeceğiz, “makine öğrenmesi” mi? “Prompt” mu, “istem” mi? Bu blogda yapmaya çalıştığım şeylerden biri de tam olarak bu: teknolojiyi Türkçe, sade ve herkesin anlayabileceği şekilde anlatmak.

    Geometri kitabı bana şunu hatırlattı: Bilim herkes için olacaksa, herkesin anlayacağı bir dilde konuşulmalı.

    Cumhuriyet Bayramımız kutlu olsun.

    Kaynaklar :

  • Ada Lovelace Günü: Teknolojinin İlk Satırlarındaki Kadın

    Ada Lovelace Günü: Teknolojinin İlk Satırlarındaki Kadın

    4–6 dakika

    Bugün 13 Ekim, Ekim ayının ikinci salısı. Bu gün dünyanın birçok yerinde Ada Lovelace Günü olarak anılıyor: bilim, teknoloji, mühendislik ve matematikte iz bırakan kadınları görünür kılma günü.

    Bu yazıda sana çoğu zaman “ilk bilgisayar programcısı” olarak anılan Ada Lovelace’ı, onun izinden giden üç kadını ve bu hikâyenin bugün teknolojiye adım atan sana ne söylediğini anlatıyorum.

    Ada Lovelace kimdi?

    Ada Lovelace, 10 Aralık 1815’te Londra’da Augusta Ada Byron adıyla doğdu. Babası şair Lord Byron’dı. Ada şiirle değil, matematikle büyüdü: matematik ve bilim eğitimini özel hocalardan aldı. Hocalarından biri, döneminin en tanınmış bilim insanlarından Mary Somerville’di.

    Ada’nın hayatını değiştiren tanışmayı da yine bir kadın sağladı. 5 Haziran 1833’te, henüz 17 yaşındayken, Somerville aracılığıyla matematikçi Charles Babbage ile tanıştı. Babbage o sırada hesap yapan makineler tasarlıyordu ve Ada bu makinelere tutuldu.

    Ada Lovelace 27 Kasım 1852’de, 36 yaşında hayatını kaybetti. Kısa hayatına sığdırdığı birkaç sayfa ise bilgisayar tarihinin en çok anılan metinlerinden biri oldu.

    Henüz yapılmamış bir makine için program

    Babbage’ın en iddialı tasarımı Analitik Makine’ydi: mekanik, her türlü hesabı yapabilecek şekilde düşünülmüş genel amaçlı bir bilgisayar. Makine hiçbir zaman tamamlanamadı. Ama Ada onun ne yapabileceğini kağıt üzerinde, herkesten daha açık gördü.

    Babbage 1840’ta İtalya’nın Torino kentinde makinesini anlatan bir konuşma yaptı. İtalyan mühendis Luigi Menabrea bu konuşmayı Fransızca bir makaleye dönüştürdü. Ada’dan makaleyi İngilizceye çevirmesi istendi. O ise yalnızca çevirmekle kalmadı: dokuz ay boyunca çalıştı ve metne A’dan G’ye kadar harflendirdiği yedi not ekledi. Notlar, çevirinin yaklaşık üç katı uzunluğundaydı ve Eylül 1843’te yalnızca baş harfleriyle, “AAL” imzasıyla yayımlandı.

    Not G: Adım adım bir algoritma

    Notların sonuncusu olan Not G, makinenin Bernoulli sayıları adı verilen bir sayı dizisini nasıl hesaplayacağını adım adım anlatıyordu. Bu yöntem bugün sıkça “ilk yayımlanmış bilgisayar programı” olarak anılıyor.

    Bir not düşeyim: Babbage’ın da daha önce yazdığı ama yayımlamadığı programlar vardı. Makine yapılmadığı için Ada’nın programı da hiç çalıştırılamadı. Ama Ada’yı özel kılan tek şey bu algoritma değil.

    Makinenin hesaptan fazlasını yapabileceğini gördü

    Analitik Makine hesap yapmak için tasarlanmıştı. Ada ise bir adım öteye geçti: makinenin sayılardan başka şeyler üzerinde de çalışabileceğini yazdı. Örneğin müzikteki seslerin arasındaki ilişkiler sembollerle ifade edilebilirse, makinenin karmaşık müzik parçaları bestleyebileceğini öngördü.

    Bugün bilgisayarların müzik ürettiği, resim çizdiği, metin yazdığı bir dünyada yaşıyoruz. Ada bunu, makine daha kağıt üzerindeyken hayal etti. Kendi yaklaşımına “şiirsel bilim” (poetical science) diyordu: hayal gücü ile matematiğin bir arada çalışması.

    Ada Lovelace Günü nedir?

    Ada Lovelace Günü 2009’da İngiltere’de Suw Charman-Anderson tarafından başlatıldı ve her yıl Ekim ayının ikinci salısı anılıyor. Amacı, kadınların bilim, teknoloji, mühendislik ve matematikteki katkılarını görünür kılmak.

    Bence günün en güçlü yanı şu: teknolojiye yeni adım atan bir kızın ya da kadının, kendinden önce bu yoldan geçmiş isimleri görmesini sağlıyor. Gördüğün şey, olabileceğini düşündüğün şeyi değiştiriyor.

    Ada’nın izinden giden üç kadın

    Ada’nın hikâyesi bir başlangıçtı. Bilgisayar tarihinin dönüm noktalarının birçoğunda kadınların imzası var. İşte üç tanesi:

    Grace Hopper: Bilgisayarla insan diline yakın bir dilde konuşmak

    Grace Hopper, bilgisayara insan diline yakın komutlarla program yazılabileceğini savundu. Ekibiyle birlikte ilk derleyicilerden biri olan A-0’ı geliştirdi. Derleyici, insanın yazdığı kodu makinenin anlayacağı dile çeviren programdır. Hopper’ın anlattığına göre başta bu fikre kimse inanmadı. Onun tasarım anlayışı, iş dünyası için geliştirilen COBOL dilinin temelini oluşturdu. Hopper ABD Donanması’nda amiral rütbesine kadar yükseldi.

    Küçük bir düzeltme: Bilgisayardaki hataya “bug” denmesini Hopper icat etmedi; bu kelime ondan önce de kullanılıyordu. Ama 1947’de ekibinin bir rölenin içinde sıkışmış bir güve bulması ve bunu kayıt defterine yapıştırması, terimin bilgisayar dünyasında yayılmasına katkı sağladı.

    Katherine Johnson: Bilgisayarın hesabını kontrol eden kadın

    Katherine Johnson, NASA’da ve ondan önceki kurum NACA’da 1953’ten 1986’ya kadar uzay araçlarının yörüngelerini hesapladı. NASA, astronot John Glenn’in Dünya etrafındaki yörüngesini ilk kez elektronik bilgisayarlarla hesapladığında, sonuçları doğrulaması için Johnson’a başvurdu. Glenn, uçmayı kabul etmeden önce özellikle onun da hesaplara bakmasını istemişti. Johnson’ın hikâyesi 2016 yapımı Hidden Figures (Gizli Sayılar) filminde anlatılıyor.

    Margaret Hamilton: Aya giden yazılım

    Margaret Hamilton, MIT’de Apollo programının uçuş yazılımını geliştiren ekibi yönetti. Ekibinin yazdığı yazılım, hataları fark edip sistemi toparlayabilecek şekilde tasarlanmıştı. “Yazılım mühendisliği” terimini ilk kullananlardan biri de oydu. Bu terimi, yazılımı donanımdan ve diğer mühendislik dallarından ayırmak için kullandığını anlatıyor. Hamilton 2016’da ABD Başkanlık Özgürlük Madalyası’nı aldı.

    Bu hikâye bugün sana ne söylüyor?

    Bu dört kadının ortak bir yanı var: hepsi henüz tam olarak var olmayan bir şey üzerinde çalıştı. Ada, yapılmamış bir makine için program yazdı. Hopper, kimsenin inanmadığı bir fikri savundu. Hamilton, henüz adı bile konmamış bir alanın adını koydu. Johnson, makinenin hesabına güvenin henüz oluşmadığı bir dönemde o güveni sağlayan kişi oldu.

    Buradan çıkardığım ders şu: Bir alanda kendine benzeyen çok kişi görmemen, o alana ait olmadığın anlamına gelmez. Bazen yolu sen açarsın, arkandan gelenler de seni görür.

    Bilgisayar mühendisliğine Ada Lovelace sayesinde başlamadım. Ama bu yolda ilerlememin, düştüğüm anlarda yeniden kalkmamın sebeplerinden biri o oldu. Notlarını yalnızca baş harfleriyle imzalayan bir kadının bugün bilgisayar tarihinin en çok anılan isimlerinden biri olması, bana her seferinde devam etmemi hatırlatıyor.

    Bugün ne yapabilirsin?

    • Bir hikâye paylaş. Sana ilham veren bir kadın bilim insanının ya da mühendisin hikâyesini #AdaLovelaceDay etiketiyle paylaş.
    • İlk satırını yaz. Ada’nın yaptığı şey özünde bir makineye adım adım ne yapacağını anlatmaktı. Sen de bugün başlayabilirsin: Python Dersi 1: Python Nedir, Ne İşe Yarar?
    • Birine cesaret ver. Çevrende teknolojiye ilgi duyan bir kız ya da kadın varsa, ona bu yazıyı gönder ve neden başarabileceğini düşündüğünü söyle.

    Ada’nın notları “AAL” imzasıyla yayımlanmıştı. Bugün senin adının tamamıyla yazacağın satırları merak ediyorum.

    Kaynaklar

  • Python Kurulumu ve Google Colab: Adım Adım İlk Programın (Python Dersi 2)

    Python Kurulumu ve Google Colab: Adım Adım İlk Programın (Python Dersi 2)

    5–7 dakika

    İlk derste Python’ın ne olduğunu ve neden iyi bir ilk dil olduğunu konuştuk. Bugün iki şey yapacaksın: Python’ı Windows bilgisayarına kuracak ve bu seri boyunca kod yazacağımız yer olan Google Colab’da ilk programını çalıştıracaksın.

    Neden ikisi birden? Python’ı bilgisayarına kurmayı bilmek, ileride kendi projelerini yaparken işine yarayacak. Ama derslerin daha kolay takip edilmesi için seri boyunca Google Colab kullanacağız. Colab tarayıcıda çalışır; kurulum yapamasan bile derslere devam edebilirsin.

    Kurulum bölümü Windows için yazıldı. Mac kullanıyorsan kurulum dosyasını python.org/downloads adresinden indirebilirsin. Colab bölümü ise her bilgisayarda aynı çalışır.

    Bu dersin Colab bölümü ve alıştırmaları hazır bir not defterinde: Colab’da Aç. Serinin tüm not defterleri GitHub’daki python-dersleri deposunda.

    Hangi Python sürümünü kurmalısın?

    Kısa cevap: en güncel Python 3 sürümünü. Bu yazıyı yazdığım sırada Python’ın resmî belgeleri Python 3.15 sürümünü gösteriyor. Sürüm numarasını ezberlemene gerek yok, çünkü aşağıdaki yöntem en güncel sürümü kendisi kurar.

    Bilmen gereken bir değişiklik var: Windows’ta Python kurmak eskisinden farklı. Python’ın resmî Windows belgesi artık Python Install Manager (Python kurulum yöneticisi) adı verilen aracı öneriyor. Eski .exe kurulum dosyası 3.14 sürümünden beri kullanımdan kaldırılacak olarak işaretli ve 3.16’dan itibaren hiç üretilmeyecek.

    Bu yüzden eski bir video ya da yazı “Add python.exe to PATH kutusunu işaretle” diyorsa şaşırma; o adım eski kurulum dosyasına ait. Bir de şu: anlatımda print "Merhaba" gibi parantezsiz kod görürsen o kaynak artık kullanılmayan Python 2 için yazılmıştır, kapatabilirsin.

    Windows’a Python kurulumu

    Kurulum yöneticisini iki yoldan biriyle alabilirsin. Resmî belgeye göre iki yol da aynı aracı kurar.

    Yol 1: Microsoft Store

    1. Başlat menüsünden Microsoft Store’u aç.
    2. Arama kutusuna “Python Install Manager” yaz. Yayıncının Python Software Foundation olduğunu kontrol et.
    3. Yükle düğmesine bas ve bitmesini bekle.

    Yol 2: python.org

    1. python.org/downloads sayfasına git.
    2. Windows için Python Install Manager’ı indir.
    3. İnen dosyaya çift tıkla ve Yükle’yi (Install) seç.

    İlk çalıştırma

    Kurulum bitince Başlat menüsüne “Terminal” yaz ve aç. Terminal, bilgisayara yazıyla komut verdiğin penceredir. Bilgisayarında Terminal yoksa “Komut İstemi”ni açabilirsin. Şunu yaz ve Enter’a bas:

    python

    Bilgisayarında hiç Python yoksa kurulum yöneticisi en güncel sürümü otomatik olarak indirip kurar. Bu sırada bir klasörü PATH’e eklemek isteyip istemediğini sorabilir. PATH, Windows’un komutları aradığı klasörlerin listesidir. Resmî belgeye göre bu adım isteğe bağlı; bu seri için gerekmiyor.

    Kurulumu kontrol et

    Yeni bir terminal penceresi aç ve şunu yaz:

    python --version

    Ekranda Python 3.15.0 gibi bir satır görmelisin. Son rakamlar farklı olabilir; 3 ile başlaması yeterli. Bilgisayarında birden fazla Python sürümü varsa py list komutu hepsini ve hangisinin varsayılan olduğunu gösterir.

    İlk komutların

    Terminale yalnızca python yazıp Enter’a basınca satır başında >>> işareti belirir. Buna shell (kabuk) denir: yazdığın her satırı anında çalıştırır ve sonucu gösterir. İki komut dene:

    >>> print("Merhaba")
    Merhaba
    >>> 2 + 3
    5

    Shell’den çıkmak için exit() yaz. Shell küçük denemeler için birebirdir ama pencereyi kapatınca yazdığın her şey kaybolur. Bu yüzden seride kodlarımızı Google Colab’da yazacağız.

    Bu seride neden Google Colab kullanacağız?

    Google Colab, Python kodunu tarayıcıda yazıp çalıştırmana yarayan bir Google aracıdır. Bu seri için üç avantajı var:

    • Kurulum gerektirmez. Google hesabınla açılır. Okul ya da iş bilgisayarına program kuramıyorsan bile derslere devam edersin.
    • Her bilgisayarda aynıdır. Windows, Mac ya da tablet fark etmez; ekran görüntüleri herkesinkine benzer.
    • Veri bilimi için hazırdır. NumPy ve Pandas gibi kütüphaneler yüklü gelir. Serinin sonlarına doğru bunlarla çalışırken ek kurulum yapmayacağız.

    Bilmen gereken iki şey de var: Colab’ı kullanmak için internet bağlantısı şart. Bir de Colab’daki Python sürümünü Google belirler, bilgisayarına kurduğun sürümden biraz eski olabilir. Bu seride yazacağımız kodlar için bu fark sorun yaratmaz.

    Google Colab’da ilk programın

    1. Tarayıcında colab.research.google.com adresine git ve Google hesabınla giriş yap.
    2. Yeni not defteri (New notebook) seçeneğine tıkla.
    3. Sol üstteki dosya adına tıkla ve python-ders-2 yap.

    Karşına çıkan kutuya hücre (cell) denir. Kodunu hücreye yazar, çalıştırırsın; sonuç hemen altında görünür. Bir not defterinde istediğin kadar hücre olabilir; yenisini eklemek için üstteki + Kod düğmesini kullan.

    İlk hücreye Ders 1’deki kodu yapıştır:

    # Bir öğrencinin üç sınav notu
    notlar = [70, 80, 90]
    # Ortalamayı bul: notların toplamını, not sayısına böl
    ortalama = sum(notlar) / len(notlar)
    # Sonucu ekrana yazdır
    print("Ortalaman:", ortalama)
    # Ortalamaya göre karar ver
    if ortalama >= 50:
    print("Dersi geçtin")
    else:
    print("Bir daha denemelisin")

    Hücreyi çalıştırmak için solundaki üçgen düğmeye bas ya da Shift + Enter tuşlarını kullan. İlk çalıştırma birkaç saniye sürebilir, çünkü Colab arka planda sana bir çalışma ortamı hazırlıyor. Hücrenin altında şu iki satırı gördüysen ilk programını çalıştırdın:

    Ortalaman: 80.0
    Dersi geçtin

    Not defterin nerede saklanıyor?

    Colab not defterlerini Google Drive’ında, “Colab Notebooks” adındaki klasörde saklar. Ertesi gün kaldığın yerden devam etmek için o dosyayı açman yeter. Her ders için ayrı bir not defteri açmanı öneririm: python-ders-3, python-ders-4 gibi.

    Sık karşılaşılan hatalar

    python yazınca Microsoft Store açılıyor ya da komut bulunamıyor

    Windows’un kendi kısayolları karışmış olabilir. Başlat menüsüne “Manage app execution aliases” yaz (Türkçe Windows’ta “Uygulama yürütme diğer adlarını yönet” olarak görünür) ve “Python (default)” satırlarının açık olduğunu kontrol et. Zaten açıksa kapatıp yeniden aç. Sonra terminali kapatıp yeni bir pencere aç. Bu çözüm Python’ın resmî Windows belgesinde de öneriliyor.

    Colab’da hücreyi çalıştırdım ama “NameError” aldım

    Colab’da her hücre ayrı çalışır ama aynı belleği paylaşır. Bir hücrede tanımladığın notlar gibi bir değeri başka hücrede kullanacaksan, önce onu tanımlayan hücreyi çalıştırman gerekir. Not defterini yeniden açtığında hücreleri yukarıdan aşağı sırayla çalıştır.

    “SyntaxError: ‘(‘ was never closed”

    Açtığın bir parantezi kapatmamışsın. Hata mesajı sorunun hangi satırda olduğunu da söyler; o satıra bak. Hata mesajlarını okumayı erken öğrenmek seni çok zamandan kurtarır.

    Bu derste ne öğrendin?

    • Windows’ta Python artık Python Install Manager ile kuruluyor; eski .exe kurulum dosyası emekliye ayrılıyor.
    • python --version kurulu sürümü gösterir. >>> işaretli shell küçük denemeler içindir.
    • Bu seride kodları Google Colab’da yazacağız: kodu hücreye yazıp Shift + Enter ile çalıştırırsın.
    • Colab not defterlerin Google Drive’daki “Colab Notebooks” klasöründe durur.

    Alıştırmalar

    1. Hücrede hesap yap. Colab’da yeni bir hücre aç, 7 * 6 yaz ve çalıştır. Sonuç ne çıktı?
    2. Kendi notlarını gir. İlk hücredeki notları [40, 45, 50] yap ve hücreyi yeniden çalıştır. Ekranda ne yazıyor?
    3. Bir satır ekle. Aynı hücrenin en sonuna, satır başında boşluk bırakmadan print("Bu benim ilk Python programım") satırını ekle ve çalıştır. Sonra aynı satırın başına dört boşluk koyup tekrar çalıştır. Ne değişti?
    4. Bilerek hata yap. Bir satırdaki kapanış parantezini sil ve hücreyi çalıştır. Hata mesajı sana ne söylüyor?

    Cevaplar

    1. Sonuç 42. Colab’da hücrenin son satırı bir işlemse, print yazmasan da sonucu hücrenin altında görürsün.
    2. Ortalaman: 45.0 ve Bir daha denemelisin. Ortalama 50’nin altında kaldığı için else kısmı çalışır.
    3. Boşluksuz yazdığında satır her seferinde görünür. Dört boşlukla yazdığında satır else bloğunun parçası olur ve ortalaman 50 ya da üstündeyse hiç görünmez. Ders 1’de bahsettiğimiz girinti tam olarak budur.
    4. SyntaxError: '(' was never closed. Python parantezin kapanmadığını ve sorunun hangi satırda olduğunu söyler.

    Sıradaki ders

    Bir sonraki derste değişkenleri ve veri tiplerini öğreneceğiz. Ders 1’den beri bekleyen sorunun cevabı da orada: ortalama neden 80 değil de 80.0 çıkıyor? Değişkenler ve Veri Tipleri (Python Dersi 3)