Chcę się nauczyć programować! Wiele razy przeglądając grupy tematyczne na Facebooku, widzę posty o podobnej rzeczy. Co rusz powtarzają się treści: Od czego zacząć naukę programowania? Czy szkoła lub studia nauczą mnie programować? Warto uczyć się samemu czy lepiej iść do szkoły programowania? Tyle pytań, a tak mało odpowiedzi …

Przygotowałem podsumowanie, dzięki któremu dowiesz się, jaką drogę obrać na początku swojej przygody z programowaniem. Jak zacząć swoją podróż oraz skąd czerpać wiedzę. Zapraszam do lektury 🙂

Czy warto uczyć się programować?

Zanim zaczniesz naukę programowania, zastanów się najpierw czy tego naprawdę chcesz. Pamiętaj, że będziesz musiał poświęcić na to mnóstwo czasu, który mógłbyś spożytkować w inny sposób. Nie zapomnij także, że aby efekty twojej nauki były widoczne, będziesz musiał włożyć naprawdę wiele energii.

Nie zniechęciłem cię? To teraz powiedzmy sobie, dlaczego warto nauczyć się programować. Jeśli chcesz w przyszłości pracować w tej branży – umiejętność programowania przyda ci się na każdym stanowisku. Nawet będąc zwykłym serwisantem możesz znacznie przyspieszyć swoją pracę. W jaki sposób? Pisząc choćby skrypt, który np.: automatycznie zainstaluje sterowniki czy odpowiednie aplikacje na komputerze klienta, zautomatyzuje twoją pracę. Dzięki temu oszczędzasz czas, który możesz wykorzystać w bardziej praktyczny sposób.

Programowanie rozwija umiejętność analitycznego, a także logicznego myślenia. Uczy rozwiązywania problemów. Pozwala rozwinąć siebie w naprawdę wielu kierunkach. Nawet, jeśli obierzesz w przyszłości inną ścieżkę życiową, umiejętności związane z programowaniem mogą ci się przydać.

Dlaczego? Gdyż komputeryzacja i programowanie to przyszłość, która będzie coraz głębiej wkradała się w nasze życie.

Czego potrzebujesz do nauki programowania?

Przede wszystkim – silna motywacja. Bez niej daleko nie zajedziesz. Ja sam pamiętam, że do nauki programowania w C++ (czasy 4-5 klasy podstawówki) podchodziłem co najmniej kilka razy, zatrzymując się za każdym razem na jednej z początkowych lekcji. Poddawałem się właśnie ze względu na to, że brakowało mi motywacji. Napotykałem pierwsze trudności, które ciężko było rozwiązać. Początkowy zapał szybko ulatywał. Wtedy w Internecie nie była dostępna taka ilość materiału, jaka jest obecnie. Moja nauka była chaotyczna i nieusystematyzowana. To są główne grzechy osób, które dopiero zaczynają swoją przygodę z programowaniem.

Jak prawidłowo zabrać się za naukę? Przede wszystkim, zbierz odpowiednie materiały (o źródłach tych materiałów będzie nieco później). Zaplanuj sobie naukę. Powiedz: będę spędzał dwie godziny w ciągu tygodnia na nauce programowania. W tym czasie wyłącz wszelkie rozpraszacze pokroju „twarzoksiążek” itp.

Jak już wyznaczysz sobie ile czasu możesz poświęcać na naukę pomyśl, co właściwie chcesz osiągnąć. Oczywiście, na pewno jesteś żądny nabycia umiejętności które pozwolą ci zaistnieć na rynku pracy. Ale musisz wyznaczyć sobie także bardziej przyziemny cel, do zrealizowania którego będziesz dążył. Na przykład: W ciągu roku chcę napisać własny prosty odtwarzacz wideo. Albo: w ciągu roku chcę napisać klona Flappy Birds na komputer/telefon.

Dzięki zastosowaniu powyższych postanowień będziesz wiedział w jakim kierunku iść. Twoja nauka nabierze więcej rumieńców, takich jak systematyczność czy konsekwencja. Będzie ci także bardzo łatwo ocenić swoje postępy i ewentualnie korygować plan.

Czym jest właściwie nauka programowania?

