Akiza Akademi
Akiza Akademi Kurumsal Eğitim
ÜCRETSİZ TEKLİF ALINEğitim danışmanımızla konuşunKURUMSAL EĞİTİMEkibinizi geliştirinTEKNİK EĞİTİMHedefli ve uygulamalı

C EĞİTİMİ

Klasik Programlama Dili
C Eğitimi

C, 1972'de Dennis Ritchie tarafından geliştirildi ve 50 yıldır programlama dünyasının omurgasıdır. Linux, Windows, MacOS — hepsinin çekirdeği C ile yazılı. Mikrodenetleyiciler, gömülü sistemler, oyun motorları ve performans kritik kod hâlâ C ile yazılır. Diğer dillerin (C++, C#, Java, JavaScript) sözdizimleri çoğunlukla C'den miras alır. C bilmek programlamanın iskeletini bilmektir.

C Eğitimi, C dilini sıfırdan profesyonel düzeye katılımcıya kazandırır. Veri türleri, değişkenler ve operatörler, kontrol yapıları (if, switch, for, while), fonksiyonlar, diziler, karakter dizileri (string), işaretçiler (pointer) — C'nin en kritik özelliği, dinamik bellek (malloc, free), yapı (struct) ve birlik (union), dosya işlemleri, standart kütüphane (stdio, stdlib, string) ve önişlemci direktifleri işlenir.

C Eğitimi, gömülü sistem geliştiricileri, üniversite öğrencileri, sistem programlama yapan profesyoneller, oyun motoru geliştiricileri ve diğer dillere geçmeden temel atmak isteyenler için tasarlanmıştır. Eğitim sonunda katılımcı, C ile somut projeler geliştirebilir.

Ön Koşullar

C Eğitimi için ön koşul, temel programlama mantığına aşinalık olmaktır. Algoritma kavramlarını öğrenmiş profesyoneller için doğrudan uygulanabilir.

Kimler Katılmalı

  • Gömülü Sistem Geliştiricileri: Mikrodenetleyici ve sistem yazılımı yapan profesyoneller
  • Üniversite Öğrencileri: Bilgisayar ve elektronik mühendisliği öğrencileri
  • Sistem Programlama Yapan Profesyoneller: Düşük seviyeli yazılım üretenler
  • Oyun Motoru Geliştiricileri: Performans kritik kod yazan kadrolar
  • Diğer Dillere Geçmek İsteyen Yeni Yazılımcılar: Temel atmak isteyen profesyoneller
  • Linux Kernel Geliştiriciler: Açık kaynak sistem yazılımına katkı vermek isteyenler
  • IoT Cihaz Geliştiricileri: Kısıtlı kaynaklı donanım için yazılım üretenler

Eğitim Yöntemi

Sunum, kod editörü üzerinde adım adım örnekler, pointer atölyesi, dinamik bellek egzersizi ve katılımcının kendi mini C projesi yazma pratiği ile yürür.

Kazanımlar

  • Veri Türleri ve Operatörler: int, float, char, double bilinçli kullanımı
  • Kontrol Yapıları: if, switch, for, while ile akış yönetimi
  • Fonksiyon ve Diziler: Modüler kod ve veri yapıları
  • İşaretçiler (Pointer): C'nin en güçlü ve riskli özelliği
  • Dinamik Bellek: malloc, free ile bellek yönetimi
  • Yapı (Struct) ve Birlik (Union): Karmaşık veri tipleri kurma
  • Dosya İşlemleri: Standart kütüphane ile dosya okuma-yazma

Eğitim Süresi

4 Gün (32 Saat). Kurumsal talebe göre 3 günlük yoğun veya 5 günlük uygulamalı versiyon olarak planlanabilir.

C Eğitimi İçeriği

1. C Dilinin Tarihçesi ve Konumu

  • Ritchie ve K&R kitabından bugüne C
  • C standartları (C89, C99, C11, C17)
  • Modern dillerle akrabalık ilişkisi
  • Hangi sektörde hâlâ tercih edilir

2. Geliştirme Ortamı

  • GCC, Clang derleyicileri
  • VS Code ve Code::Blocks IDE
  • Makefile temelleri
  • Önişlemci, derleyici ve linker akışı
  • Hata mesajlarını okuma alışkanlığı

3. Veri Türleri ve Değişkenler

  • int, float, double, char temel tipler
  • signed/unsigned ayrımı
  • Sabitler ve typedef ile takma adlar
  • Değişken kapsamı ve ömrü

4. Operatörler ve İfadeler

  • Aritmetik, mantıksal ve bit operatörleri
  • Atama ve karşılaştırma operatörleri
  • Tip dönüşümleri (implicit ve explicit)
  • Önbelleğe alınmış işlem sıralaması

5. Kontrol Yapıları

  • if-else ve nested if
  • switch-case yapısı
  • for, while ve do-while döngüleri
  • break, continue ve goto kullanımı
  • Sonsuz döngü ve döngü tasarımı

6. Fonksiyonlar

  • Fonksiyon prototipi ve tanımı
  • Parametre geçişi (value ve reference)
  • return ve void fonksiyonlar
  • Rekürsif fonksiyonlar
  • Modüler kod yazma alışkanlığı

7. Diziler (Array)

  • Tek boyutlu dizi tanımı
  • Çok boyutlu diziler
  • Dizi-pointer ilişkisi
  • Dizi üzerinde iterasyon
  • Sabit boyut ve sınır kontrolü

8. Karakter Dizileri (Strings)

  • Null karakter ile string sonlandırma
  • string.h kütüphanesi fonksiyonları
  • strcpy, strcat, strcmp kullanımı
  • Güvenli string fonksiyonları

9. İşaretçiler (Pointer) Temelleri

  • Pointer tanımı ve adres operatörü
  • Dereferans (*) ile değer erişimi
  • NULL pointer ve güvenlik
  • Pointer aritmetiği
  • Yaygın pointer hataları

10. İleri Pointer Konuları

  • Pointer to pointer kullanım örnekleri
  • Fonksiyon işaretçileri
  • Pointer ile dizi geçişi
  • void pointer ve generic veri

11. Dinamik Bellek Yönetimi

  • malloc, calloc, realloc kullanımı
  • free ile bellek serbest bırakma
  • Memory leak ve dangling pointer
  • Heap ve stack ayrımı
  • Belleğe duyarlı kod alışkanlıkları

12. Yapı (struct) ve Birlik (union)

  • Struct tanımı ve üye erişimi
  • Nested struct ve struct array
  • typedef ile struct yapısını sadeleştirme
  • Union ile bellek paylaşımı
  • Bit-field yapıları

13. Numaralandırma (enum) ve Sabitler

  • enum tanımı ve okunabilirlik
  • #define ile sembolik sabitler
  • const anahtar kelimesi
  • Karmaşık veri yapıları için kombinasyon

14. Dosya İşlemleri

  • FILE pointer ve fopen modları
  • fprintf, fscanf, fgets, fputs
  • İkili (binary) dosya okuma yazma
  • fseek, ftell ile dosya konumu
  • Hata kontrolü ve fclose

15. Standart Kütüphane (stdlib, math)

  • stdlib fonksiyonları (atoi, exit, qsort)
  • math.h matematiksel fonksiyonlar
  • time.h ile zaman işlemleri
  • Rastgele sayı üretimi (rand, srand)

16. Önişlemci ve Makrolar

  • #include, #define, #ifdef direktifleri
  • Parametreli makrolar
  • Header guard ile çoklu include koruması
  • Makro vs inline fonksiyon dengesi

17. Çoklu Dosya Projeler

  • Header ve source dosya organizasyonu
  • Static ve extern değişkenler
  • Linkleme ve modül yapısı
  • Makefile ile büyük proje derleme

18. Hata Ayıklama ve Test

  • printf-debugging ve assert
  • GDB ile breakpoint kullanımı
  • Valgrind ile bellek hatası tespiti
  • Birim test yaklaşımları

19. Veri Yapıları ve Algoritma Uygulamaları

  • Bağlı liste implementasyonu
  • Yığın ve kuyruk yapıları
  • Ağaç ve hash tablosu temelleri
  • Temel sıralama algoritmaları
  • Arama algoritmaları

20. Sistem Programlama Giriş

  • Komut satırı argümanları (argc, argv)
  • Sinyaller (signal handling)
  • Fork ve process kavramları
  • Düşük seviyeli I/O
  • Gömülü sistem için C örnekleri

EĞİTİMLERİMİZ




GAMES

Click for Akiza Games | Akiza Oyunları için tıklayın.


Kulak Ver

Kalemin yazıyı kontrol edemeyeceği gibi, bilgisayarlar da kararları kontrol edemez. Ama kalemsiz yazmaya çalışmanın da hiçbir avantajı yoktur.