ADVANCED C PROGRAMMING EĞİTİMİ

İleri C ile sağlam sistem yazılımı geliştirin

Bellek yönetimi, veri yapıları, çok modüllü derleme, pthread ve soketler, düşük seviye C, performans, test ve güvenli kodlamayı uygulamalı öğrenin

İşaretçi ve bellek yönetimi, veri yapıları, CMake, pthread, epoll, düşük seviye C, perf ve güvenli kodlamayı ileri C eğitimiyle öğrenin.

2 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

C dilinde ileri düzey bellek, sistem ve performans programlama

Eğitim, C bilen geliştiricileri sistem düzeyinde yetkinleştirir. İşaretçi aritmetiği, malloc ve bellek hataları, Valgrind ve AddressSanitizer, hash tablosu ve ağaç implementasyonu, union ve bit alanları, önişlemci ve X-macro, Makefile ve CMake, statik ve dinamik kütüphaneler, fork/pipe/sinyal, pthread, epoll ile soket sunucusu, MMIO ve ISR, perf ile profilleme, gdb, sanitizer, fuzzing ve CERT C ile güvenli kodlama ele alınır.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Bellek, Veri Yapıları, Derleme ve Modüler Tasarım; 2. gün Sistem, Düşük Seviye, Performans ve Test.

Seviye

İleri Seviye — Bellek ve işaretçi uzmanlığından veri yapıları, derleme sistemi, sistem programlama, performans ve güvenli kodlamaya uzanan ileri C yelpazesi

Öğrenme Metodu

Katılımcılar bellek sızıntılı kodu ayıklar, hash tablosu ve epoll tabanlı mini sunucu yazar, kütüphane üretir, perf ile optimize eder ve fuzzer ile parser'ı sınar.

Neden Bu Eğitim?

🧠Bellek Hakimiyeti

Sızıntı, taşma ve tanımsız davranışları araçlarla bulup gidermeyi öğrenirsiniz.

⚡Hız ve Verim

Önbellek dostu veri düzeni ve profilleme ile ölçülebilir performans kazanırsınız.

🔒Güvenli Kod

CERT C kuralları ve fuzzing ile saldırıya dayanıklı kod yazarsınız.

Anahtar Konular

advanced c programmingileri c programlamac bellek yönetimivalgrind addresssanitizerpthreadepoll soketcmake makefilec gömülü programlamacert c güvenli kodlamac performans optimizasyonu
“C'de özgürlük, her baytın sorumluluğunu bilmektir.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C Temelleri

Dizi, işaretçi, yapı ve fonksiyon bilgisi gerekir.

2
Linux Kullanımı

Temel Linux komutları ve terminal çalışması beklenir.

3
Derleme Bilgisi

gcc ile derleme ve temel hata mesajlarını okuyabilmek faydalıdır.

4
Laboratuvar Ortamı

gcc, gdb, valgrind ve make kurulu bir Linux veya WSL2 ortamı gerekir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı gün sonunda Bellek ve işaretçi hatalarını ayıklar, veri yapılarını implemente eder, çok modüllü proje derler ve plugin mimarisi kurar.
Modül 1
Bellek Yönetimi ve İşaretçi Uzmanlığı
  • İşaretçi aritmetiği, çok boyutlu dizi - işaretçi ilişkisi ve void* kullanımının sınırları
  • malloc, calloc, realloc, free ve bellek sızıntısı; Valgrind ve AddressSanitizer ile tespit
  • Stack ve heap yerleşimi, bellek hizalama (alignof), padding ve struct paketleme
  • Fonksiyon işaretçileri, callback tasarımı, qsort karşılaştırıcıları ve dispatch tabloları
  • const, volatile ve restrict niteleyicilerinin doğru kullanımı
  • Tanımsız davranış (UB) örnekleri: taşma, dangling pointer, strict aliasing ihlali
Modül 2
Veri Yapıları ve Gelişmiş Tip Kullanımı
  • Bağlı liste, çift yönlü liste ve dairesel tampon (ring buffer) implementasyonu
  • Hash tablosu: hash fonksiyonu, çakışma çözümü (chaining, open addressing) ve yeniden boyutlandırma
  • İkili arama ağacı, yığın (heap) ve öncelik kuyruğu uygulamaları
  • union, bit alanları, enum ve etiketli birleşim (tagged union) ile bellek verimli tasarım
  • Opak tip (incomplete type) ile kapsülleme ve soyut veri tipi arayüzü tasarımı
  • Esnek dizi üyesi (flexible array member), değişken argümanlar (stdarg.h) ve _Generic
Modül 3
Önişlemci, Derleme Süreci ve Çok Modüllü Projeler
  • Derleme aşamaları: önişlemci, derleyici, assembler, bağlayıcı; gcc -E, -S, -c ve nm / objdump
  • Makrolar, ## ve # operatörleri, X-macro tekniği, do { } while(0) ve makro tuzakları
  • Başlık dosyası düzeni, include guard, extern, static bağlantı ve görünürlük
  • Statik ve dinamik kütüphane üretimi (ar, -fPIC, -shared) ve LD_LIBRARY_PATH
  • Makefile ve CMake ile çok dosyalı derleme, otomatik bağımlılık (-MMD) ve derleme bayrakları (-Wall -Wextra -O2)
  • C11/C17 özellikleri: _Static_assert, <stdatomic.h>, <stdint.h> ve taşınabilir kod yazımı
