Kto może zostać programistą?

Artykuł/Technologie 24.06.2017
Kto może zostać programistą?

Rynek pracy dla programistów wciąż jest w naszym kraju bardzo chłonny. Z drugiej strony przy tworzeniu oprogramowania znajdzie się miejsce dla wielu osób z odpowiednimi predyspozycjami – tak naprawdę wykształcenie kierunkowe nie ma tu pierwszorzędnego znaczenia. Sam spotkałem się w pracy zawodowej z wieloma doskonałymi programistami, którzy nie ukończyli informatyki, ani nawet kierunku ścisłego. Całą swoją wiedzę zdobyli praktyką, odpowiednimi kursami i certyfikatami zawodowymi.

Kariera programisty może być kusząca. Nic więc dziwnego, że na rynku pojawiają się kursy, mające ułatwić zmianę swojej specjalności. Kursy te przyjęły formę tzw. bootcampów – bardzo intensywnych i stosunkowo krótki (ok. dwóch miesięcy) kursów mających wykształcić początkującego adepta sztuki programowania.

Pomysł ten przyszedł ze Stanów Zjednoczonych, gdzie w 2012 r. stworzono tzw. Dev Bootcamp, 19-tygodniowy kurs programowania. Według pomysłodawców, 95 proc. absolwentów kursu znajduje pracę w branży. Może jednak gra jest warta świeczki? Jak mówią statystyki, przeciętny uczestnik bootcampu w Stanach to 30-latek, z ok. 7-letnim stażem pracy, mający przynajmniej licencjat i nigdy niepracujący wcześniej jako programista. Nie znalazłem jeszcze statystyk z Polski.

Jak wiadomo, każdy może biegać, ale mało kto zostaje maratończykiem. Może z programowaniem jest podobnie?

Czy każdy się nadaje na programistę? Czy kilka tygodni wystarczy, aby zdobyć wymarzoną pracę? A może wystarczy samozaparcie i samodzielne poszukiwanie wiedzy w Internecie? Przyznam, że jako programista, byłem sceptyczny. Ale w gruncie rzeczy prawie nic o bootcampach nie wiedziałem.

Aby więc dowiedzieć się więcej, postanowiłem spytać o to wszystko Jakuba Koperwasa, założyciela i prezesa firmy szkoleniowo doradczej Sages, która organizuje w Polsce własne bootcampy o nazwie Kodołamacz. Bootcampy firmy Sages dzielą się na trzy rodzaje:

  • frontend – programista technologii webowych klienckich,
  • fullstack – umiejętność tworzenia aplikacji „end-to-end” całościowo od backendu (serwera) do frontendu (środowiska klienckiego),
  • data scientist – umiejętność analizy danych,  przydatna w badaniach statystycznych, rynkowych, big data.

Jakub to prawdziwy pasjonat edukowania: jako trener IT przeprowadził osobiście około stu szkoleń  specjalistycznych, koordynował merytorycznie wiele złożonych projektów edukacyjnych, a dodatkowo wykłada w Instytucie Informatyki Politechniki Warszawskiej.

Hubert Taler, Spider’s Web: Jakubie, moje pierwsze pytanie nie mogło wyglądać inaczej: ja skończyłem kierunkowe studia, zanim zostałem programistą, więc zastanawiam się, czym się różni bootcamp od studiów?

 Jakub Koperwas, Kodołamacz: Studia mają na celu wykształcenie inżyniera, czyli osoby, która zaraz po studiach będzie w stanie wejść do pracy i w zasadzie samodzielnie rozwiązać dowolny problem inżynierski. Zebrać wymagania, zrobić projekt/architekturę  systemu, dobrać technologie, zaimplementować projekt wraz z testami. Inżynier będzie nie tylko potrafił zrobić aplikację biznesową, ale będzie rozumiał wszelkie aspekty skorelowane z programowaniem, będzie znał wiele języków programowania, rozumiał, jak działa system operacyjny „w środku” , jak rozpraszać obliczenia, jak działa siec komputerowa i jak ją programować.

