Python Programlama
Bireysel sayfadasınız. Kurumsal sayfaya geçebilirsiniz.
Renkler tuhaf mı görünüyor? Samsung Internet tarayıcısı koyu modda site renklerini değiştiriyor olabilir. Kapatmak için Internet menüsünden Ayarlar → Kullanışlı Özellikler → Labs → Web site koyu temasını kullan seçeneğini etkinleştirebilirsiniz.
Bireysel sayfadasınız. Kurumsal sayfaya geçebilirsiniz.
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.
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.
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
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
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ışı
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
Indentation ve kod blokları
Yorum satırları ve documentation string'leri
Değişken isimlendirme kuralları
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
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
Pozitif ve negatif indexing
String slicing teknikleri
Step parametresi kullanımı
String'lerde immutability
String kopyalama ve bellek yönetimi
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
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'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
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
if/elif/else ifadeleri
İç içe geçmiş(nested) yapılar
Ternary operator
Pattern matching
Koşul olmadan sınırlı sayıda döngü mantığı
range() fonksiyonu
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
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
Continue/break kullanımı
else bloğu
Nested döngü çıkış stratejileri
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 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
Soyutlama(abstraction) kavramı
Kod tekrar kullanılabilirliği
DRY ilkesi
Kod organizasyonu ve okunabilirliğini artırma
def ifadesi
return yapısı
void fonksiyonlar
Pozisyon bazlı
Keyword bazlı
Default argument mantığı
Pozisyon bazlı ve keyword bazlı yapıları bir arada kullanmak
*args, **kwargs kullanımları
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
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
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
First-class objeler olarak fonksiyonlar
Bir fonksiyonu başka bir fonksiyona argument olarak verme
Decorator kavramına giriş
Yaygın decorator paternleri
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
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ı
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ı
Instance attribute vs class attribute
__init__ metodu
self parametresini
Instance metodlarının kullanımı
@classmethod, @staticmethod kavramları
Setter, deleter kavramları
Parent, child; Superclass, Subclass kavramları
Single ve Multiple inheritence tanımlama
Fonksiyonların etkin kullanımı
Methodların üzerine yazmak(overwrite)
Polymorphism
String temsili: __str__ ve __repr__
Karşılaştırma operatörleri: __eq__, __lt__
Aritmetik operatörler: __add__, __mul__
Diğer magic metodları
try/except/else/finally blokları
Yaygın exception tipleri
Custom exception'lar oluşturma
Exception hiyerarşileri
Hata yönetimi en iyi uygulamaları
Debugging nedir?
Debugger araçlarını kullanma
Logging modülü yapılandırması
Assertion ifadeleri
Unit testing temelleri
Profiling ve performans analizi
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
JSON encoding/decoding
Python object'leri için pickle
Veritabanları ile çalışma (sqlite3)
Konfigürasyon dosyası işleme
Veri doğrulama stratejileri
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
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
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 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
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