Powstały na przełomie lat 60-tych i 70-tych XX wieku w laboratoriach Bell (wówczas firmy AT&T) język C został jednym z najpowszechniej używanych języków programowania w historii, a wiele później opracowanych języków czerpie pewne elementy, w tym przede wszystkim charakterystyczną składnię, właśnie z tego źródła.
Znajomość języka C (bez rozszerzeń obiektowych, w wersji powszechnie znanej jako „ANSI C”) jest obecnie potrzebna przede wszystkim do programowania elementów systemów operacyjnych oraz aplikacji bezpośrednio korzystających z zasobów systemu, szczególnie dla platform opartych o system UNIX (w tym Linux, BSD czy do pewnego stopnia Android), ale rozwiązania oparte o C można spotkać w przeróżnych miejscach. Znajomość C i pojęć obecnych w tym języku (przede wszystkim modelu zarządzania pamięcią) jest także niezbędna, aby dobrze rozumieć działanie systemu operacyjnego (szczególnie UNIX) i aplikacji (także tych pisanych w innych językach) uruchamianych bezpośrednio w systemie.
W stosunku do technologii opartych o maszyny wirtualne, takich jak Java czy .NET, dobrze wykorzystany język C daje możliwość stworzenia rozwiązań „lżejszych” i bardziej wydajnych. Z kolei w stosunku do przebogatego języka C++, C można uznać za język prosty, czysty i czytelny. Wbrew obiegowej opinii w C można programować w sposób strukturalny tworząc duże i wyrafinowane systemy, czego przykładem jest choćby jądro, sterowniki i wiele aplikacji użytkowych systemu Linux. Obecny w C bezpośredni dostęp do pamięci i zasobów to jednak także zagrożenia, dlatego tym bardziej warto znać zasady poprawnego programowania w tym języku.
Szkolenie jest podstawowym kursem języka C, obejmującym składnię języka, typy danych ze szczególnym uwzględnieniem tablic i wskaźników oraz elementy biblioteki standardowej, w tym wejście/wyjście i operacje na napisach. Istotnym składnikiem szkolenia są warsztaty praktyczne, w trakcie których uczestnicy pod kierunkiem prowadzącego implementują w C algorytmy i struktury danych typowe dla każdego wstępnego kursu programowania, ale także realizują ukierunkowane zadania pozwalające przećwiczyć wybrane elementy języka i biblioteki standardowej.
Szkolenie prowadzone jest na platformie Linux z wykorzystaniem kompilatora GNU C (gcc), zdecydowana większość materiału dotyczy jednak elementów niezależnych od platformy. Szkolenie obejmuje najczęściej używane elementy języka C w wersji zgodnej ze standardem ISO/IEC 9899:2011 (tzw. C11), ze zwróceniem uwagi na historię wybranych elementów oraz niektóre niestandardowe rozszerzenia dostępne w GNU C.
Po zakończeniu szkolenia aktywny uczestnik potrafi:
Szkolenie nie obejmuje m.in. następujących tematów (a może być traktowane jako wstęp umożliwiający ich dalsze studiowanie):
Szkolenie nie obejmuje m.in. następujących tematów:
Adresatami szkolenia są osoby chcące od podstaw dobrze poznać język C oraz nauczyć się poprawnego programowania w tym języku.
Oczekiwania wstępne:
Szkolenie polecamy zarówno początkującym programistom chcącym na przykładzie języka C nauczyć się dobrych praktyk w programowaniu, jak i doświadczonym programistom innych języków, którzy mają potrzebę zastosowania języka C w kolejnym projekcie. Szkolenie można także odbyć po prostu w celach samorozwojowych, aby poznać język będący podstawą większości współczesnych języków programowania.
21 godzin (3 dni x 7 godzin), w tym wykłady i warsztaty praktyczne.