Süre
Modüller 9 modül
Bilgi al

Kurs Açıklaması

Dijital dünyanın temel yapı taşı olan programlama, artık her sektörde kritik bir yetkinlik haline gelmiştir. Bu kapsamlı Python eğitimi, katılımcılara sıfırdan başlayarak python programlama dilinde yetkinlik kazandırmayı hedeflemektedir.

Python'un sade yapısı ve kapsamlı kütüphane ekosistemi sayesinde, katılımcılar ilk günden itibaren çalışan projeler geliştirebilir; veri analizi, web geliştirme, otomasyon ve yapay zeka gibi modern teknolojileri alanlarında Python’ı kullanmaya başlayabilirler.

Program sonunda katılımcılar, Python ekosisteminde özgüvenle hareket edebilir, karmaşık problemlere algoritmik çözümler üretebilir ve modern yazılım geliştirme pratiklerini uygulamaya başlayabilir hale gelirler.

Hedef Kitle

Bu eğitim, programlama dünyasına adım atmak isteyen veya Python dilini profesyonel seviyede öğrenmek isteyen herkes için tasarlanmıştır.

Yazılım geliştirmeye yeni başlayanlar, kariyerinde teknoloji odaklı dönüşüm yapmak isteyenler, veri analizi ve otomasyon süreçlerinde Python kullanmayı hedefleyen profesyoneller için idealdir.

Teknik altyapısı olmayan ama iş süreçlerinde veri analizi, görselleştirme gibi konularda programlama yaklaşımını kullanmak isteyen İK ve satış gibi departmanlar için de uygundur.

Mühendisler, analistler, araştırmacılar, proje yöneticileri ve dijital becerileriyle fark yaratmak isteyen tüm profesyoneller bu eğitimden faydalanabilir.

Özellikle veri ile çalışacaklar, analiz, görselleştirme, tahmin modelleri kuracaklar veya web geliştirme alanlarına yönelecekler için sağlam bir temel oluşturur.

Ön Koşul

  • Herhangi bir programlama deneyimi gerekmemektedir

  • Temel bilgisayar kullanım becerileri yeterlidir

  • Mantıksal düşünme ve problem çözme ilgisi beklenmektedir

  • Öğrenmeye açık ve pratik yapmaya istekli olmak yeterlidir

Kazanımlar

Bu kursu tamamlayan katılımcılar aşağıdaki konularda yetkin olacaklardır:

  • Python'un temel yapılarını (değişkenler, veri tipleri, kontrol yapıları, döngüler) etkin bir şekilde kullanabilir ve algoritma mantığını kavrayabilir

  • Liste, dictionary, set gibi veri yapılarını doğru senaryolarda seçip, verimli bir şekilde manipüle edebilir

  • Fonksiyonel programlama paradigmasını anlayıp, modüler ve tekrar kullanılabilir kod yazabilir

  • Object Oriented Programming (OOP) prensiplerini uygulayarak, gerçek dünya problemlerini sınıf ve objelerle modelleyebilir

  • List comprehension, generator, decorator gibi Python'a özgü ileri düzey özellikleri kullanarak performanslı kod geliştirebilir

  • Hata yönetimi ve debugging teknikleriyle güvenilir ve sürdürülebilir uygulamalar oluşturabilir

  • pip ve conda gibi paket yöneticilerini kullanarak Python ekosisteminde özgürce hareket edebilir

  • Virtual environment'lar oluşturup, proje bağımlılıklarını profesyonel şekilde yönetebilir

  • Edindikleri pratik deneyim sayesinde iş süreçlerinde programlama gerektiren veya verim artışı yaratacak yerlerde Python kullanabilir

Konular

Modül 1 - Ortam Kurulumu ve Giriş

Python Ekosistemi

Python Ekosistemi ve Kurulum

  • Veri bilimi, web geliştirme ve otomasyonda Python

  • Veri analizi ve görselleştirmede sağladığı avantajlar

  • Diğer programlama dilleri ile karşılaştırma

  • Python 3.x ve eski versiyonlar

  • Topluluk ve ekosistem genel bakışı

