Czy programista potrzebuje studiów - okładka

Czy programiście potrzebne są studia?

Opublikowano Kategorie PrzemyśleniaCzas czytania 26min

Artykuły o takim lub podobnym tytule można znaleźć na wielu blogach programistycznych. Nie może go więc zabraknąć u mnie. Moim zdaniem nie da się jednoznacznie odpowiedzieć na tytułowe pytanie „tak” lub „nie”.

Celem tego artykułu jest przedstawienie tego, co mi dały studia, czy jestem z nich zadowolony i czy nie żałuję pięciu lat spędzonych na uczelni. Przedstawię plusy i minusy studiowania z mojej perspektywy. To, że na moich studiach coś wyglądało w dany sposób, nie znaczy, że u Ciebie też tak będzie. Wiele będzie zależało od tego, na kogo trafisz w trakcie studiów i z jakim nastawieniem rozpoczynasz studiowanie. Mam nadzieję, że ten artykuł, podobnie jak dziesiątki innych o tej tematyce będzie stanowił dla Ciebie wartościową cegiełkę.

Chcę po stokroć podkreślić, że ten artykuł jest rezultatem i opisem moich doświadczeń i moją opinią, a nie zestawem arbitralnych stwierdzeń. Jeśli masz inną opinię na jakiś temat, to bardzo chętnie ją poznam. Jeśli się ze mną zgadzasz, to również chętnie się o tym dowiem z komentarzy! 🙂

Również sam wybór uczelni będzie miał kolosalny wpływ na to, ile studia mogą Ci dać. Dla kontekstu całości artykułu ukończyłem studia I i II stopnia w trybie zaocznym na kierunku informatyka i ekonometria na Uniwersytecie Ekonomicznym w Poznaniu. W rankingu 1000 najlepszych uniwersytetów na świecie na rok 2023 znajduje się 9 uczelni i UEP się wśród nich nie znajduje. Daleko zatem jest UEP-owi do Harvardu czy MIT, ale z pewnością nie jest to też tzw. fabryka dyplomów. Oznacza to mniej więcej tyle, że nie można porównać doświadczeń absolwenta MIT do absolwenta UEP ani tym bardziej do absolwenta Wyższej Szkoły Mieszania Betonu.

Sam artykuł jest jednym z najdłużej powstających w dotychczasowej historii bloga. Pierwsze notatki powstawały jeszcze gdy, byłem aktywnym studentem.

Studia informatyczne to nie szkoła

Jeśli liczysz, że pójdziesz na studia informatyczne, ukończysz je i nie będziesz mógł/mogła odpędzić się od ofert pracy, to daj sobie z nimi spokój. Celem studiów jest nakierowanie Cię na odpowiednie tory i danie wiatru w żagle. Nikt nie będzie próbował Ci tam wtłoczyć wiedzy na siłę. Odpowiedzialność za zrozumienie, utrwalenie i pogłębienie wiedzy zdobytej na zajęciach spoczywa wyłącznie na Tobie. Myślę, że świetnie obrazują to słowa Mensura Durakovicia:

To precisely describe how college will prepare you for the job imagine that you are learning how to swim.

Your instructor spends a huge amount of time to describe you all the moves you need to make. He makes you recite all those moves, asks you questions about it and you have exams about it. But you never touch the water.

After 5 years, you get a piece of paper that proves your swimming skills. Then the day comes, and you have to swim now. The guys in the swimming place just kick you into the water.

Drugą stroną medalu jest użyteczność części przedmiotów i projektów w procesie nauki. Tu jednak podobieństwo do szkoły jest już zauważalne. Jakże wielkie było moje zdziwienie, gdy na pierwszym semestrze więcej niż połowa przedmiotów nie była związana z informatyką, a już tym bardziej z programowaniem. Oczywiście wynikało to z rodzaju uczelni i kierunku studiów. Z uwagi na charakter uczelni, wiele przedmiotów było związanych z ekonomią, finansami czy statystyką.

Jednak nawet na studiach typowo informatycznych będziesz uczył(a) się o wielu różnych zagadnieniach i dziedzinach tak, by liznąć jak najwięcej obszarów. Będą to również obszary, które niekoniecznie będą Cię interesować. Z jednej strony pozwala to lepiej rozeznać się w potencjalnych kierunkach rozwoju. Pozwala to też dowiedzieć się, czego jeszcze nie wiesz i czego warto się dowiedzieć.

Z drugiej strony jednak takie powierzchowne poznanie wielu obszarów nie pozwoli Ci zdobyć wiedzy niezbędnej w pracy. Dlatego też konieczne jest znalezienie swojego obszaru zainteresowań, a następnie korzystając z podstaw poznanych na zajęciach samodzielnie dokształcanie się. Samodzielne szukanie informacji to podstawowa umiejętność, jaką powinien mieć programista. Studia doskonale potrafią ją wykształcić.

Oceny

O ile nie zamierzasz starać się o stypendium, to moim zdaniem temat ocen możesz całkowicie olać. Nie potrzebujesz średniej 5.0 ani dyplomu z wyróżnieniem. Jednym z moich ulubionych pytań na studiach było „od ilu % jest 3?”. Nie przejmowałbym się ocenami, o ile umożliwiają zaliczenie przedmiotu. Jeśli miałbym do wyboru nauczyć się na zaliczenie na 3 i poświęcić resztę czasu na naukę czegoś, co przyda mi się w pracy lub czymś co mnie bardziej interesuje a zakuwać godzinami, by dostać 5, to wybór byłby prosty. Ucz się przede wszystkim dla siebie, a nie dla ocen.

Na ocenę poza twoją wiedzą może wpłynąć multum rzeczy. Począwszy od tego, że akurat trafiło się pytanie z wykładu, z którego brakowało Ci notatek przez to, że sąsiad zrobił domówkę w nocy przed egzaminem po to, że dzień wcześniej zjadłeś(aś) nieświeżego kebsa i nie dotarłeś(aś) na egzamin.

Nikogo nie będzie interesowało jaką ocenę miałeś z analizy matematycznej na pierwszym roku, dlatego tym bardziej nie zwracałbym uwagi na oceny cząstkowe. Do rozważenia pozostawiam walkę o wyższą średnią za całe studia. Ja szczególnej uwagi do tego nie przywiązywałem, ale znalazłem kiedyś w ofercie stażu wymóg określonej średniej ze studiów. Na szczęście był to jednostkowy przypadek.

Zaliczenia

Zawsze znajdzie się przedmiot i wykładowca, który będzie za wszelką cenę próbował złapać kogoś na ściąganiu lub ze skopiowanym/kupionym projekcie. Jednak zdecydowana większość będzie miała to gdzieś, a robiąc projekt Chatem GPT lub podrzucając nieco pozmieniany projekt od kolegi lub koleżanki, pewnie zdasz bez problemu. Warto jednak przemyśleć to podejście w kontekście przedmiotów, które Cię interesują lub mogą Ci się przydać w przyszłości.

Zrobienie projektu zaliczeniowego na przedmiot, który szczerze Cię interesuje, może sporo Ci dać. Przykładowo, jeśli zadanie zaliczeniowe polega na przygotowaniu strony WWW według określonych wytycznych z wykorzystaniem WordPressa, to pewnie będzie dało się zrobić ten projekt całkowicie na wtyczkach i gotowym motywie. Będzie to według mnie spoko podejście, jeśli nie wiążesz swojej przyszłości z WordPressem. W przeciwnym razie warto jednak podejść do projektu nieco bardziej ambitnie.

Jednym z takich zaliczeń, gdzie projekt zaliczeniowy był dla mnie BARDZO ciekawy, był projekt zaliczeniowy z projektowania aplikacji multimedialnych. Wymaganiem projektu było stworzenie prostej gry w silniku gier Unity. Gdyby nie studia prawdopodobnie do dzisiaj nie zbudowałbym własnej gry. Dzięki temu projektowy poznałem podstawy Unity i wiem, że jak znajdę więcej wolnego czasu, to z pewnością zacznę sobie tworzyć jakąś grę na boku.

Innym ciekawym zaliczeniem było zaliczenie, gdzie musiałem zaprojektować dowolną aplikację wykorzystującą co najmniej dwa wzorce projektowe i mającą pokrycie testami jednostkowymi. Problemem była konieczność napisania tej aplikacji w Javie… o której nie miałem zielonego pojęcia.

Mimo że w JavaScript byłoby to dla mnie 30 minut roboty, tak w Javie zeszło mi na to kilka wieczorów. Głównie dlatego, że interesowało mnie jak zrobić to w poprawny sposób, zgodny z trendami i standardami. Dodatkowo miałem okazję poznać nowe narzędzia i powalczyć z nowymi błędami. Jeśli kiedyś będzie mi dane programować w Javie, z pewnością start będzie mniej bolesny.

Kolejne ciekawe zaliczenie było alternatywą do egzaminu i polegało na zdobyciu największej ilości flag w konkursie Capture The Flag przygotowanym przez wykładowcę.

Wiedza (bez)użyteczna

Jeśli idziesz na studia i myślisz, że „teraz to będę się uczył tylko przydatnych rzeczy, nie to, co w szkole”, to muszę Cię rozczarować. Na moich studiach, zanim na poważnie zacząłem programowanie, zostałem potężnie przeczołgany przez przedmioty matematyczne i statystyczne. Idąc na studia informatyczne, na pierwszym roku będziesz prawdopodobnie miał(a) flashbacki z zakuwania wzorów skróconego mnożenia, tylko tym razem będziesz uczył(a) się całek i macierzy.

Jest to wiedza, która prawdopodobnie nie przyda Ci się w codziennej pracy. Nie wynika to z tego, że w programowaniu nie ma matematyki, tylko z tego, że jest ona przed tobą ukryta. Przykładowo nie potrzebujesz wiedzieć, czym jest transformata Fouriera, by móc przetwarzać obrazy w Twojej aplikacji. Dzięki temu, że ktoś przygotował, zakodził i udostępnił gotowe rozwiązanie, ty nie musisz posiadać tej wiedzy.

Jednak zawsze może się tak życie potoczyć, że trafisz do projektu, gdzie wykorzystanie całek i macierzy będzie na porządku dziennym. Jeśli miałeś(aś) to na studiach to przypomnienie sobie „z czym to się je” zajmie Ci o wiele mniej czasu niż gdybyś musiał(a) nauczyć się tej wiedzy od zera. Tu wychodzi plus „ślizgnięcia się” po wielu różnych obszarach. Być może Ci się to nie przyda, ale jeśli już, to będziesz na wygranej pozycji.

Podobnie sprawa wygląda w przypadku przedmiotów statystycznych. Przez pierwszą połowę studiów miałem do wykucia dziesiątki wzorów i metod statystycznych. Gdy przyszedł czas na praktykę, to okazało się, że większość pakietów statystycznych implementuje gotowce, znajomość wzorów nie jest konieczna, a całość sprowadza się do podania nazwy metody i podania odpowiednich zmiennych.

Nie oznacza to jednak, że wiedza teoretyczna nie bywa przydatna. Znając wzory i mając zaplecze teoretyczne, wykorzystasz te pakiety o wiele bardziej świadomie i efektywnie. Łatwiej będzie Ci też wykryć i naprawić potencjalne błędy. Nie jest powiedziane też, że dany pakiet będzie implementował wszystkie funkcje, które potrzebujesz. Być może będzie konieczność implementacji jakiejś metody w kodzie od zera.

Aktualność wiedzy

Aktualność wiedzy na studiach bywa czasami taka jak w książkach o językach programowania, których aktualność w momencie druku bywa wątpliwa. Wiele zależy od odgórnych wytycznych, ale na wiele ma też wpływ podejscie wykładowcy. Możesz trafić na wykładowców będących gorącymi fanami Delphi lub Turbo Pascala. Tych trzeba przeboleć.

Możesz też trafić na takiego, który tłumaczy w ciekawy sposób, stawia na praktykę, a zadania każe oddawać do dedykowanego repozytorium na GitHubie, gdzie skrypt w GitHub Actions automatycznie je sprawdza. Od takich trzeba się uczyć.

Ja miałem szczęście trafiać raczej na tych drugich. Z drugiej strony rozumiem też tych pierwszych. Rozumiejąc podstawowe zagadnienia programistyczne typu zmienne, warunki, pętle, funkcje, obiekty itd. będziesz w stanie dość gładko wejść w większość popularnych języków programowania.

Nie sugerowałbym się również zawartością syllabusów dla poszczególnych przedmiotów. Nie zawsze wszystkie zagadnienia w nich opisane są realizowane na zajęciach. Czasami również nie ma fizycznie czasu, by je wszystkie zrealizować, szczególnie na studiach zaocznych. Zwróć również uwagę, że w syllabusach z założenia część materiału student ma przerabiać we własnym zakresie.

To tylko potwierdza, że studia to przede wszystkim praca własna. Czytając syllabusy, warto również zwrócić uwagę na literaturę przedmiotu. Czasami można znaleźć tam naprawdę ciekawe pozycje. Jednym z takich odkryć była u mnie książka „Pułapki myślenia. O myśleniu szybkim i wolnym” Daniela Kahnemana, na którą po raz pierwszy trafiłem, czytając syllabus jednego z przedmiotów statystycznych.

Książka - pułapki myślenia

Studia nie nauczą cię programowania

Studia nauczą Cię klepać kod i podstawowych pojęć programistycznych. Zaliczenia z przedmiotów programistycznych nie należały do szczególnie praktycznych i trudnych. Pamiętam, gdy jedno z zaliczeń polegało na przygotowaniu aplikacji, która w zależności od podanej na wyjściu liczby wydrukuje w konsoli piramidę o wskazanej wartości. Dla wartości 4 rezultat wyglądał następująco.


     *
   * * *
 * * * * *
* * * * * *

No nie jest to zbyt praktyczne zadanie. Tego typu zadania mają na celu sprawdzenie, czy potrafisz korzystać z takich konstrukcji jak pętle czy warunki, ale to zdecydowanie za mało, by stwierdzić, że umiesz programować.

Programowanie to wiele więcej niż klepanie kodu. Zarówno teoria, jak i projekty zaliczeniowe to za mało by trafić na bardziej złożone pojęcia czy problemy do rozwiązania. Studia nauczą cię wiele innych zagadnień, ale te najbardziej wartościowe skille musisz zdobyć sam.

Pewnie trafią się również przedmioty poruszające bardziej praktyczne zagadnienia np. algorytmy i struktury danych, wzorce projektowe czy testy, ale temat prawdopodobnie nie będzie wyczerpany (patrz punkt o samodzielnej nauce).

Praca dyplomowa

Pracę dyplomową możesz potraktować jak duży projekt, który trzeba przeprowadzić od A do Z. Przydadzą Ci się umiejętności samozarządzania, planowania pracy i bieżącego raportowania postępów promotorowi. Będziesz musiał(a) również wykształcić umiejętność weryfikacji informacji i ich krytycznej analizy. Słabe byłoby powoływanie się np. na prace autora mającego w swoim portfolio teksty o płaskiej Ziemi czy planecie Nibiru.

Pisanie pracy dyplomowej, mimo że wymaga formalnego języka wypowiedzi, pozwala popracować nad warsztatem pisarskim, co również pewnego dnia może Ci się przydać. Być może konieczne będziesz musiał(a) kiedyś przygotować jakiś dłuższy raport czy dokumentację. Niby pisać każdy umie, ale jak to mówią „praktyka czyni mistrza”.

Studia jako wymóg pracodawcy

Na potrzeby tego artykułu przeanalizowałem 50 wybranych ogłoszeń z ofertami pracy na jednym z największych polskich job boardów IT. Analizowane ogłoszenia dobierane były na podstawie kolejnych rekomendacji przygotowywanych przez wykorzystany serwis. Na 50 ogłoszeń informację o wymogu ukończenia studiów znalazłem w pięciu ogłoszeniach. W żadnym z ogłoszeń wymóg studiów nie widniał jako wymaganie nice to have. W trzech ogłoszeniach zostało wyraźnie wskazane, że wykształcenie wyższe wymagane jest z dziedziny związanej z Computer Science. Ogłoszenia, w których widniał wymóg posiadania wykształcenia wyższego, dotyczyły stanowisk związanych z administrowaniem systemami i analizą danych.

Studia pozwalają Ci poznać ludzi i poznać się na ludziach

Studia są jednym ze sposobów na poznanie wartościowych osób. Część osób z twojej grupy na studiach to osoby już będące w branży. Jeśli chcesz coś się od nich dowiedzieć, to nie bój się pytać. Znajomości zdobyte w trakcie studiów mogą też pomóc pracy zawodowej. Być może poznasz na nich swoich przyszłych kolegów i koleżanki z pracy a być może partnera do biznesu. Ktoś może Cię polecić w swojej firmie w trakcie rekrutacji lub może Ci dać znać, gdy się takowa otworzy.

Również wśród wykładowców możesz poznać ciekawe osoby. Wielu wykładowców i ćwiczeniowców oprócz pracy na uczelni pracuje lub pracowało w innych firmach. Warto korzystać z ich doświadczenia i pytać się o cokolwiek Ci przyjdzie do głowy. Oprócz wiedzy z zajęć często będą w stanie udzielić Ci wskazówek na inne tematy związane z Twoją karierą czy pracą w branży. Moim spostrzeżeniem jest też to, że jeśli ktoś poza wykładaniem na uczelni programuje zawodowo, to raczej w tygodniu zajęć nie prowadzi 😉

Studia to też świetna okazja, by nauczyć się pracy w grupie. Będziesz miał(a) namiastkę tego, co czeka Cię w pracy zespołowej w przyszłych projektach. Realizacja grupowych projektów pozwoli Ci zebrać nieco doświadczenia związanego z podziałem zadań oraz ich priorytetyzacją i estymacją.

Projekty grupowe pozwolą Ci również na pracę z ludźmi o różnych charakterach i stylach pracy. Takie zbieranie doświadczeń pozwoli Ci zbadać, z jakimi ludźmi i w jakim trybie pracuje Ci się najlepiej. Niektórzy będą preferowali pracę wspólną a inni asynchroniczną. Jedni będą preferowali częste zdzwonki, a inni jedną gdzie każdy przedstawia co zrobił. Być może będziesz miał(a) okazję na sprawdzenie się w sytuacji awaryjnej, gdy ktoś z zespołu nie odda swojej części lub zrobi swoją część projektu na odpierdol. To również jest wartościowa lekcja, którą zdecydowanie lepiej odbyć jeszcze na studiach.

Ze studiami wiążą się również programy wymiany studentów np. Erasmus. Oprócz możliwości rozwoju umiejętności i zdobycia wiedzy głównym atutem, jaki w nich widzę, jest możliwość poznania świata, innych kultur, a co najważniejsze polepszenie umiejętności językowych. W trakcie studiów miałem okazję poznać kilka osób nieposługujących się językiem polskim, przez co całość rozmów była prowadzona po angielsku. Dzięki temu nie tylko podszlifowałem swój angielski, ale praktycznie całkowicie pozbyłem się bariery językowej, co BARDZO ułatwia mi teraz codzienną komunikację.

Studia szansą na staż lub pierwszą pracę

Studia mogą też być świetną okazją na złapanie pierwszego doświadczenia. Pierwszym pomysłem, jaki mi przychodzi do głowy to udział w kołach naukowych lub poznanie ciekawych osób i praca nad jakimś side projectem. Nie ma takiej inicjatywy? To możesz ją zaproponować! Ludzie ze skillami organizacyjnymi są na wagę złota. Nawet jeśli nie będzie z tego kasy, to wpis do CV też zrobi robotę. Studia to również doskonała okazja do brania udziału w konkursach. Studia same w sobie również mogą stanowić wpis do CV, czasami być może jedyny. Jest to dużo lepsze niż pusta kartka.

Możesz też również poszukać projektów studenckich lub staży wakacyjnych na uczelni. Daje to nie tylko opcję na ciekawy wpis do CV, ale też niekiedy możliwość dostępu do sprzętu. Przykładowo chcąc nauczyć się czegoś więcej o programowaniu aplikacji VR, nie musisz od razu kupować gogli. Podobnie sytuacja wygląda np. z nauką podstaw elektroniki. Wiem, że zakup podstawowego zestawu do Arduino to nie jest majątek, ale szkoda by się okazało po godzinie zabawy, że to jednak nie to a zestaw miałby trafić na dno szafy.

Na uczelniach pojawiają się również oferty pracy lub stażu dla studentów wystawiane przez zewnętrzne firmy. W perspektywie podaży ofert na stanowiska juniorskie taki staż wydaje się bardzo kuszącą opcją. Niektóre firmy wręcz wymagają, by stażysta był aktywnym studentem. Gdy byłem na etapie wyboru uczelni, równolegle szukałem pierwszej pracy lub stażu. Jedna z moich aplikacji została zablokowana przez wymóg, który zakładał, że kandydat jest na co najmniej drugim semestrze studiów.

Niektóre programy studiów będą wręcz wymagały, byś zaliczył praktyki lub staż. Taki wymóg formalny może również być motywującym kopem w cztery litery.

Studia dzienne czy zaoczne

Z poprzedniego akapitu już wiesz, że jak najszybsze złapanie praktycznego doświadczenia jest bardzo istotne. Dlatego tu staję za stwierdzeniem, że więcej dają studia zaoczne. Wiem, że to jest koszt finansowy, ale moim zdaniem większy koszt można ponieść siedząc na uczelni przez 5 lat, podczas których możesz zbierać doświadczenie zawodowe. Praca na pełen etat jako junior lub stażysta i studiowane weekendowe moim zdaniem pozwoli Ci zebrać więcej doświadczenia niż praktyki lub staż połączone ze studiami dziennymi. Znalezienie stażu, gdzie będziesz musiał(a) połączyć studia dzienne z pracą może też być trudniejsze, niż w przypadku, gdy dysponujesz całym tygodniem wolnym.

Na studiach zaocznych prawdopodobnie nie znajdziesz czasu na udziały w kołach czy wymianach studenckich. Większą korzyść widzę jednak w praktycznym zdobywaniu wiedzy w pracy, a dokształcaniu się w weekendy w formie zaocznej.

Na plus studiów dziennych przemawia większy luz, czas na poznawanie ludzi z uczelni i realizowanie własnych pasji i pomysłów. W moim przypadku po odliczeniu czasu na pracę, naukę i zjazdy na uczelni czasu wolnego nie pozostawało mi zbyt wiele, co było widoczne m.in. po mniejszej liczbie publikacji na blogu. Studiując zaocznie, nie miałem też zbyt wielu okazji zasmakować „studenckiego życia”, które również może być źródłem wielu wartościowych znajomości.

Wiem, że zdania na ten temat są podzielone. Na studiach dziennych nie byłem, więc jeśli ty byłeś(aś), to chętnie poznam Twoje zdanie.

Studia kontra bootcampy i kursy

Porównywanie studiów do kursów programowania i bootcampów to trochę jak porównywanie gruszek do jabłek. Uważam, że cele studiów są nieco inne niż tych dwóch form nauki programowania. Szkoda byłoby jednak je pominąć, będąc przy temacie nauki programowania. Sam swoją naukę programowania zaczynałem od nauki podstaw z filmów na YouTube. Dla wielu osób forma video będzie najbardziej przystępna i dlatego warto zwrócić uwagę na kursy. Gdybym jednak miał uczyć się z kursów, zwróciłbym uwagę na dwa czynniki. Pierwszy to autor i program szkolenia.

Dałbym sobie spokój z kursami anonimowych autorów na Udemy z promocji -90%. Miałem okazję przerobić kilka takich kursów i moim zdaniem był to zmarnowany czas. Zdecydowanie lepiej postawić na wiedzę od prawdziwych ekspertów, gdzie program kursu porusza praktyczne zagadnienia, a nie tylko jest dokumentacją danej technologii czy języka w formie video. Drugim czynnikiem, na który warto zwrócić uwagę to możliwość kontaktu z trenerem i innymi kursantami. Kluczowy aspekt, który najbardziej napędził mój rozwój to praca z innymi ludźmi. Konsultując swoje wątpliwości, projekty i pytania z innymi kursantami i autorem kursu będziesz w stanie nauczyć się o wiele więcej niż z samego oglądania filmów i robienia zadań.

Tu z kolei ujawnia się zaleta bootcampów/szkół programowania. Zajęcia na żywo (lub online) oraz dostęp do trenerów i innych kursantów jest moim zdaniem największą zaletą takiej formy nauki. Decydując się na tę formę nauki, warto poświęcić trochę czasu na wybór odpowiedniej szkoły. Aby uniwersytet mógł się nim stać, musi stać za nim renoma, kadra i kwalifikacje. Założenie szkoły programowania jest o wiele prostsze.

Warto zastanowić się też, który sposób nauki da Ci więcej. Tak jak pisałem w akapicie „studia to nie szkoła” studia mają nakierować Cię na odpowiednie tory, a nie wtłoczyć wiedzę do głowy. Do tego dostarczają szeroki background teoretyczny i wiedzę spoza głównej tematyki studiów. Bootcampy promowane są raczej jako rozwiązania mające przygotować Cię do szybkiego podjęcia pierwszej pracy i celują w naukę pracy z konkretnymi językami i technologiami. Czy tak faktycznie jest ciężko mi stwierdzić, oceniam jedynie przekaz marketingowy.

Niezależnie od wyboru sposobu nauki, bez ogromu samodzielnej pracy włożonej po zajęciach/po godzinach ani najlepsze studia, ani najlepszy kurs czy szkoła programowania nie zrobią z człowieka programisty. Zrobią jedynie człowieka nieumiejącego programować z papierkiem potwierdzającym umiejętność programowania.

Zostawiam tu również otwarte pytanie skierowane szczególnie do osób zajmujących się rekrutacją, czy to, w jaki sposób kandydat zdobywa wiedzę i kwalifikacje ma znaczenie i dlaczego?

Studia jako inwestycja?

Studia zaoczne lub na prywatnej uczelni będą wiązały się z niemałymi kosztami. Pozostaje sobie odpowiedzieć na pytanie, czy potencjalnie lepsze możliwości awansu na wyższe stanowiska oraz korzyści wynikające z samego studiowania są warte pieniędzy, które trzeba będzie zapłacić. Wielu firmom będzie zależało wyłącznie na Twoich umiejętnościach i będziesz dla nich tak samo wartościowy z dyplomem czy bez. Mam tu na myśli zarówno ekspertów, gdzie brak dyplomu często będzie nieistotny, jak i programisty wannabe, gdzie fakt posiadania dyplomu niewiele może dać, bo dla pracodawcy będą liczyły się umiejętności, a nie papier. Jeśli ktoś bez studiów wypadnie lepiej od Ciebie, to fakt posiadania dyplomu zapewne niewiele zmieni. Ciekawa sytuacja może zaistnieć, gdy będzie kilka dobrych kandydatów, ale tylko jeden ukończył studia. Czy będzie miało to znaczenie — być może. Jak okazało się w trakcie mojego researchu, są też oferty na rynku, gdzie bez wyższego wykształcenia ani rusz.

Osobiście studia traktuję jako inwestycję, która być może kiedyś się zwróci. Jak dotąd nikt mnie o dyplom nie zapytał, ale w przyszłości być może zapyta. Być może kiedyś pojawi się okazja, gdzie wymogiem będzie wyższe wykształcenie, a być może będzie tylu programistów na rynku, że fakt posiadania dyplomu zacznie mieć znaczenie. W każdym razie „dyplom w szufladzie leży, jeść nie woła” 😉

Płacąc za studia zaoczne, byłem też całkiem zdeterminowany, by coś z tej edukacji wynieść, niż gdybym studiował za darmo. Podobnie można by potraktować szkoły programowania. Płacąc niemałe pieniądze, prawdopodobnie łatwiej będzie poświęcić tę dodatkową godzinę czy dwie na przyswojenie materiału z zajęć.

Studia a stres

Studia niestety były w moim życiu źródłem ogromnego stresu. Już od samego wejścia na pierwsze zajęcia o niektórych wykładowcach krążyły niestworzone historie. Z moich obserwacji wynika, że na wielu uczelniach i kierunkach trafia się wykładowca, którego zadaniem jest uwalenie jak największej liczby studentów. Nie inaczej było w moim przypadku. Przez 5 lat studiów takich wykładowców było zaledwie kilku, ale było to wystarczające do tego, by weekend zjazdowy powodował u mnie niepokój i ból brzucha magicznie puszczający po wyjściu z uczelni. Samo pisanie egzaminów u takowych również odbywało się czasami w nieprzyjemnej atmosferze polegającej na tym, że egzaminator zaglądał Ci co chwilę przez ramię czy czasami nie ściągasz. Zadania u takich wykładowców zwykle polegały na wykuciu podręcznika lub notatek wykładowcy na pamięć (co do przecinka 😉).

Ilość materiału konieczna do przyswojenia przed egzaminami również nie nastrajała pozytywnie. Pamiętam, gdy przygotowywałem notatki na jeden z egzaminów, gdzie po skróceniu notatek z wykładów do tylko tych materiałów oznaczonych przez wykładowcę jako najważniejsze, materiał do nauki z około 100 stron skrócił się do około 60. Dodam, że był to egzamin polegający na typowej pamięciówce, a wykładowca był wyjątkowo skrupulatny przy sprawdzaniu. Niezbyt fajne doświadczenie, nie polecam. O straconych godzinach na naukę na ten egzamin nawet nie piszę. Czy wspomniałem, że w tym semestrze miałem jeszcze 7 innych przedmiotów do zaliczenia?

Po więcej treści o tym temacie odsyłam na kanał YouTube Krzysztofa M. Maja, który ma znacznie więcej do powiedzenia na temat problemów polskiej edukacji niż ja. Po przesłuchaniu podlinkowanego materiału dochodzę do wniosku, że nie miałem wcale tak źle.

Ktoś mógłby również wskazać, że praca również jest źródłem stresu. Całkowicie się z tym zgadzam, jednak nie jest to temat, który chciałbym zgłębiać w tym artykule. Zwłaszcza że moja obecna praca nie należy do szczególnie stresujących i moja opinia tu raczej niewiele wniesie.

Nie chcę też brzmieć, że tacy wykładowcy to norma. Byłoby to co najmniej krzywdzące stwierdzenie. W trakcie studiów spotkałem wielu wykładowców, którzy bardzo dobrze wykonują swoją pracę i miło wspominam czas spędzony na prowadzonych przez nich zajęciach. Wielu z nich to pasjonaci, potrafią uczyć i co najważniejsze mają ludzkie podejście do studentów.

To w końcu studiować czy nie?

Gdybym miał odpowiedzieć sobie na takie pytanie samemu sobie zaraz po maturze, to odpowiedziałbym, że jak tylko możesz sobie pozwolić na studia, to myślę, że warto. Nawet jeśli trafią Ci się pozornie i niepozornie niepotrzebne materiały, to z pustą głową z uczelni nie wyjdziesz. Do tego znajomości, dostęp do firm, status studenta też na pewno nie utrudnią startu twojej kariery. To, że w branży IT są możliwe inne drogi rozwoju niż formalna edukacja (inaczej niż choćby u lekarzy, prawników, psychologów itp.) nie znaczy, że studia są bezużyteczne. Gdybym miał podjąć tę samą decyzję drugi raz, to wybrałbym te same studia na tej samej uczelni. Ciekaw jestem, jak będę postrzegał ten temat na przykład za 10 lat. Być może powstanie wtedy drugi wpis podsumowujący 😉

Jeśli jednak jesteś już na takim etapie życia, że masz dom, rodzinę, zobowiązania i prywatne życie, to przemyślałbym to raz, dwa, ewentualnie dziesięć. Ja bym się w takiej sytuacji raczej nie zdecydował. Jest zdecydowanie więcej ścieżek rozwoju, które nie wymagają aż takiego zaangażowania. Wyjątkiem byłaby sytuacja, gdy byłoby to konieczne do ruszenia dalej mojej kariery.

Szczególnie gorąco zachęcam do sprawdzenia kilku perspektyw na studia (nie tylko w IT), które dodałem do materiałów dodatkowych.

Źródła i materiały dodatkowe

Edit 16.12.2023:
Kieruję serdeczne podziękowania dla Jakuba T. Jankiewicza za wskazanie błędów w artykule.

Dominik Szczepaniak

Zawodowo Senior Software Engineer w CKSource. Prywatnie bloger, fan włoskiej kuchni, miłośnik jazdy na rowerze i treningu siłowego.

Inne wpisy, które mogą Cię zainteresować

Zapisz się na mailing i odbierz e-booka

Zapisując się na mój mailing, otrzymasz darmowy egzemplarz e-booka 106 Pytań Rekrutacyjnych Junior JavaScript Developer! Będziesz też otrzymywać wartościowe treści i powiadomienia o nowych wpisach na skrzynkę e-mail.

Subscribe
Powiadom o
guest

4 komentarzy
oceniany
najnowszy najstarszy
Inline Feedbacks
View all comments
Sławek
Sławek
4 miesięcy temu

Jakiś czas temu też spisałem swoje przemyślenia na ten temat https://slawciu.github.io/dajsiepoznac/2017/03/09/czy-programista-potrzebuje-studiow/

kuba
4 miesięcy temu

Studiowałeś informatykę i ekonometrie to nie jest specjalizacja informatyczna. Np. ja na informatyce na Politechnice Świętokrzyskiej też zaocznie, specjalizacja systemy informacyjne. Miałem głównie programowanie tak 80%, ale matematyka też była. Ty musiałeś zrobić projekt w Javie i sam się go nauczyć ja miałem cały przedmiot kilka semestrów na Javę. I masę projektów programistycznych. Każdy projekt to było wyzwanie. Miałem też bazy danych.

Więc moim zdaniem nie ma co porównywać studiów informatycznych z informatycznymi i ekometrią.

Poza tym zgadzam się z większością tekstu.