C++ dla żółtodziobów. Jak się uczyć, czego unikać.

Temat nauki programowania podejmowaliśmy już kilkakrotnie na łamach Bulldogjob, chociażby w artykule „Zrób to dobrze, czyli od jutra zaczynam programować”. Dziś powracamy do tej kwestii, skupiając się na konkretnym języku programowania – C++. Dlaczego właśnie ten? C++ należy do jednego z najpopularniejszych języków od lat. Obecnie zajmuje 3 miejsce w Tiobe Index, a w 2003 roku zyskał nawet miano „Języka Roku”. Poza tym wiele osób, zaczynających swoją przygodę z programowaniem, zgłębia tajniki kodowania, ucząc się właśnie C++.

Aby rozpocząć naukę programowania, niezbędne są trzy elementy: człowiek, motywacja i materiały edukacyjne. Pierwszy z nich jest oczywisty, więc nie wymaga komentarza. Motywacja jest przez wielu programistów wskazywana jako czynnik kluczowy w nauce kodowania i jednocześnie najtrudniejszy. Zazwyczaj początkowy zapał młodego adepta programowania szybko przygasa. Cała sztuka zatem w tym, aby potrafić nieustannie poszukiwać w sobie motywacji. Każdy ma na to własny sposób. Jeśli chcecie więcej przeczytać na ten temat, zapraszamy do lektury artykułu „Co Cię motywuje programisto?”. My zajmiemy się tutaj kwestią materiałów edukacyjnych i podpowiemy, z czego korzystać w nauce, a czego unikać. Zaczynamy od tej ostatniej kwestii.

Efektywna nauka C++ - czego unikać?

Z uczeniem się jest już tak, że można poświęcić na to wiele czasu, a i tak zdobyć niewiele wiedzy. Wszystko dlatego, że skuteczne uczenie się jest sztuką. Czego unikać, aby szybko opanować C++? Na pewno nie warto ograniczać się jedynie do książek. Oczywiście polecamy czytanie i materiały drukowane, ale warto zdawać sobie sprawę, że szybko się dezaktualizują. Szczególnie dotyczy to tak błyskawicznie rozwijającej się dziedziny, jak programowanie. Jeśli już wybieracie książki, sprawdźcie o nich opinie. Nie warto marnować czasu i pieniędzy na słabe tytuły.

Częstym błędem adeptów programowania jest ograniczanie się tylko do polskojęzycznych serwisów internetowych i materiałów. Najwięcej wiedzy, a do tego najświeższej, znaleźć można w anglojęzycznym internecie. Im szybciej przyzwyczaicie się do używania tego języka, tym lepiej. Bez angielskiego ani rusz!

Metoda pamięciowa to przeżytek coraz częściej również w polskiej szkole. W nauce programowania nie chodzi o to, aby wykuć wszystko na pamięć. Ważna jest umiejętność wyszukiwania wiedzy, studiowania dokumentacji i próba samodzielnego rozwiązywania problemów. Istotne jest rozumienie, a nie deklamowanie oklepanych formułek.

I jeszcze jedno: nie warto marnować czasu! Jeśli nie można poradzić sobie przez długi czas z jakimś zadaniem w C++, należy zrobić przerwę, oderwać się chociaż na chwilę od programowania. Po kilkunastu minutach świeże spojrzenie może okazać się bardzo skuteczne w rozwiązywaniu problemów. Teraz kilka podpowiedzi, gdzie szukać wiedzy.

Pochłaniacz wiedzy, czyli z czego korzystać w edukacji?

1. Kursy online

Internet to oczywiście kopalnia wiedzy i najlepsze źródło informacji dla programisty. W sieci bez problemu znajdziecie kursy C++ na różnym poziomie. Wśród nich nie brakuje również darmowych tutoriali w różnej formie (tekst, wideo). Oto nasze propozycje:

  • Od zera do gier kodera – polski, legendarny kurs i do tego darmowy;

  • Learn How to Program with C++ - bardzo dobry kurs dla tych, którzy znają język angielski (obowiązkowy dla programisty). Niestety, ma poważną wadę – jest płatny;

  • Cpp0x – zbiór bardzo dobrych i darmowych kursów na różnym poziomie wtajemniczenia w meandry C++ w języku polskim;

  • Kurs C++ od zera do bohatera – ciekawy, polski kurs, ale płatny.

2. Książki

Pomimo ograniczeń źródeł drukowanych, nie należy całkowicie z nich rezygnować. Książki mogą być dobrym wsparciem w nauce.

  • C++ Primer Plus – bardzo dobrze napisany podręcznik, do którego warto często zaglądać;

  • Skuteczny nowoczesny C++ - dobre wsparcie w poznawaniu najnowszych standardów języka programowania (C++11 i C++14);

  • Algorytmy bez tajemnic – przy okazji nauki programowania, warto także wkroczyć w świat algorytmów;

  • Czysty kod – już od samego początku przygody z programowaniem warto nabierać dobrych nawyków. Z tej książki można dowiedzieć się między innymi jak pisać dobry kod i jak go formatować.

3. Zadania online

Praktyka czyni mistrza. Prawdziwa nauka programowania to samodzielne zmaganie się z różnymi programistycznymi wyzwaniami, a nie bezmyślne kopiowanie kodu. Takie wyzwania znajdziemy bez problemu w internecie.

  • HackerRank – bardzo popularny serwis (ponad 2 mln użytkowników), gdzie warto sprawdzać w praktyce swoje umiejętności;

  • CodeEval – ponad 240 programistycznych wyzwań w wielu językach, także w C++;

  • Sphere Online Judge – tym razem serwis w języku polskim, gdzie można znaleźć wyzwania o różnym poziomie trudności;

  • Code Chef – kolejne miejsce, gdzie można sprawdzić swoje umiejętności, dużo konkursów i zadań.

4. Kod publiczny

Analizowanie udostępnianych publicznie kodów to również dobry sposób na poszerzanie swojej programistycznej wiedzy. Warto również samemu udostępniać własne „dzieła” do oceny. To szybki sposób na pozyskanie feedbacku na temat jakości kodu, koniecznych poprawek itp.

  • GitHub – miejsce niemal obowiązkowe dla każdego programisty;

  • StackOverflow – ogromna społeczność programistów, miejsce w sieci, gdzie warto bywać, do tego dobry serwis do zadawania pytań;

  • Reddit – kolejne dobre źródło informacji.

Na koniec jeszcze małe przypomnienie: programista nigdy nie przestaje się uczyć. Jeśli zamierzacie na poważnie zająć się kodowaniem, oswójcie się z myślą o nieustannym rozwijaniu swoich umiejętności. Warto być przecież dobrym w tym, co się robi, a nie pozostawać na poziomie przeciętniaków. Sięgajcie więc gwiazd w programowaniu. Tego życzy wam Bulldogjob!