Modül 4
Modüler Tasarım, Hata Yönetimi ve Eklenti Mimarisi
  • C'de nesne yönelimli tasarım: yapı + fonksiyon işaretçisi ile sanal tablo (vtable) taklidi
  • Hata yönetimi kalıpları: dönüş kodu, errno, çıkış etiketi (goto cleanup) ve RAII benzeri temizlik
  • Opak tutamaç (handle) tabanlı kütüphane API'si ve ABI uyumluluğu
  • dlopen / dlsym ile eklenti (plugin) mimarisi ve sembol görünürlüğü (-fvisibility=hidden)
  • Olay döngüsü ve geri çağrı tabanlı mimari (libuv, libevent) örneği
  • Kod stili, belgeleme (Doxygen) ve sürüm numaralama stratejisi
Günün hedefiKatılımcı gün sonunda pthread ve soket sunucusu geliştirir, düşük seviye C yazar, performansı ölçüp iyileştirir ve gdb, sanitizer, fuzzing ile test eder.
Modül 1
Sistem Programlama, Eşzamanlılık ve Güvenli Kodlama
  • POSIX dosya G/Ç: open, read, write, mmap ve tamponlu stdio ile farkları
  • Süreç yönetimi: fork, exec, wait, pipe ve sinyaller (sigaction)
  • pthread: create, join, mutex, condition variable ve veri yarışı (data race) tespiti (ThreadSanitizer)
  • Soket programlama: socket, bind, listen, accept, select / poll / epoll ile çoklu istemci sunucu
  • Güvenli kodlama: tampon taşması, format string, tamsayı taşması ve CERT C kuralları
  • Birim test (Unity, Check), statik analiz (cppcheck, clang-tidy) ve gdb ile hata ayıklama
Modül 2
Gömülü ve Düşük Seviye C Programlama
  • Bit işlemleri, maske ve kaydırma ile register yönetimi; volatile ve bellek eşlemeli G/Ç (MMIO)
  • Kesme servis rutinleri (ISR), kritik bölge ve eşzamanlı erişim
  • Linker script, startup kodu, .text / .data / .bss bölümleri ve bellek haritası
  • Sabit genişlikli tipler, endianness ve ağ bayt sırası (htonl, ntohl)
  • Statik bellek tahsisi, bellek havuzu (memory pool) ve dinamik bellek kullanmama kuralları
  • MISRA C kuralları ve güvenlik-kritik kodlama pratikleri
Modül 3
Performans Optimizasyonu ve Profilleme
  • Derleyici optimizasyon seviyeleri (-O1/-O2/-O3/-Os), LTO ve PGO
  • Önbellek dostu veri düzeni: AoS ve SoA, hizalama ve prefetch
  • perf, gprof, valgrind --tool=callgrind ile profilleme ve flame graph
  • SIMD: SSE/AVX intrinsics ve otomatik vektörleştirme raporu (-fopt-info-vec)
  • inline, restrict, branch tahmini (__builtin_expect) ve döngü açma
  • Mikro benchmark yazımı ve ölçüm hataları (derleyicinin kodu silmesi)
Modül 4
Test, Hata Ayıklama ve Statik Analiz
  • gdb ile breakpoint, watchpoint, backtrace, core dump analizi ve reverse debugging (rr)
  • strace ve ltrace ile sistem çağrısı izleme; AddressSanitizer, UBSan ve MemorySanitizer
  • Birim test çatıları: Unity, CMocka ve Check; mock fonksiyonlar (--wrap)
  • gcov / lcov ile kapsama ve CI'da kapsam eşiği
  • Fuzzing: AFL++ ve libFuzzer ile parser testleri
  • Statik analiz: clang-tidy, cppcheck, Coverity ve derleyici uyarıları (-Werror)

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Bellek ve İşaretçi

Bellek sızıntısı ve tanımsız davranışları Valgrind ve ASan ile ayıklarsınız.

🎯
Veri Yapıları

Hash tablosu ve ağaç gibi veri yapılarını temiz API'lerle implemente edersiniz.

🔧
Derleme ve Modüller

Makefile ve CMake ile çok modüllü, kütüphane üreten C projeleri kurarsınız.

🧩
Modüler C Tasarımı

Opak tutamaç ve plugin mimarisiyle bakımı kolay C kütüphaneleri tasarlarsınız.

📦
Sistem Programlama

pthread ve soket programlayıp güvenli C kodlama kurallarını uygularsınız.

🚀
Düşük Seviye C

Register, ISR ve linker script mantığıyla gömülü tarzı C kodu yazarsınız.

🔒
Performans

perf ve callgrind ile darboğaz bulup önbellek dostu optimizasyon yaparsınız.

📊
Test ve Debug

gdb, sanitizer ve fuzzing ile hataları üretim öncesi yakalarsınız.

Kimler İçin Uygundur?

  • C ile çalışan sistem programcıları
  • gömülü yazılım geliştiriciler
  • C/C++ mühendisleri
  • düşük seviye performansa ihtiyaç duyan yazılımcılar için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
C ile çalışan sistem programcıları, gömülü yazılım geliştiriciler, C/C++ mühendisleri ve düşük seviye performansa ihtiyaç duyan yazılımcılar için uygundur.
C++ bilgisi gerekir mi?
Hayır; eğitim saf C üzerinedir (C11/C17), C++ bilgisi gerekmez.
Hangi ortam kullanılır?
Linux (gcc/clang, gdb, valgrind) ortamı kullanılır; WSL2 ile Windows'tan da katılınabilir.
Gömülü uygulaması var mı?
MMIO, volatile, ISR ve linker script mantığı simülatör veya QEMU ile gösterilir.
Eğitim sonunda hangi belge verilir?
Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Advanced C Programming Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn