Jak znaleźć odpowiednią dla siebie pracę

Jak znaleźć odpowiednią dla siebie pracę

Jeśli czytasz PoznajProgramowanie.pl i śledzisz newsy z naszej branży to pewnie wiesz, że programowanie opanowała istna gorączka złota jeśli chodzi o oferty pracy. Nowoczesne technologie docierają do każdego zakątka świata który znamy, przez co programistów potrzebuje… prawie każdy. Firmy prześcigają się w pomysłach na skuszenie cię do pracy właśnie dla nich. Warto w takiej sytuacji być świadomym tego, że tak jak dobieramy sobie technologie w których pracuje nam się dobrze, tak możemy też próbować dobierać sobie miejsca pracy pod nasze osobiste preferencje. W dzisiejszym poście pokażę ci kilka punktów, dzięki którym łatwiej będzie ci przeanalizować oferty pracy pod kątem miejsca w którym przyjdzie ci pracować.

 

Technologie

Zaczynamy od punktu od którego zaczyna większość początkujących programistów – mowa tutaj o technologiach jakie możemy w danej firmie wykorzystywać. To jasne, że jeśli kilka ostatnich lat życia spędziłeś na nauce Javy (chociażby na studiach) to najbezpieczniejsze będę dla ciebie oferty związane z tym właśnie językiem. Kwestia języka programowania w którym chciałbyś pisać to jednak nie wszystko co dotyczy technologii w danym miejscu pracy.

Istnieje duże prawdopodobieństwo, że w danej firmie wykorzystuje się jeszcze mnóstwo innych rozwiązań o których nie wspomniano. Na rozmowach o pracę warto więc zapytać o cały „stack technologiczny” na którym opiera się firma – da ci to obraz tego w jakim stopniu inwestuje się w danym miejscu w nowe technologie i czy świadomość pracowników dotycząca nowych technologii jest na poziomie który cię zadowala. Dużym plusem będzie istnienie czegoś na wzór działu badań i rozwoju (R&D), czyli działu który poza bieżącymi zadaniami „operacyjnymi” bada nowe technologie i zastanawia się jakie korzyści mogłyby płynąć z ich wykorzystania. Pamiętaj też, że życie nie jest czarno-białe i firmy wykorzystujące nieco starsze technologie mogą po prostu stawiać na stabilną działalność – nie musi to świadczyć o ich zacofaniu technologicznym (o konkretne powody takiej sytuacji wystarczy – jak poprzednio – zapytać).

 

Model działania

W dzisiejszym świecie nie można wrzucać wszystkich miejsc w których pracuje programista do worka o nazwie „firma informatyczna”. Modeli działania jest całkiem sporo – dana firma może być start-upem, czyli firmą która dopiero poszukuje optymalnego modelu biznesowego, może być software housem posiadającym swoich pracowników i realizującym zlecenia dla klientów z zewnątrz, może też skupiać się na działalności outsource’ingowej udostępniając „swoich ludzi” np. w formie body leasingu (okropna nazwa, prawda?).

Model działania firmy przekłada się na bardzo wiele kwestii, zaczynając chociażby od kwestii zespołów i tego z kim przyjdzie nam pracować. W takim np. outsource’ingu to często ruletka – na horyzoncie pojawia się nowy projekt, klient potrzebuje specjalistów od danej technologii i jeśli ty spełniasz wszystkie wymagania to w krótkim czasie możesz stać się częścią właśnie powstającego zespołu. Zespołu, który może być rozbity na kilka lokalizacji i firm w którym programiści będą realizować jeden projekt. W software house’ach i startupach zespoły są zazwyczaj bardziej zżyte – zmieniają się projekty i zadania, ale grupa ludzi z którą przyjdzie nam pracować może się z projektu na projekt integrować i lepiej poznawać, a tym samym działać jeszcze bardziej efektywnie.

Model który będzie najlepszy dla ciebie to kwestia indywidualna – jedni postawią na stabilizację, inni na szybko zmieniające się projekty, a jeszcze inni na możliwość przeskoczenia z technologii do technologii. W zależności od sposobu działania firmy poszczególne kwestie będą możliwe w mniejszym lub większym stopniu. Warto mieć jednak świadomość tego w jaki sposób operuje firma w której chcemy się rozwijać i pracować.

 

