
Java Yazılım Uzmanlığı Eğitimi

Ön Koşul: Yok
“Java Yazılım Uzmanlığı” eğitiminin hedefi, Java programlama dili aracılığı ile nesneye yönelik programlamanın içselleşmesini sağlamaktır.
Diğer bir deyişle, bu eğitimin hedefi, yazılım dünyasının en popüler programlama dilleri arasında ilk sıralarda bulunan Java’yı kullanarak nesneye yönelik programlamayı kendine has tüm incelikleriyle öğretmektir.
200 saatlik eğitimde, profesyonel anlamda nasıl yazılım projesi geliştirilmesi gerektiği, yazılım mühendisliği standartlarına uygun örneklerle detaylandırılarak anlatılır. Ödevler ve projelerle de içerikteki tüm konuların pekiştirilmesi sağlanır.
- Fonksiyon (Metot) İmzası
- Koşullar ve Mantık Kapıları
- Döngüler
- Algoritma Kavramı
- Sözde Kod (Pseudocode)
- Akış Diyagramı (Flowchart)
- Java’nın JVM-JRE-JDK Bileşenleri
- Java’da Veri Tipleri (İlkel- Referans)
- Derleme İşlemi ve class Uzantılı Dosyalar
- Derleyici ve Yorumlayıcı Arasındaki Farklar
- NYP (OOP) ve Diğer Yaklaşımlar Üzerine
- Soyutlama (Abstraction) Kavramı
- Sınıf ve Nesnenin Mantığı
- This Anahtar Kelimesi
- Yapılandırıcı (Constructor)
- Object Sınıfından Miras: toString() metodu
- “Kalıtım (Inheritance)” Kavramı ve Temel Örnekler.
- Java’da Paket Yapısı ve import Anahtar Kelimesi
- “İlkel (Primitive) ve Referans” Veri Tiplerinin Hafızada Gösterimi
- “Stack”in ve “Heap”in Mantığı
- Static Anahtar Kelimesi
- Nesne (Varlık) Oluşturmanın Mantığı
- static Unsurların Hafızada Gösterimi
- Kapsülleme (Encapsulation) Kavramı
- Erişim Belirleyiciler (Access Modifiers)
- “Erişici (Accessor) ve Değiştirici (Mutator)” Metotlar
- Object Sınıfından Miras: “equals() ve hashCode()” Metotları
- Java’da Dizi (Array)
- Problem Çözme Örnekleri
- Nesne Dizisi
- ArrayList Sınıfı ve Dizi (Array) İlişkisi
- super Anahtar Kelimesi
- Birliktelik (Association) Kavramı
- Münasebet (Aggregation) Kavramı
- Oluşum (Composition) Kavramı
- UML’de (“Unified Modeling Language”de) Sınıf Diyagramları
- Java’da Jenerik Tipler (Java Generics)
- Çok Biçimlilik (Polymorphism) Kavramı
- Yukarı Çevrim (Upcasting) ve Aşağı Çevrim (Downcasting)
- Dinamik Bağlama (Dynamic Binding)
- “Static Binding” ve “Dynamic Binding” Arasındaki Farklar
- Arayüz (Interface) Kavramı
- Temel Yapı
- Java 8 ile Gelen Yenilikler
- Soyut Sınıf (Abstract Class) Kavramı
- “Class”, “Interface” ve “Abstract Class”ın Ayrımı
- Bu Yapıları İçeren Örnek Uygulamaların Yazılması
- Dahili Sınıf (Inner Class) ve İsimsiz Dahili Sınıf (Anonymous Inner Class)
- İstisna İşleme (Exception Handling)
- “Throwable, Exception ve Error” Sınıfları
- “try, catch ve finally” Anahtar Kelimeleri
- throws Anahtar Kelimesi
- “Checked Exception” ve “Unchecked Exception”
- Dosya İşleme (File I/O)
- “FileInputStream ve FileOutputStream” Sınıfları
- ”FileReader ve FileWriter” Sınıfları
- “BufferedReader ve BufferedWriter” Sınıfları
- Java Collections Framework
- List Arayüzü ve İmplementasyonları
- Stack Sınıfı
- Queue Arayüzü ve İmplementasyonları
- Set Arayüzü ve İmplementasyonları
- “Iterable ve Iterator” Arayüzleri
- Map Arayüzü ve İmplementasyonları
- “String”ler ile İlgili Sorunlara Çözümler
- “StringBuffer ve StringBuilder” Sınıfları
- Lambda İfadeleri
- Nesneleri Sıralamak
- “Comparator ve Comparable” Arayüzleri
- Nesneleri Kopyalamak
- Cloneable Arayüzü
- Object Sınıfından Miras: clone() metodu
- Java Serialization (Serileştirme)
- Serializable Arayüzü
- “Deserialization” İşlemi
- ObjectInputStream ve ObjectOutputStream Sınıfları
- “Serializable Object” ve “Non-Serializable Object” Farkları
- transient Anahtar Kelimesi
- Java’da XML Dosyasını Ayrıştırmak
- SAXParser Soyut Sınıfı
- Haber Sayfasını Ayrıştırıp Haber Listesi Üretmek
- Tek Nesne Tasarım Deseni (Singleton Design Pattern)
- Java’da İş Parçacığı (Thread) Kullanımı
- Thread Sınıfı ve Runnable Arayüzü
- “Single-Threaded Program” ve “Multi-Threaded Program
- Thread”leri Senkronize Etmek
- “Thread”ler ile İlgili Object Sınıfındaki Metotlar
- CopyOnWriteArrayList Sınıfı
- “Thread” Senkronizasyonu ile Dosya İşleme Örneği
- Java’da “Logging”
- Logger Sınıfı
- “Log” Seviyeleri
- “Log” Dosyası Oluşturmak
- SOLID Prensipleri
- “Single-Responsibility Principle” (SRP)
- “Open-Closed Principle” (OCP)
- “Liskov Substitution Principle” (LSP)
- “Interface Segregation Principle” (ISP)
- “Dependency Inversion Principle” (DIP)
- JDBC
- Connection, Statement ve ResultSet” Arayüzleri
- SQLException’ın Detaylandırılması
- ResultSet ile Kayıtların Taranması
- Kayıtlara Karşılık Varlık: Varlık (Entity) Sınıfı
- İlgili Sorgular, İlgili Metotlarda: DAL (Data Access Layer) Sınıfı
- Varlık ve DAL Sınıfları için Ata Sınıflar
- JDBC Bağlantı Bilgilerinin Güvenliği
- XML’de properties Etiketi
- Java’da Properties Sınıfı
- Hibernate
- ORM’nin Anlamı
- hibernate.cfg.xml Dosyası
- “SessionFactory, Session ve Transaction” Arayüzleri
- HibernateUtil Sınıfının Tanımlanması
- HibernateUtil Sınıfının Detayları
- “SessionFactory, Session ve Transaction” Üretimi
- Varlık (Entity) Sınıfları
- “Annotation” Kullanarak Tablo ile Eşleşim (Mapping)
- DAL Sınıfları
- Session Üzerinden Veri Tabanı İşlemi Metotları
- “Transaction”ın Yapısı
- Varlık (Entity) ve DAL Sınıfları için Ata Sınıfların Tanımlanması
- Swing ile Görsel Bileşen Tanımlama Örnekleri
- MVC Projesinin “View” Katmanını Swing Kütüphanesi ile Yapılandırmak
- Sekme Levhası, Sekme Eklemek, Paneller, Panel Düzenleri
- Form Ekranları içinde Tuşlar, Metin Alanları vb.
- Veri Tablosunun (“Data Table”ın) Yapılandırılması
- Tablo Modelinin Nesneye Yönelik Anlayışla Oluşturulması (AbstractTableModel Sınıfı)
- MVC Projesinin “Controller” Katmanını Yapılandırmak
- Model” ve “View” Katmanlarını Birleştirmek
- “Listener” Mantığı ve ActionLister Eklemek
- “Controller” Sınıfları için Ata Sınıflar
- Hibernate ile İlişkisel Veri Tabanı Yapısı
- İlgili “Annotation”lar ile Yapının Kurulması (@OneToOne, @OneToMany, @ManyToOne, @ManyToMany)
- “@JoinColumn Annotation” ve “mappedBy Attribute” Farkı
- “Fetch Types” (Lazy Loading, Eager Loading
- iText Kütüphanesi
- Veri Tabanı Bilgilerinden PDF Oluşturmak
- JasperReports için iReport-Designer Kurulumu
- iReport-Designer Uygulamasının Kullanılması
- jrxml Uzantılı Rapor Görselleri
- Java ile Rapor Görseline Verilerin Yüklenmesi/Gösterilmesi
- JasperReports Library
- Rapor Yönetimi Sınıfında İlgili Metotların Yazılması
- PDF Dosyalarının Paylaşılması
- PDF’yi SMTP ile E-Posta Olarak Göndermek
- Programlama Yapmadan Rapor Oluşturmak
- iReport-Designer’da JDBC Bağlantısı ve “Data Source”
- iReport-Designer’da veri tablosu (data table) Oluşturmak
- Sunucunun Kurulumu/Yapılandırılması
- “Connection Pool” ve “Connection Resource
- JNDI ve JTA Bağı
- persistance.xml
- Dinamik Web Projesi Oluşturmak
- Sunucu, JPA ve JSF’nin Dahil Edilmesi
- Projenin WebContent Klasörü
- web.xml
- Facelet Composition Page
- Template, Header, Footer
- CSS Dosyalarının Dahil Edilmesi
- Grafik (JPG,PNG vb.) Dosyalarının Dahil Edilmesi
- Projenin src Klasörü
- JPA “Annotation”ları
- “Entity Bean”
- “Managed Bean”
- “JSF Facelets Tag Library”
- Managed Bean ile İletişim
- Veri Tabanında Veri İşlemleri için Form Oluşturmak
- Web Sayfasında Formların Oluşturulması
- “Managed Bean”de Ekle-Sil-Güncelle için Metotlar
- faces-config.xml
- faces-con“Validator” Oluşturmak
- Validator Arayüzü
- Formlara JSF Etiketleri ile “Validator” Tanıtımı
- Form Sayfasına TC Kimlik için “Validator” Eklemek Örneği
- Web Sayfaları Arası Geçişin Kolaylaştırılması
- Web Projesine JavaScript’in Dahil Edilmesi
- JavaScript ile Yazılan Fonksiyonların Kullanılması
- Form Sayfasında multipart/form-data
- JSF h:inputFile Etiketi ile Gözat (Browse)
- Grafik Dosyalarının Veri Tabanında Temsili
- Web Sayfasında Grafik Dosyası Gösterimi
- Yeni Web Sayfası Üretmek için Servlet
- HttpServlet Arayüzünde doGet() ve doPost() Metotları
- Web Sayfasında “Servlet”in Çağrılması
- Oturum (Session) Yönetimi
- HttpSession Arayüzü
- JSP Dosyaları Oluşturmak ve “Servlet” Yazmak
- “Dependency Injection”
- “Aspect Oriented Programming” (AOP)
- “Spring Framework” Temel Ayarları
- “Maven Dependencies”
- pom.xml
- applicationContext.xml
- applicationContext.xml’de “bean” tanımlamak
- “Bean” ve Model Katmanı Bağı
- applicationContext.xml’in bölümlendirilmesi
- “Bean”ler için Ayrı XML
- “Veri Tabanı Bilgileri ve Transaction” için Ayrı XML
- Spring Boot Geliştirme Ortamı
- PostgreSQL, Git, Intellij, Lombok, Restful Web Servisler
- @RequestBody, @RequestParam ve @PathVariable
- Mikroservis Örneği
- PostgreSQL
- Mikroservis Mimarisi
- Varlık (Entity) Sınıfı
- Depo (Repository) Sınıfı
- Servis (Service) Sınıfı
- Kontrol Birimi (Controller) Sınıfı
- Spring ve Güvenlik
- Yetkilendirme (Authorization)
- Kimlik Doğrulama (Authentication)
- Mikroservis Örneği için Güvenlik
- “Spring Boot”ta Test
- “Integration Tests” ile “Unit Tests” Kıyaslaması
- “Auto-Configured Tests”
- “Rest Client” Mantığı ve “Postman ile API Testi”
- SoapUI ve Postman Kıyaslaması
- Spring Profilleri
- “Bean”lerin Farklı Profiller ile Eşleşmesi (Development, Test, Production)
- Mikroservisin Buluta Dağıtımı
(Microservice Deployment to Cloud)
Java programlama dili; taşınabilir, donanımdan bağımsız, güvenilir, güçlü, yazımı/okunuşu sade, çok kullanıcılı sistemlere uygun, program parçalarının farklı makinalarda birbiri ile uyumlu çalışabildiği, yorumlanan, dinamik ve yüksek performanslı bir nesne yönelimli dildir.
Java programlama dili, Java ekosisteminin parçası teknolojilerle beraber “açık kaynak kodlu yazılım geliştirme” anlayışını besler.
Nesne yönelimli programlama (NYP), şu anki hâkim programlama anlayışı olduğu için öğrenilmesinin artıları sayısızdır. NYP'nin Java programlama dili ile öğrenilmesinin artıları ayrıca sayısızdır.
Program ücretlerine KDV dahil değildir.
Genel katılıma açık programların açılması için yeterli kontenjanın sağlanması gerekmektedir.
Kontenjan sağlanamadığı durumlarda BT Akademi programı açmama hakkını saklı tutar.
BT Akademi, duyrulmuş programların tarihlerini değiştirme hakkını saklı tutar. Programa kayıt olmuş kişiler bu değişikliklerden haberdar edilir.