
Nie musisz już wszystkiego debugować na sprzęcie!
Poznaj Test Driven Development
dla systemów Embedded!
Od podstaw do komercyjnych projektów!
Masz wrażenie, że w każdym projekcie walczysz z tymi samymi problemami?
Co jeśli zignorujesz problemy?
Ale mam dla Ciebie ROZWIĄZANIE!
Test Driven Development to technika wytwarzania oprogramowania wykorzystująca testy automatyczne.
I doskonale sprawdza się również w branży Embedded!
Test Driven Development pomoże Ci:

Oszczędzić czas:

Poprawić jakość kodu:
Z TDD możesz zacząć pracę nad kodem nie mając docelowego PCB!
O mnie
Nazywam się Maciek Gajdzica. Jestem programistą systemów embedded od 2012 roku. Kod, który pisałem działa na urządzeniach elektronicznych w budynkach, na torach kolejowych, czy w samochodach.
Być może znasz mnie z:
- Bloga https://ucgosu.pl/
- Kanału na YouTube
- Konferencji i meetupów
TDD nauczyłem się dosyć wcześnie i wykorzystywałem w wielu różnych projektach. Na własnej skórze przekonałem się, kiedy TDD się sprawdza, a kiedy nie. Popełniałem błędy i wyciągałem z nich wnioski.
Teraz mogę Ci o nich opowiedzieć i Twoja nauka przebiegnie szybciej.


Kurs „TDD w systemach Embedded” to najlepszy sposób nauki!


Nie znajdziesz drugiego kursu o podobnej tematyce,
tym bardziej w języku POLSKIM!

Dla kogo jest ten kurs?


Czy kurs TDD w systemach embedded jest dla Mnie?

Jeżeli jeszcze nie czujesz się pewnie w programowaniu systemów embedded – większość materiałów z kursu na razie Ci się nie przyda. Najpierw podnieś swoje umiejętności z języka C, poznaj jakąś rodzinę mikrokontrolerów, zrób większy projekt, nabierz trochę praktyki. Dopiero wtedy weź się za Test Driven Development.
Jeśli nie masz pewności, czy kurs jest dla Ciebie – pamiętaj o gwarancji satysfakcji.
Co znajdziesz w kursie?

Podstawy TDD
Podstawy TDD są takie same w embedded, aplikacjach bankowych, czy na frontendzie. Skupimy się tutaj na filozofii TDD, a nie na konkretnych narzędziach. Dzięki temu wyrobisz sobie intuicję. Będzie Ci łatwiej podejmować decyzje. A w przyszłości będzie Ci łatwo przesiąść się na dowolny framework.

Narzędzia
Kiedy poznasz podstawy, weźmiemy się za frameworki. Zarówno te proste, jak i wielkie kombajny. W C i w C++. Do testów i do mocków. Te, które polecam i te, które odradzam.

Specyfika Embedded
Systemy embedded mają swoją specyfikę i niektórych rozwiązań nie znajdziesz w typowych podręcznikach TDD. Czy, kiedy i ile testować na sprzęcie? Co pisać w TDD, a co nie, jak testować drivery sprzętowe, a jak zależności czasowe.

Jak wprowadzać TDD
w projekcie?
Kiedy poznasz podstawy, weźmiemy się za frameworki. Zarówno te proste, jak i wielkie kombajny. W C i w C++. Do testów i do mocków. Te, które polecam i te, które odradzam.

Dobre praktyki
i antywzorce
Kiedy poznasz podstawy, weźmiemy się za frameworki. Zarówno te proste, jak i wielkie kombajny. W C i w C++. Do testów i do mocków. Te, które polecam i te, które odradzam.

A przede wszystkim
dużo praktyki
TDD to umiejętność praktyczna i nauczysz się jej tylko ćwicząc. Dlatego w kursie znajdziesz rozwiązania przykładowych zadań, prace domowe oraz zamkniętą grupę dla kursantów, gdzie możesz przedyskutować rozwiązania.
Agenda

