Najlepsi programiści uczą się sami

przez Paulina Baszak

Wielu doświadczonych programistów zwraca uwagę na to, że są samoukami. Ponadto są obecnie dobrze wynagradzanymi specjalistami, których firmy IT szukają i wręcz podkupują ich na LinkedIn. Po co więc wydawać kilka tysięcy złotych na szkolenie programistyczne, skoro możesz nauczyć się tego sam?

To prawda, że najlepiej jest uczyć się na własnych błędach, a przede wszystkim uczyć się praktyki, a nie tylko teorii. W przypadku programowania to oznacza, że najlepszym sposobem jest kodowanie, zamiast czytania teorii lub oglądania filmików jak inni programują.

Najczęściej pytając doświadczonego programistę jak nauczył się programować, odpowiada, że samodzielnie. Dlaczego? Z kilku powodów.

  1. Programiści, którzy mają ponad 10- czy 20-letnie doświadczenie po prostu nie mieli takich możliwości nauki jakie istnieją obecnie. Poziom nauczania informatyki w szkole często ograniczał się do podstawowych programów MS Office i przepisywania z tablicy prostych programów ćwiczących komendy i logikę (być może pamiętasz sterowanie żółwiem? :) ). Bardziej życiowych przykładów trzeba było nauczyć się samodzielnie, poświęcając temu dużo czasu na próby i obchodzenie błędów blokujących przyszłego programistę na długie godziny.
  2. Nauczyciele informatyki często nie byli programistami (niestety teraz jest podobnie). Na rynku było też kilka razy mniej programistów niż obecnie, a takich mających predyspozycje do przekazywania wiedzy można było policzyć na palcach. Zatem nie było od kogo uczyć się praktycznej wiedzy. Dzisiaj mamy do dyspozycji doświadczonych programistów, którzy nie tylko pomagają w nauce, ale także jako Mentorzy tłumaczą jakie rozwiązania stosuje się w firmach, w których pracują lub jako szkoleniowcy (tu lista naszych Mentorów). Dzięki temu można uczyć się tylko potrzebnych rzeczy i nie trzeba szukać informacji z ogromu wiedzy dostępnej w książkach i teraz w internecie.
  3. Za programowanie brały się specyficzne osoby, gotowe godzinami wnikać w kod bez pomocy z zewnątrz. Osoby nieco mniej zdeterminowane często odpadały zniechęcone jakimś problemem. W ten sposób mogło „zmarnować się” wiele talentów, które może i nie zostałyby mistrzami programowania, ale byłyby wystarczająco dobre, żeby pracować jako programiści.
  4. Trzeba uczyć się programować programując. Pomimo iż doświadczeni programiści nie mieli takich możliwości nauki jak teraz, ucząc się w praktyczny sposób stali się mistrzami w swoim fachu. W czym więc tkwi sekret? Czytanie o programowaniu i oglądanie na YT jak inni programują nie rozwija tak bardzo jak samodzielne pisanie kodu. Wtedy przy małej pomocy Mentora można szybko przyswoić wiedzę w praktyczny sposób.
  5. Tworzone systemy informatyczne były prostsze i wykorzystywały mniej technologii, więc było też mniej wiedzy do poznania i mniej możliwości wyboru. Jeśli programista miał dostęp tylko do „Bajtka” z kodem programu w jednym języku, to nie miał wyboru i pisał w tym języku. Teraz na starcie ma do wyboru masę języków, frameworków i technologii, więc samodzielne przebrnięcie przez to wszystko jest praktycznie niewykonalne (ale też niepotrzebne).

Jak uczyć się samodzielnie, ale i skutecznie?

