CODEBILITY

Blog o tematyce IT

Czy studia są potrzebne dla programisty?

Od zera do developera #1 - studia (nie)potrzebne

Od zera do developera – Wstęp

Tym artykułem chciałbym rozpocząć serię zatytułowaną „od zera do developera”. Jaką treść będzie można tu znaleźć? Przede wszystkim moje przemyślenia, doświadczenia i wnioski odnośnie drogi przebytej przez całą edukację, studia a teraz karierę zawodową. Chciałbym też przekazać subiektywną opinię na temat ważnych decyzji, przed którymi stoją młodzi adepci sztuki programowania, którzy chcą wejść w ten świat z przytupem. Ta seria artykułów to kubeł zimnej wody dla „kandydatów na programistę”, którzy uważają, że dużo wiedzą i brak im pokory. Nie będzie podlizywania się, motywowania w stylu słynnej pani uprawiającej fitness. Będzie konkretnie, będzie krytycznie, z podejściem realisty.

Najważniejsze moje przemyślenie odnośnie kariery programisty to takie, że

im dłużej człowiek programuje, tym bardziej zdaje sobie sprawę z tego, jak mało wie.

Chciałbym, żeby ten mój wniosek był myślą przewodnią tej serii.

Wyścig o uczelnię

W szkole średniej zaobserwowałem pewną tendencję do parcia na wyniki matury. Każdy chciał dostać się na jak najlepszą uczelnię, żeby mieć jak najlepsze perspektywy. Od czasu, kiedy studiowałem minęło troszkę czasu, lecz podejrzewam, że trend ten pozostał. Czy w przypadku studiów ze specjalnością zawierającą programowanie ma to jakieś znaczenie? Pewnie tak, ale niewielkie. W Internecie krążą anegdoty, że pewne sławne osoby ze świata IT, zanim osiągnęły sukces, rzuciły studia. Coś w tym musi być, choć rzucenie studiów nie daje 100% pewności na sukces w życiu 😛 .

Co dają nam studia?

No właśnie… co dają nam studia? Na pewno papierek inżyniera, magistra czy doktora. Taki papierek często jest przepustką do pracy w firmie, o której marzymy. Co poza tym? Na pewno podstawową wiedzę na temat informatyki, nakreślenie jakichś ram, wdrożenie w świat programowania. Studia pozwalają nam też zawrzeć zarówno te ciekawe znajomości, jak i te mniej interesujące. W każdej z nich musimy upatrywać jakiejś szansy. A może kiedyś kolega z grupy przypomni sobie o nas kiedy będzie przeprowadzał rekrutację do bardzo ciekawego projektu. Studia są motywacją do poszerzania wiedzy, gdyż wymagają od studenta zaliczeń, a co za tym idzie choć troszkę zaangażowania. Nieważne jaka uczelnia by to była, jej program w większości wypadków jest niedostosowany do oczekiwań rynku i dlatego najważniejsze jest to, żeby samemu zdobywać wiedzę i nie czekać aż ktoś nam coś pod nos podstawi. Często dostaje się stypendia, więc są też przedłużeniem “bezpłatnego” życia. Nie musimy się martwić o składki ZUS. Zapytacie: no ale co z tym ZUSem? Ano to, że jeśli pracujesz w czasie studiów pracodawca nie musi odprowadzać za Ciebie składek. Jest to dla niego naprawdę duże odciążenie i chętniej zatrudni Cię jeśli jesteś studentem.

Studia studiami, ale…

Studia nie zawsze dają studentowi podstawową wiedzę na temat programowania, nie zawsze też przystosowują do tego czego oczekują pracodawcy. Przypominam sobie moje zajęcia z nauki SQL. Podstawy, instrukcje select, insert, update. Pani profesor, która prowadziła laboratoria miała wypracowane zapytania, które były “jedyne i słuszne”. Żadne odstępstwo nie było tolerowane. Nieważne było to, że student napisał zapytanie, które było krótsze, wydajniejsze i łatwiejsze do odczytania. Nie zgadzało się z tym co na kartce? Niezaliczone. I takie sytuacje występowały też u innych prowadzących. Często spotykam się z komentarzami, że na uczelni uczą ci, którzy albo lubią spokojną pracę, albo nie mają predyspozycji do nauczania, brak im wiedzy aby pracować w firmach informatycznych i dlatego decydują się na studia doktoranckie. Jest to krzywdząca opinia, zdecydowanie.

Takie sytuacje niestety mają miejsce, a dzieje się tak ponieważ duża część prowadzących musi uczyć czegoś, na czym się nie znają (skończył grafikę, a musi uczyć baz danych), dlatego poziom jest jaki jest. Nie oczekuj więc, że takie osoby przekażą Ci niezbędną wiedzę z danego zakresu do pracy jako programista. Na szczęście przeważają ci prowadzący, którzy wskażą Ci drogę i nauczą podstaw. Jednak same podstawy to za mało. Zrób coś więcej, zacznij działać na własną rękę!

Praca a studia

Całe szczęście, że studia wymagają od studenta zaliczenia praktyk zawodowych. Jest to świetna okazja, aby zrobić pierwszy krok ku pracy jako programista. Wiele firm bardziej przychylnie patrzy na praktykanta, który chce zdobyć doświadczenie, chce podpatrzeć jak to wszystko działa, niż na żółtodzioba, który bez znajomości podstaw programowania zgłasza się na stanowisko developera, najlepiej na umowę o pracę za #milionymonet. Większość firm nie oferuje płatnych praktyk (tak, tak… prywaciarz złodziej), ale wystarczy trochę poszukać, trochę cierpliwości i może znajdzie się taka oferta. Niemniej nie zmienia to faktu, że z praktyk można dużo wynieść (więcej niż kilka kabli RJ45 :razz:), a poza tym jest duża szansa, że jeśli praktykant się sprawdzi, to zostanie mu zaproponowana oferta dalszej współpracy, już za konkretne pieniądze. Każda osoba, z którą współpracowałem i jednocześnie uczęszczała na studia bardzo sobie chwaliła taką strategię rozwoju. Sam tak działałem i nie żałuję. Żałuję tylko jednego, tego że na praktyki do działu programistów poszedłem o rok za późno.

Praktyki? Proste!

No nie do końca. Chyba, że mówimy o firmie Januszex, która przyjmie każdego, byle za darmo naprawiał błędy w spaghetti code, to wtedy tak, jest to proste. Jednak jeśli praktykant oczekuje, że się czegoś nauczy, powinien rozejrzeć się za firmą z renomą, z doświadczonymi developerami, ciekawymi projektami. Aczkolwiek dostanie się tam na praktyki wcale nie musi być drogą usłaną różami. Duże, profesjonalne firmy zapytań o praktyki i staże dostają masę. Trzeba robić selekcję. Ograniczeniem jest wiele czynników, najczęściej to:

  • mała lub nawet brak przestrzeni biurowej
  • duże obłożenie projektowe pracowników, a co za tym idzie brak “opiekunów” dla praktykantów
  • kwalifikacje kandydatów

Niestety przesiew musi być. Z masy CV wybiera się zazwyczaj kilka, dlatego warto spędzić trochę czasu nad przygotowaniem swojej kandydatury.

No ale jak? Przecież nie będą mi płacić, więc po co to wszystko?

Ano tak! Jeśli praktyki w takiej firmie mają dać Ci dużo doświadczenia i wiedzy to warto! Na pewno zaprocentuje to w przyszłości. Łatwiej i szybciej przejdziesz drogę od zera do developera.

Coś o tym wiem, przeprowadziłem niejedną taką rozmowę, dużo mnie nauczyły.

Więc co mam robić?

Po pierwsze: poświęć chwilę czasu na napisanie CV, uwzględnij to, co istotne. Jeśli startujesz na praktyki jako programista, nie wpisuj informacji na temat ukończenia kursu gotowania w kole gospodyń wiejskich w swojej rodzinnej miejscowości. Rekrutera to nie obchodzi, chyba, że masz na praktykach gotować pracownikom, wtedy wpisz (ale z dala od takiej firmy!!!).

Po drugie: pokaż, że coś umiesz. Pokaż, że znasz chociaż podstawy. Jeśli nie masz się czym pochwalić, to załóż repozytorium na github, stwórz kilka aplikacji (albo jedną konkretną). Broń Boże nie pokazuj banalnych projektów, nie pokazuj czegoś zerżniętego z tutoriali z Internetu bądź książek. TAK, TAK!!! Programiści w firmach też oglądają tutoriale i też czytają książki :razz:. Fajnie jest się nie skompromitować, a nie ukrywam, że spotkałem się z kandydatem, który pokazał mi przepisany tutorial jako jego własną aplikację. Dobrze się domyślasz… “Skontaktujemy się z tobą…”. Dobrym pomysłem jest aplikacja w nowych technologiach, połączona z jakąś bazą danych, użycie ciekawych bibliotek, przestrzeganie zasady SOLID, KISS, DRY, YAGNI. Działaj!

Po trzecie: umów się na rozmowę i przyjdź z oczekiwaniami. Zadawaj pytania (możesz je sobie przygotować wcześniej). Wyraź zainteresowanie, ambicje. Miej wiedzę teoretyczną. Przygotuj się jak na rozmowę kwalifikacyjną. Pytania jakie mogą padać na takich rozmowach postaram  się zawrzeć w przyszłości w innej serii artykułów 🙂

Wykazując szacunek do firmy, rekrutera i praktyk, zyskujesz bardzo duży plus, który będzie miał niemałe znaczenie w momencie pierwszych dni praktyk. Pokazując, że jesteś przygotowany i odpowiedzialny robisz duży krok ku pozostaniu w tej firmie na dłużej, na długo przed rozpoczęciem praktyk.

Ale ja nie studiuję!

W czym problem? Też możesz zostać programistą. Internet daje nieograniczone możliwości w tym temacie. Jest pełno tutoriali, szkoleń, książek, które mogą pomóc Ci wejść na wyższy level. Popularne są też bootcampy, choć nie jest to najtańsza forma nauki. Grunt to się nie poddawać i nie tracić motywacji. Sam znam kilka osób, którzy nie potrzebowali studiów do tego, aby dobrze programować. Wystarczy spędzić ok. 3 miesiące na nauce, aby poznać podstawy. Zgłoś się do firmy, która pomoże Ci w rozwoju, reszty nauczysz się tam.

 

To tyle w tym temacie. Mam nadzieję, że ten wpis Ci się spodobał i że zostaniesz ze mną na dłużej. Jeśli tak, to podaj go dalej lub zostaw feedback. To dla mnie bardzo ważne, tym bardziej na początku, kiedy ciężko dotrzeć do dużej liczby odbiorców. Pozdrawiam, cześć!