Często, zaczynając uczyć się programowania, skupiamy się na języku. Tak jest skonstruowana większość kursów. Wg mnie nie jest to do końca dobre podejście. Język programowania to tylko narzędzie, które służy do osiągnięcia konkretnego celu, jakim jest np.: stworzenie programu, gry czy innej aplikacji. Można się go co prawda, nauczyć na zasadzie: „ten fragment kodu robi to, drugi tamto. Skopiuję jeden i drugi fragment kodu ze StackOverflow i program będzie działał”. Może i będzie działał. Lecz żebyś mógł powiedzieć, że coś umiesz, musisz dokładnie rozumieć co robi kod który napisałeś, jak funkcjonuję metody/funkcje, których użyłeś.

Dlaczego warto zwrócić uwagę na dokładne zrozumienie komputera i tego, co dzieje się pod maską? Ponieważ świat się zmienia, technologia się zmienia i narzędzia się zmieniają. Języki programowania ciągle ewoluują Wymyślmy sobie bardziej przyziemny przykład. Naprawa dzisiejszych samochodów wygląda inaczej niż tych z okresu PRLu. Wykorzystywane są inne klucze, inne śrubki czy nakrętki. A także zestaw całkowicie innych kluczy czy śrubokrętów. Jedyne co się nie zmieniło – to ogólna zasada działania silnika samochodowego. Jeśli ją rozumiesz, bardzo szybko poznasz nowinki techniczne. Podobnie jest z programowaniem.

Niektóre języki czy frameworki („rozszerzenia”) wykonują dużo roboty za programistę. Lecz kiedy pojawia się problem, a ty nie wiesz jak to coś, czego używasz jest zbudowane i dlaczego działa jak działa, prawdopodobnie będziesz miał dużo kłopotów z rozwiązaniem problemów. To dlatego rozumienie zasady działania wszystkich narzędzi, z których korzystasz jest bardzo ważne.

Programowanie to praktyka. Staraj się jak najwięcej kodować. Czytanie artykułów, oglądanie filmików, tutoriali – jest ważne – ale najważniejsza jest praktyka. Pisz jak najwięcej kodu, najlepiej samodzielnie.

Nauka programowania to także (a może nawet przede wszystkim) nauka analizy i rozwiązywania problemów. Tworząc jakikolwiek mniejszy lub większy projekt z pewnością popełnisz dziesiątki, a nawet i setki błędów zanim uzyskasz działający kod. I jest to całkowicie normalne 🙂 Polecam przeczytać ten wpis, który ładnie to obrazuje 🙂

A więc jaki język programowania (narzędzie) wybrać?

Tak jak już sobie powiedzieliśmy – jeśli jesteś początkujący, powinieneś najpierw zrozumieć zasadę działania narzędzi, którymi się posługujesz. A dopiero potem doskonalić się w obsłudze konkretnego. Dzięki takiemu podejściu, znając jeden język programowania bez większych trudności nauczysz się kolejnego. Dlaczego? Gdyż tak naprawdę są one do siebie bardzo podobne. W każdym języku programowania występują zbliżone konstrukcje, które działają w podobny sposób i które wykorzystuje się w podobnych sytuacjach.

Niuanse i różnice w językach programowania wynikają z faktu, że każdy z nich przeznaczony jest do różnych zastosowań i wykorzystywany jest w różnych – nieraz całkiem odmiennych sytuacjach. Oczywiście narzędzie to narzędzie – mając śrubokręt prosty (C) odkręcisz nawet śrubkę krzyżową (aplikacja webowa). Jedyne co poświęcisz to energia, której włożysz dużo więcej. Dlatego właśnie na rynku jest tyle języków programowania. Każdy z nich specjalizuje się w rozwiązywaniu problemów pewnego określonego rodzaju.

Z mojego doświadczenia, polecałbym zacząć naukę programowania od języka, który naprawdę nauczy cię myślenia w taki sam sposób, w jaki mógłby myśleć komputer. Takim językiem jest obecnie C++ a także Java, która – mimo dużej dozy uproszczeń – dalej wpisuje się w ten sam trend. Zaczynanie nauki od postawienia sobie dużych wyzwań i rozpoczęcia od „na pozór” skomplikowanych rzeczy naprawdę przyspieszy twoje postępy w przyszłości. Rozpoczynając naukę od C++ lub Javy już na samym początku poznasz większość zagadnień, trudności i „kruczków” na które możesz napotkać. Przeskok na języki, które są prostsze gdyż odwalają znacznie więcej roboty za programistę (takie jak Javascript) będzie dzięki temu znacznie łatwiejszy.

