YAZILIM MÜHENDİSLİĞİ EĞİTİMİ
Yazılım yazmak ile yazılım mühendisliği yapmak farklı şeylerdir. 50 satırlık script herkes yazabilir; 50 bin satırlık ekip ürünü ise mühendislik disiplini gerektirir. Sürüm kontrolü, kod incelemesi, otomatik test, sürekli entegrasyon, dokümantasyon, hata izleme — bu pratikler olmadan yazılım büyüyemez, ölçeklenemez. Profesyonel yazılım geliştirme bu disiplini öğrenmektir.
Yazılım Mühendisliği Eğitimi, profesyonel yazılım geliştirme pratiklerini katılımcıya kazandırır. Yazılım yaşam döngüsü (SDLC), Agile metodolojileri, nesne tabanlı programlama (OOP) prensipleri (SOLID), tasarım desenleri (singleton, factory, observer), Git ile sürüm kontrolü, kod inceleme (code review), birim test ve TDD, sürekli entegrasyon ve dağıtım (CI/CD), API tasarımı ve yazılım mimarisi temelleri işlenir.
Yazılım Mühendisliği Eğitimi, yazılım geliştiricileri, takım liderleri, junior pozisyondan senior'a geçen yazılımcılar, kendi yazılım ekibini kurmak isteyen tech lead adayları için tasarlanmıştır. Eğitim sonunda katılımcı, mühendislik disiplini ile yazılım üreten bir profesyoneldir.
Ön Koşullar
Yazılım Mühendisliği Eğitimi için ön koşul, en az bir programlama diline hâkim olmak ve gerçek yazılım projelerinde rol almış olmaktır.
Kimler Katılmalı
- Yazılım Geliştiricileri: Mühendislik disiplini ile çalışmak isteyen kod yazarları
- Junior'dan Senior'a Geçen Yazılımcılar: Pratik becerilerini disipline çevirenler
- Takım Liderleri: Yazılım ekibinin mühendislik kalitesini yöneten profesyoneller
- Kendi Yazılım Ekibini Kurmak İsteyen Tech Lead Adayları: Liderlik yolundaki geliştiriciler
- Junior Geliştiriciler: Profesyonel pratikleri erken kazanmak isteyenler
- Yazılım Mimari Tasarımı Yapan Profesyoneller: Sistem ölçeklenmesi ile ilgilenenler
- QA ve Test Mühendisleri: Yazılım geliştirme döngüsü içinde rol oynayan kadrolar
Eğitim Yöntemi
Sunum, Git iş akışı atölyesi, kod inceleme egzersizi, birim test pratiği, CI/CD pipeline kurulum demo ve katılımcının kendi projesi üzerinden uygulama ile yürür.
Kazanımlar
- SDLC ve Agile: Yazılım yaşam döngüsünü çevik metodolojiyle yönetme
- OOP ve SOLID Prensipleri: Bakım kolay, ölçeklenebilir kod yazma
- Tasarım Desenleri: Singleton, Factory, Observer gibi sık kullanılan pattern'ler
- Git ile Sürüm Kontrolü: Branch, merge, rebase iş akışı
- Kod İnceleme (Code Review): Etkili PR yazma ve inceleme disiplini
- Birim Test ve TDD: Test-driven development yaklaşımı
- CI/CD Pipeline: Sürekli entegrasyon ve otomatik dağıtım
Eğitim Süresi
3 Gün (24 Saat). Kurumsal talebe göre 2 günlük yoğun veya 5 günlük detaylı versiyon olarak planlanabilir.
Yazılım Mühendisliği Eğitimi İçeriği
1. Yazılım Mühendisliği Disiplini
- Programlama, kodlama ve mühendislik ayrımı
- Ölçek büyüdükçe gerekli olan pratikler
- Yazılım ekibi rolleri
- Mühendislik kültürünün şirket etkisi
2. Yazılım Yaşam Döngüsü (SDLC)
- Gereksinim, tasarım, kodlama, test, bakım
- Waterfall, V-model, spiral modeller
- Aşamalar arası geçiş onayları
- Sektör ve düzenleyiciye göre uyarlama
3. Agile ve Scrum
- Agile manifestonun 4 değeri
- Scrum çerçevesi temelleri
- Sprint, daily, retro ritmi
- Backlog ve story
- Definition of Done
4. Gereksinim Mühendisliği
- Fonksiyonel ve fonksiyonel olmayan gereksinim
- User story yazımı
- Use case ve sequence diyagramı
- Gereksinim önceliklendirme
- Paydaş yönetimi
5. Mimari Tasarım
- Monolit, modüler monolit, mikroservis
- Katmanlı mimari
- Event-driven mimari
- Hexagonal ve clean architecture
- Mimari karar dokümanı (ADR)
6. Nesne Tabanlı Programlama Temelleri
- Encapsulation, abstraction, inheritance, polymorphism
- Class ve interface tasarımı
- Composition over inheritance
- Coupling ve cohesion dengesi
7. SOLID Prensipleri
- Single responsibility
- Open-closed
- Liskov substitution
- Interface segregation
- Dependency inversion
8. Tasarım Desenleri
- Creational: Singleton, Factory, Builder
- Structural: Adapter, Decorator, Facade
- Behavioral: Observer, Strategy, Command
- Anti-pattern farkındalığı
- Desen seçim kriterleri
9. Veri Modelleme
- İlişkisel veritabanı tasarımı
- Normalizasyon ve denormalizasyon
- NoSQL kullanım senaryoları
- Schema migration disiplini
10. API Tasarımı
- REST prensipleri
- GraphQL alternatifi
- Versiyonlama stratejileri
- API güvenliği
- OpenAPI ile dokümantasyon
11. Git ile Sürüm Kontrolü
- Branch stratejileri (Git Flow, trunk-based)
- Merge ve rebase ayrımı
- Conflict çözümü
- Tag ve release yönetimi
- Commit mesajı standardı
12. Kod İnceleme (Code Review)
- PR boyutu ve içeriği
- Etkili yorum verme
- Onaylama ve değişiklik isteme
- Pair programming alternatifi
- İnceleme kültürü kurma
13. Test Stratejisi
- Test piramidi
- Birim, entegrasyon, uçtan uca test
- Test-driven development
- Mocking ve test double
- Smoke ve regresyon testleri
14. Kod Kalitesi ve Statik Analiz
- Linter ve formatter
- SonarQube ile kalite kapısı
- Code smell tanıma
- Refactoring teknikleri
- Teknik borç yönetimi
15. CI/CD ve DevOps
- Pipeline tasarımı
- Build, test, deploy aşamaları
- Blue-green ve canary deploy
- Feature flag kullanımı
- Rollback stratejisi
16. Container ve Orkestrasyon
- Docker temelleri
- Kubernetes giriş
- Helm ile paketleme
- Container güvenliği
17. Gözlemlenebilirlik (Observability)
- Logging disiplini
- Metrics ve dashboard
- Distributed tracing
- Alerting ve on-call rotasyonu
- İncident management
18. Güvenlik (Secure Coding)
- OWASP Top 10 farkındalığı
- Input validation
- Auth ve session güvenliği
- Secret yönetimi
- Dependency güvenlik taraması
19. Performans ve Ölçeklenebilirlik
- Profiling ve bottleneck
- Caching stratejileri
- Async ve event-driven yaklaşım
- Database performans tuning
- Yatay ve dikey ölçekleme
20. Yazılım Liderliği
- Tech lead rolü
- Mimari karar verme
- Mentor olma
- Engineering manager yolu
- Süreç iyileştirme





