fbpx ...

Kurs C++ online – podsumowanie maja

Mija maj i zarazem pierwszy etap naszego kursu C++ online. Postanowiłem napisać małe podsumowanie, jak wyglądał on z mojej perspektywy.

Platforma kursu

Platforma, na której uczestnicy mają dostęp do wszystkich lekcji, posiadała w momencie rozpoczęcia minimalną wymaganą funkcjonalność (osoby znające temat agile nazwą to MVP – Minimum Viable Product).

    • lekcje
    • quizy
    • śledzenie postępów
    • grywalizacja
        • punkty
        • osiągnięcia (jeszcze nieskonfigurowane)
        • poziomy
        • nagrody (tylko wstępnie skonfigurowane)
        • ranking
    • integracja z GitHubem
        • Pull Requesty
        • Code Review
        • Issues

W międzyczasie starałem się dodawać nowe funkcjonalności i ulepszać platformę. Szybko okazało się, że nie mam aż tyle czasu. Co 100 par oczu to nie jedna. Uczestnicy kursu bardzo skrupulatnie wyłapują wszystkie błędy i jak na model open-source przystało zgłaszają je jako Issue na GitHubie. Samo zarządzanie Issues oddelegowałem i zajmuje się nim Paweł, jeden z kursantów. To on przypisuje zgłoszeniom odpowiednie priorytety i kategorie. Jeśli coś wymaga mojej uwagi lub działania to dowiem się o tym od niego 🙂 Jeśli nie wymaga, to błąd mogą naprawić sami uczestnicy kursu zgłaszając odpowiedni Pull Request. Jestem bardzo dumny z ich postawy oraz wdzięczny za okazaną pomoc. Sam nie byłbym w stanie dobrze tego ogarniać.

Przy aż tylu zaangażowanych osobach udaje nam się także wykrywać błędy w samych silnikach platformy, które oczywiście zgłaszamy do ich twórców 😃.

Dalsze prace nad platformą

    • konfiguracja osiągnięć (czerwiec)
    • konfiguracja nagród (czerwiec)
    • zautomatyzowane przyznawanie punktów za prace domowe po Code Review jednego z trenerów (czerwiec)
    • zautomatyzowane przyznawanie punktów za prace domowe po określonej liczbie zatwierdzeniach przez innych uczestników (lipiec)

Zmiana harmonogramu kursu

Staram się reagować szybko na potrzeby uczestników. Wspólnie podejmowaliśmy decyzje, że dla nich nauka będzie bardziej owocna, jeśli pozamieniamy miejscami tematykę naszych spotkań. Wstępnie zaproponowany przeze mnie układ lekcji w maju był taki:

DataTematyka
11.05 (pn)Intro: organizacja kursu, zaproszenie na platformę, formalności, Visual Studio Code, repl.it, GitHub
14.05 (cz)Podstawy #1: typy wbudowane i auto, funkcje, instrukcje warunkowe, pętle, tablice
18.05 (pn)Podstawy #2: std::string, std::vector<T>, std::map<K, V>, range based for loop
21.05 (cz)Podstawy #3: zasięg zmiennych, referencja i wskaźnik, enum i enum class
25.05 (pn)Narzędzia #1: linux – linia komend, vim
28.05 (cz)Narzędzia #2: git, GitHub

Ostatecznie wyglądało to tak:

Data          Tematyka
11.05 (pn)Intro: organizacja kursu, zaproszenie na platformę, formalności, Visual Studio Code, repl.it, GitHub
14.05 (cz)Podstawy #1: typy wbudowane i auto, funkcje, instrukcje warunkowe, pętle, tablice
18.05 (pn)Narzędzia #1: linux – linia komend, git
21.05 (pn)Podstawy #2: std::string, std::vector<T>, std::list<T>, std::map<K, V>, range based for loop
25.05 (cz)Narzędzia #2: git – konflikty, GitHub, vim, kompilacja
28.05 (cz)Podstawy #3: zasięg zmiennych, referencja i wskaźnik, enum i enum class

Uczestnikom wygodniej było jednocześnie poznawać narzędzia – głównie oswajać się z linuxem i gitem mogąc od razu praktykować pisanie w C++. Kolejność kolejnych lekcji też będzie zmieniona 😃.

Discord

Serwer Coders School na Discordzie jest bardzo aktywnie użytkowany. Uczestnicy stanowią świetną społeczność, która pomaga sobie nawzajem, w większym stopniu, niż przypuszczałem. Wspólna nauka w grupie i wspólne rozwiązywanie problemów jest bardzo motywujące. To tak samo jak chodzenie na siłownię. Samemu jest mniejsza motywacja, niż chodząc z kimś razem. Dzięki uczestnikom powstało kilka nowych kanałów do rozmów, w tym kanały „integracyjne” 😃. Dzięki możliwości stosowania języka Markdown Discord świetnie się sprawdza przy wklejaniu kodu. Zawsze jest on fajnie sformatowany i pokolorowany.

YouTube

Na kanał Coders School na YT 2 razy w tygodniu trafia nowe nagranie naszych zajęć online. Nie są one publicznie dostępne, aby kursanci mogli czuć się bardzo swobodnie i mogli zadawać na czacie pytania o wszystko. Podoba mi się panujący tam klimat. Podczas lekcji jest bardzo dużo pytań, które świetnie uzupełniają to, co jako trenerzy przygotowaliśmy. Nie zamierzamy zmieniać tej platformy, choćby po to, aby umożliwić komunikację głosową z uczestnikami. Przy tylu osobach ciężko by było nad wszystkimi zapanować 😀. Od razu mamy też dostępne nagranie tej lekcji bez dodatkowej pracy.