Rozmiar i etap rozwoju firmy

Tutaj sprawa jest moim zdaniem dość prosta – im młodsza i mniejsza firma w której możesz mieć niebawem okazję pracować, tym większy freestyle jaki tam możesz napotkać jeśli chodzi o twoje obowiązki, większy wpływ na realizowane projekty oraz coś, co roboczo można nazwać „odległością od klienta końcowego”.

Chciałbyś popracować w małej, dopiero startujące na rynku firmie? Przygotuj się na zadania których nie przewidziałeś. Jesteś front-endowcem, a potrzeba skonfigurować serwer?  Dasz radę, wierzymy w ciebie. Potrzeba rąk do pracy na back-endzie? Dasz radę, wierzymy w ciebie. Trzeba porozmawiać z klientem i przedstawić mu nowe rozwiązanie? Wiadomo 😉 Tego typu sytuacji może być całe mnóstwo. W większych firmach, które wypracowały już odpowiednie struktury i procesy, możesz liczyć na bardziej sprofilowane do twojego stanowiska zadania. Wiąże się to z tym, że poszczególne „piony” będą już prawdopodobnie obsadzone przez specjalistów.

Programiści ceniący sobie swobodę i lubiący brać na siebie dużą odpowiedzialność zapewne doskonale będą się realizować w start-upach i mniejszych firmach. Ci, dla których liczy się stabilizacja i specjalizacja wybiorą zapewne większe firmy, które stać na utrzymywanie poszczególnych, wyodrębnionych od siebie działów. Na szczęście ofert na rynku jest tyle, że każdy znajdzie miejsce w którym poczuje się w końcu dobrze.

 

Domena biznesowa

Konkretna domena biznesowa dotyczy szczególnie firm a) tworzących swoje własne produkty b) kierujących swoją ofertę do klientów z konkretnej branży. Firma może być ukierunkowana na rozwiązania związane np. z lotnictwem, medycyną czy sportem. Dlaczego ten fakt może wpływać na jakość pracy?

Domena na której skupia się firma wiąże się ze specyficzną terminologią którą możesz już znać jeśli np. interesujesz się daną dziedziną, albo uczyć od nowa jeśli nigdy nie pracowałeś przy podobnych rozwiązaniach. Zrozumienie terminologii i pojęć związanych z logiką biznesową to kluczowe kwestie jeśli chodzi o złapanie „właściwego rytmu” pracy w danym miejscu. Dla wielu programistów specjalizacja w danej domenie warta jest więcej niż poznane dotychczas technologie.

Dodatkowo, w zależności od domeny biznesowej kwestie takie jak poziom skomplikowania realizowanych projektów, ich innowacyjność czy chociażby charakter klientów może się zdecydowanie różnić. Do tego dochodzi jeszcze samopoczucie i motywacja do pracy – dla mnie osobiście praca w obszarach które są dla mnie interesujące albo z którymi mogę się w jakiś sposób utożsamić sprawia ogromną frajdę. Szukajcie projektów w dziedzinach które was interesują a wasze życie stanie się lepsze 😉

 

Możliwości rozwoju

Możliwości rozwoju w danym miejscu pracy to coś, co powinno interesować każdego dojrzałego programistę. Pisząc to myślę o takiej osobie, która wie, że nauka programowania nie kończy się w momencie otrzymania dyplomu na studiach, ani w momencie otrzymania pierwszego przelewu zatytułowanego „Wynagrodzenie”. Jeśli każdego dnia w pracy będziemy spędzać te standardowe osiem godzin to byłoby dobrze, żeby nie był to czas zmarnowany. Wręcz przeciwnie, środowisko w którym będziemy się znajdować ma nas codziennie motywować do stawania się jeszcze lepszymi.

Dla każdego programisty rozwój będzie oznaczał co innego, jednak ja proponuję zwrócić uwagę przede wszystkim na dwie kwestie.