Geliştirme Ortamı Kurulumu

Kurulum Temelleri

  • IDE seçimi: VS Code, PyCharm, Jupyter

  • Bu kurs için(şirkette erişime açıksa): Google Colab

  • Virtual environment yönetimi (venv, conda)

  • pip ve conda ile paket yönetimi

Modül 2 - Yazım Kuralları ve Temel Veri Yapıları

Yazım Kuralları

Temel Sözdizimi(Syntax) ve Yapısı

  • Indentation ve kod blokları

  • Yorum satırları ve documentation string'leri

  • Değişken isimlendirme kuralları

Temel Veri Yapıları ve Stringler

Temel Veri Tipleri ve İşlemleri

  • Temel veri tipler: int, float, bool, str

  • Değişken kavramı ve değişken tanımlama

  • Type checking ve type hint

  • Dynamic Typing kavramı

  • Tip dönüşümleri

  • Operatörler ve ifadeler (toplama, çıkarma, mod...)

  • Sabitler ve immutability

String Temelleri

  • Alt elemanlardan oluşma mantığı

  • String tanımlama yöntemleri (tek tırnak, çift tırnak, triple quote)

  • String concatenation (+, join)

  • String repetition

  • Escape character'ler ve raw string'ler

  • Multiline string'ler ve docstring'ler

Indexing ve Slicing

  • Pozitif ve negatif indexing

  • String slicing teknikleri

  • Step parametresi kullanımı

  • String'lerde immutability

  • String kopyalama ve bellek yönetimi

String Metodları ve formatlama

  • find(), index(), rfind(), rindex()

  • startswith(), endswith()

  • upper(), lower(), capitalize(), title(), swapcase()

  • strip(), lstrip(), rstrip()

  • split() ve .join()

  • f-string'ler ve gelişmiş özellikleri

  • Regular Expression Temelleri

Modül 3 - Koleksiyon(Collection) Veri Tipleri

Dahili Koleksiyon Veri Tipleri

Sıralı Koleksiyon Veri Yapıları

  • List'ler: oluşturma, indexing, slicing

  • List metodları ve işlemleri

  • Elemanlara anında erişim mantığı

  • Tuple'lar ve immutability faydaları

  • List vs tuple ne zaman kullanılır

  • Performans değerlendirmeleri

Dictionary ve Set Veri Tipleri

  • Dictionary'ler: key-value çiftleri

  • Hangi yapılar key olabilir

  • Dictionary metodları ve iterasyon

  • Hash mantığı

  • Set ve frozen set'ler

  • Set işlemleri: union, intersection, difference

  • Doğru veri yapısını seçme

  • Dictionary ve Set veri yapılarında eleman aramanın neden hızlı olduğu

Modül 4 - Kontrol Yapıları ve Döngüler

Kontrol Yapıları

Elamanları Karşılaştırma

  • Büyüktür, küçüktür, büyük eşittir... kavramları

  • Logical Operator(mantıksal operatörler): and, or, not

  • Mantıksal operatörlerde short-circuit kavramı

  • Stringlerde karşılaştırma işlemleri

Kontrol Yapıları

  • if/elif/else ifadeleri

  • İç içe geçmiş(nested) yapılar

  • Ternary operator

  • Pattern matching

Döngüler(loop)

for Döngüsü

  • Koşul olmadan sınırlı sayıda döngü mantığı

  • range() fonksiyonu

While Döngüsü

  • Koşul bazlı döngüler

  • Sonsuz döngüler ve kullanım alanları

  • Döngü kontrol değişkenleri

  • while vs for ne zaman kullanılır

