Bootcamp jak nauka jazdy. Po kursie nie zostaniesz kierowcą rajdowym
Nauka podstaw programowania to ciężki okres w życiu początkującego deva, który przez cały czas jest niepewny, co do swojej przyszłości. I choć autorzy różnego rodzaju kursów przekonują go, że szybko znajdzie pracę — rzadko kiedy tak się dzieje. Dlaczego? Tego dowiecie się z rozmowy z Maciejem Puchała, Head of Sales w Right Information, który CV od kandydatów po bootcampach odkłada na bok.
W ciągu ostatnich miesięcy wiele razy słyszałem o problemach juniorów szukających pracy. Narzekali oni na to, że nikt nie chce dać im szansy na nabranie doświadczenia, bo mało która firma ma czas na edukację pracownika. Postanowiłem spojrzeć na problem z drugiej strony, pracodawcy, by dowiedzieć się, dlaczego firmy niechętnie zatrudniają początkujących devów — szczególnie tych po bootcampach.
Z tej bardzo ciekawej rozmowy dowiecie się, czego oczekują pracodawcy i co może sprawić, że jednak zaakceptują naszą kandydaturę.
Spis treści
Na początek powiedzmy, dlaczego rozmawiamy właśnie o rekrutacji początkujących programistów, którzy skończyli bootcampy. Right Information jest software house’em, jak często trafiają do Was CV od takich osób?
Zauważyłem ostatnio, że około 10-15% kandydatów, którzy się do nas zgłaszają, ukończyło różnego rodzaju bootcampy. I muszę powiedzieć, że zaczęliśmy takie CV odstawiać na bok do głębszej analizy, choć wcześniej były dla nas bardzo ciekawe. Niewątpliwie spora liczba godzin, jakie poświęca się studentom oraz obszerny program nauczania to zalety takich bootcampów. Często jest jednak tak, że trafiają na nie osoby, które chcą się przebranżowić i nie rozumieją, że w IT pracuje się trochę inaczej.
Inaczej, czyli jak?
Już po rozmowach telefonicznych z kandydatami wyczuwamy, że mają nieco inne podejście od tego tradycyjnego. Mam wrażenie, że pójście na bootcamp traktują jako łatwą ścieżkę do tego, aby zostać programistą, jednak nie rozumieją, że nie zdarzy się to w 3 miesiące czy nawet w pół roku, wydaje im się, że to wystarczy i nie muszą robić już nic więcej. Podczas tzw. screeningu, czyli rozmowy telefonicznej, pytaliśmy, czy oprócz nauki w szkole programowania robili jakieś projekty, na własną rękę podejmowali różne wyzwania. W ponad 90% przypadków odpowiedź była negatywna, co więcej dziwili się, że projekty z bootcampu nie wystarczą.
Myślisz, że to ich podejście wynika z tradycyjnego systemu nauczania: jeśli chcesz być piekarzem, idź do szkoły, która nauczy Ciebie tego zawodu? Twoim zdaniem ich przekonanie to wina bootcampów?
Bootcampy dają fundament jeśli zaczynamy, lub strukturyzują wiedzę, jeśli jest to kolejny krok w początkowym rozwoju programisty. Jeśli chciałbym dziś zostać piekarzem, to pewnie po pracy sam szukałbym ciekawych smaków, próbował różnych metod pieczenia. To trochę jak ze szkołami z nauką jazdy. Po kursie nie zostaniemy kierowcą rajdowym, tylko poznamy podstawy poruszania się pojazdem po mieście. Trzeba spędzić sporo czasu, żeby zrozumieć, czym jest programowanie i nauczyć się sposobu myślenia, który nie jest oczywisty.
Pochyliłbym się jeszcze nad etapem wyboru metody nauki, dlatego proponuję stworzyć postać na potrzeby wywiadu. Niech będzie to licealista, który usłyszał, że programowanie jest fajne i dużo można zarobić. Staje jednak przed wyborem: studia czy bootcamp. Jakie zalety i wady mają te sposoby nauki?
Takiej osobie poleciłbym studia informatyczne, na które trzeba poświęcić kilka lat życia. Ja bym pochylił się nad trzema przykładami: absolwenta politechniki, absolwenta bootcampu i samouka. Wśród nich największą wiedzę na pewno ma absolwent politechniki, ale i tak pracodawcy zwrócą uwagę na podejście. Jeśli ktoś skończy studia z dobrymi wynikami, ale nie będzie robić nic poza tym, czyli przygotuje projekty tylko, by je zaliczyć, raczej nie zostanie dobrym programistą. Podsumowując, wybrałbym politechnikę, ale z zaznaczeniem, że sam dyplom nie spowoduje niczego.
Zastanowiło mnie słowo „podejście”, którego użyłeś kilka razy w odpowiedzi na poprzednie pytania. Jak Twoim zdaniem powinno wyglądać podejście początkującego developera?
Nie chodzi tylko o developera, ale w ogóle o człowieka. Jeżeli chce się znaleźć pracę w nowej branży (mówię tutaj o częstym przypadku, jakim jest przebranżawianie się za pomocą bootcampów), to dla mnie normalne byłoby to, że poświęcę czas na samodzielną naukę. Nie tylko odbędę darmowe kursy, czy wezmę udział w bootcampie, ale i samemu zrobię coś trudnego, by sprawdzić swoje umiejętności.
Nie rozumiem. Po to chodzę na bootcamp, żebym nie musiał uczyć się samemu – mogą pomyśleć początkujący.
W programowaniu potrzebna jest pasja. Znowu posłużę się porównaniem: jeśli chciałbym zostać piłkarzem, to dzień w dzień łoiłbym w piłkę. To brzmi fajnie, ale zaangażowanie wymaga pasji, tego, że coś Cię kręci i sprawia Ci przyjemność. Tak samo jest z programistami. Jeśli chcesz nim zostać tylko dlatego, że zarabia się fajne pieniądze, szybko Cię to znudzi, szkoda na to Twojego czasu.
Mam wrażenie, że cały czas rozmawiamy o jakimś idealnym przykładzie developera, a przecież są programiści rzemieślnicy. Nie chcę powiedzieć, że bez talentu, ale tacy, którzy nigdy nie zostaną seniorami, bo nie mają takich ambicji.
Masz rację, podczas rekrutacji nigdy nie oczekujemy, że ktoś wskaże nam, kim będzie za 5 lat, ale oczekujemy, żeby powiedział, co chce ze sobą zrobić w ciągu najbliższego pół roku. Sześć miesięcy szybko mija, ale początkujący powinien mieć plan na swój rozwój, wiedzieć, czego chce się nauczyć. W software house’ach czy innych firmach jest masa przestrzeni do tego, by się uczyć. Są staże, stanowiska juniorskie itd., ale znowu wracamy do podejścia. Jeśli ktoś myśli, że przyjdzie poklepać w klawiaturę, bez zrozumienia, bez zainteresowania tym, co robi i tym, co może zrobić, będzie miał trudności w utrzymaniu się w danej firmie, lub w ogóle nie zostanie w niej zatrudniony.
Mógłbyś powiedzieć o oczekiwaniach wobec początkujących developerów, a rzeczywistości? Co chcielibyście od takiego kandydata, a na jakie osoby zazwyczaj napotykacie?
Nie oczekujemy, że ktoś super odpowie na wszystkie nasze pytania i pokaże nam dużą, działającą aplikację swojego autorstwa. Chcemy, żeby potrafił odpowiedzieć na pytanie: co w ostatnim czasie zrobiłeś, żeby powiększyć swoje umiejętności. Super by było, gdyby odpowiedział: „Ostatnie dziesięć tygodni spędziłem nad swoją aplikacją, która potrafi zrobić x, y, z i można ją znaleźć tutaj. Przez tydzień pałowałem się z funkcjonalnością edycji tabelki i nie mogłem jej zrobić, bo okazało się, że request do serwera wysyłany jest na zły URL”. My wtedy patrzymy do kodu i zazwyczaj mówimy — że kod jest taki sobie, ale gość wie, że programowanie to nie klepanie kodu, a rozwiązywanie problemów takie jakie już przerobił. Wtedy wiemy, że jak napotka ścianę — to się nie podda przy pierwszej okazji, tylko weźmie młot i zacznie walić.
Rzeczywistość jest taka, że odpowiadają: „Zrobiłem projekt na studiach na zaliczenie, 2 lata temu”. Jeśli można go zobaczyć, to włączamy i widzimy, że są tam dwa przyciski i jeden nie działa. W kandydatach szukamy potencjału, zaangażowania we własny rozwój i nie mówię tu o jakichś wodotryskach w aplikacji, tylko o zwyczajnej aktualizacji wiedzy — a jeśli ktoś pokazuje ostatni projekt z przed roku czy dwóch, zrobiony na kolanie na zaliczenie — to co mamy sobie pomyśleć?
Mówiłeś, że ważne jest to zaangażowanie, coś ponad to, czego nauczył się na bootcampie. Potrafiłbyś określić listę umiejętności, które powinien posiadać kandydat na juniora?
To nie jest takie łatwe zadanie. Mamy takie powiedzenie „Hire for attitude, train for skills”. Nie możemy patrzeć w przypadku juniora na umiejętności, bo byśmy nikogo nigdy nie zatrudnili, gdyż juniorzy nie potrafią zbyt wiele. Najważniejsze jest odpowiednie podejście, zaangażowanie i oczywiście trochę umiejętności, bo taki kandydat do naszej firmy musi już coś potrafić, być zaangażowany, czynić postępy, a w nim musimy dostrzec pasję.
Podejście podejściem, ale jest coś jeszcze ważnego — umiejętności.
Jeżeli chodzi o umiejętności – musimy zobaczyć, że taka osoba rozumie podstawowe zagadnienia związane z programowaniem. Pętle, połączenia z bazą danych, proste zapytania do bazy danych, elementy frontowe, napisanie aplikacji. Przerobienie problemów, z którymi na co dzień się spotyka spowoduje, że ta osoba będzie z nami rozmawiać i będzie wiedziała, dlaczego my takie pytania jej zadajemy. Wymagamy więc podstawowej wiedzy, którą będziemy mogli rozszerzać i pomagać danej osobie rozwijać się, ale chcemy też zaangażowania, poświęcenia i cech, które będą przydatne w pracy w zespole.
Co firma musi poświęcić, poza finansami, żeby zatrudnić, a potem przystosować do pracy kandydata?
Nie mamy darmowych praktyk ani staży – każdy z nas musi za coś żyć. Jeżeli ktoś przychodzi nieważne, czy na trzy godziny, czy na osiem godzin – wnosi jakąś wartość, musi więc otrzymać za to wynagrodzenie. Zdajemy sobie sprawę, że kandydat, który dołączy do naszej firmy, przez pierwsze trzy miesiące niewiele wnosi. Obcuje z programami, technologiami, nie do końca znany jest mu język, w którym się ze sobą komunikujemy. Jak już coś robi, to bardzo często po raz pierwszy i trzeba go kontrolować.
Wszystkiego uczy się pod naszymi skrzydłami, widzi po raz pierwszy. Ale spokojnie – my to wiemy i dajemy mu na to czas. Inwestujemy w niego swój czas, wdrażamy go w ten świat, by z czasem ta inwestycja zaczęła nam się zwracać w postaci dobrze wykonywanej przez niego pracy.
Zatrudnianie juniora wiąże się pewnie z większym ryzykiem, niż zatrudniając bardziej doświadczonego deva. Jakie są obawy pracodawcy?
Istnieje ryzyko, że nauczymy kogoś, a on się zwolni i pójdzie do innej pracy. Jesteśmy jednak optymistami, dajemy możliwość popełnienia błędów, wiemy, że to konieczne, aby pracownik nauczył się dobrze wykonywać swoje obowiązki. To bardzo ważne – by dana osoba nauczyła się zrozumienia, że może popełniać błędy, bo każdy je popełnia. Każdy z nas się kiedyś uczył i z tego samego założenia wychodzimy również w przypadku kandydatów na programistów u nas.
Co najbardziej zaskakuje nowych pracowników po rozpoczęciu kariery zawodowej?
Na pewno wielu programistów, którzy zaczynają dopiero swoją karierę, dochodzi do wniosku, że praca programisty jest… nudna. Tak, programowanie wiąże się z bardzo długim siedzeniem przed komputerem i wytężoną pracą. Niektórzy wizualizują sobie to w ten sposób – ładne biuro, mnóstwo karteczek na ścianach, luźna atmosfera i super kasa co miesiąc na koncie. Programista musi dużo siedzieć przy komputerze, czas wolny również poświęcać na pracę (swój rozwój to też ciężka praca). To dla wielu osób jest zaskoczeniem, że rzeczywistość jest trudniejsza, niż by się mogło wydawać. Przedstawiciel handlowy, który przez cały czas miał kontakt z klientem i chce się przebranżowić, zostać programistą, może mieć trudno pracować w ten sposób.
Czy firmy mogą sobie pozwolić na to, żeby nie szukać ludzi po bootcampach?
Myślę, że tak. Myślę, że kandydatów do pracy po bootcampach jest około 20%, czyli to jedna piąta wszystkich. Wbrew pozorom mamy naprawdę komfortową sytuację, gdyż możemy wybierać, kogo chcemy zatrudnić. Nie chcemy zatrudniać kilkunastu osób, żeby za trzy miesiące przekonać się czy trzy z nich zostaną i będą się nadawać. Wolimy więc poświęcić więcej czasu na rekrutację, wybrać sobie takie osoby, które faktycznie rokują na przyszłość.
Często uczestnicy bootcampów mówią, że poszli na kurs dla papieru, który ma pokazać potencjalnemu pracodawcy, że robili coś poza szkołą. Czy dla was sam papier ma dużą wartość?
Sam papier nie ma dla nas żadnego znaczenia. Liczą się umiejętności i to wszystko, o czym już dużo przed chwilą powiedzieliśmy. Jeżeli ktoś nie skończył gimnazjum, ale jest świetnym programistą, to znajdzie u nas miejsce. Skończenie bootcampu z wyróżnieniem nie zainteresuje mnie, bo dwa pytania na rozmowie są w stanie daną osobę zweryfikować. Nie łudziłbym się na miejscu absolwentów, że będą lepiej traktowani, bo CV odkładamy na bok i w inny sposób, m.in. za pomocą rozmowy, weryfikujemy na jakim poziomie jest dana osoba. Tak jak mówiłem na początku — zwracamy większą uwagę na takie osoby, bo musimy zweryfikować także oczekiwania co do najbliższej przyszłości.
Na koniec, powiedz, co doradziłbyś wanna be developerom? Którą ścieżkę wybrać? Jak znaleźć wymarzoną pracę?
Zainwestujcie w czas, który musi minąć. Nie przeliczajcie go na pieniądze – jak wydam tyle i tyle to będę już programistą. Nie! Czas musi minąć – jedna kobieta urodzi dziecko w dziewięć miesięcy, ale dziewięć kobiet nie urodzi jednego dziecka w miesiąc. Potrzeba czasu, aby się wszystkiego nauczyć, aby wszystko przyswoić. Nieważne ile masz pieniędzy, nawet jak wydasz 200 tysięcy złotych na kurs w przeciągu 3 miesięcy nie zdobędziesz doświadczenia, bo na to potrzebny jest czas. Jak czytam komentarze, w których juniorzy po bootcampach oburzają się, że firma nie chce ich zatrudnić, bo nic jeszcze nie potrafi, a gdzie ma się uczyć, to na usta ciśnie się prosta odpowiedź: Ucz się w domu! Myślę, że żeby zostać programistą i zacząć zarabiać na stanowisku juniora, trzeba sumiennie i codziennie pracować od pół roku do roku.
Zadam prostsze pytanie: lepiej wydać 10 tysięcy na bootcamp czy siedzieć w domu i się uczyć?
I jedno, i drugie, o ile oczywiście kandydat ma na to pieniądze. Połączenie jednego i drugiego może przynieść efekty. Samo siedzenie w domu nic nie da. Sam bootcamp również nie pomoże zostać programistą.
Co musi mieć w ofercie bootcamp, żeby był dobry i pomógł przygotować do zawodu programisty?
Na pewno szukajmy takiego bootcampu, w którym możemy z kimś porozmawiać. Wydaje mi się jednak, że najlepiej byłoby samemu posiedzieć nad niektórymi zagadnieniami wcześniej, żeby do kursu podejść z jakąś wiedzą. Myślę, że wtedy pieniądze będą lepiej zainwestowane. Warto też przygotować się do zadawania pytań. Nie tylko do słuchania, ale do rozmawiania o rzeczach, o których ma się pewną wiedzę.
Porównując dwa bootcampy zwróciłbym uwagę na to, co jeden ma w ofercie, a czego nie ma ten drugi. Jeżeli jeden trwa ileś godzin, a drugi jest dwa razy krótszy, to znaczy, że pewnego zakresu nie obejmuje. Dlaczego? Może coś jest pominięte lub zaniedbane? Nie wiadomo nigdy, na jaką kadrę nauczycieli trafimy. Czasami jest tak, że wykładają super programiści, którzy służą pomocą i swoim doświadczeniem. Nawet po kursie pozwalają do siebie dzwonić i pytać o pomoc w rozwiązaniu problemu. Należy zebrać informacje od osób, które już bootcamp skończyły. Jeżeli ktoś wydaje 3, 5 czy 7 tysięcy złotych, to raczej chce się sporo nauczyć, a nie nudzić się na zajęciach. Stąd zaczerpnięcie opinii od osób, które kurs skończyły, wydaje się być skutecznym wybadaniem terenu.
Maciej Puchała. Head of Sales w Right Information. Maciej ma ponad 10-letnie doświadczenie w obszarach rozwoju produktu, oprogramowania, sprzedaży i zarządzania. Przez ponad 8 lat pracował jako programista, sprzedawca i project manager, dzisiaj odpowiada za dział sprzedaży i HR. Stale szuka talentów i ambitnych osób oraz buduje zespoły, które wspólnie mogą mierzyć wyżej niż im się wydaje, że potrafią. Po pracy uwielbia żeglować po morzach, wspinać się po górach, nurkować i gotować.