Python Programlama Dili

Bu kurs Python programlama diline yeni başlayanların ve ayrıca tecrübeli yazılımcıları sıfırdan başlayarak Python’a derinlemesine hakim olabilmelerini sağlamayı hedeflemektedir. Ayrıca bu eğitimde katılımcıların Python programlama dili, çevre teknolojileri ve bol miktarda open source araç kullanarak gerçek hayat projeleri ve ticari uygulamalar geliştirmelerini sağlıyoruz.

Eğitim takvimi kısa süre içerisinde duyurulacaktır.


Derslerin gün ve saatleri eğitim takvimiyle birlikte yayınlanacaktır.


Eğitim Süresi


80 Saat
Eğitim Ücreti


Sorunuz
Sertifika


Var


Canlı Yayın

Bu Eğitim Kimler İçin?

Bu kurs, Go Programlama dilinde uzmanlaşmak isteyen, bu dilin derinlemesine detaylarını öğrenirken, aynı zamanda gerçek ticari hayat uygulamaları ile sektöre hızlı ve doğru şekilde hazırlanmak isteyen herkese hitap etmektedir.

Neden DeepLab ?

DeepLab ile ister kariyer yolculuğunuzun başında ister bu yolda ilerliyor olun kendinize yeni ufuklar açacak bilgiler edinebileceğiniz bir topluluk ve alanında uzmanlaşmış eğitmenler bulabilirsiniz. Kaydedeceğiniz bu önemli ilerleme esnasında 15 yıl boyunca Türkiye’nin önemli kuruluşlarıyla çalışmış ve AR-GE eğitimleri sağlamış olan Cihan Özhan sizlere destek olacak. Başlangıç seviyesinden ileri seviyeye kadar yükselen bu eğitim merdivenlerini tırmanırken öğrendiklerinizi uygulamalar ile pekiştirme imkanına sahip olacaksınız. Bu süreçte yeterli ve kaliteli kaynaklara ulaşabileceksiniz. Eğitim basamaklarını ise kendinize yeni deneyimler ekleyebileceğiniz bir proje ile tamamlayacak ve geleceğinize değerli bir yatırım sağlama olanağına sahip olacaksınız.

python-programlama-dili

Geleceğinize Bir Katkı Sağlayın

Google tarafından geliştirilen, açık kaynak kodlu, sade ve güçlü bir programlama dili olan Go'nun güçlü olduğu alanlarda (Sistem, Veri Odaklı & Veri İşleme, Microservices, RESTful, API, Back-End, Real-time, Web, Oyun, Security) kendinizi geliştirebilir, bu kursta kullanılacak olan teknolojilerden de yararlanarak kurumsal projeler üretebilirsiniz. Ayrıca mentörlük desteği alarak daha doğru ve verimli bir eğitim süreci geçirebilirsiniz.

Kullanılacak Teknolojiler

,

Eğitimlerde Python, SQLite, PostgreSQL, Flask, Heroku ve Visual Studio Code teknolojilerinin en güncel versiyonlarını kullanarak projeler geliştirebileceksiniz.

go-logo postgresql-logo redis-logo postgresql-logo visual-studio-code-logo

Müfredat

Python Programlama Diline Genel Bakış
Python Programlama Diline Genel Bakış
Compiler & Interpreter

  • Derleyici ve Yorumlayıcı Nedir?

  • Python Yorumlayıcısına Derinlemesine Bakış
Python Versiyonları

  • Geçmiş Python Versiyonları ile Gelen Yeni Özellikler

  • En Yeni Python : Python 3.10 ile Gelen Yeni Özellikler
Framework ve Library : Nedir ve Aralarındaki Farklar
Python Avantaj ve Dezavantajları
İnceleme : Python Standard Library
Python ile “Merhaba Mars!” Uygulaması
Python Versiyonlar Arası Uyumluluk ve Versiyon Yükseltmek
Python Geliştirme Araçlarına(IDE) Derinlemesine Bakış

  • Visual Studio Code IDE İnceleme ve Projeler Oluşturmak

  • PyCharm IDE İnceleme ve Projeler Oluşturmak
Python Ortam Hazırlıkları
Python Araç ve Ortamlarına Genel Bakış
Ortam Kurulumu

  • Kurulumlar

    • Anaconda Kurulumu

    • Python ve Jupyter Kurulumu

    • PyCharm Kurulum, İnceleme ve Projeler Oluşturmak

    • Visual Studio Code Kurulum, İnceleme ve Projeler Oluşturmak

  • Kullanım ve Testler

    • Jupyter Notebook Kullanımı

    • Google Colab ile Cloud Ortamında Python Programlama

  • Çalışma Dökümanları