Niestety to wszystko kosztuje czas: studia to zwykle co najmniej osiem semestrów. Po czterech latach otrzymujemy człowieka wszechstronnie wykształconego, ale niekoniecznie znającego najnowsze technologie, których czas życia jest często krótszy niż czas trwania studiów. Taki absolwent zaczyna więc od zorientowania się w tym, co obecnie na rynku jest potrzebne i używane. Jego pierwsza praca niekoniecznie musi być bardzo kreatywna – prawdopodobnie nikt nie powierzy mu np. tworzenia architektury systemu tuż po studiach.

W przypadku absolwenta bootcampu mamy sytuację odwrotną: najpierw nauczmy podstaw, ale w oparciu o te technologie, które są używane na rynku. Dajemy ludziom umiejętności, aby mogli realizować te zadania, które będą od nich oczekiwane na początku kariery. Ale dodatkowo nauczmy ich pracować z narzędziami pracy zespołowej, zwracać uwagę na jakość kodu itp.

Taki kursant może zacząć pracę, a pracując będzie się uczył, z czasem realizował coraz trudniejsze zadania i prędzej czy później  – jeśli będzie miał odpowiednie chęci do pracy nad sobą – dojdzie również do szerokiego spojrzenia jakie ma inżynier. Bootcamp to rodzaj przysposobienia do zawodu lub możliwość zmiany zawodu w krótkim czasie.

Co z wiedzą około-programistyczną? Chyba nie sposób w ciągu tak krótkiego czasu poznać np. zasady projektowania czy normalizacji baz danych – czyli typowe zadanie, które musi wykonać samodzielny programista oprócz kodowania?

Nie, takich zagadnień uczestnicy nie będą znali. Bootcamp rozumiemy jako minimum potrzebne do startu jako stażysta czy junior developer, a nie do stanowiska projektant/programista. Oczywiście nie jest to prawda dla każdej z firm – a zwłaszcza dla firm o małych prężnych zespołach. Niemniej w wielu firmach na projekt systemu ma wpływ niewielu programistów – jedynie ci pełniący rolę leaderów. Pozostali zaś bardziej skupiają się na realizacji funkcjonalności, wśród nich bywają też oczywiście trudniejsze zadania. Uważamy za kluczowe dla dalszej edukacji, by bootcampowicz podjął się co najmniej stażu – możliwie szybko od zakończenia kursu.

Ludzie nie są tacy sami – jak radzicie sobie z sytuacją kogoś odstającego mocno w grupie na minus? Co mówicie komuś, kto widocznie nie ma jednak talentu do programowania?

Staramy się minimalizować ryzyko, że do takiej sytuacji w ogóle dojdzie. Robimy to poprzez ostrą rekrutację, na której patrzymy nie tylko na predyspozycje, ale także staramy się ocenić poziom determinacji. Predyspozycje dość łatwo ocenić – gorzej z determinacją. Rekrutacje są ustne i przypominają niekiedy sceny z reality-show. Osoba rekrutująca pyta np. o obecną organizację czasu kursanta, o jego zobowiązania zawodowe, o to, czy będzie dojeżdżał, czy mieszka na miejscu itp. Niekiedy pada trudne pytanie „a kiedy ty właściwie znajdziesz czas, żeby jeszcze ćwiczyć potem w domu.”

Oczywiście błędy przy rekrutacji zdarzają się zawsze – zdarza się, że uczestnik przejdzie przez sito, a jednak nie da rady, bo okazuje się, że nie sprawia mu to przyjemności albo przychodzenie na dodatkowe treningi np. w niedziele to już coś, co przekracza jego siły…

Jaka jest demografia waszych uczestników (przekrój płci, wieku, wykształcenia)?

30 proc. kandydatów stanowią kobiety, 70 proc. zaś mężczyźni. Z kolei wśród uczestników proporcje wynoszą 20 i 80 proc. Oto kilka dodatkowych statystyk:

Rodzaj wykształcenia uczestnika

 

Obecny zawód uczestnika

Co składa się na podstawy i co trzeba umieć, żeby zacząć?

Nie da się tego jednolicie potraktować – są tutaj różne trudności i wymagania.

Najtrudniejszy jest Data Science – trzeba umieć już programować, znać podstawy statystyki itp. – jest to ścieżka typowa na przekwalifikowanie. Ponadto problemy, jakie rozwiązują specjaliści data science, są koncepcyjnie trudne, więc spora doza logicznego myślenia i rozwiązywania
trudnych problemów.

Z kolei w przypadku frontend programowanie sprowadza się do programowania interfejsu użytkownika, tu trzeba mieć zacięcie również w stronę ergonomii, estetyki, UX. Brak więc wymagań wstępnych poza predyspozycjami.

Fullstack to coś pomiędzy, dobrze umieć już programować wcześniej, choć dajemy tu opcję pre-bootcampu, żeby uzupełnić te luki, jest tu trochę frontentu, trochę backendu – ale nacisk jest tu na umiejętność dostarczania funkcjonalności end to end niż bycia mistrzem ergonomii.

Wszędzie natomiast konieczna jest znajomość języka angielskiego i umiejętność szybkiego czytania w internecie.

Praca w zespole, zarządzanie zadaniami, zarządzanie kodem źródłowym, systemy kontroli wersji – czy to również wchodzi w skład programu bootcamp?

Tak – systemy kontroli wersji, automatyzacja budowania, testy jednostkowe, ciągła integracja itp. Staramy się przybliżyć maksymalnie to, co robimy na zajęciach do tego, co będzie potrzebne później w pracy. Zarządzanie zadaniami trochę mniej i w zależności od bootcampu. Na bootcampach typowo programistycznych w programie jest realizacja wspólnego projektu, więc elementy te mogą się pojawić w pewnym zakresie.

Jak wygląda typowy pierwszy dzień bootcampu i typowy ostatni?

Bootcamp to ciężka praca od pierwszego dnia. Ten dzień zasadniczo nie różni się od pozostałych – od początku ma formułę warsztatu. Jest to możliwe, ponieważ uczestnicy otrzymują materiał do zapoznania się jeszcze przed pierwszymi zajęciami, więc pierwszy krok jest już wykonany. Zakres zależy od bootcampu, ale na każdym pierwszego dnia zakładane jest konto na Githubie.

Uruchamiamy też dla grupy kanał na Slacku– będzie to podstawowy komunikator zarówno w kwestiach merytorycznych, ale też dzielenia się materiałami dodatkowymi i nie bez znaczenia jest wymiar integracji grupy.

Ostatni dzień z kolei to prezentacja projektów, w przypadku bootcampów programistycznych jest to zwieńczenie hackathonu zamykającego prace nad projektami. Nie jest to jednak koniec samego szkolenia.

Na zakończenie przewidziany jest dodatkowy moduł prowadzony przez specjalistę ds. rekrutacji. W ramach tych spotkań uczestnicy dopracowują swoje portfolio zawodowe oraz przygotowują się do rozmów kwalifikacyjnych.

Ciągłość kontaktu utrzymujemy także po zakończonym bootcampie korzystając nadal ze slacka.

Dziękuję za rozmowę.

Dziękuję również.

***

Jak widać, nie wygląda to tak, że bootcamp zrobi z człowieka zupełnie nietechnicznego lub niezainteresowanego dotąd IT od razu programistę. Cudownych metod jednak nie ma – a każda szybka ścieżka nauki jest okupiona pracą po stronie zarówno instruktora jak i studenta.

Czytaj również: Zawstydza nauczycieli. Za darmo uczy dzieci programowania – rozmawiamy z superm…, sorry, z MacKozerem

Advertisement

Dołącz do dyskusji

Advertisement
Advertisement