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