Zbiór zadań z rozwiązaniami, część druga.
Książka z zadaniami to odpowiedź na częste pytania, które słyszę: "czy są jakieś zbiory zadań z programowania?" To kontynuacja pierwszej części zbioru zadań. Przy okazji proponuję kurs, w którym podchodzę do nauki inaczej, niż w darmowych kursach na kanale. Na kanale skupiam się na wyjaśnieniu samej teorii, nie próbujemy języka w praktycznych zadaniach. Tutaj robię zadania, ale małymi porcjami, przy okazji rozwiązania, wprowadzam kolejne elementy języka. To taki mix teorii i praktyki w odpowiedniej proporcji. Próbuję nie zmęczyć ani zbyt długim ciągiem teorii, ani zbyt długim ciągiem praktyki. https://helion.pl/ksiazki/c-zadania-z... Film zawiera autopromocję. [autopromocja] https://videopoint.pl/kurs/podstawy-c... https://helion.pl/kurs/podstawy-c-kur... Cześć!
Czytelny kod, który ułatwia poznawanie programowania nie zawsze pociąga za sobą uzyskanie najlepszej wydajności i zastosowania najnowszych zmian języka (choćby dlatego, że coś nowego upraszcza/zmienia coś starego, a gdy rozpoczynamy naukę, nawet stare jest nieznane). W procesie edukacji czytelność i prostota budowania kolejnych kroków rozumowania niekiedy jest niezastąpiona! Wydajność można (a nawet należy) poprawić, gdy już wszystko staje się jasne. Abstrakcyjne konstrukcje o skondensowanej treści i dopieszczona wydajność następują długo po tym, jak krok po kroku uczymy się prostych instrukcji zapisując wszystko jak najprościej, niekiedy wręcz śmiesznie. Odnoszę niejednokrotnie wrażenie, że profesjonalni programiści zapominają, jak zaczynali się uczyć programowania: śmieszne błędy przy pierwszej pętli, pół dnia zmarnowane z powodu błędu logicznego w warunku czy wrażenie uderzenia o beton przy pierwszym bardziej abstrakcyjnym zagadnieniu. Zapomnieli też, jak z czasem odkrywali, że to, czego uczyli się na początku da się zrobić znacznie lepiej, wydajniej i profesjonalniej, jednak gdyby od tego zaczęli, prawdopodobnie nie przeskoczyliby tego wysokiego progu. Szukanie kompromisu między nauczaniem samego języka programowania a uczeniem zrozumienia podstaw programowania, wdrożeniem w pewien sposób myślenia, jest w procesie edukacji przeciętnego ucznia nietuzinkowym wyzwaniem (podkreślam: PRZECIĘTNEGO, STATYSTYCZNEGO ucznia a nie pasjonata, z którym praca wygląda istotnie inaczej). Niekiedy ucząc jestem zmuszony upraszczać a nawet redukować wiedzę na jakiś temat, co niektórzy od razu uznają za okaleczanie możliwości ich ukochanego języka. Cóż... za motywację służą mi podziękowania, jakie zdarza mi się odebrać od byłych uczniów, którzy dzisiaj profesjonalnie zajmują się programowaniem i którzy obecnie przerastają mnie wiedzą i doświadczeniem, jednak doceniają wartość tej edukacji początkowej. Za to im wszystkim również dziękuję. Najbliższe materiały postaram się poświęcić tym, którzy już rozumieją pewne podstawy podstaw, jednak są ciekawi nowszych rozwiązań, nowszych możliwości języka C++. Spojrzymy na język C++ w standardzie z roku 2011, 2017, 2020 (c++11 i c++17, c++20). W tej serii chciałbym nawiązać do wcześniejszego kursu, pokazać szerzej sam język C++ z uwzględnieniem tego, co wniosły w/w standardy. Zakładam więc, iż rozumiesz pętle czy funkcje, dotknąłeś idei programowania obiektowego a teraz chciałbyś pójść dalej. To wciąż tylko edukacja szkolna - ale będzie ciekawiej! Planuję krótkie odcinki, sprzedające wiedzę w małych pakietach, zawsze na przykładzie i w swoim stylu - dziobiąc, tłumacząc z każdej strony, licząc na to, że nawet jak był problem ze zrozumieniem czegoś za pierwszym podejściem, to nie będzie za dziesiątym ;)