Döngüler ile Elemanlarda İterasyon

  • Sıralı veri yapılarının elemanları üzerinden iterasyon

  • Stringler üzerinde iterasyon

  • Dictionary key ve value’ları üzerinde döngü

  • Set elemanları üzerinde döngü

  • Döngü içinde dictionary/set güncelleme tehlikeleri

Döngü Kontrol İfadeleri

  • Continue/break kullanımı

  • else bloğu

  • Nested döngü çıkış stratejileri

Modül 5 - İleri Düzey İterasyon Teknikleri ve Manipülasyon

İleri Düzey İterasyon ve Manipülasyon

Dahili Fonksiyonlar İle

  • enumerate() ile index ve değer birlikte

  • zip() ile çoklu sequence iterasyonu

  • reversed() ile ters sırada iterasyon

  • sorted() ile sıralı iterasyon

  • iter() ve next() kullanımı

List Comprehension

  • List comprehension sözdizimi ve pattern'leri

  • Dictionary ve set comprehension'ları

  • Bellek verimliliğini nasıl etkilerler

  • Comprehension vs döngü ne zaman kullanılır

  • Performans optimizasyon teknikleri

Modül 6 - Fonksiyonlar

Fonksiyon Temelleri

Fonksiyon Nedir ve Neden Kullanılır?

  • Soyutlama(abstraction) kavramı

  • Kod tekrar kullanılabilirliği

  • DRY ilkesi

  • Kod organizasyonu ve okunabilirliğini artırma

Fonksiyon Tanımlama ve Çağırma

  • def ifadesi

  • return yapısı

  • void fonksiyonlar

Fonksiyon Parametreleri ve Argümanları

  • Pozisyon bazlı

  • Keyword bazlı

  • Default argument mantığı

  • Pozisyon bazlı ve keyword bazlı yapıları bir arada kullanmak

  • *args, **kwargs kullanımları

Return Değerleri ve Ölçek(Scope) Kavramı

Return Yapısı

  • Tekli değer döndürme

  • Tuple ile birden çok değer döndürme

  • None değer döndürme

  • Return vs print

  • Farklı veri tipleri döndürme

  • Kontrol yapıları ile çıktı ayarlama

  • Erör ile başa çıkma

Namespace ve Scope Mantığı

  • Local scope, global scope

  • Built-in scope

  • Değişkenlerin yaşam döngüsü ve garbage collection

  • İsimlendirme çakışmaları ve sonuçları

  • Python namespace’leri nasıl yönetir

İleri Düzey Function Kavramları

Lambda Fonksiyonlar

  • Anomim fonksiyonlar

  • Lambda fonksiyonlarının tanımlanması

  • Ne zaman normal fonksiyon ne zaman lambda fonksiyonları kullanılır

  • Dahili fonksiyonlarda lambda kullanımı (map, filter, sorted)

  • Veri işleme pipeline'larında lambda

Decorators ve Higher-Order Function Mantığı

  • First-class objeler olarak fonksiyonlar

  • Bir fonksiyonu başka bir fonksiyona argument olarak verme

  • Decorator kavramına giriş

  • Yaygın decorator paternleri

Recursion

  • Recursive düşünme

  • Base case ve recursive case

  • Recursion faydaları ve sınırları

  • Recursion vs iteration ne zaman kullanılır

  • Klasik recursion örnekleri

Generator

  • yield keyword ve generator fonksiyonları

  • Generator ve klasik fonksiyonların farkları

  • Lazy Evaluation ile hafıza verimi artışı

  • Generator state ve execution flow

  • Birden çok yield yapısının kullanımı

  • Sonsuz generator kavramı

  • Büyük veri setlerinde çalışırken generator'ların faydaları

Modül 7 - Object Oriented Programming (OOP)

OOP Temelleri

Sınıflar(Class) ve Objeler(Object)

  • OOP yaklaşımının faydaları neler

  • OOP vs fonksiyonel programlama

  • Sınıf ve obje kavramı

  • OOP'nin temel prensipleri (Encapsulation, Inheritance, Polymorphism, Abstraction)

  • Sınıf tanımlama

  • Tanımlanan sınıftan obje oluşturma

  • Variable → Attribute, Function → Method kavramları