Cena bootcampu programistycznego może wydawać się wygórowana, jednak ułatwia ona bardzo naukę samodzielną. W ciągu niewiele ponad roku, ponad 800 osób wzięło udział w naszych bootcampach, więc mieliśmy okazję przekonać się w praktyce, że sposób nauki polecany przez nas faktycznie działa. Mało który programista ma takie doświadczenie w nauce programowania jak my. Więc w jaki sposób uczymy?

  1. Materiał jest podzielony na moduły, ułożony w odpowiedni sposób, aby uczyć się od podstaw, po dość zaawansowane technologie, aby na samym końcu całkiem dobrze radzić sobie w 2-3 z nich. Technologie i zagadnienia są precyzyjnie dobrane, aby z łatwością kursant uczył się po kolei tego, co jest niezbędne i potrzebne w pracy programisty.
  2. Masz do dyspozycji Mentora-Przewodnika, który nie zrobi niczego za Ciebie, ale wskaże błędy i otworzy drzwi do świata IT. Co to znaczy? Mentor jest właśnie tym programistą-samoukiem, który uczył się programować kilkanaście lat temu, ale nadal rozwija się w firmach IT, Software House’ach, itp. Potrafi programować, zna trendy w branży IT i chce dzielić się swoją wiedzą. Doświadczeni programiści-samouki dzielą się na tych mniej komunikatywnych i tych z umiejętnościami miękkimi - przedstawiciele tej drugiej grupy chętnie zostają Mentorami.
  3. Czas szkolenia jest ograniczony - jest możliwość wzięcia urlopu, przedłużenia kursu, ale łatwiej jest dążyć do celu, gdy jest on konkretnie sprecyzowany. Szybciej nauczysz się frontendu zapisując się na szkolenie i kończąc je w 3 miesiące, niż powtarzając sobie “Jutro nauczę się czegoś z frontendu” albo dodając do zakładek kolejny darmowy kurs. Niestety zdefiniowanie tego, czego powinieneś się dziś nauczyć i znalezienie odpowiednich materiałów już zajmuje czas, a i tak nie wiesz czy wybrane przez Ciebie przykłady projektów będą na odpowiednim poziomie i czy uczysz się tego, czego wymagają pracodawcy. Lepiej jest powtórzyć to, co już przerobiło ponad 800 naszych kursantów, którzy nie mają problemu ze znalezieniem pracy.
  4. Typowy darmowy kurs z Internetu jest tylko wprowadzeniem do tematu, chociaż często prezentuje się jako wyczerpanie tematu, np. przez wszechobecne komunikaty o tym jak super Ci poszło albo że znasz już 100% danego języka. My też mamy takie darmowe kursy, ale polecamy je przerobić wyłącznie jako wprowadzenie do pierwszego z 24 modułów bootcampa. Już na samym bootcampie uczysz się znacznie więcej i poznajesz zagadnienia, których praktycznie nie ma dobrze opisanych za darmo w Internecie, a nawet aktywni programiści mogą ich nie znać, np.
    • mapowanie schematów do kolekcji,
    • jak uniknąć „piekła callbacków” (callback hell) przy korzystaniu z pętli zdarzeń,
    • łączenie reducerów, żeby dobrze obsłużyć stany aplikacji.
    Nawet jeśli te zagadnienia wydają Ci się proste, zastanów się, czy potrafiłeś sobie z nimi dobrze poradzić w ciągu kilku miesięcy od rozpoczęcia nauki programowania, tak jak nasi kursanci, którzy poznają te zagadnienia ucząc od zera na bootcampie Web Developer (Bootcamp Java zawiera inne zagadnienia, ale również od podstaw).

Wiemy doskonale, że samodzielna nauka programowania jest świetnym rozwiązaniem, ale trwa długo ze względu na trudności z zorganizowaniem czasu i problem z selekcją potrzebnej wiedzy. Samouki, którzy uczyli się w latach '90 czy na początku XXI wieku, mieli do dyspozycji tylko ówczesne informacje i było ich znacznie mniej niż obecnie. Teraz w internecie jest aktualna wiedza, ale i ta gromadzona przez kilkanaście ostatnich lat. Osoby, które siedzą w temacie programowania, mogą być zorientowane i mniej więcej wiedzieć, co jest im potrzebne do nauki - czego warto się uczyć, a które rozwiązania odeszły już do lamusa.

Dlaczego jednak osoby początkujące miałyby nie korzystać z wiedzy bardziej doświadczonych kolegów, żeby przyśpieszyć naukę i nauczyć się od razu dobrze? I dlaczego doświadczeni programiści, mieliby nie pobierać wynagrodzenia za wiedzę gromadzoną przez lata praktyki?