0.1 Powitanie [0:36]
0.2 Dla kogo jest ten kurs? [2:09]
0.3 Plan działania [3:09]
0.4 Jak studiować ten kurs [1:56]
0.5 Narzędzia wykorzystywane w kursie
[1:14]
0.6 Efekt końcowy [1:42]
0.8 Twój instruktor [1:18]
0.9 Praca domowa[2:45]

1.0 Intro [1:21]
1.1 O co chodzi w Test Driven Development [6:49]
1.2 Mikrocykl TDD [6:05]
1.3 Faza Red [5:36]
1.4 Faza Green [4:35]
1.5 Faza Refactor [4:29]
1.6 TDD w praktyce [4:26]
1.7 Jak pisać dobre testy? [3:55]
1.8 Minimalna konfiguracja [2:49]
1.9 Przykład [1:31:51]
1.11 Praca domowa [5:44]

2.0 Intro [1:59]
2.1 Dlaczego zależności przeszkadzają
w testach [4:22]
2.2 Rodzaje mocków [5:34]
2.3 Budowa mocka [7:09]
2.4 Własne mocki, czy frameworki? [6:37]
2.5 Kiedy mockować, a kiedy nie? [6:15]
2.6 Mocki a interfejsy [3:48]
2.7 Przykład – alarm o niskim
poziomie baterii [35:57]
2.9 Praca domowa [5:14]

3.0 Intro [2:12]
3.1 Frameworki testowe [7:23]
3.2 Co zawiera framework testowy? [8:09]
3.3 Framework unity [4:43]
3.4 Googletest [5:11]
3.5 Catch2 [8:45]
3.6 FFF – Fake Function Framework [7:36]
3.7 Googlemock [9:23]
3.8 Trompeloeil [5:07]
3.9 Ceedling [4:18]
3.10 Vectorcast [12:13]
3.11 Praca domowa [2:14]

4.0 Intro [1:05]
4.1 Piramida testów [12:14]
4.2 TDD dla driverów [6:11]
4.3 Zdrowe podejście do testów HW
[16:23]
4.4 Testowanie rejestrów [8:33]
4.5 Testy na docelowym sprzęcie [11:04]
4.6 Jak uruchomić testy na HW [8:55]
4.7 Testy półautomatyczne [1:43]
4.8 Zadanie – testy rejestrów HW [16:14]
4.9 Praca domowa [1:05]

5.0 Intro [0:36]
5.1 Cechy dobrych testów [13:49]
5.2 Zależności [22:41]
5.3 Jak refactorować [11:12]
5.4 Jak dzielić testy? [9:57]
5.5 Kontrola wersji a TDD [8:22]
5.6 Testy a dokumentacja [5:08]
5.7 Behavior driven development [5:28]
5.8 Betonowanie kodu testami [9:05]
5.9 Green bar addiction [6:11]
5.10 Antywzorce [17:02]

6.0 Intro [0:50]
6.1 Funkcje i zmienne statyczne [10:41]
6.2 Testowanie prywatnych elementów
[13:28]
6.3 Wstawki asemblerowe [15:41]
6.4 Nieskończone pętle i funkcje
noreturn [9:38]
6.5 Przerwania [6:17]
6.6 Zależności od RTOSa [13:55]
6.7 Biblioteki zewnętrzne [14:59]
6.8 Maszyny stanu [18:04]
6.9 Zależności sprzętowe [11:21]
6.9 Przykład – pilot do telewizora [1:32:04]
6.9 Praca domowa [1:29]

7.0 Intro [1:03]
7.1 Zanim wdrożysz TDD w swoim projekcie [19:03]
7.2 Wymówki, aby nie stosować TDD
[20:52]
7.3 Code Coverage [27:38]
7.4 Kiedy nie stosować TDD [13:42]
7.5 Code Review [7:44]
7.6 Istniejąca baza kodu [8:22]
7.7 Strategia testowania w projekcie [23:28]
7.14 Praca domowa [0:51]