Geliştirici Araçları

  • Pylint ile Programların Analizi

  • Debugger Kullanımı

  • Kod Profiling

  • Benchmarking ile Hız Testi
Python Dependencies : Python Bağımlılıklarını Yönetmek (Derinlemesine)

  • Dependency Management’a Genel Bakış

  • pip İşlemleri

  • Python Package Repository’lerig

  • PyPi

  • Virtual Environment

    • Virtual Environment’a Genel Bakış

    • Virtual Environment Yönetimi

      • Creation, Activation/Deactivation, Leaving, Switching, Destroying

  • ThirdParty Python Paketler

  • requirements.txt

    • Proje Bağımlılıklarını Otomatik Olarak Çıkarmak

    • Proje Bağımlılıklarını Restore Etmek

  • Development ve Production Bağımlılıklarını Ayırmak

  • Örnek Bir Gerçek Hayat Proje Dosya/Dizin Yapısı Oluşturmak
Python Programlama Dili
Bir Python Uygulamasının Yapısını İncelemek
Veri Tipi Nedir ve Neden Kullanılır

  • Veri Tiplerinin Kullanımı
Değer ve Referans Tip Kavramları
Değişken Nedir ve Neden Kullanılır

  • Global, Local ve NonLocal Değişkenler

  • Değişken Tanımlamak ve Kullanmak

  • Python’da Değişken Pratikleri
Operatörler

  • Operatörlere Genel Bakış

  • Python’da Kullanılan Operatörler

  • Proje : Python’da Operatör Pratikleri
Tür Dönüşümü Nedir ve Neden Kullanılır?

  • Tür Dönüşümüne Genel Bakış

  • Tür Dönüşümü İşlemleri

  • Python’da Türk Dönüşümü Pratikleri
Metin Formatlama
Strings
Slices
Listeler
Tuple
Dictionary
Koşul İfadeleri

  • if

  • Python’da Switch Case

  • in, is, not Operatörleri

  • break ve continue ifadeleri

  • Proje : Uygulama Pratikleri
Döngüler

  • for

  • while

  • Döngü Metotları
Geçici Veriler : Tarih ve Zaman Verileri

  • Tarih ve Zaman Temelleri

  • Python’da Tarih/Zaman Nesneleri

    • date & datetime modülü

    • time modülü

  • Farklı Zaman Formatları

  • Zaman Formatları Arasında Tür Dönüşümü

  • Tarih ve Zaman Verilerini Formatlamak

  • Tarih/Zaman Bilgilerini Parse Etmek
Lambda

  • Lambda’ya Genel Bakış

  • Python’da Lambda Yetenekleri ve Kullanımları

  • Proje : Python’da Lambda Pratikleri
Python Encodings

  • Encoding’e Genel Bakış

  • Unicode Vs. UTF-8

  • Python ile Encoding & Decoding

  • One Byte, Two Bytes, Three Bytes, Four

  • Python Encoding Built-In Fonksiyonlarıg
Python Built-In Foksiyonlar

  • Map

  • Reduce

  • Filter

  • Zip

  • Enumerate

  • All ve Any
Debugging : Hata Bulmak

  • Debugging’e Genel Bakış

  • Python’da Debugging Araçları

  • Python’da Debugging Kullanımı
Kod ve Proje Dökümantasyonu

  • Kod ve Proje Dökümantasyonu Neden Önemlidir

  • Comment Vs. Kod Dökümantasyonu

  • DOCSTRING ile Kod Dökümantasyonu

  • Python Projelerinin Dökümantasyonu

    • Dökümantasyonlu Bir Örnek ‘Python Project Layout’

  • Dökümantasyon Araçları

  • Sphinx ile Dökümantasyon Oluşturmak
Python Built-In Foksiyonlar

  • os Modülü

    • os Modülü Nedir ve Neden Kullanılır

    • Proje : os Modülü

  • Regular Expressions ile Çalışmak

    • Regular Expression Nedir ve Neden Kullanılır

    • Proje : re Modülü

  • configparser Modülü

    • configparser Modülü Nedir ve Neden Kullanılır

    • Proje : configparser Modülü
Nesne Yönelimli Programlama
Nesne Yönelimli Programlamaya(OOP) Genel Bakış
Python’da OOP Yaklaşımı
OOP Kavramlarına Genel Bakış

  • Class

  • Object

  • Method

  • Inheritance

  • Encapsulation

  • Polymorphism

  • Data Abstraction
Class (Sınıflar)

  • Class’lara Genel Bakış

  • Class Temelleri

  • Class ve Instance Attributes

  • Projeler : Python’da Sınıf Uygulamaları

  • Statik Metotlar
Fonksiyonlara Genel Bakış

  • Fonksiyon Kapsam Kuralları

    • Global ve Yerel Değişkenler

  • Return : Değer Dönüşüne Sahip Fonksiyonlar

  • Parametreler ile Çalışmak

    • Parametreli Fonksiyonlar

    • İsteğe Bağlı Parametreler (*args)

    • Keyword Parametreler ve İsteğe Bağlı Keyword Parametreler

    • Varsayılan Parametreler

    • List Tipinde Parametreler

  • Fonksiyonların Parametre Olarak Kullanımı

    • Fonksiyon Tanımlarken Lambda Kullanımı

  • Decorator

    • Decorator’lara Genel Bakış

    • Decorator Oluşturmak ve Kullanımı

  • Property Method

    • Property Vs. Getters/Setters

    • Python’da Property Kullanımı
Inheritance (Kalıtım/Miras)

  • Inheritance’a Genel Bakış

  • Parents Class & Child Class

  • Super Functions

  • Proje : Python’da Inheritance Kullanımı

  • Multiple Inheritance

    • Proje : Python’da Multiple Inheritance Kullanımı
Magic Method ve Operator Overloading

  • Magic Method

    • Magic Method’lara Genel Bakış

    • Magic Method’lar

    • Proje : Magic Method Pratikleri

  • Operator Overloading’e Genel Bakış

    • Operator Overloading Neden ve Ne Zaman Kullanılır

    • Proje : Operator Overloading
Soyut Sınıflar : Abstract Classes

  • Soyut Sınıflara Genel Bakış

  • Proje : Soyut Sınıflar
Modüller

  • Modül Kavramına Genel Bakış

  • Namespace

    • Built-In Namespace’ler

    • Global Namespace

    • Local ve Enclosing Namespace’ler

    • Namespace Dictionary

      • globals() Fonksiyonu

      • locals() Fonksiyonu

    • Kapsam Dışındaki Değişkenler

      • global

      • nonlocal

  • Proje : Modül Odaklı Python Uygulaması
Streams, Dosya İşleme ve Serialization
Streams

  • io modülü

  • Text Streams

  • Binary ve RAW IO Streams
Dosya Operasyonlarına Genel Bakış

  • Dosya ve Klasör Kavramlarını Anlamak

  • Serialization Nedir ve Neden Kullanılır?

    • Serialization Türleri

  • Python ile Dosya ve Klasörler İşlemleri

  • Dosya Açma & Yazma İşlemleri

  • Dosya Okuma İşlemleri

  • Bir Dosya Üzerine Yazmak

  • Bir Dosya Üzerine Yazmak
Marshal ve Pickle Serialization
repr ile Serialization
Serialization İçin eval ve exec Kullanımı
PDF Dosyaları ile Çalışmak

  • PDF Dosya Formatına Teknik Bakış

  • Python ile PDF İşleme Araçları

  • Proje : Python ile PDF İşleme Pratikleri
XML Formatı ile Çalışmak

  • XML Formatına Genel Bakış

  • Proje : XML Formatı ile Çalışmak
JSON Formatı ile Çalışmak

  • JSON Formatına Genel Bakış

  • Proje : JSON Formatı ile Çalışmak

  • Proje : Özelleştirilmiş Tipleri JSON’a Dönüştürmek (Custom Serialization)

  • Streaming JSON

  • Log Kayıtlarını JSON’a Dönüştürmek
msgpack Serialization

  • msgpack Serialization’a Genel Bakış

  • Proje : msgpack ile Serialization
CSV Formatı ile Çalışmak

  • CSV Formatına Genel Bakış

  • Proje : CSV Serialization
YAML Formatı ile Çalışmak

  • YAML Formatına Genel Bakış

  • Proje : YAML Serialization
TOML Formatı ile Çalışmak

  • TOML Formatına Genel Bakış

  • Proje : TOML Serialization
Protocol Buffers & gRPC

  • Protocol Buffers

  • Tanımlama Dosyası Yazmak

  • Serializer Üretmek

  • Protocol Buffer Kullanımı

  • Proje : Python ile gRPC Kullanımı
Hata Yönetimi
Hata Yönetimine Genel Bakış
Hatalar ve İstisnalar
Hata Yakalama : try, except, finally blokları
Exception’in İçerdiği Nesneleri İncelemek
Exception Chaining

  • Implicit Chaining

  • Explicit Chaining
Traceback
Assertion
Context Manager

  • The Context Manager Protocol

    • Proje : Context Manager Implementasyonu

  • Context Manager Decorator

    • Proje : Database Transaction
Python ile Veritabanı Programlama
Veritabanı Programlamaya Genel Bakış
Veritabanı Yönetim Sistemlerine Genel Bakış

  • Hangi VTYS Ne Zaman Kullanılmalıdır
Python ve SQLite

  • SQLite Veritabanına Genel Bakış

  • SQLite’da Veritabanı Dosyası ve Tablo Oluşturmak

  • Python ve SQLite ile CRUD Operasyonları

  • Proje : Python ve SQLite ile Veritabanı Uygulaması

Python ve PostgreSQL

  • PostgreSQL Veritabanına Genel Bakış

  • PostgreSQL Veritabanında Veritabanı ve Tablo Oluşturmak

  • Python ve PostgreSQL ile CRUD Operasyonları

  • Proje : Python ve PostgreSQL ile Veritabanı Uygulaması

Python ile Uygulama Testi
Yazılım Testi Kavramına Genel Bakış
Yazılım Test Türleri ve Süreçleri
Python ile Test Geliştirmek
PyTest ile Unit Test

  • Unit Test Nedir

  • Test Yazmak

  • Test Çalıştırmak

Python ile Masaüstü Uygulama Geliştirme
Masaüstü Uygulama Geliştirmeye Genel Bakış
Gerekli Araç ve Kütüphaneler
Gerekli Araçların Kurulumu
Thinker ile Masaüstü Uygulaması Geliştirmek

  • Thinker ile Masaüstü Uygulama Geliştirmeye Giriş

  • Proje : Thinker ile Masaüstü Uygulaması : Hesap Makinesi

  • Proje : Thinker ve Veritabanı ile Masaüstü Uygulaması : Adres Defteri

  • Proje : Thinker ve Veritabanı ile Masaüstü Uygulaması : Kütüphane Projesi

Web Programlama : RESTful API
RESTful API Kavramlarına Genel Bakış
RESTful API Nedir
Neden RESTful API Kullanılır
RESTful API Mimarisi
RESTful API Mimarisine Derinlemesine Bakış

  • RESTful API Mimarisine Genel Bakış

  • RESTful API Terminolojisi

  • Request Anatomisi : Request’i Doğru Anlamak

  • HTTP Metot

  • HTTP Header

  • Data

RESTful API Mimarisio RESTful API Tasarım İlkeleri : Doğru RESTful API Mimarisi Tasarlamak
requests Modülü

  • requests Modülüne Genel Bakış

    • Proje : requests Modülü

Proje : RESTful API Uygulaması Geliştirmek ve Test Etmek
Proje :GitHub API Uygulaması Geliştirmek ve Test Etmek
Proje : Exchange API ile Döviz Kur Uygulaması Geliştirmek ve Test Etmek
Proje : The Movie Database API ile Film Uygulaması Geliştirmek ve Test Etmek
Web Programlama : Flask Framework
Web Uygulama Geliştirme Mimarisine Genel Bakış
Web Uygulama Geliştirme Framework’lerine Genel Bakış
Flask Microframework’e Genel Bakış
Flask Kurulum Operasyonları
İlk Flask Web Projesini Oluşturmak
Flask ile RESTful API Geliştirmek

  • Proje : Python ve Flask ile RESTful API Geliştirmek ve Test Etmek

Templates ve Layout
Statik Dosyalar ile Çalışmak
Temel Tasarım İşlemleri
Flask ile Session Management
Proje : Python ve Flask ile Kullanıcı Yetkilendirmeli Web Uygulaması Geliştirmek

  • Genel Proje Altyapısının Hazırlanması

  • Session ile Yetkilendirme

    • Session ile Login

    • Logging Out

  • Cookie ile Yetkilendirme

    • Cookie Kullanımı

    • Cookie ile ‘Beni Hatırla’

    • ‘Forget Me’

  • Kullanıcı Rolleri ile Yetki Vermek

  • Kullanıcı Hesaplarını Yönetmek

    • Kullanıcı Hesaplarını Yönetmek

    • Aktivasyon Maili Göndermek

    • Resending : Aktivasyon Mailini Tekrar Göndermek

    • Forgetten Password : Kullanıcı Parolasını Sıfırlamak

    • Celery ile Email Gönderimini Background Job Olarak Yönetmek


Deployment
Deployment’a Genel Bakış
Deployment Süreçleri
Flask ile Örnek Web Uygulaması Oluşturmak
Web Uygulamasının Heroku’da Yayınlanması(Deployment)

  • Heroku Hesap Oluşturmak

  • Heroku Command-Line Interface(CLI)

  • Web Uygulamasını Yayınlamak

  • Heroku Deployment Workflow

    • Deployment Workflow’u Anlamak

    • Heroku’da Deployment Workflow

    • Production Ortamına Geçiş



  • Uygulama Ayarları ve Secret’ları Yönetmek

Yazılım Güvenliği
Yazılımda Güvenlik ve Güvenli Yazılım Geliştirmeye Genel Bakış
Hacker, Etik Hacker ve Güvenlik Uzmanı Kavramları

  • Hacker Kimdir ve Nasıl Hacker Olunur

  • Hacker ve Güvenlik Uzmanlığı Kariyer Planı Nasıl Yapılır ve Neler Bilinmelidir

Güvenli Yazılım Geliştirme Süreçleri (SecureSDLC)
  • SDLC

    • Requirements

    • Design

    • Development

    • Testing

    • Deployment

  • Secure SDLC

    • Risk Assessment

    • Treat Modeling & Design Review

    • Static Analysis

    • Security Testing & Code Review

    • Security Assessment & Secure Configuration

  • Derinlemesine Yazılımcılar İçin Veri Güvenliği

    • Güvenlik Politikaları

    • Ayrıcalıklar

    • Güvenlik için : Basitlik Vs. Sadelik

    • Kullanıcı Vs. Güvenlik

    • Beklenmeyenleri Beklemek & Hazır Olmak

    • Derinlikli Savunma

    • Belirsizlik & Güvenlik

    • WhiteList Vs. BlackList

      • Korunma Yöntemleri

    • Maruz Kalma Noktaları

    • Veri Geçitleri

    • Girişleri Filtrele, Çıkışları Kontrol Et

    • Request’leri Düzenlemek

    • Girişleri Doğrulamak

    • Veri Temizlemek

    • Kodu Özel Tutmak (Code Privacy)

    • Kimlik Bilgilerini Özel Tutmak (ID Privacy)

    • Logging ve Smart Logging

    • HTTP Durum Kodları

    OWASP : Open Web Application Security Project

    • OWASP Nedir

    • OWASP Top 10

      • SQL Injection

      • XSS : Cross-Site Scripting

      • Broken Authentication and Session Management

      • Insecure Direct Object References

      • CSRF: Cross-Site Request Forgery

      • Security Misconfiguration

      • Insecure Cryptographic Storage

      • Failure to Restrict URL Access

      • Insufficient Transport Layer Protection

      • Unvalidaded Redirects and Forwards


    MLaaS : Machine Learning as a Service
    Yapay Zeka’ya Genel Bakış
    İş Uygulamalarında Yapay Zeka Kullanım Senaryoları
    Yapay Zeka Konsepti, Bilimsel ve Teknik Alt Başlıkları
    Popüler Yapay Zeka Uygulama Geliştirme Araçları
    Yapay Zeka ve Python
    Artificial Neural Network (ANN)

    • Python ile Sıfırdan Artificial Neural Network Geliştirmek

    Machine Learning as a Service (MLaaS)

    • MLaaS’e Genel Bakış

    • MLaaS Mimarisine Derinlemesine Bakış

    • Bir Machine Learning Modeli Geliştirmek

      • ML Modeli Geliştirmek

      • ML Modeli Eğitmek

      • ML Modeli Test Etmek


    • Machine Learning Modelini RESTful API Olarak Yayınlamak

    • Machine Learning Modelini Web Uygulaması Olarak Yayınlamak

    Sertifika Koşulları

  • %80 derse katılım sağlamak.
  • Ödevleri yapmak.
  • Bitirme projesini tamamlamak.
  • Sertifika

    Events

    Life-Long Learning

    Slider 1

    “MLaaS: Presenting & Scaling Machine Learning Models as Microservices”

    Speaker: Cihan Özhan, Founder of DeepLab
    DevNot Developer Summit

    Slider 1

    "Industrial Application Development"

    Speaker: Cihan Özhan, Founder of DeepLab
    Host: KARDEMİR ÇELİK

    Slider 1

    "Dijital Dönüşüm - Mini MBA : Yapay Zeka"

    Speaker: Cihan Özhan, Founder of DeepLab

    Slider 1

    "Python with Machine Learning/Deep Learning"

    Speaker: Cihan Özhan
    School: Saint Benoit High School

    Slider 1

    "Blockchain: Decentralized Application Development"

    Speaker: Cihan Özhan, Founder of DeepLab