Programowanie – Pierwsze Kroki

Czy warto zacząć programować? W jaki sposób się uczyć? Od czego zacząć?

Ten wpis skierowany jest głównie do osób, które nie miały nigdy styczności z programowaniem lub dopiero stawiają pierwsze kroki w tej mistycznej sztuce.

Wielokrotnie spotkałem się z osobami, które chciałyby rozpocząć naukę, ale nie wiedzą czy to jest dla nich, dlatego dla własnej wygody postanowiłem napisać ten wpis zamiast odpowiadać każdemu z osobna, bo co ciekawe każda osoba ma zawsze ten sam zestaw pytań 😉

W pewnej mierze ten wpis opiera się na moich pierwszych krokach. Nie przedłużając już więcej, zaczynajmy!

 

Czy warto zacząć programować?


Tak.

Odpowiedź jest niezwykle prosta, nie ważne czy jesteś dobry z matematyki, czy miałeś wcześniej styczność z algorytmami, nie ważny jest nawet Twój wiek (no dobra, tutaj lekko skłamałem, ale do tematu wieku jeszcze wrócę). Jeżeli jesteś ciekawy „jak to działa”, to powód który wystarcza do rozpoczęcia nauki to „bo tak”.

Programowanie to głównie rozwiązywanie problemów, bardzo często wymaga myślenia i na tym większość osób stwierdza, że to nie jest dla nich. Aby zacząć programować musisz się nauczyć myśleć abstrakcyjnie, odejść od wcześniej poznanych schematów i zawsze szukać lepszego (bardziej wydajnego) rozwiązania. Każdy programista, czy to już z pewnym doświadczeniem, czy dopiero zaczynający żyje zgodnie z pewnym pięknym mottem: do it better.

 

W jaki sposób się uczyć?


Kolejny ciekawy problem, z którym każdy radzi sobie nieco inaczej, chociaż jednocześnie podobnie.

W moim przypadku to była systematyczna praca nad rozwojem swoich umiejętności, mój rytm dnia zmienił się i każdy dzień w tygodniu można byłoby podsumować tak: „szkoła, odrabianie lekcji, programowanie”, pod ostatnim hasłem kryło się kilka czynności: poznanie nowego materiału, zrobienie zadania dołączonego do lekcji oraz coś co najbardziej lubiłem: zabawa poznaną wiedzą, masa eksperymentów, które polegały nieraz na spowodowaniu wykrzaczenia programu, tak aby zrozumieć jak dokładnie coś działać oraz czego należy unikać.

Ten proces był powolny, ale każdego dnia robiłem małe kroki: cal po calu, do światła. Musicie pamiętać, że nauka programowania to nie uczenie się formułek na pamięć, ale zrozumienie jak coś działa.

Jeżeli nie wiecie jak coś działa, chociaż próbowaliście przez wiele godzin sami rozwiązań problem to nie bójcie się pytać.

 

Mam x lat, czy warto zaczynać?


Dla dobra dyskusji, załóżmy że x to liczba z zakresu [11,40] lat oraz że przez programowanie rozumiemy pisanie kodu w tradycyjnych językach programowania, a nie np. przeciąganie bloków (scratch).

Aby móc programować w sposób właściwy należy już mieć jakąś pewną wiedzę (choćby tą podstawową z matematyki), więc rozpoczynanie nauki wcześniej niż przed 11 rokiem życia trochę mija się z celem (chyba że mamy jakiegoś tutora, który może przedstawić wiedzę w bardziej przyswajalny dla tego wieku sposób), większość poradników jest pisana z myślą dla osób, które mają przynajmniej 14-15lat,a  to dlatego że takie osoby posiadają odpowiednią wiedzę matematyczną i są już stawiani przed trudniejszymi zadaniami czy problemami.

Z drugiej strony młodym osobom jest łatwiej myśleć abstrakcyjnie niż osobom już około 20lat (im większy wiek, tym trudniej jest zmienić nawyki w jaki sposób się myśli i podchodzi do rozwiązywania problemów), ale wciąż warto.

Nie ważne w jakim wieku się zaczyna, tak zawsze napotka się problemy w trakcie nauki, które będą powodowały frustrację. To zjawisko jest normalne i pojawia się co jakiś czas i tylko od nas zależy czy się poddamy, czy będziemy próbować rozwiązać problem aż nam się uda. Jeżeli się nie poddasz i rozwiążesz problem to będzie oznaczało, że nie popełniłeś błędu decydując się na programowanie.

 

Od jakiego języka zacząć?


Pierwsza ważna decyzja, która najprawdopodobniej dość mocno odciśnie swoje piętno na dalszej przygodzie z programowaniem.

Można to porównać do Szkół Wiedźmińskich, istnieje wiele szkół (Wilka, Niedźwiedzia, Kota, Gryfa), które uczą w zasadzie jednego (zabijania potworów), ale sam sposób pracy jest inny.

Najczęściej nowym osobom poleca się rozpoczęcie od C/C++, Javy, czy C#.

Nie ważne jakim językiem docelowym, którego chcecie się nauczyć (czy to Java, C#, czy nawet webowe: HTML, PHP) ja polecam pójść tradycyjną ścieżką, czyli zacząć od nauki C++, który ma tą przewagę nad językami w pełni obiektowymi, że można w nim pisać także nie obiektowo, dzięki czemu przy nauce tego jednego języka nauczycie się jak myśleć w dowolnym języku programowania (przejście z C++ na inny język to kwestia zmiany zazwyczaj paru przyzwyczajeń + nauka składni, etc).

Nie polecam zaczynać nauki od Javy, zbyt wiele rzeczy ma wbudowanych przez co przejście z tego języka na jakiś niżej poziomowy jest bardzo trudne (dla dociekliwych: Dlaczego nienawidzę Javy).

Jeżeli zdecydujecie się na C++, to mam dla Was kilka źródeł, z których warto się uczyć:

  • cpp0x.pl moim zdaniem najlepszy tekstowy kurs programowania dla początkujących;
  • kurs programowania Mirosława Zelenta świetny kurs wideo, ale jedynie jako uzupełnienie, a nie kompletny kurs (sam kurs jest mega, a zagadnienia poruszone w kursie powinny być zrozumiałe dla każdego, problem leży w tym, że w kursie wideo niektórych rzeczy nie da się umieścić);
  • Symfonia C++ Grębosza, chociaż tutaj ciężko jest mi ją polecić każdemu, pod pewnymi względami jest ok, ale przykłady czy sam sposób pisania autora za przyjemny nie jest, jest to dobre źródło uzupełnienia wiedzy (na pewno nie zgodzę się ze stwierdzeniem z okładki „łatwa książka”).

 

Podsumowując


Warto jest zacząć programować bez względu na osobiste predyspozycje, czy posiadane umiejętności.

Dajcie znać co o tym myślicie (może o czymś nie wspomniałem), w razie wszelkich pytań czy uwag zapraszam do komentowania.

Code ON!


  • Jakub

    Witam, zacząłem programować wczoraj i mam pytanie. Lepiej oglądnąć cały kurs pana Mirosława Zelenty czy przestudiować cały kurs(1-5) z cpp0x ?

  • Marianek

    Jeśli ktoś ma do tego zapał to zawsze warto jest wziąć się za programowanie, nie zależnie od wieku. Ja w wieku 35 lat zaczynałem. W sumie to najpierw na próbę, później w ramach zachęty dziewczyna wykupiła mi z eduweb kursy wideo html, php. Zależy z jakim nastawieniem się podchodzi do tematu, ja wiedziałem że chcę zmienić pracę i to mnie motywowało. Teraz nie żałuję.