8.0 Intro [0:44]
8.1 Analiza statyczna [14:49]
8.2 Analiza statyczna a TDD [10:40]
8.3 Analiza dynamiczna [9:09]
8.4 Code coverage [7:48]
8.5 System budowania [14:22]
8.6 Serwer Continuous Integration
[12:41]
8.7 Automatyczne testy HW [8:55]
8.8 Wsparcie IDE [9:41]
8.9 Przykład – konfiguracja narzędzi
[14:04]
8.10 Praca domowa [2:05]

FF.1 Intro [0:59]
FF.2 Co dalej? [2:08]
FF.3 Certyfikat ukończenia [1:47]

1. Biblioteka Modbus – część 1 [29:48]
2. Biblioteka Modbus – część 2 [29:43]
3. Biblioteka Modbus – część 3 [28:58]
4. Biblioteka Modbus – część 4 [24:24]
5. Biblioteka Modbus – część 5 [19:43]
6. Biblioteka Modbus – część 6 [27:07]
7. Biblioteka Modbus – część 7 [39:02]
8. Biblioteka Modbus – część 8 [17:49]
9. Biblioteka Modbus – część 9 [48:45]
10. Biblioteka Modbus – część 10 [40:10]

1. Numbers to LCD [2:08:56]
2. EEPROM + CAN [1:58:46]
Co dostajesz w kursie?
A ile kosztuje kurs?
1598 zł (1299 zł netto)
Najniższa cena w ostatnich 30 dniach: 1106 zł
Co dostajesz w kursie?
Sprawdź przykładowe lekcje:
Poznaj platformę kursową:




Dostęp do platformy i wszystkich materiałów otrzymasz NATYCHMIAST!
Dostęp do kursu nie ma ograniczeń czasowych!
Otrzymasz również bonusy!
Przykładowa biblioteka Modbus
- Biblioteka napisana przy użyciu TDD
- Pokazuje cały proces łącznie z uruchamianiem i testowaniem na STM32
- Nagrania wideo tłumaczące kolejne etapy powstawania kodu
- Repozytorium git z opisanymi poszczególnymi krokami


Zamknięta grupa dla kursantów
- Dostajesz do niej dostęp na początku szkolenia
- Opublikujesz tam prace domowe i dostaniesz feedback ode mnie i innych kursantów
- Możesz tam prowadzić dyskusje dotyczące TDD w Embedded
- Znajdziesz tam newsy dotyczące kursu
- Dostaniesz dodatkową motywację do przerabiania kursu i robienia samodzielnych zadań
Certyfikat ukończenia kursu
- Wersja PDF wysyłana na email
- Wersja papierowa wysyłana pocztą na wskazany przez Ciebie adres
- Możesz otrzymać certyfikat w obydwu formatach

