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.
Polecam obejrzenie tych dwóch odcinków VLOGa:
https://www.youtube.com/watch?v=RrfwnLsEXl8
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ą.
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.
Co dalej?
O wiele więcej informacji na takie tematy znajdziesz w mojej (bestsellerowej zresztą ;) ) książce “Zawód: Programista“. Polecam!
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… Read more »
Amen! Dzięki.
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ć.
Miałem też taki epizod nauczania i byłem w szoku jakie to trudne :).
Jakiś czas temu pisałem o tym jak ja zostałem programistą. Jak ze środowiska sportu przeszedłem do środowiska IT. Można przeczytać o tym więcej tutaj: https://blog.piotrnalepa.pl/2017/02/09/zostac-js-developerem-moja-historia/
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… Read more »
Ale “insight info”! Fajna perspektywa i wiele cennych spostrzeżeń, dzięki!
Ś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ą… Read more »
Dzięki!
Fajnie że udaje się motywować. A owijania w bawełnę faktycznie nie lubię :). Warto iść w te rejony świadomie, POMIMO wad, a nie malując rzeczywistość na różowo.
A piwo: na dzień dzisiejszy https://patronite.pl/maniserowicz , bo nie piję w tym roku :).
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.… Read more »
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… Read more »
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.
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… Read more »
Szczęście zawsze się przyda, jeśli się w nie wierzy :). Ja lubię takie podejście: http://devstyle.pl/2011/08/21/slowo-na-niedziele-o-pracy-i-szczesciu/ .
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.
Ano na pewno, różnorodność pomaga. Ale trzeba sobie uświadomić, że nauka “z doskoku” to raczej tak zabawowo :).
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ą.
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ć.