Źródła wiedzy

Istnieje wiele różnorodnych źródeł, z których możesz korzystać podczas nauki. Wybór jednego czy kilku spośród nich zależy tylko od ciebie i twoich predyspozycji. Jedni wolą samodzielną naukę, inni wolą pracować w grupie. Jedni chcą osiągnąć rezultat wkładając w to jak najmniejszą ilość gotówki, dla innych natomiast – liczy się szybkość pozyskania nowej wiedzy. Spróbujemy podsumować sobie kilka sposobów, dzięki którym możesz zdobywać wiedzę o programowaniu.

Technikum/Studia

Co ci przychodzi do głowy jako pierwsza myśl, kiedy pomyślisz o nauce czegokolwiek? Oczywiście: szkoła! Wbrew powszechnym opiniom uważam, że szkoła, taka jak technikum może czegoś nauczyć. Co prawda raczej nie posiądziesz tam wiedzy na temat „stricte” programowania, ale zdobędziesz wiele innych, równie przydatnych umiejętności związanych z szeroko pojętą informatyką. Pierwszym miejscem w systemie edukacji, gdzie naprawdę będziesz miał styk z programowaniem są studia. Pamiętaj, że nawet one same z siebie nie nauczą cię programowania i będziesz musiał włożyć dużo samodzielnej pracy, aby opanować tę umiejętność. Studia co najwyżej mogą ci wskazać kilka podstawowych kierunków, w stronę których możesz podążać.

Samodzielna nauka (Youtube)

W Internecie znajduje się wiele lepszych lub gorszych źródeł z których możesz czerpać wiedzę na temat programowania. Zaletą większości tych materiałów jest to, że dostępne są całkowicie za darmo. Dzięki temu w ich poznanie nie musisz inwestować nic więcej – prócz swojego czasu. Problemem natomiast jest jakość tych materiałów. Wiele spośród filmików na Youtube jest kiepskiej jakości. Ty, jako początkujący, stawiający pierwsze kroki w tej dziedzinie nie posiadasz umiejętności które pozwoliłyby oddzielić ziarno od plew. Bardzo łatwo nauczyć się złych praktyk lub zdobyć wiedzę, która na dzień dzisiejszy jest mocno nieaktualna.

Kursy (Udemy i inne platformy)

Płatne kursy są nieco lepszą metodą samodzielnej nauki niż Youtube. Na Youtube sporo materiałów jest przestarzałych. Sporo kursów jest rozpoczętych, lecz nie skończonych. Ucząc się z takiego kursu, możesz znaleźć się w pewnym momencie w „czarnej dziurze” z której bardzo ciężko będzie ci się wydostać. Dlaczego? Ponieważ autor np.: stosował swoje specyficzne metody programowania, których nie stosuje nikt inny, albo używa jakichś specyficznych bibliotek czy frameworków.

Płatne kursy są zwykle o wiele lepiej opracowane. Sposób ich prowadzenia jest mniej chaotyczny. Co za tym idzie ilość dostarczanej, merytorycznej wiedzy jest większa i łatwiej przyswajalna. Do takich kursów często dołączane są dodatkowe materiały i zadania do samodzielnego rozwiązania.

Książki

Książki są alternatywą dla kursów wideo. Alternatywą przeznaczoną dla tych, którzy wolą czytać niż oglądać. Zanim kupisz jakąś książkę, najlepiej wcześniej poczytaj o niej opinie. Przy nauce z tego źródła trzeba uważać tak samo jak w momencie gdybyśmy uczyli się z darmowych materiałów. Spora część dostępnej na rynku literatury jest przestarzała. Lecz istnieją także perełki, które ciągle są aktualne i polecane.

Książki dręczy także jeszcze jeden mankament. Większość z nich nie jest pisana przez polskich autorów, a jedynie tłumaczona. Mam wrażenie, że ci tłumacze nie zawsze wiedzą jak poprawnie przełożyć dany fragment na język polski tak, aby był zrozumiały dla przeciętnego zjadacza chleba. Poza tym wydaje mi się, że translatorzy często nie mają wiedzy technicznej. Przez to w treści pojawiają się różne dziwne kruczki, niedopowiedzenia czy po prostu błędy merytoryczne.

Jeśli potrafisz przeczytać i zrozumieć tekst po angielsku, polecam lekturę książek właśnie w tym języku. Oszczędzisz sobie dzięki temu nieco czasu i straconych nerwów.

