Praca w IT bez studiów jest możliwa! Czy to oznacza, że studia informatyczne są zbędne?
Nie, nie trzeba mieć skończonych studiów, żeby pracować w branży IT jako programista. Ale jednocześnie, gdy ktoś mi mówi, że chce zostać programistą i pyta mnie, czy iść na studia, zazwyczaj odpowiadam “tak, warto to zrobić”, dodając od razu, że wiele zależy od tego, o jakich my w ogóle studiach mówimy.
Bo tutaj nie chodzi o sam papier, o sam fakt posiadania wyższego wykształcenia, a o to, czego dzięki tym studiom się nauczymy i co te studia – oraz uczelnia, na którą się wybieramy – sobą reprezentują.
W tym artykule odpowiem na kilka kluczowych pytań:
- Dlaczego studia są ważne, gdy chcesz zostać programistą?
- Dlaczego nie musisz studiować, żeby zostać programistą?
- I dlaczego pierwsze i drugie pytanie wcale się nie wykluczają?
Dowiesz się też:
- W jaki sposób wykorzystać studia, jeżeli zdecydujesz się na nie wybrać?
- I na czym się skupić, jak się uczyć i jak aplikować do pracy, w sytuacji, gdy nie masz dyplomu wyższej uczelni i nie masz zamiaru tego zmieniać?
Zrobimy to naprawdę kompleksowo, a ja odpowiem na większość pytań, które możesz mieć w tym temacie, ale gdyby jednak coś pozostało niejasne, zapraszam do zadawania pytań na YouTubie oraz do dyskusji na Discordzie: https://www.jaknauczycsieprogramowania.pl/discord.
Junior Developer poszukiwany! Kto dostaje pracę w IT?
Na początku chcę, żebyś wyobraził sobie taką sytuację, w której to Ty jesteś rekruterem i spływa do Ciebie kilka CV. Na ich podstawie musisz wybrać jedną osobę, którą zaprosisz na rozmowę kwalifikacyjną. Zastanów się teraz – jakie kryterium przyjmiesz? Na co zwrócisz uwagę? Co sprawi, że stwierdzisz, że jedna osoba będzie sprawiała wrażenie osoby z większym potencjałem od reszty?
Rekrutacja w praktyce! Jak ocenisz takie CV?
Kandydat numer jeden – ok, studiów nie ma skończonych, zrobił bootcamp programistyczny, na liście umiejętności Java, Spring Boot, SQL i Git. Poza tym pisze, że lubi wyzwania i szybko się uczy. Hmm, ciężko powiedzieć, co tak naprawdę umie.
Kandydatka numer dwa – wyższe wykształcenie, ukończona anglistyka, czyli z komunikacją w projekcie, w międzynarodowym zespole, nie będzie problemów. Pisze, że programuje w Javie i Pythonie, ale o projektach, które ma na koncie nie napisała ani słowa. Zaprosić ją na rozmowę to też trochę jakby rzucić monetą. Spójrzmy na kandydata numer trzy.
Pisze, że zna Javę, Spring Boota i interesuje się rozwiązaniami chmurowymi. Żadnych projektów w CV nie ma, ale trzy miesiące temu obronił inżynierkę na Politechnice Łódzkiej. Ok, skoro poradził sobie na Politechnice, to jest duża szansa, że i u nas da radę. Dobra, dzwonię do niego i zapraszam go na rozmowę.
Wykształcenie kierunkowe zdradza predyspozycje do pracy w IT
To oczywiście bardzo duże uproszczenie procesu wyboru najlepszego kandydata, ale pokazuje ono dość dobrze, na jakiej podstawie oceniany jest potencjał kandydata. Mając osobę, która nie kończyła studiów kierunkowych, na temat jej potencjału tak naprawdę nie jesteśmy w stanie zbyt wiele powiedzieć. Jasne, może ona mieć super kompetencje i wymiatać w programowaniu, ale równie dobrze może mieć problemy ze sprowadzaniem ułamków do wspólnego mianownika. W takich sytuacjach zawsze mówię, że taka osoba jest dla pracodawcy czystą kartą, a na tej podstawie ciężko kogokolwiek zaprosić na rozmowę. Z drugiej strony, gdy mamy osobę, która ukończyła studia inżynierskie na dobrej uczelni, z dosyć dużym prawdopodobieństwem możemy założyć, że taka osoba dobrze sobie radzi z rozwiązywaniem problemów, z wyszukiwaniem informacji, a do tego ma solidne podstawy dotyczące technologii. I że będzie potrafiła skutecznie uczyć się nowych rzeczy, bo skoro poradziła sobie przez 3,5 roku naprawdę wymagających studiów, zaliczając w tym czasie dziesiątki bardzo trudnych egzaminów, codzienne wyzwania w pracy nie będą dla niej szokiem i szybko się w tę pracę wdroży. Oczywiście, możemy się tutaj pomylić, bo zdarzają się osoby, które potrafią się prześlizgnąć przez najtrudniejsze nawet studia, ale na tym etapie podejmujemy decyzje na podstawie tych danych, które mamy i oceniamy, która z opcji daje nam większe prawdopodobieństwo zaproszenia dobrego kandydata.
Różnica jest więc tutaj taka, że zapraszając inżyniera po dobrej uczelni też możemy źle trafić, ale przynajmniej jego papiery wskazują na to, że ma on spory potencjał. Natomiast osoba bez studiów to całkowicie ślepy strzał, bo o niej nie wiemy zupełnie nic.
Jak zostać programistą bez studiów informatycznych?
Opisując te trzy CV wspomniałem jednak o projektach i to jest w procesie rekrutacyjnym słowo – klucz. Zastanówmy się raz jeszcze, kogo byśmy zaprosili, gdybyśmy otrzymali takie dwa CV.
CV numer jeden – studia inżynierskie i magisterskie na Politechnice Warszawskiej, informatyka. Na liście technologii Java, Python, JavaScript. Lista projektów – aplikacja do katalogowania książek, umożliwiająca wykonywanie podstawowych operacji dodawania, wyświetlania, edycji oraz usuwania książek przy pomocy REST API.
CV numer dwa – brak studiów. Lista technologii taka sama jak w przypadku kandydata numer 1 – Java, Python, JavaScript. Lista projektów – aplikacja agregująca oferty pracy z kilku największych serwisów i dopasowująca je do profilu kandydata. Aplikacja została umieszczona w sklepach Play oraz AppStore i została ściągnięta już przez 10000 osób. Druga aplikacja analizująca trendy na giełdzie i sugerująca spółki, których akcje warto kupić. I trzecia aplikacja – szachy z zaimplementowanymi algorytmami sztucznej inteligencji, pozwalającymi na grę przeciwko komputerowi.
Projekty pozwalają na wejście do IT bez wykształcenia informatycznego
Mając takie dwa CV, czy myślimy o tym, że pierwszy kandydat ma inżyniera i magistra z Politechniki Warszawskiej? Nie, myślimy tylko i wyłącznie o tym, że kandydat numer dwa ma na swoim koncie niesamowicie ciekawie projekty i nie możemy się już doczekać, aż porozmawiamy o nich podczas rozmowy, na którą już za moment go zaprosimy. Swoją drogą, o szachach wspominam nieprzypadkowo, bo był to jeden z projektów, które miałem w swoim CV, gdy sam szukałem pierwszej pracy w IT, ale do tego jeszcze wrócimy.
Natomiast teraz jeszcze raz chcę podkreślić wagę projektów, które musisz mieć w CV. Projekty są Twoim doświadczeniem, którego poszukują rekruterzy. I projekty są szczególnie ważne, gdy nie masz skończonej informatyki lub pokrewnego kierunku na dobrej uczelni. Podkreślam tutaj renomę uczelni, bo to też ważna rzecz, do której jeszcze wrócimy.
W każdym razie jeżeli skończyłeś informatykę na dobrej uczelni, ale nie wpisałeś do CV żadnych projektów, to będzie to coś, czego do końca nie zrozumiem, bo nie wiem dlaczego miałbyś ich nie wpisać, ale jednak będzie istniał jakiś cień szansy, że zostaniesz zaproszony na rozmowę. Jeżeli nie studiowałeś i nie opisałeś w CV żadnych projektów albo te projekty są banalnymi projektami na poziomie pierwszego z brzegu tutorialu, to nie masz absolutnie żadnych szans, żeby ktokolwiek na Twoje CV odpowiedział zaproszeniem do kolejnego etapu rekrutacji, a zazwyczaj pozbawiasz się nawet szans na krótką mailową odpowiedź typu “dziękujemy, nie jesteśmy zainteresowani”. Takich CV firmy otrzymują naprawdę masę i one trafiają do kosza po maks trzech sekundach od spojrzenia na nie.
Dlaczego warto studiować?
Co jest więc takiego w tych studiach, że mówię, że absolwent informatyki ma szansę na zwrócenie na siebie uwagi, nawet jeżeli o żadnych projektach nie napisze? Przede wszystkim są to wszystkie te projekty, które realizujesz przez trzy i pół roku studiów inżynierskich. Tak, nawet jeżeli nie napiszesz o nich w CV, ja i tak będę mniej więcej wiedział, co robiłeś podczas studiów. Sam studiowałem, więc wiem, jaki jest program studiów, wiem, jakiego typu projekty podczas nich się tworzy i wiem, z jakiego zakresu wiedzę się zdobywa.
I to jest pierwsza, ogromna zaleta studiowania. Choćbyś nawet bardzo nie chciał, choćbyś się migał na maksa od nauki, prokrastynował i miał problemy z regularną nauką, to i tak podczas studiów napiszesz masę kodu. I chociaż studia nie są kursem programowania, to to programowanie będzie się przewijać cały czas, na różnych przedmiotach i praktycznie na każdym kroku będziesz miał do napisania mniejsze i większe projekty. Naprawdę trzeba się mocno postarać, żeby ukończyć studia inżynierskie z informatyki i wciąż nie mieć solidnych podstaw w dziedzinie programowania. Tak, pomimo, że studia nie są niezbędne do pracy w branży IT i wielu specjalistów IT nie ma wykształcenia wyższego, to jednak studia uczą:) I to – wbrew pozorom – całkiem sporo!
Studia informatyczne = solidne podstawy (programista to także informatyk!)
A poza podstawami programowania na studiach zdobywasz również wiedzę z zakresu podstaw informatyki, która jest nie mniej ważna. To taki fundament dla każdego programisty, którego nie można pominąć. Programista musi swobodnie korzystać z komputera, potrafić obsłużyć go z poziomu konsoli systemowej i nie robić wielkich oczu, gdy ktoś poprosi go o dodanie wpisu do pliku hosts czy o spingowanie serwera. Tak samo powinien bez większych problemów wyjaśnić, na czym polega idea klucza prywatnego i publicznego w kryptografii, w jaki sposób przesyłane są dane w internecie i co oznaczają takie pojęcia jak DNS czy adres IP. Duży nacisk na tę uniwersalną, bardzo istotną, wiedzę kładę w moim ebooku Roadmapa programisty, do którego odsyłam. Ebook przez ostatnie 3 lata znalazł już ponad 3 tysiące nabywców i wciąż nie traci on na aktualności. Wiedza w nim zawarta to taka wiedza, która była aktualna i 5 i 10 lat temu, i będzie też aktualna za kolejnych 5 i 10 lat.
Studia informatyczne = łatwiejsze wejście do branży IT
Trzecia zaleta studiowania to networking. To bardzo ładne słowo, ale w praktyce chodzi o to, że poznajesz inne ogarnięte osoby, z którymi możesz się uczyć i wspólnie pracować nad projektami. Te znajomości mogą mieć też znaczenie w kolejnych latach, gdy będziesz szukał pierwszej pracy czy nawet później, gdy będziesz już w branży IT i poczujesz potrzebę zmiany. Dobrze jest mieć takie grono znajomych osób, z którymi możesz wymieniać się doświadczeniami, dyskutować o możliwościach w różnych miejscach i analizować sytuację na rynku pracy. W moim przypadku zawsze wyglądało to tak, że przed zmianą pracy pytałem znajomych z innych firm, jak im się pracuje i jak wygląda praca w danej firmie.
Studia to również łatwiejsze wejście do branży dzięki programom praktyk i staży, bo niektóre z nich są kierowane tylko do studentów, a nawet do studentów wybranych uczelni.
Uczelnia ma znaczenie, a dyplom dyplomowi nierówny
Tak, bo studia studiom nierówne. Podejmując decyzję dotyczącą tego, czy będziemy studiować czy nie, warto również wziąć pod uwagę uczelnię, na którą się wybieramy. Jeżeli chodzi o moje miasto czyli Łódź, zawsze największą renomą w branży IT cieszyła się Politechnika Łódzka. I zdecydowana większość osób, z którymi pracowałem, była właśnie po informatyce na tej uczelni. Osoby po informatyce na Uniwersytecie zdarzały się bardzo rzadko, natomiast jeżeli chodzi o prywatne uczelnie, to ich ukończenie w ogóle nie było traktowane jako atut. Nie będę tutaj rzucał nazwami, ale w czasach, gdy studiowałem czy byłem już na początku kariery programisty, przez wiele osób te uczelnie traktowane były raczej jako miejsce, gdzie człowiek płaci po to, żeby mieć status studenta, ale późniejszy dyplom i tak jest raczej niewiele warty.
Tylko tutaj od razu chcę to wszystko doprecyzować. Po pierwsze, od czasu, gdy studiowałem minęło kilkanaście lat i te uczelnie, które kiedyś były obiektem drwin, dzisiaj mogą sobie radzić zupełnie inaczej. Po drugie, wiedza, którą wynosimy z jakiejkolwiek szkoły, zależy nie tylko od poziomu tej szkoły, ale także od nas, od tego jak my podchodzimy do studiowania i w jaki sposób ten czas chcemy wykorzystać. Po trzecie – pomimo, że większość z osób, z którymi pracowałem, miała ukończone studia – ten trend w ostatnich latach zaczął się mocno zmieniać. Kilkanaście lat temu świat IT był dużo mniejszy niż dzisiaj i praktycznie nie było programistów, którzy nie ukończyli studiów wyższych, natomiast dzisiaj brak studiów już nikogo nie dziwi. Dzisiaj nikt nie odrzuci twojej kandydatury tylko dlatego, że nie masz na koncie dyplomu wyższej uczelni. To co jest oceniane to twoje doświadczenie, twoje projekty oraz twoje umiejętności.
Jak zostać programistą bez studiów?
I tym sposobem płynnie przechodzimy do kwestii braku studiów. I zaczynamy od razu z grubej rury – nie pójście na studia nie oznacza pójścia na skróty, a wydaje mi się, że sporo osób tak to traktuje. Mam wrażenie, że pojawia się takie myślenie – skoro do zostania programistą nie potrzeba studiów technicznych, to jest to bardzo prosta rzecz, którą można ogarnąć w zasadzie moment. Nic bardziej mylnego. To, że jest to droga dużo krótsza i dużo prostsza od tej, którą należy przejść, gdy decydujemy się na przykład na bycie lekarzem czy prawnikiem – o czym opowiadałem podczas live’a Wejście do IT wcale nie jest takie trudne – nie oznacza to, że można to zrobić w ciągu trzech miesięcy, przerabiając jeden kurs. Nic z tych rzeczy. Na naukę oraz przede wszystkim praktykę należy poświęcić co najmniej setki godzin, a często jeszcze więcej. Różne szacunki mówią tutaj o przedziale od 1000 do 1500 godzin nauki od zera do momentu otrzymania pierwszej pracy.
Zakładając, że nie jesteśmy w stanie efektywnie uczyć się po 8 godzin dziennie, mówimy o przedziale rok – półtora. Dużo? Na pewno więcej niż obiecują szkoły programowania sprzedając bootcampy za kilkanaście tysięcy złotych, ale moim zdaniem to naprawdę niewiele. Wystarczy porównać to ze wspomnianymi zawodami lekarza czy prawnika, gdzie mówimy o co najmniej 5-7 latach nauki.
Jeżeli nie studiujesz, możesz rozpocząć przygodę z programowaniem tu i teraz
Nie studiując mamy ten plus, że możemy skupić się na tym, co jest faktycznie istotne. Bo chociaż generalnie polecam studia, to jednocześnie nie ukrywam, że masa zdobywanej podczas nich wiedzy jest po prostu zbędna. Tak, wiadomo, że studia informatyczne nie są kursem programowania, a ich celem jest przekazanie wiedzy na temat szeroko pojętej informatyki, ale nawet, gdy podchodzimy do tego w taki sposób, zderzamy się z potężną ilością teorii, w odniesieniu do której jedyna sensowna rada to 3 razy Z czyli zakuć, zdać i zapomnieć. Gdy uczymy się na własną rękę, bierzemy tylko tę najważniejszą, uniwersalną i przydatną wiedzę, tę wiedzę, która jest tym fundamentem, o którym mówiłem i mamy więcej czasu i sił, żeby uczyć się programowania i wszystkich tych technologii, których znajomość wymagana jest od dzisiejszego programisty. Tylko tutaj przestrzegam – jeżeli decydujesz się na tę drogę, musisz ułożyć konkretny plan i konsekwentnie się tego planu trzymać. Świadomość celu, do którego dążysz oraz samozaparcie są tutaj bardzo ważne.
Kolejna rzecz – networking. Dzisiaj jest o to dużo łatwiej, nawet gdy nie studiujemy. Zachęcam zarówno do szukania tych znajomości zarówno online jak i offline. Online zapraszam przede wszystkim na naszego Discorda, do którego dołączysz pod adresem jaknauczycsieprogramowania.pl/discord, a offine warto poszukać meetupów programistycznych – na przykład odwiedzając stronę meetup.com i sprawdzając, co ciekawego dzieje się w naszej okolicy. Discord oraz Meetup to tylko dwa przykłady – prawda jest taka, że dzięki internetowi mamy dostęp do społeczności programistów z całego świata, od których możemy się uczyć i z którymi możemy się wymieniać doświadczeniami. Nauka programowania naprawdę nigdy nie była tak prosta jak dzisiaj.
Dobre portfolio to przepustka do pracy programisty
Pamiętaj, że nie studiując musisz jeszcze mocniej się wyróżnić, a tym samym przyłożyć większą wagę do projektów, które realizujesz. Mówiłem już o tym wcześniej, ale to tak ważna kwestia, że mógłbym powtórzyć ją jeszcze kilka razy. Pamiętaj, że projekty muszą cię wyróżniać – to nie mogą być tylko projekty przepisane linia po linii z tutorialu. Jasne, możesz wykorzystać taki projekt jako bazę, ale pamiętaj, by potem go rozbudować i stworzyć coś naprawdę swojego. O tym, jakie projekty miałem na koncie, gdy stawiałem swoje pierwsze kroki w branży IT, opowiadałem w filmie Portfolio młodszego programisty – jakie projekty w nim umieścić?. Jednym z projektów były wspominane przeze mnie szachy. Czy był to trudny, złożony projekt? Raczej nie, była to tak naprawdę dość prymitywna implementacja jednego z podstawowych algorytmów sztucznej inteligencji MinMax. Ale sam fakt, że można było zagrać w szachy przeciwko komputerowi sprawiał, że był to projekt, który wyróżniał się w CV i zachęcał do rozmowy na jego temat. W jaki sposób zaimplementowałem ten algorytm? Dlaczego wybrałem język C do stworzenia tego programu? Czy wszystko działało tak, jak tego oczekiwałem? Co mogłem zrobić lepiej? I takie właśnie powinny być twoje projekty – powinno chcieć się o nich rozmawiać.
Tym się wyróżnisz podczas procesu rekrutacyjnego!
Oczywiście bardzo istotne jest to, żeby w projektach potrafić skorzystać z różnych technologii, bibliotek oraz frameworków, z których korzysta się na co dzień realizując projekty w wybranym języku programowania. Rekruter musi widzieć, że znasz nie tylko podstawy samego języka, ale czujesz się swobodnie w całym ekosystemie tego języka. Wyróżnisz się też testując swoje projekty z użyciem testów jednostkowych.
I wyróżnisz się też, jeżeli będziesz brał udział w inicjatywach takich jak hackathony czy game jamy. Są to wydarzenia, do których zgłaszasz zespół albo dołączasz do innego zespołu przychodząc na takie wydarzenie, i najczęściej w ciągu 24 lub 48h tworzysz wraz z innymi aplikację lub grę. Nie mówię, że jest to coś, co koniecznie musisz mieć na koncie, ale podrzucam jako jedną z inspiracji.
Studia programistyczne czy praca w IT bez wykształcenia? Obie opcje są równie dobre!
To co w końcu z tymi studiami zrobić? Studiować czy nie studiować?
Jednoznacznej odpowiedzi na to pytanie nie mam, bo nie mogę podejmować za ciebie tak ważnej decyzji. Dlatego powiem inaczej – dróg do zostania programistą jest wiele i każda z nich jest właściwa. Bez względu na to, czy zdecydujesz się na studia czy nie, to czy zostaniesz programistą zależy przede wszystkim od ciebie. Te dwie drogi oczywiście będą się od siebie różnić i musisz o tym pamiętać, gdy już na którąś się zdecydujesz, ale każda z nich będzie wymagała od ciebie dużo pracy i konsekwencji.
I zachęcam cię też do obejrzenia dwóch filmów – filmu w którym odpowiadam na pytanie, czy dzisiaj junior musi umieć tyle co mid kilka lat temu oraz filmu, w którym opowiadam, w jaki sposób ja wykorzystałem studia i czego dzięki nim się nauczyłem.