Jak nauczyć się programowania? Trzy drogi do zostania programistą.

19

Bardzo często słyszy się ostatnio o “zostaniu programistą”. Wszędzie, każdy, już, teraz! Czy to realne? Jak najbardziej! A czy proste? Ooo, zdecydowanie NIE!

Motywacje do pracy jako developer to temat na zupełnie inne rozważania. A o szansach i trudnościach rozpisałem się kiedyś w tekście “Czy mogę zostać programistą?“. Dzisiaj zrobimy podejście nieco inne, pragmatyczne:

KTÓRĘDY dostać się do pracy w IT? Jakie są furtki i możliwe drogi?

Zobaczmy.

Studia

Studia informatyczne to świetny sposób na “wejście” do IT. Sprawdzona, standardowa droga. I bardzo czasochłonna.

Mimo konieczności spędzenia LAT na przygotowaniu do zawodu programisty – i średniego poziomu tego przygotowania – zawsze polecam wybranie tej ścieżki.

Dlaczego? Bo nigdy indziej i nigdzie indziej nie dostaniemy tak łatwej do wykorzystania szansy rozwoju w wielu kierunkach. Eksperymentowania, poznawania informatycznego świata i… popełniania błędów bez konsekwencji. Pojedzenie “chleba z dziesiątków pieców”, nawiązania znajomości na lata, wrośnięcia w programistyczną społeczność i wybicia się w niej.

Trzeba natomiast uważać, by tego czasu nie zmarnować! To niezmiernie istotne. Ogromna większość studentów ma względem uczelni nierealnie zdefiniowane oczekiwania (“nauczcie mnie programować”) i nie wykorzystuje oferowanych możliwości. Tak spędzone lata będą skutkować jedynie frustracją, a nikt nam ich nie zwróci.

Na ten temat rozpisałem się bardzo szeroko w tekście “Czy programiście potrzebne są studia?” – zachęcam do lektury. Polecam również zajrzenie na VLOGa:

Jednak jest pewien problem: studia nie są rozwiązaniem dla każdego. To kilka LAT codziennej pracy z wizją nagrody “kiedyś”. Jest to satysfakcjonująca droga, ale nie wszyscy mogą sobie na nią pozwolić.

Chyba tylko studia dzienne oferują wszystkie wspomniane przeze mnie w podlinkowanych materiałach zalety. A pogodzić studiowanie w trybie dziennym z pracą w innym zawodzie i rodziną to wyzwanie często ponad siły i możliwości.

Jak w takim razie mogą poradzić sobie ci “starzy”? Ci, dla których na studia jest po prostu za późno?

Czy po przekroczeniu trzydziestki drzwi do IT bezpowrotnie się zamykają? Oczywiście nie!

Tysiące osób rokrocznie udowadniają, że można z powodzeniem zmienić branżę. I wskoczyć na stanowisko programisty z zupełnie innego zawodu.

Jaka jest zatem alternatywa dla studiów?

Studiowanie, ale samodzielne

Wyższa uczelnia jest konieczna do spełnienia tylko jednej definicji terminu “studiuję”. Słownik Języka Polskiego definiuje “studiowanie” jako:

studiować – (…) 2) gruntownie poznawać, badać coś

Co to oznacza? Że wystarczy zakasać rękawy, odpalić internety i po prostu: nauczyć się programowania we własnym zakresie!

Mamy w branży bardzo wielu samouków. W wielu przypadkach są to wspaniali specjaliści z najwyższej półki.

Jak to możliwe? Tak bez uczelni? Oczywiście!

Długie godziny nauki we własnym zakresie są konieczne niezależnie od obranej drogi! Nie da się zlecić komuś zadania “naucz mnie kodować” i z założonymi rękami czekać na efekty. W każdej sytuacji, absolutnie ZAWSZE, trzeba się uczyć w pojedynkę. Uczyć bardzo dużo. Realizować projekty, wyciągać naukę z błędów i ciągle eksplorować ten obszerny programistyczny świat.

Tego etapu się nie da pominąć.

Wypada jednak zapytać: “Kto i po co może zostać programistą?“.

W jednym z odcinków VLOGa zastanawiałem się: “Czy każdy może zostać programistą?” Polecam obejrzenie…

…ale jednocześnie zdradzę, że: TAK!

Jest to kwestia determinacji, zaangażowania, przygotowania na hektolitry potu i łez. A przede wszystkim zrozumienia: to nie jest łatwa droga.

W tym scenariuszu dochodzi jeszcze jeden, dość istotny, problem: efekt samouwielbienia. Wśród wielu samouków szczególnie można zaobserwować – przynajmniej na początku drogi – zachwyt własną wspaniałością ;). I fakt, to może być uzasadnione. Ale nie do przesady.

Nie można zignorować etapu weryfikacji swojej wiedzy. Konsultacji z ekspertami i poszerzania horyzontów. Jak to czasami określam:

Nie skupiaj się na tym, co już wiesz. Skup się na tym, czego jeszcze nie wiesz.

Warto też zdać sobie sprawę z tego, że praca w pojedynkę rzadko przyniesie wystarczające efekty w czasie kilku tygodni. Skok wiedzy i umiejętności “od zera do X” będzie oczywiście przerażająco ogromny już od samego początku! Lecz to rzadko wystarczy do osiągnięcia najważniejszego programistycznego celu: otrzymania pracy jako programista.

Skoro na studiach potrzeba do tego lat, to w przypadku nauki samodzielnej rzadko uda się osiągnąć ten efekt dużo szybciej.

Takie podejścia da więcej elastyczności niż program na uczelni, ale warto traktować to jako zabawę. Bo bardzo łatwo jest się zagrzebać w nieistotnych szczegółach, wybrać złą ścieżkę i zabrnąć w ślepy zaułek.

Co może pomóc? Mentor / guru / … nauczyciel!

Szkoły programowania

Ano właśnie. Można cały proces nieco uprościć. Tak, aby zminimalizować ilość czasu poświęconą na naukę, a zmaksymalizować jej efekty.

Do szkoły trzeba by Cię posłać” – mówił Andżelice Franz w “Psach”. Franz wie co mówi.

Jest dla Ciebie za późno na studia trwające kilka lat? W szkole programowania będziesz się uczyć bardzo ciężko, ale owocnie i produktywnie. Większość dostępnych kursów trwa kilka miesięcy albo nawet kilka tygodni! Dlaczego tak krótko? Bo skupiają się one dokładnie na tych umiejętnościach, które są wymagane dzisiaj na stanowisku JUNIOR developera. Tak, by przygotować Cię do poszukiwania pierwszej pracy. Gdyby z całego programu studiów wycisnąć esencję, wszystko co jest niezbędne do startu w IT to również byłyby to tygodnie, a nie lata. Praktyka, praktyka, praktyka.

Lubisz samodzielną naukę (to i tak jest wymagane w zawodzie programisty, ZAWSZE), ale – z różnych względów, na przykład braku czasu – wolisz podążyć wyznaczoną, sprawdzoną ścieżką zamiast w pojedynkę odkrywać tę właściwą drogę? Nauczyciel (czy “mentor”) dokładnie wie którędy iść. I Cię poprowadzi. Żebyśmy się dobrze zrozumieli: pracę nadal wykonujesz TY, bez tego ani rusz! Ale dokładnie wiesz, JAKĄ pracę wykonać. I PO CO.

Jaką szkołę wybrać?

Od wielu miesięcy zgłębiam ten temat. Gorąco kibicuję wszystkim inicjatywom, które przyciągają nowych ludzi do IT i umożliwiają wprowadzenie pozytywnych zmian w swoim życiu.

Wymieniałem wiadomości z dziesiątkami absolwentów różnych kursów. Rozmawiałem też z kilkoma szkołami. I z czystym sumieniem polecam Coders Lab – partnera niniejszego wpisu.

clip_image002

Znam kilka osób, które dzięki ich kursom wiodą teraz lepsze życie. Ciężko pracowały, by z pomocą CL zostać programistą. I tak właśnie jest. Brawo!

CL, oprócz nauki programowania, organizuje także w różnych miastach cykl wydarzeń Coders Day. Na przykład w moim Białymstoku taka inicjatywa odbędzie się już za kilka dni! Wszyscy myślący o karierze w IT powinni się nań wybrać. Ja na jednym byłem i zdecydowanie zadowoliła mnie wartość merytoryczna przedstawianych prezentacji. Bez ściemy, tylko mówienie “jak jest”. Tak jak lubię.

Polecam obejrzenie tych dwóch odcinków VLOGa, w których można poznać ludzi z Coders Lab:

Chcesz, żeby ktoś pomógł i na kolejnym etapie? Znalezienie pracy jako junior developer nie jest proste. Serio. Wiem, że mało się o tym pisze i mówi, ale dostaję bardzo wiele wiadomości od załamanych juniorów. W takiej szkole często otrzymasz pomoc w zbudowaniu odpowiedniego portfolio, stworzeniu CV, kontakcie z rekruterami. Tak jak podkreślałem już wielokrotnie: nikt nie zrobi niczego za Ciebie, ale… może służyć poradą i dobrą praktyką.

Na szczęście Coders Lab pomaga w znalezieniu tej pierwszej, wymarzonej pracy! Współpracują z ponad 160 firmami partnerskimi rekrutującymi ich absolwentów. Dobra sprawa!

Musisz się przygotować na wydatki. Takie zajęcia to nie jest tania zabawa. To prawdziwa inwestycja. Inwestycja w siebie. Zbyt często do “programerki” ciągną tłumy zwabione obietnicami gór złota. A potem następuje płacz i lament, gdy okazuje się, że wcale nie jest tak różowo. Bo nie musi być, naprawdę. Jeśli zależy Ci głównie na kasie, to zorientuj się ile w Twojej okolicy zarabia “młodszy programista“. I policz, ile czasu będzie Ci się zwracał taki kurs. Wszystko się zgadza i jest git? To do dzieła!

Niezależnie od wszystkiego, pamiętaj…

… praca programisty jest trudna. Droga do zostania programistą: wyboista i pokręcona. Im więcej masz zobowiązań, im mniej czasu do dyspozycji: tym będzie Ci ciężej. Przygotuj się na walkę.

Pamiętaj jednak, że liczy się efekt! Jaka jest satysfakcja z osiągnięcia celu, który przychodzi sam z siebie? Niewielka. Czasem warto powalczyć, pomęczyć się. Zmagać się z przeciwnościami losu i… samym sobą.

Mamy w polskiej branży IT bardzo wiele przykładów ludzi, którzy dopięli swego. Po ciężkiej harówie, pokonaniu wielu przeszkód, sprostaniu wyzwaniom: pracują jako programiści. I są z tego powodu bardzo zadowoleni.

Share.

About Author

Programista, trener, prelegent, pasjonat, blogger. Autor podcasta programistycznego: DevTalk.pl. Jeden z liderów Białostockiej Grupy .NET i współorganizator konferencji Programistok. Od 2008 Microsoft MVP w kategorii .NET. Więcej informacji znajdziesz na stronie O autorze. Napisz do mnie ze strony Kontakt. Dodatkowo: Twitter, Facebook, YouTube.

19 Comments

  1. Od jakiegoś czasu współpracuję z jedną ze szkół dla przyszłych programistów. Z mojego punktu widzenia (trenera/ nauczyciela, zwał jak zwał) to jest niezła jazda- kursantów trzeba nauczyć rzeczy, które dla mnie jako człowieka z doświadczeniem są oczywiste i tak naprawdę dla mnie to jest niezła nauka- ciągłe bombardowanie pytaniami (czasem trywialnymi, ale na takie najciężej się odpowiada), sprawdzanie kodu, podpowiadanie itd. O wiele łatwiej jest szkolić ludzi, którzy siedzą już w IT, rozumieją język techniczny i którym nie trzeba robić żadnego wprowadzenia.
    A teraz trochę moich obserwacji kursantów- jak to w życiu bywa, z reguły każdą grupę można podzielić na trzy części:
    – ludzie, którzy się nie nadają- prawda jest taka, że niektórzy nie nadają się do tej pracy. To nie znaczy, że są źli, głupi itd., ale po prostu nie mają minimalnych predyspozycji. Ot, normalna życiowa rzecz- ja się kompletnie nie nadaję do bycia chirurgiem czy malarzem i cóż, muszę z tym jakoś żyć;),
    – wymiatacze- tak, są na kursach tacy ludzie. Oni z reguły już wcześniej liznęli programowania, sporo pracują, czytają książki, fora itd. Tacy ludzie spokojnie nadają się na stanowisko juniora po paru miesiącach nauki. W zasadzie im brakuje zwykle tylko tego ostatecznego szlifu;),
    – przeciętni- tych, jak to w życiu bywa, jest ich najwięcej, muszą sporo się nauczyć, ale wielu z nich dobrze rokuje i czasem u niektórych widać duży postęp na przestrzeni miesięcy. Ważne, żeby taki człowiek starał się iść do przodu, swoim tempem, ale do przodu,

    Jeśli ktoś zastanawiałby się nad braniem udziału w takim kursie, to na podstawie moich obserwacji mogę udzielić paru rad:
    – musisz przygotować się na krew, pot i łzy;) Szczególnie, kiedy masz pracę w innym zawodzie, rodzinę, małe dzieci itd. Będzie bardzo ciężko i trzeba mieć tego świadomość, sam widziałem jak nieraz kursanci padali już na twarz ze zmęczenia,
    – ile by nie trwał sam kurs, to jest za mało- musisz sam działać w domu. Czytaj, ucz się i przede wszystkim pisz i pisz- cokolwiek, chociażby aplikację do zarządzania budżetem domowym, jakieś “gadżety” dla dzieciaków, cokolwiek, ale pisz;),
    – wykorzystaj na 110% obecność trenera- pytaj, pytaj i pytaj. Po to jest ten człowiek, żeby wycisnąć z niego wiedzę,
    – masz wątpliwości, czy IT jest dla Ciebie, nie wiesz czego się spodziewać- pytaj trenera. Ja odbyłem sporo rozmów z kursantami, gdzie pytali co i jak. Pytaj o kasę, wymagania co do wiedzy, specyfikę pracy itd. Te pytania są ważne, żeby w Tobie nie funkcjonowały mity, że programista śpi na kasie, i nic nie robi tylko czasem uderzy w klawiaturę. Jeśli masz wielu trenerów na zajęciach, to pytaj każdego z nich- każdy jest inny, ma inną pracę i doświadczenie, więc wiele się dowiesz,
    – staraj się być samodzielny- często dając kursantom zadanie do wykonania, spotykałem się z żądaniem, żeby im pokazać jak je rozwiązać. Nie rób tak, to Cię zabije. Naprawdę. Najpierw sam rozwiąż problem (napisz kod). Wiem, że on na początku będzie beznadziejny, nieoptymalny i ogólnie brzydki, ale z własnego doświadczenie wiem, że napisanie czegokolwiek samemu, nawet źle, bardzo procentuje w przyszłości, bo uczysz się rozwiązywania problemów, a w pracy nikt za Ciebie tego nie zrobi,
    – nie nastawiaj się na kasę- wiem, że to jest pewnie jednym z głównym powodów przekwalifikowania się, ale jeśli nie bardzo widzisz siebie w IT, to lepiej sobie odpuścić i poszukać pracy w innej branży, bo szkoda żebyś sobie zmarnował życie. Może nie będzie tak prosto, ale nie tylko w IT można dobrze zarobić.

    • Xeinaemm on

      Całkowita prawda! Sam mam ten problem ucząc osoby w ogóle nie umiejące programować, ilość trywialnych pytań jest zatrważająca, czasami nawet zastanawiam się czy nadaję się do tego, bo niektóre pytania rozkładają na łopatki bo nie wiesz jak to wytłumaczyć :) Ja przed każdym kursem dla takich osób zawsze robię lub wplatam w zajęcia aspekty “czym IT nie jest”, jest to brutalne bo część osób już po pierwszych zajęciach odpada, ale praca jest bardziej przyjemniejsza i więcej czasu można przeznaczyć dla osób, które chcą się uczyć.

  2. Trafiłem na ten tekst w dobrym momencie, właśnie niedawno zaproponowano mi współpracę na stanowisku juniorskim, a programowanie uczę się od około roku samodzielnie :)

    Napiszę kilka słów na temat samodzielnej nauki (więcej na ten temat piszę też na swoim blogu), może przyda się osobom, które też chcą w ten sposób wejść w programistyczny temat:

    Przede wszystkim warto zrozumieć, że skoro chcemy uczyć się samodzielnie, przygotowanie sensownego planu tej nauki (i rewidowanie go w trakcie, jeśli np. coś nie gra tak jak zakładaliśmy) to podstawa sukcesu! Tak jak Maciej napisałeś, bardzo łatwo zabrnąć w ślepe zaułki czy też zakopać się w jakimś wąskim zagadnieniu na zbyt długi czas, tracąc z oczu szerszy obrazek.

    Dla mnie najważniejsze na początku było zorientowanie się, że samo pojęcie “nauki programowania” jest zbyt szerokie, i muszę określić konkretniej co chcę robić – czy będzie to np. tworzenie gier, aplikacji webowych czy też aplikacji mobilnych. To jest dopiero konkretna decyzja, i to taka, która pociąga za sobą konkretny zakres wiedzy do przyswojenia czyli ustala nam zakres nauki.

    Drugą bardzo ważną decyzją było postawienie na naukę bazującą na praktycznych projektach – dobrze określony cel (stworzenie aplikacji o danej funkcjonalności) pomaga zmobilizować się bardziej niż realizowanie tutoriala za tutorialem czy też CIĄGŁE rozwiązywanie teoretycznych, oderwanych od rzeczywistości, zagadek programistycznych (podkreśliłem “ciągłe” bo zajmowanie się nimi od czasu do czasu bardzo pomaga!).

    Nie ma co też spinać się i produkować n-te zapytanie w internecie pt. “Jaki język programowania na początek???”. Raz, że jeden język to i tak za mało nawet by móc startować na pozycję juniorską (oczywiście jeden powinien być dominujący, ale np. nawet taki zapalony back-endowiec jak ja, musiał poznać m. in. podstawy front-endu: HTML/CSS, JS a także SQL do komunikowania się z bazami), a dwa, że i tak pewnie kiedyś będzie trzeba go zmienić, więc i nie ma się co tym pierwszym językiem spinać ;) U mnie wygrał Python, głównie dlatego, że “nie przeszkadza” w nauce PROGRAMOWANIA (a nie nauce JĘZYKA programowania).

    I jeszcze a propos coderslab i innych bootcampów (a także nauczania w systemie mentoringu) – zacząłem doceniać korzyści płynące z takiej drogi (chociaż sam się na nią nie zdecydowałem) widząc, jaki szmat czasu trzeba poświęcić na, nazwijmy to ‘metanaukę’ czyli zdobycie informacji na temat tego, czego w ogóle powinienem się uczyć ;). Nie myślałem, że będzie to zabierać aż tak dużą część poświęconego czasu, no i odwiedziłem sporo ślepych zaułków przy okazji. Problem sprowadza się do tego, że jako świeżak, po prostu nawet nie wiesz czego nie wiesz i musisz to w pierwszym rzędzie odkryć :)

    Tak więc jeżeli ktoś ma jakąś presję czasową (ale i niemałą sumę do wydania) to bootcamp/mentoring jest chyba nawet lepszą opcją niż w pełni ‘samodzielna’ nauka (bo przecież w tych przypadkach też nauka jest samodzielna, tyle, że wspomagana :).

    Co do samych codersów, w pewnym momencie sam zastanawiałem się nad wzięciem udziału w bootcampie, zrobiłem więc research na temat tego i innych firm, wybrałem się na ich spotkania etc., i muszę napisać, że zdecydowanie wywarli najlepsze wrażenie, fajnie więc, że to z nimi Maciej współpracujesz :)

  3. odpowiedz on

    Świetny artykuł! W internecie jest mnóstwo informacji o programowaniu… Ale jest tego za dużo i bardzo ciężko znaleźć odpowiedzi na niektóre pytania… często typowo podstawowe- chociażby te, czy warto iść na studia informatyczne, czy nie? Szczerze powiem, umie Pan zmotywować do pracy! To ciekawe, bo z reguły osoby, które mówią “gorzką” prawdę o jakimś zawodzie/ zajęciu, raczej zniechęcają, a Pan mimo, że mówi prawdę, nie owija w bawełnę, to umie zmotywować do podjęcia walki i rozwijania się! To coś rodzaju łamania blokad w głowach (bo jednak ograniczenia są tylko w nas samych!). Dzięki za to! Dodam, że takie artykuły są dla mnie szczególnie cenne, bo właśnie jestem przed rozpoczęciem studiów i planuję swoją drogę. Niestety rzadko który kandydat na studia jest swiadomy tego co go czeka. Dzięki Panu będę mógł podjąć odpowiednią decyzję. :-) Mam nadzieję, że kiedyś będę miał okazję postawić Panu piwo! Serdecznie pozdrawiam!

  4. Wikisłownik podaje dla czasownika “studeo” w znaczeniu pierwszym: “uczyć się”, w drugim: “zajmować, interesować się”, w trzecim: “poświęcać się (czemuś)”. To tylko porządek znaczeń w słowniku, ale zaskakująco dobrze opisuje, jak wygląda ścieżka profesjonalnego programisty. W przypadku bylejakiego programisty jest inaczej. Na początku bywa zainteresowanie, potem trochę uczenia się, i od czasu do czasu poświęcenie. Kończy się to bylejaką pracą, bylejakim kodem, wreszcie wypaleniem lub znudzeniem.

    A może być inaczej.

    Poświęcić można się od początku, ale jak to bywa w różnych dziedzinach życia, np. w dobrym małżeństwie, na początku poświęcenie nie jest aż tak potrzebne, jak na dalszych, dojrzałych etapach. Poświęcenie nie jest kwestią uczuć – to decyzja woli, którą utrzymuje się długo, pomimo przeciwieństw, w szczególnych przypadkach nawet do końca życia. Na uczelni trzeba wytrzymać pięć lat. I to najmniej pięć lat, bo niektórzy muszą wytrzymać nawet dziesięć – ostatni rok bywa zazwyczaj dłuższy od poprzednich.

    Od początku do końca trzeba się uczyć, ale jeśli nie pojawia się zainteresowanie po dłuższym etapie uczenia, trzeba sobie zadać pytanie: może to nie jest właściwa ścieżka? To trudna rozprawa wewnętrzna ze sobą, bo czasami jest tak, że jeśli jest ciężko, to znaczy, że idziemy we właściwym kierunku.

    I tu pięcioletni okres studiów – formalnych czy nieformalnych – jest doskonałym sprawdzianem, czy kandydat na profesjonalnego programistę jest gotów do stania się nim. Jeśli przez pięć lat jest gotów nieustannie uczyć się, jeśli po pięciu latach nie traci zainteresowania, jeśli po pięciu latach jest gotów poświęcić się programistycznemu rzemiosłu, wtedy ktoś – profesor czy starszy programista – mówi: “Pasuję cię na programistę”. I jest uzasadniona radość, i jest uzasadniona duma.

    Co do uniwersyteckich czy politechnicznych kursów programowania można postawić wiele zarzutów. Mój główny jest taki, że uczą przede wszystkim tworzenia nowych rozwiązań, a prawie w ogóle nie uczą pracy z kodem zastanym (taka wciąż zdają sprawę moi młodsi koledzy studiujący na różnych uczelniach). Ale to właśnie na uczelni, raczej nie w szkole programowania, zostaniemy zmuszeni do ćwiczenia się w abstrakcyjnych algorytmach. A to fundament programowania. Po znajomości algorytmiki można odróżnić wybitnego programistę od programisty-kodera.

    W kwestii samodzielnego studiowania, wydaje mi się, że bez samodzielnego studiowania nie można zostać dobrym programistą. Studia i szkoła będą wielką pomocą, ale bez samodzielnego studiowania nie widzę potencjału.

    Dla rozważających rozpoczęcie – lub zakończenie – pracy programisty gorąco polecam książkę Roberta Martina “Mistrz czystego kodu. Kodeks postępowania profesjonalnego programisty”. Kiedy pierwszy raz po nią sięgnąłem trzy lata temu miałem zamiar porzucić programowanie. Programowałem – tak mi się wydawało – amatorsko i zawodowo od 20 lat. Ale po lekturze pierwszych rozdziałów musiałem przyznać, że na dobrą sprawę programować jeszcze nie zacząłem. I poczułem chęć zaczęcia drogi programowania na nowo. Co rok czytam tę książkę ponownie, aby przypomnieć sobie, po co programuję i dlaczego z każdą linijką kodu chcę być lepszym programistą.

    Zaczynającym przygodę z programowaniem – ale i tym znudzonym – życzę dobrze wykonanej programistycznej roboty. Innej nie warto nawet podejmować.

    • Wiesz, to zależy co kto chce.
      Jeśli ktoś MOŻE iść na studia to zawsze polecam. Ale jeśli ktoś chce zostać programistą w wieku 30 czy 40 lat to… to co? Jestem daleki od zamykania przed nim drzwi.
      Gdzie się nauczy? W pracy. Więc co musi znaleźć jak najszybciej? Pracę właśnie. U pracodawcy świadomego jego zalet, ale i wad (np wąskich horyzontów, małego doświadczenia).
      Kiedyś idealizowałem nasz zawód. Teraz już tego nie robię. Odrobina poświęcenia potrzebna jest wszędzie, wcale niekoniecznie u nas bardziej niż gdzieś indziej.

      • Zaledwie wczoraj rozmawiałem z kolegą, który narzekał na brak czasu, a chciał zająć się programowaniem. Mój rocznik, czyli aproaching forty. Broniłem sprawy podając swój przykład. Też nie mam czasu na studio, ale uczę się korzystając z każdej wolnej chwili – w drodze między pracą a domem, gdy dzieci i żona śpią, gdy mam niezajętą obowiązkami godzinę wieczorem.

        W pracy można się nauczyć, to prawda, ale tylko wtedy, gdy nie koliduje to z wykonywaniem pracy lub gdy jest jej podporządkowane. W pracy, co do zasady, wykorzystujemy to, czego się nauczyliśmy – za to nam płacą. Czasami płacą nam za to, że się uczymy, owszem, ale to musi być jasno ustalone.

        Także albo studia, albo poświęcenie czasu wolnego – to jest właściwy czas na naukę.

        A co do idealizowania zawodu – programisty czy jakiegokolwiek innego – to zgadzam się z Tobą, nie jest u nas jakoś szczególnie lepiej. Ale wystarczy posłuchać, co o naszej pracy sądzą Klienci. Można sobie np. poczytać opinie pod aplikacjami w sklepach mobilnych. Nawet po odsianiu hejtu trudno upierać się przy tym, że przeciętny programista to lepszy fachowiec niż elektryk czy hydraulik.

        Zatem nie jesteśmy lepsi jako grupa zawodowa, zgadzam się. Może za dużo napisałem o etosie programisty, a to można odnieść do etosu rzemieślnika ogólnie. To mogło sprawić wrażenie, że wg mnie programista jako taki jest ę, ą i w ogóle. Jeśli takie było wrażenie – prostuję:

        Programowanie jest trudne. Ale warto nauczyć się programować, bo uczy dyscypliny myślenia, bo ćwiczy wyobraźnię, bo daje poczucie sprawczości itd. Stanie się profesjonalnym programistą wymaga jednak dużo pracy. Ale warto uczyć się z poświęceniem, bo wtedy programowanie staje się przyjemniejsze (dla nas) i bardziej pożyteczne (dla innych).

        Nie namawiałbym nikogo do zajęcia programowaniem – czy jakimkolwiek innym zawodem – jeśli programowanie miałoby mieć dlań inne skutki, niż właśnie przyjemność i pożytek.

      • Totalnie nie zgadzam się ze stwierdzeniem, że w IT w pracy co do zasady nie ma miejsca na naukę. Zmiany w IT są tak szybkie i częste, że jeśli pracodawca domyślnie nie przeznaczy części czasu pracowników, to szybko będzie miał technologiczne muzeum. I trudności ze znalezieniem ludzi, jak tylko dotychczasowi pracownicy zrozumieją, że z każdym dniem coraz bardziej wypadają z rynku, ciekawe rzeczy dzieją się gdzie indziej, a pieniądze podobne.

        Dyskutowałbym najwyżej stosunek czasu pracy i nauki. ;-)

        Dla jasności: poznawanie nowych programów, bibliotek itp. to też IMO nauka.

  5. Ja bym do tego dodał jeszcze odrobinę szczęścia. Osobiście zacząłem swoją karierę w IT jako technik w dużej firmie produkcyjnej, wiecie, chłopaczek od wymiany tonerów, składania kompów, instalacji windowsów, sterowników, sraty, taty (4 lata to robiłem). Jakoś po 2 roku studiów stwierdziłem, że chcę się przekwalifikować na programistę bo najzwyczajniej w świecie ciekawiło mnie to, co chłopaki u mnie w (poprzedniej już) pracy robią, w jakich technologiach, niejednokrotnie podpytywałem ich jak coś ustawić np. w serwerze Tomcat bo potrzebowałem zrobić projekt w technologii JEE na zaliczenie. Niestety, pomimo składania ton CV i chodzenia na rozmowy byłem najzwyczajniej w świecie jeszcze za słaby, aby się przenieść do innej firmy i przekwalifikować. Przełom nastąpił dwa lata temu w połowie roku kiedy jeden z programistów z pokoju obok złożył wypowiedzenie. Po formalnym “interview” trzy miesiące później dowiedziałem się, że zmieniam stanowisko (tyle to trwało bo firma postanowiła jeszcze przesłuchać kandydatów z zewnątrz). De facto zacząłem pracę po kolejnych trzech miesiącach (szukali człowieka na moje miejsce). Półtora roku przepracowałem na stanowisku “młodszego programisty”, dzieląc częściowo obowiązki jeszcze ze starym stanowiskiem, gdyż nowa osoba musiała się wdrożyć itd. A teraz pracuję sobie w małej firmie (8 osób) z o 50% większym wynagrodzeniem, jak i również o 50% mniejszym zakresie odpowiedzialności w porównaniu z poprzednią firmą.

  6. Ucząc się programować z doskoku można próbować różnego rodzaju zabaw, łamigłówek i konkursów związanych z programowaniem. W moim przypadku, dawno temu, był to Perl golf oraz Pogromcy Algorytmów. Niezły motywator i zmusza do poszperania trochę głębiej. No i przede wszystkim – fun.

      • Oczywiście, to raczej pierwszy krok i dodatkowy motywator, ale lepszy rydz niż nic. Przy czym to daje doskonałą okazję do nauki, bo:
        1. wszyscy pracują nad tym samym, często podchwytliwym, problemem,
        2. można porównać własne rozwiązanie z najlepszymi, przy okazji poznać parę nowych tricków/algorytmów,
        3. zwykle jakoś się do konkursu przygotowujemy – to też nauka.

        BTW zastanawiam się, czy zawodowi programiści w tego typu konkursach (ew. czemu nie) i jak wypadają.

  7. Jak zawsze bardzo przydatny artykuł. W szkole, do której chodziłem to nawet nauczyciel, który uczył mnie programowania go zbytnio nie rozumiał i kazał nam przepisywać podręczniki. Niestety niektórzy znaleźli się tam gdzie nie powinno ich być i blokują rozwój młodych ludzi , a tak nie powinno być.