Szkolenia/szkoły programowania/bootcampy

Szkoły programowania – jest to coś, czego wysyp zaczął się stosunkowo niedawno. Obecnie w każdym regionie kraju bez problemu znajdziesz taką szkołę. Powstaje pytanie, czy warto?

Moim zdaniem, zależy to od ciebie i twojego samozaparcia. Jeśli potrzebujesz jakiegoś „motywatora” i nie potrafisz sam zmobilizować się do nauki, to taka szkoła programowania może być dobrym wyborem. Ponadto pracujesz jakby nie patrzeć w grupie ludzi, którzy znajdują się na podobnym poziomie co ty. Poza tym masz do dyspozycji pomoc „mentora” – instruktora który pomoże ci w momencie gdy znajdziesz się w „programistycznych” tarapatach.

Nauka w takich miejscach zaczyna się od kompletnych podstaw i jest usystematyzowana. Nie musisz sam szukać materiałów i zastanawiać się, czy są one dobre, gdyż wszystko masz podane na tacy. Wystarczy tylko poświęcić czas, pieniądze i przerobić cały materiał.

Same uczestnictwo w zajęciach nie wystarczy, abyś nauczył się programować. Tempo prowadzenia zajęć w bootcampach jest zwykle bardzo szybkie. Nie poświęcając czasu w domu na utrwalanie wiedzy zdobytej na zajęciach, bardzo szybko zostaniesz w tyle, a twój zapał zacznie maleć.

Nie warto iść do szkoły programowania jeśli nie masz odłożonej wystarczającej ilości pieniędzy. Jeśli miałbyś brać chwilówkę czy inny kredyt tylko po to, aby szybciej zdobyć wiedzę która jest dostępna w Internecie – takie coś się nie kalkuluje. Lepiej spróbować wtedy metody samodzielnej nauki.

Nauka przez zabawę 🙂

Podstawowej składni i podstawowych zasad programowania możesz nauczyć się także przez zabawę 🙂 Na stronie https://codecombat.com/play dostępna jest bardzo fajna gra, w której za pomocą kodu napisanego w języku Javascript musisz tak sterować bohaterem, aby osiągnął określony cel. Mimo, iż ta gra wykorzystuje Javascript, to nauczy cię ona mechanizmów obecnych w każdym języku programowania.

Pięć prostych i skutecznych porad

  1. Zaczynając naukę programowania, wybierz jeden język programowania, który da ci dobrą podstawę do poznawania kolejnych.
  2. Staraj się zrozumieć każdy mechanizm, którego używasz. Poznawaj nie tylko sposób jego używania, ale także (w miarę możliwości) budowę wewnętrzną.
  3. Nie przerabiaj kolejnych rozdziałów w taki sposób, aby tylko je przerobić i pójść dalej. Skup się na każdym niuansie. Jeśli nie jesteś pewny, czy coś dobrze rozumiesz – pytaj. Zadawanie pytań jest także bardzo dobrą metodą nauki.
  4. Nie kopiuj bezmyślnie kodu z książki/strony/filmiku. Nawet, jeśli rozwiązanie jakiegoś problemu zostało podane na tacy, najpierw spróbuj rozwiązać go sam. W trakcie nauki wymyślaj sobie „mini-projekty”, dzięki którym przećwiczysz poznane umiejętności w praktyce.
  5. Nauka programowania to także umiejętność radzenia sobie samemu z napotkanymi trudnościami. Korzystanie z Google to nic złego. Wprost przeciwnie – czasami nie warto wyważać otwartych drzwi. Jeśli ktoś rozwiązał jakiś dręczący nas problem, nie bój się korzystania z czyjegoś rozwiązania. Oczywiście, zanim przekleisz czyjś kod do swojego programu najpierw postaraj się go dobrze zrozumieć.

Podsumowując

Mam nadzieję, że pomogłem ci w podjęciu decyzji 🙂 Jeśli spodobał ci się artykuł, zapraszam do polubienia mojego fanpage’a Jeśli masz jakieś pytania, napisz komentarz 🙂

Dzięki za lekturę i do zobaczenia 🙂

2 komentarze

    1. C jest popularny na uczelniach, to fakt 🙂 Ale dla siebie samego lepiej zacząć od C++ lub Javy. Między C++ a C jest sporo podobieństw. Ucząc się jednego języka, częściowo poznaje się drugi.

      Karol

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *