Başlangıç: 11 Ağustos 2014
Bitiş: 23 Ağustos 2014
Eğitime katılacakların sahip olması gereken özellikler:
- Okuduğunu anlayabilecek düzeyde İngilizce bilgisi
- Herhangi bir nesneye yönelik programlama dilinde yazılım geliştirebilmek
- Linux masaüstüne aşina olmak (yazılım geliştirme Linux üzerinde yapılacaktır)
KONULAR
- Web geliştiricileri için temel ağ bilgisi
- Ağ performansının web uygulamalarına etkisi
- Çevrimiçi (dial-up) bağlantı
- DSL Bağlantı
- İnternet-İntranet
- HTTP, Ajax, Comet
- Yük Dengeleyiciler
- HTTP
- HTTP hata kodları
- “Durumsuz” (stateless) olması
- GET/POST metotları
- Çerezler (Cookie)
- Oturumlar
- HTML
- Dil yapısı
- Grafik / HTML gösterim farklılığı
- İstemciler arasında yorum farkları
- Test ve hata ayıklama araçları
- Önbellek
- İstemci önbelleği
- Proxy sunucular, Reverse Proxy Sunucular
- Önbellek Yönetim Teknikleri
- İçerik Sıkıştırma (JavaScript, CSS, HTML, Resim)
- Web istemci programlaması
- İstemci eklentileri ile yorumlama (Java applet, Adobe Flash)
- Javascript
- CSS
- HTML 5
- Web sunucu programlaması
- Genel Teknikler ( CGI, ISAPI, NSAPI )
- Genel Teknoloji Yaklaşımları ( PHP vs Python vs Ruby vs Java vs .Net )
- Veri Tabanı İşlemleri ( SQL, NoSQL )
- Web Servisleri
- Web güvenliği
- Kullanıcı doğrulama mekanizmaları
- SSL
- Uygulamaların tipik güvenlik sorunları
- Web uygulamalarında sürüm takip sistemi kullanımı (Git)
- Python’a giriş
- Python’ı nasıl bir dildir
- Yorumlanan ve derlenen diller
- Kurulum ve environment hakkında bilgiler
- Python’da kod yazmaya giriş
- Python’ın sözdizimsel özellikleri
- Python Internals
- Temel program akışı yönetimi komutları
- Veri tiplerine kısaca bakış
- Duck typing ne demektir
- Fonksiyonlar (callable) objeler hakkında bilgiler
- Generators ve iterable objeler
- Decorators
- Object Oriented Programming
- Object oriented yönelimi hakkında bilgiler
- Sınıf kavramı ne demektir
- Inheritance: birbirinden türeyen sınıflar
- Composition: sınıfların birbiri arasındaki etkileşimi
- Mixins: birden fazla sınıftan türeyen sınıflar
- Design pattern’lar nedir ve bize ne kazandırır
- Functional Programming
- Fonksiyonel programlama nedir
- Python fonksiyonel bir dil midir
- Temel fonksiyonel programlama konseptleri
- Her şeyin başı map ve reduce
- Meta Python
- Bir şeylere isim koymak (naming conventions)
- Bir işin pitonik yolu
- Python’ın tasarım prensipleri
- Django’ya giriş
- Django nedir
- MVC kavramı ne anlama geliyor
- Kurulum ve environment yönetimi
- Bir proje nasıl oluşturulur
- Models
- Basit bir model tanımı
- Modeller arasındaki ilişkiler
- ForeignKey
- ManyToManyField
- ForeignKey neyimize yetmiyor?
- Symmetrical seçeneği
- Model Inheritance
- Manager kavramı
- Migrations
- QuerySets
- Filtering
- Karmaşık sorgular
- Aggregation ve Annotate
- Optimizasyon
- Prefect related
- Select related
- Values
- Views
- View nasıl tanımlanır
- Templates
- Nasıl oluşturulur ve kullanılır
- Template inheritance
- Template tags & filters
- Url yönetimi
- Request ve Response objeleri
- Session’lar
- Cookie’ler
- İstemci bilgilerine ulaşmak
- POST ve GET metodu
- Formlar
- Form tanımlamak
- Validation sınıfları
- ModelForm’lar
- Formset ve ModelFormset kavramı
- Class based view’lar
- Middleware kavramı
- Admin Uygulaması
- Admin uygulamasını aktif etmek
- Admin için model yönetimi
- Özelleştirilmiş bir admin paneli
- i18n ve l10n
- Internalization
- Dil dosyaları oluşturmak ve derlemek
- Dil dosyalarını dağıtmak
- Localization