Oszczędzić czas:
Poprawić jakość kodu:
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:
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.
Jesteś programistą embedded
Chcesz dodać do swojego arsenału nowe techniki pracy z kodem, dzięki którym będziesz sobie efektywniej radzić z wyzwaniami w projektach.
Masz zerowe doświadczenie z TDD
Może pierwszy raz słyszysz ten termin. A może znasz go tylko z książek, czy artykułów. Nie ma problemu - w kursie uczymy się wszystkiego od początku.
Znasz TDD, ale Cię nie przekonuje
Może masz za sobą jakieś doświadczenia z TDD, ale nie kończyły się sukcesem? Z kursu dowiesz się jak unikać błędów i wyrobić sobie dobre nawyki.
Potrzebujesz TDD do projektu
Wchodzisz do projektu, gdzie TDD jest wymagane, ale nie wiesz jak to ugryźć? A może masz narzucone normy pokrycia testami? Z kursu dowiesz się jak ugryźć te tematy w projektach.
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.
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?
TDD w embedded nie jest zbyt popularne. Możliwe, że w projekcie będziesz jedyną osobą, która miała z nim do czynienia. Przekonanie zespołu do wprowadzenia TDD bywa trudne i wymaga czasu. Na szczęście przechodziłem tę drogę w wielu projektach i mam dla Ciebie porady bazujące na własnym doświadczeniu.
Dobre praktyki
i antywzorce
Podczas nauki TDD niektóre rzeczy są dla nas nieintuicyjne. Łatwo wtedy przyjąć złe nawyki. W kursie pokażę Ci na co uważać i czego unikać. Pokażę Ci również jakie dobre praktyki stosować.
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.
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]
B.01 Instrukcja Discord [6:13]
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]
5.11 Dobre praktyki [7:26]
5.11 Praca domowa [1: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]
3. Thread Safety - jak pisać bezpieczny
kod [2:14:35]
4. Jak pisać kod niezależny od platformy
sprzętowej? Programowanie generyczne
[1:55:03]
5. Współbieżność w Linuxie [1:52:22]
6. Debugowanie i trace z GDB [2:01:31]
7. Protokoły komunikacyjne w embedded
[2:02:39]
8. Czytelny i wydajny kod w C (który po
prostu działa) [3:05:06]
9. Continuous Integration i Jenkins
[1:26:25]
10. Wzorce projektowe w
Embedded [2:20:12]
Ale mam dla Ciebie specjalną promocję!
Do środy 13 listopada do godziny 21:00 cena promocyjna to:
Po tym czasie kończy się promocja i wracamy do regularnych cen.
Kolejna promocja dopiero za kilka miesięcy, ale cena nigdy nie będzie niższa niż teraz.
Dostęp do platformy i wszystkich materiałów otrzymasz NATYCHMIAST
Dostęp do kursu nie ma ograniczeń czasowych!
Przykładowa biblioteka Modbus
Zamknięta grupa dla kursantów
Certyfikat ukończenia kursu
Do tej pory w kursie wzięło udział ponad 300 osób!
Oto kilka z ich opinii:
"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: ⭐⭐⭐⭐⭐
"Bardzo dziękuje za przekazaną wiedzę, ukończenie kursu zajęło mi dużo czasu, bo aż 4 miesiące spokojnej analizy wieczorami po pracy. Trochę czasu poszło na skonfigurowanie HW do przykładów z STM32 w bare-metal. Starałem się wnikliwie zapoznawać z przykładami i zadaniami domowymi. Teraz po zakończeniu czuję, że chcę spróbować TDD w swoim pierwszym projekcie samodzielnym, w którym planuje wykorzystać zarówno GTest'a, dołożyć trochę analizy statycznej i CI z Jenkinsem, aby oprzeć swoją wiedzę o praktykę."
Paweł Wojciechowski,
Uczestnik II edycji kursu
Ocena kursu: ⭐⭐⭐⭐☆
"Kurs jest bardzo ukierunkowany na konkretne problemy w embedded. Bardzo podobały mi się przykłady, łącznie z biblioteką Modbus! :)
Bardzo polecam, zwłaszcza jeżeli ma się podstawową wiedzę na temat C i mikrokontrolerów — jak pisałem wyżej jest dużo praktycznych przykładów"
Marcin Krakowski,
Uczestnik II edycji kursu
Ocena kursu: ⭐⭐⭐⭐⭐
"Przed zakupem samo zagadnienie testowania wydawało mi się niezrozumiałe i trudne. Warto było kupić kurs, niektóre techniki z niego wykorzystuję w swojej pracy.
Ten kurs to niezbędnik każdego programisty C, a nawet C++."
Bartłomiej Dziąg
Uczestnik II edycji kursu
Ocena kursu: ⭐⭐⭐⭐⭐
"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
Ocena 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"
Ocena kursu:Uczestnik I edycji kursu
Ocena kursu: ⭐⭐⭐⭐☆
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.
Ale mam dla Ciebie specjalną promocję!
Do środy 13 listopada do godziny 21:00 cena promocyjna to:
Po tym czasie kończy się promocja i wracamy do regularnych cen.
Kolejna promocja dopiero za kilka miesięcy, ale cena nigdy nie będzie niższa niż teraz.
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!
Oczywiście!
Możesz:
To naturalny sposób zdobywania wiedzy. Problem w tym, że jest żmudny.
Czy jeżeli nigdy nie miałam/miałem do czynienia z TDD, ten kurs jest dla mnie?
Tak! Jedynym warunkiem jest sprawne programowanie w C na systemy embedded. Test Driven Development będziemy uczyć się od podstaw. Jeżeli nie masz pewności - pamiętaj o gwarancji satysfakcji i 30 dniach na zwrot.
Czy jeżeli mam już doświadczenie z TDD, ten kurs jest dla mnie?
To zależy od Ciebie. Jeżeli jesteś ekspertem w tej dziedzinie, pewnie większość treści kursu nie będzie dla Ciebie nowością. Poznasz za to inne spojrzenie na niektóre aspekty. Z kolei jeżeli masz jakieś doświadczenie z TDD, ale nie za duże - kurs będzie doskonałą okazją do uporządkowania wiedzy i poznania nowych rzeczy.
Jak będą wyglądać zadania domowe?
Większość zadań domowych polega na samodzielnym napisaniu kodu. Rozwiązaniami możesz podzielić się na naszej grupie, żeby otrzymać review i przedyskutować kwestie implementacyjne. Praca domowa może wymagać od Ciebie 1-2 godzin czasu. To jest niezbędne, żeby nauczyć się praktycznej umiejętności. Bez rozwiązywania prac domowych Twój udział w kursie nie będzie pełny.
Czy ten kurs jest tylko dla programistów C na mikrokontrolery?
Nie. Podstawy są takie same dla każdej technologii. Niezależnie, czy piszesz w C, w C++, na ARMy, czy na Linuxa. Przykłady będą głównie w C na STM32, ale na testy już będą pisane w większości we frameworkach w C++. Tak samo kwestie sprzętowe i konfiguracja w większych projektach będą zawierały wiele części wspólnych z innymi rodzajami projektów embedded.
Czy mam dostęp od razu do całego kursu?
Tak. Kupując kurs otrzymujesz od razu dostęp do wszystkich lekcji i nagrań bonusowych, które znajdują się na platformie kursowej. Otrzymujesz również dostęp do wszystkich późniejszych aktualizacji. Możesz więc przechodzić kurs moduł po module i właśnie takie podejście Ci polecam. Możesz jednak również obejrzeć sobie dalsze lekcje, które akurat są dla Ciebie w danej chwili najciekawsze.
Czy muszę przejść moduł w ciągu jednego tygodnia?
Nie. Możesz przechodzić go w swoim tempie. Dostęp do nagrań masz przez cały czas. Możesz więc przerabiać je później, odtwarzać ponownie, czy wrócić do nich za rok jak zechcesz sobie coś przypomnieć. Prace domowe i pytania do lekcji możesz publikować na grupie również w swoim tempie.
Czy mogę pobrać nagrania?
Nie. Nagrania są dostępne tylko na platformie kursowej i nie można ich kopiować. Ale dostęp do platformy masz na stałe, więc nie musisz się obawiać, że znikną.
Czy otrzymam fakturę VAT?
Tak, faktura jest wysyłana na maila w formacie PDF parę minut po dokonaniu płatności.
Czy mogę zamówić kurs na fakturę na firmę zamiast przez stronę sprzedażową?
Tak. Napisz na kontakt@ucgosu.pl ile sztuk kursu chcesz zamówić i jakie mają być dane do faktury. Wyślę Ci fakturę proforma na podane dane, a po opłaceniu otrzymasz fakturę VAT. Dostęp do platformy kursowej otrzymasz za pomocą specjalnego kodu podawanego przy rejestracji.
Co mam zrobić, jeżeli procedury zamówienia w mojej firmie trwają dłużej i nie zdążę do zamknięcia sprzedaży?
Wystarczy, że napiszesz o tym w mailu na kontakt@ucgosu.pl. Wtedy na spokojnie dopniemy wszystkie formalności już po zamknięciu sprzedaży.
Czy mogę zamówić kurs teraz a opłacić później?
Tak. Po dokonaniu zamówienia na platformie kursowej otrzymujesz na maila link do płatności i możesz opłacić go później. Masz na to 14 dni. Dzięki temu płatność możesz wykonać również po zamknięciu sprzedaży. Jeżeli link do płatności wygaśnie wcześniej, albo masz jakiś inny problem z płatnością - napisz do mnie na kontakt@ucgosu.pl to pomogę.
Jeżeli masz jakiekolwiek pytania - pisz na kontakt@ucgosu.pl
© 2024 ucgosu.pl | Polityka prywatności