Co mówią uczestnicy?
Do tej pory w kursie wzięło udział
ponad 220 osób!
Oto kilka z ich opinii:
„Mam porównanie do studiów zaocznych (płatnych). Tam jeden przedmiot kosztuje podobną ilość pieniędzy. U Ciebie na kursie jest dużo więcej „mięsa”, praktycznych rzeczy. Temat jest przerobiony od A do Z, przykłady są adekwatne, pokrywają wszystko co mówisz w częściach teoretycznych. Myślę że kurs ma bardzo dużą wartość. Nawet te późniejsze moduły, nie tak bardzo związane z TDD (strategia testowania, ogólnie o testowaniu, narzędzia developerskie itp) były przydatne i ciekawe, podchodzą całościowo do pracy developera.„
Bazyli Gielniak,
Uczestnik I edycji kursu
„Nie znałem jeszcze dobrze prowadzącego, był to jeden z pierwszych moich punktów styku z ucgosu. Jednak warto było kupić kurs, mało jest tego typu dobrej jakości kursów, dostępnych w przystępnej cenie i po polsku. Widać, że autor jest przede wszystkim praktykiem i chyba najbardziej przekonał mnie filmik na YT, gdzie było powiedziane, że TDD nie nadaje się do wszystkiego i było wyjaśnione dlaczego. Kurs jest dobrze poukładany i przeznaczony do embedded. Zdecydowanie mogę polecić – zadania są dobrze dobrane do ćwiczeń, można się sporo nauczyć nawet jeśli chodzi o samą konfigurację VS code.”
Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐☆
„Nie miałem obaw przed zakupem kursu, zainteresował mnie szeroki zakres tematów – kompleksowość kursu.
W kursie znajduję się bardzo duża ilość tematów, każdy z nich dobrze lub bardzo dobrze opisany. To jest przewodnik od A do Z.
Polecam ten kurs innym szeroki zakres dobrze omówionych tematów w niskiej cenie.”
Konrad Winnicki
Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐☆
„Po przerobieniu poprzedniego kursu nie miałem żadnych obaw przed zakupem.W końcu ktoś pokazał TDD w kontekście embedded, a nie języków wysokopoziomowych. Polecam kurs innym, bardzo merytoryczna zawartość przekazana w przystępny sposób.”
Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐⭐
„Dzięki kursowi zrozumiałem na czym polega TDD i jak to mogę wykorzystać w swoich projektach. Najbardziej podobały mi się przykłady praktyczne. Polecam kurs tym którzy nie mieli wcześniej do czynienia z TDD.”
Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐☆
„Przed zakupem obawiałem się, że będzie mało praktyki, jednak kurs zawiera dużo przykładów i praktyki. Polecam, można postawić pierwsze kroki z TDD”
Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐☆
„Warto kupić kurs, ponieważ już po pierwszych modułach byłem w stanie wykorzystać wiedzę w projekcie komercyjnym. Miałem do zaimplementowania logikę, którą w całości mogłem przetestować na maszynie deweloperskiej i dopiero wtedy skompilować dla mikrokontrolera. Dzięki zdobytej podczas kursu wiedzy praca była znacznie przyjemniejsza i szybsza.
Polecam, ponieważ warto się doszkalać. Na pewno znajomość metody TDD a przynajmniej umiejętność pisania testów to plus na rozmowie kwalifikacyjnej, ale też realne usprawnienie pracy programisty.”
Marcin Połomski,
Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐⭐
„Kurs pozwolił mi usystematyzować wiedzę, ukazał inne podejście i korzyści ze stosowania TDD.
Pozwoli mi to na przekonanie zespołu do stosowania m.in. rozbijania testów na mniejsze grupy.”
Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐⭐
„Warto kupić kurs zdecydowanie poprawił moje umiejętności związane z TDD.
Najbardziej podobały mi się w kursie przykłady rozwiązywania zadań krok po kroku.
Kurs polecę każdej osobie której zależy na nauczeniu się TDD”
Uczestnik II edycji kursu
Ocena kursu: ⭐⭐⭐⭐⭐
Co dostajesz w kursie?
Gwarancja satysfakcji

Przygotowałem szkolenie najlepiej jak potrafię. Zawarłem tam wiedzę, do której dochodziłem wiele lat. Umieściłem treści, które sam chciałbym otrzymać i które pomogłyby mi w różnych sytuacjach jakie napotykałem na swojej ścieżce zawodowej.
Jeżeli jednak z jakiegokolwiek powodu uznasz, że to szkolenie nie jest dla Ciebie – wystarczy, że napiszesz na kontakt@ucgosu.pl.
Otrzymasz wtedy zwrot 100% Twojej wpłaty. Masz na to 30 dni.
Cena kursu to:
1598 zł (1299 zł netto)
Najniższa cena w ostatnich 30 dniach: 1106 zł
To mniej, niż za szkolenie stacjonarne, które i tak nie poruszy tych wszystkich tematów!
Kurs online ma też inne zalety! Nie musisz być w tym samym miejscu, nie odrywasz się od innych obowiązków, możesz później wracać do przerobionych materiałów. Kursy stacjonarne tego wszystkiego nie oferują.
Jednym słowem – studiujesz kurs NA WŁASNYCH WARUNKACH!
Czy jest inna droga?
Oczywiście!
Możesz:
To naturalny sposób zdobywania wiedzy. Problem w tym, że jest żmudny.
Mi dojście do pewnych rozwiązań zajęło kilka lat. Teraz chcę Ci je przekazać, żeby oszczędzić Twój czas.
Kontakt
Jeżeli masz jakiekolwiek pytania – pisz na kontakt@ucgosu.pl