Prace domowe i przegląd kodu

W chwili, w której to piszę uczestnicy zgłosili w sumie 271 Pull Requestów na GitHubie z dostarczeniem prac domowych. Szał. A jeszcze bardziej zaskoczyli mnie tym, jak wiele osób robi sobie nawzajem przegląd kodu i sugeruje ulepszenia swoich rozwiązań. Aż tak pozytywnej synergii się nie spodziewałem. Jest znacznie większy przepływ wiedzy pomiędzy uczestnikami, niż zakładałem 🙂.

Słowo na koniec

Bardzo chciałbym nagrać jeszcze publiczne wideo z moim osobistym podziękowaniem dla wszystkich osób, które mi kibicowały i wspierały mnie osobiście lub moją szkołę Coders School. Mam nadzieję, że wkrótce uda mi się coś nagrać. Na razie moim największym ograniczeniem jest czas. Poza prowadzeniem zajęć, ciągłym szlifowaniem materiałów i ulepszeniami platformy do kursu mam też prywatne życie i nie mogę niestety się sklonować 😉. Wszystko zajmuje jednak więcej czasu, niż się planowało, czyli standardowo 🙂.

Jeśli chcesz mi pomóc w mojej pracy – odezwij się do mnie na Discordzie lub na lukasz@coders.school 🙂.

ninjaletter

A może Ninjaletter?

Chcesz wiedzieć, co słychać w C++ i nie tylko? Zapisz się na Ninjaletter i otrzymuj od nas co miesiąc dawkę wartościowych treści o C++ i zadania rekrutacyjne. Do tego dorzucamy darmowe materiały, spoilery o nowych kursach, specjalne promocje dla ninjaletterowiczów i wiele, wiele innych. To co, skusisz się?

Łukasz Ziobroń

Łukasz Ziobroń

Zmieniam ludzi w prawdziwych programistów. W nauczaniu stosuję grywalizację, andragogikę i neurodydaktykę.

Najnowsze artykuły

good programming practices

Good programming practices – Coding Dojo

Training in a form of Coding Dojo. Participants start with a code review of a small application. They note down their comments. After that, the trainer presents bad and good programming practices. Participants discuss what can be applied in a reviewed code and start fixing it in a form of Coding Dojo.

Czytaj »

Popular C++ Idioms – Coding Dojo

The training starts with a code review of a small application (pre-work). Participants note their thought and discuss their findings in groups. Then popular C++ idioms are presented (the concept and some code) – about 15-20 minutes each. After that participants need to use some of the idioms in a reviewed application code.

Czytaj »
performance optimisations

Performance optimisations

This training is about writing more robust C++ code and algorithms with the help of CPU caches and a compiler. Benchmarking tools are used to show performance gains.

Czytaj »
C++ toolset

C++ toolset

Covers a lot of ground about C++ related tools: build systems, compilers, debuggers, static and dynamic binary analyzers. It is focused more on discovering useful tools, that can solve many software engineering problems.

Czytaj »

Templates – Advanced techniques

Basic usage of C++ templates may not be enough to utilize opportunities, which were introduced in the latest C++ standards. From C++11 we can use templates with any number of parameters and use a simplified mechanism for SFINAE, which is claimed to be a real C++ wizardry.

Czytaj »
templates – basics

Templates – Basics

Templates are pointed out to be the most difficult part of the C++ language. Difficult, but very useful. They allow writing very generic and universal code. Thanks to them, we can avoid code duplication, but also, make it incomprehensible for beginners. This session allows for gaining the necessary knowledge and good practices on using templates.

Czytaj »
STL algorithms in C++ 17

STL Algorithms in C++ 17

This training focuses on the effective use of C++ documentation to implement applications with the use of STL algorithms. First part is mainly theoretical, but there are many short exercises (in a paper form) to apply knowledge instantly and force participants to think and search for solutions in the documentation. The other part is a group activity – implementation of the cryptographic application with proper STL algorithms instead of raw loops.

Czytaj »
STL containers

STL Containers

This training focuses on the effective use of C++ documentation. Computational complexity issues are mentioned. There are many short exercises to apply knowledge instantly and force participants to think and search for solutions in the documentation.

Czytaj »
ninjaletter

Już uciekasz?

Zanim to zrobisz, zapisz się na Ninjaletter, aby wiedzieć, co piszczy w C++. 

Informujemy, iż w celu realizacji usług dostępnych w naszym serwisie, optymalizacji jej treści, dostosowania strony do Państwa indywidualnych potrzeb oraz wyświetlania, personalizacji i mierzenia skuteczności reklam w ramach zewnętrznych sieci reklamowych korzystamy z informacji zapisanych za pomocą plików cookies na urządzeniach końcowych użytkowników. Pliki cookies można kontrolować za pomocą ustawień swojej przeglądarki internetowej. Dalsze korzystanie z naszego serwisu, bez zmiany ustawień przeglądarki internetowej oznacza, iż użytkownik akceptuje stosowanie plików cookies. Więcej informacji zawartych jest w polityce prywatności serwisu.