Sınıfların Bileşenleri

Sınıf(Class) Kavramlarına Derin Bakış

  • Instance attribute vs class attribute

  • __init__ metodu

  • self parametresini

  • Instance metodlarının kullanımı

  • @classmethod, @staticmethod kavramları

  • Setter, deleter kavramları

İleri Düzey OOP Kavramları

Inheritance ve Polymorphism

  • Parent, child; Superclass, Subclass kavramları

  • Single ve Multiple inheritence tanımlama

  • Fonksiyonların etkin kullanımı

  • Methodların üzerine yazmak(overwrite)

  • Polymorphism

Special/Magic Metodlar

  • String temsili: __str__ ve __repr__

  • Karşılaştırma operatörleri: __eq__, __lt__

  • Aritmetik operatörler: __add__, __mul__

  • Diğer magic metodları

Modül 8 - Hata Yönetimi ve Dosya İşlemleri

Exception Handling

Hata Yönetimi

  • try/except/else/finally blokları

  • Yaygın exception tipleri

  • Custom exception'lar oluşturma

  • Exception hiyerarşileri

  • Hata yönetimi en iyi uygulamaları

Debug Teknikleri

  • Debugging nedir?

  • Debugger araçlarını kullanma

  • Logging modülü yapılandırması

  • Assertion ifadeleri

  • Unit testing temelleri

  • Profiling ve performans analizi

Dosya I/O

Dosya İşlemleri

  • Metin dosyalarını okuma ve yazma

  • Binary dosya işleme

  • CSV ve JSON işleme

  • Dosya işleme için context manager'lar

  • pathlib ile path manipülasyonu

Veri Serileştirme(Serialization)

  • JSON encoding/decoding

  • Python object'leri için pickle

  • Veritabanları ile çalışma (sqlite3)

  • Konfigürasyon dosyası işleme

  • Veri doğrulama stratejileri

Modül 9 - Kütüphaneler

Paket Yönetimi Temelleri

pip Kullanımı

  • pip nedir ve nasıl çalışır

  • pip install komutu ve parametreleri

  • pip list ve kurulu paketleri görüntüleme

  • pip show ile paket detaylarını inceleme

  • pip uninstall ile paket kaldırma

  • pip freeze ve requirements.txt oluşturma

conda Kullanımı

  • Anaconda/Miniconda kurulumu ve farkları

  • conda install komutu ve channel'lar

  • conda list ve paket listeleme

  • conda update ve paket güncelleme

  • conda remove ile paket kaldırma

  • conda vs pip ne zaman hangisi kullanılır

Sanal Ortam Kurmak(Virtual Environment)

Python venv ile Environment

  • Neden ortam kurmak gerekir, faydaları nelerdir?

  • python -m venv ile environment oluşturma

  • Virtual environment'ı aktif etme (Windows/Mac/Linux)

  • pip ile paket kurulumu

  • requirements.txt kullanımı

  • deactivate ile çıkış

Conda Environment Yönetimi

  • conda create ile environment oluşturma

  • conda activate/deactivate kullanımı

  • conda env list ile environment'ları listeleme

  • environment.yml dosyası oluşturma ve kullanma

  • conda env export ve import işlemleri

  • Base environment ve custom environment'lar

Uygulamalı Kütüphane Kullanım Örneği

Pandas Kütüphanesi ile Pratik Uygulama

  • pip install pandas

  • conda install pandas

  • İlgili bağımlılıkların otomatik kurulumu

  • Versiyon kontrolü ve güncelleme

  • DataFrame ve Series oluşturma

  • CSV dosyası okuma ve yazma

  • Basit veri filtreleme ve seçme

  • Eksik veri kontrolü

  • Gruplama ve agregasyon örneği

  • Excel'e export işlemi

Bizimle iletişime geçin