Po pierwsze – jakich ludzi spotkasz na miejscu? Czy twoi przyszli koledzy i koleżanki to ludzie z doświadczeniem, albo wręcz eksperci w danej branży? Jeśli tak, to trafiłeś w odpowiednie miejsce – dzięki możliwości przebywania wśród mądrzejszych od siebie twoja wiedza błyskawicznie wystrzeli w górę.

Po drugie – czy firma inwestuje w rozwój pracownika? Tutaj mam na myśli takie elementy jak dostępne materiały, książki, możliwość uczestnictwa w szkoleniach czy konferencjach, albo nawet organizowanie ich w formie wewnętrznej. Im więcej takich elementów znajdziesz na miejscu do którego aplikujesz tym lepiej!

 

Zobowiązania

Praca w danej firmie to relacja pomiędzy dwoma stronami – pracownikiem i pracodawcą. Jak w każdej zdrowej relacji tak i tutaj obie strony ustalają między sobą zasady współpracy i zobowiązania. Pracownik zobowiązuje się do sumiennego wykonywania obowiązków, bycia „wartością dodaną” dzięki której firma rośnie i wzbogaca się, a pracodawca ma za zadanie stworzyć pracownikowi najbardziej odpowiednie do tego warunki pracy.

Nie każda firma traktuje jednak temat zobowiązań pracownika wobec pracodawcy w ten sam sposób.

Popularnie zwane „lojalki” i podpisywane razem z umową dokumenty to temat bardzo kontrowersyjny. Wiele firm z czołówki rynku IT stosuje bardzo rygorystyczne zasady dotyczące tego co wolno i czego nie wolno pracownikowi. Mówimy tutaj zarówno o okresie zatrudnienia w danym miejscu (np. zobowiązanie do pracy na wyłączność, zakaz realizowania projektów komercyjnych po godzinach) jak i o okresie po odejściu (np. brak pozwolenia na pracę u konkurencji przez określony czas).

Dla początkujących programistów takie kwestie nie muszą być jeszcze przeszkodą, jednak jeśli z biegiem czasu angażujesz się w coraz więcej inicjatyw i przedsięwzięć to miej na uwadze opisywane przeze mnie tematy.

 

Kultura organizacji

Dochodzimy do chyba najważniejszej kwestii która decyduje o tym jak czujemy się pracując w danej firmie. Chodzi oczywiście o coś, co określa się terminem kultury organizacji.

Czym jest kultura w kontekście miejsca pracy? Istnieje wiele definicji tego pojęcia. Dla jednych jest to zbiór wszystkich elementów które tworzą z grupy współpracujących ze sobą ludzi jeden organizm. Dla innych są to wartości jakimi kierują się pracownicy danej firmy. Dla jeszcze innych może to być wskaźnik tego, na ile po prostu „nam zależy”.

Dlaczego to ważne dla ciebie, z perspektywy przyszłego pracownika? Jeśli w tym co robisz stawiasz na jakość, nie lubisz podejścia pt.”zwisa mi to” i chcesz pracować w dojrzałej firmie gdzie pieniądze nie są jedynym motywatorem to zdecydowanie polecam szukać takich miejsc gdzie o kulturę pracy się dba. A jak to zweryfikować? Tak jak już wspominałem, wiele powiedzą ci już pierwsze rozmowy z osobami które cię rekrutują. Spróbuj dowiedzieć się od nich jakimi wartościami kieruje się firma, w jaki sposób dba się o jakość wytwarzanych rozwiązań albo w jaki sposób pracują poszczególne zespoły. Da ci to ważną wskazówkę dotyczącą tego czy firma jest czymś więcej niż tylko fabryką kodu.
Jak mogłeś się dzisiaj przekonać, cech które wyróżniają jedne firmy od drugich jest całe mnóstwo. To te cechy czynią z niektórych firm miejsca o których marzysz, a z innych miejsca gdzie nie chciałbyś się nigdy znaleźć. Mam nadzieję, że dzięki temu co napisałem dowiedziałeś się czegoś więcej o opcjach które warto rozważyć przy poszukiwaniu pracy.

Pewnie wielu z was chciałoby dodać jeszcze jedną kwestię która wpływa na wybór danej oferty pracy – mowa oczywiście o wynagrodzeniu. Moje podejście do tego tematu jest dość proste – fajnie, jeśli firma oferuje Ci konkurencyjne stawki, ale jeśli to wszystko co Ci oferuje, to zastanów się dwa razy zanim przyjmiesz taką ofertę.

Jeśli masz jakiś punkt którego tutaj nie poruszyłem, albo chcesz przedstawić swoje zdanie w temacie tego co oferują dzisiaj firmy programistom to zachęcam do dyskusji w komentarzach – doświadczenie każdego z was się przyda!

  • Rafał Pałka

    Właśnie ten artykuł przeczytał szesnastolatek, który wie, jaki kierunek zawodowy chce obrać. Jestem w trakcie poznawania struktur języków m.in c++ skromne początki, nic na siłę, aż któregoś dnia opanuję solidne podstawy, i być może poczuję, że mogę dalej się zagłębiać. Choć ciężko samemu się to robi, kiedyś chciałbym pójść na praktyki tylko nie wiem , czy jakieś zespoły IT kogoś takiego przeszkolą 🙂

    • Adrian Bystrek

      Przemek dobrze przedstawił ile tak na prawdę zmiennych definiuje firmę jako całość. Początkujący programiści nie zwracają uwagi na większość z tych aspektów, jednak warto mieć ich świadomość nawet w takiej sytuacji, jak Twoja. Jeżeli jesteś gościem, który lubi zagłębiać się w „szczegóły techniczne” języka i problemów, które są do rozwiązania to możesz się nie odnaleźć w firmie, która stara się głównie wykorzystywać gotowe na rynku rozwiązania, adaptować je i czym prędzej realizować kolejne projekty dla klientów. Jedno jednak jest pewne. Brak umiejętności nie stanowi problemu, gdy ubiegasz się o staż. Ważna jest Twoja pasja, chęć nauki i zaangażowanie. Nie raz można spotkać się z opiniami, gdzie raczej wszyscy są zgodni – lepiej jest pracować z kimś komu brakuje jeszcze umiejętności, ale słucha, ma pomysły i chce się uczyć niż z „starym wyjadaczem”, który pozjadał wszystkie rozumy.

      • Rafał Pałka

        Dziękuję za odpowiedź, Adrianie, jestem dopiero w 1 liceum, oswajam się z software engineeringiem, gdyż mnie inspiruje, a że jeszcze dyscyplina idzie w parze z chęcią, i przedsięwzięciem no i pasją, bo uprawiam sportowy taniec towarzyski, bo się tego nauczyłem, także myślę, że poczuję podobieństwo podczas nauki i praktyki jakie się wiąże z pasją po prostu i samorozwojem, w którym trzeba być lepszym od samego siebie a ni jeżeli od innych ;). Mam nadzieję, że jest to zrozumiały wpis, pozdrawiam 😉

        • Przemek Smyrdek

          Nie wiedziałem, że taniec ma tyle wspólnego z programowaniem! Ale jest dokładnie tak jak mówisz – programowanie, tak pewnie jak i taniec, to dużo więcej niż praca od 8 do 16. Przede wszystkim praca nad sobą, rozwój, szukanie inspiracji. Dzięki za komentarze i powodzenia na początku drogi 🙂

    • Rada ode mnie, C++ na rynku pracy to gatunek praktycznie nie istniejący – jeżeli chcesz praktyki i to płatne to lepiej zajmij się HTML5/CSS/JavaScript’em + AngularJS 1 lub 2, ewentualnie PHP – dobre na start (ale tylko na start ;)). Na mojej uczelni jest takie powiedzenie że studencie uczą się C++ żeby po 2 latach pracy w branży go zapomnieć, z 20 osób z roku którzy pracują jako programiści w C++ piszą 3…

      • Przemek Smyrdek

        „Na mojej uczelni jest takie powiedzenie że studencie uczą się C++ żeby po 2 latach pracy w branży go zapomnieć”

        Zależy jaka to branża 😉 W pewnej dość znanej firmie (Google) wygląda to tak:

        „C++ generally powers compute-intensive back-end services, Java (and a wealth of libraries including servlets, Guice, and Guava) is often used for application logic, and many scripts are written in Python. Parts of YouTube are written in Python as well as some App Engine applications.”

        „Most (but not all) low level server-side software is written in C++. Performance is of crucial importance when you operate hundreds of thousands of servers – 10% code optimization can result in saving millions of dollars. In extremely rare cases, some critical parts of the code are even written in assembly.”

        • Tylko jaka jest szansa że dostaniesz się do Googla, zwłaszcza jako 16 latek… Ale jeżeli masz 18 lat i znasz się na webdev to o wiele łatwiej o pierwszą pracę, tylko to chciałem powiedzieć.

          • Przemek Smyrdek

            No to zgadzam się – na pewno proporcje co do języków nie rozkładają się po równo, jednak jak jesteś w czymś ekspertem (np. ten C++) to praca sama cię znajdzie 😉

      • Rafał Pałka

        zapoznałem się „wstępnie” z html5 i css przy projekcie gimnazjalnym z własnej inicjatywy. Będę działać zaparcie tak czy siak. Pozdrawiam i dziękuję uprzejmie

  • Ja bym dodał jeszcze że czasami na rozmowach jeżeli zapytać pracodawce o technologie/jakość to stosuje się naginanie rzeczywistości np. pytasz czy stosują podejście clean code; odpowiedź: ależ oczywiście, nawet skrót SOLID się pojawi a potem „day one” w pracy i widzisz jak to dbanie w praktyce wychodzi…
    Podobnie jest z testami: Piszecie unit testy? tak, Tak, TAK a później okazuje się że w jednym projekcie 3 lata temu mają 20 testów i na tym koniec. Powyższe problemy dotyczą głównie korporacji i pracy poza stricte IT (np. dział IT w banku), w firmach dla których software jest corem działalności lub sprzedają własny produkt (np. soft do fakturowania) jest o wiele lepiej.

    Żeby się uodpornić na tego typu niespodzianki ja mam tylko 2 rady:
    1. Poproś żeby pokazali Ci kod źródłowy projektu z którym będziesz pracował i pobaw się nim przez 15 min, popatrz jak długie są metody, czy są testy i jakie, itp.
    2. Sprawdź na Linkedin’ie jacy ludzie pracują już w tej firmie, po jakich uczelniach, co robili wcześniej. Jeżeli widzisz że jest tam gość/panna która ma 100 gwiazdek na GitHub’ie prowadzi blog’a i jest prelegentem to firma nie jest taka zła – będzie przynajmniej jedna osoba od której można się uczyć. Jeżeli widzisz bandę anonimowych dev’ów to coś może być nie tak – wchodzisz w kręg osób które prawdopodobnie reprezentują niski poziom i co gorsza wcale im to nie przeszkadza.

    • Adrian Bystrek

      Fakt, że realia są, jakie są, a na rynku taki „bum”, że faktycznie często to firmy naginają rzeczywistość na swoją korzyść zamiast kandydaci 🙂 Bardzo dobre rady 🙂

    • Ana

      Wow, czyli jeśli ktoś nie ma projektów na GH i nie objawia się na LI to jest anonimowym devem o niskim poziomie? 😉

      • „prawdopodobnie reprezentują niski poziom” – potraktuj to jako prawdopodobieństwo warunkowe, np. jest większe prawdopodobieństwo że jesteś dobry(a)/chcesz się rozwijać jeżeli prowadzisz bloga, co wcale nie zaprzecza temu że są dobrzy programiście/programistki które bloga nie prowadzą

      • Przemek Smyrdek

        O wizerunek warto dbać – to się po prostu opłaca 🙂 Duże firmy nie ignorują SEO i pozycji w Googlach tylko dlatego, że są duże. (i ocenianie kto jest na jakim poziomie nie ma tutaj nic do rzeczy)