Dlaczego nie zarabiasz więcej jako programista?

04.12.2017 AUTORZY: Aleksandra Balcerzak, Radek Borzym, Adam Matysiak, Maciej Aniserowicz, Piotr Prądzyński, Marta Bąk,

Jeśli chcesz zarabiać więcej jako programista to ta publikacja jest dla Ciebie. Jakie tematy będziemy poruszać?

1. Negocjacje i rekrutacje w zawodzie programisty

2. Jak nauczyć się języka angielskiego nie mając dużo kasy na kursy?

3. Najbardziej opłacalne języki programowania

4. Wywiad z Piotrem Prądzyńskim (Programista Na Swoim)

5. Najbardziej opłacalne technologie

6. Rozwój programisty

7. Wywiad z Maciejem Aniserowiczem (devstyle.pl)

Negocjacje i rekrutacje w zawodzie programisty

Nikomu chyba nie trzeba mówić, że na rynku brakuje rąk do pracy, a przede wszystkim wykwalifikowanych specjalistów. Szczególnie duże dysproporcje można zaobserwować w branży IT. Z jednej strony stwarza to dla wielu pracowników szansę, ale jest także pewnym zagrożeniem. Jak programista może zawalczyć o swój interes i wynegocjować interesujące warunki zatrudnienia? Jak wygląda branża IT z perspektywy programisty oraz rekrutera?

Wady i zalety rynku pracownika – okiem programisty

W branży IT nie brakuje nieczystych zagrań czy chociażby pospolitego „cwaniactwa”. Jak punktuje w swoim szczerym artykule o lojalności w IT Maciej Aniserowicz (autor bloga devstyle.pl, Świat okiem programisty), współcześni developerzy są wręcz rozpieszczeni. Na rynku pracy IT brakuje rąk do pracy, dlatego panuje podejście „kandydat nasz pan”, które programiści bezwzględnie wykorzystują. Ale – jak zaznacza Aniserowicz – „Czy firmy, padając przed programistami na kolana, faktycznie robią dobrze i sobie i nam?”. Według niego – niekoniecznie.

Przytacza on m.in. przykłady pospolitych szantaży ze strony pracowników. „Dostałem propozycję pracy, dają tysiąc więcej niż tutaj mam, wyrównujesz albo nara”. Podobnie Multisport, firmowe śniadania czy inne benefity, które tak naprawdę sprawiają, że pracownik staje się jeszcze większym „więźniem” miejsca pracy. Jak nawołuje Aniserowicz – „Programisto, nie sprzedawaj się za piłkarzyki!”, a przy tym wszystkim – co bardzo wartościowe i godne naśladowania – nawołuje do walki o swoje prawa (chociażby należną podwyżkę) czy do zmiany pracy, ale z poszanowaniem drugiej strony oraz z zachowaniem lojalności.  Aniserowicz puentuje: „Pamiętaj: role mogą się zamienić”. Nie da się z nim nie zgodzić.

Wady i zalety rynku pracownika – okiem rekrutera

Aby mieć przeciwwagę i zestawić głosy oraz punkty widzenia obu stron, o zdanie w tej sprawie zapytałam także rekrutera. O kilka słów komentarza poprosiłam Mariusza Popina, Recruitment Consultanta z firmy HAYS Poland, który w swojej karierze miał do czynienia z rekrutacjami m.in. w branżach IT czy medycznej.

Przyznaje on jasno, że sektor IT rządzi się własnymi prawami. Jak mówi – „Tutaj często pomijany jest pierwszy etap rekrutacji, czyli rozmowa twarzą twarz z rekruterem wewnętrznego działu czy też headhunterem z zewnętrznej agencji rekrutacyjnej. Jeśli kandydat wpisuje się w profil osoby potrzebnej na dane stanowisko, czyli posiada niezbędne umiejętności, zna wymagane technologie oraz jego oczekiwania finansowe wpisują się w zaplanowany budżet, to może on zostać zaproszony na spotkanie z potencjalnym przyszłym przełożonym już na etapie screeningu telefonicznego (czyli wstępnej rozmowy z aplikującymi będącej pierwszą selekcją kandydatów do pracy – przyp. red.)”.

Jak podsumowuje Popin – „To ciekawy zabieg, ponieważ chociażby w sektorze farmaceutycznym nie wyobrażam sobie rekomendacji kandydata do klienta bez bezpośredniego spotkania z nim i poznania jego cech osobowości i tego, jak się prezentuje”. Rynek IT to zatem zdecydowanie rynek pracownika: „Pamiętam, że w rekrutacji na stanowisko Java developera na sto wysłanych wiadomości do kandydatów, otrzymałem zaledwie kilkanaście odpowiedzi. Kandydaci mówią że dostają czasami kilka, kilkanaście propozycji tygodniowo”. A nieprzychodzenie kandydatów na rozmowy o pracę, mimo wcześniejszego umówienia, a nawet potwierdzenia terminu spotkania, to dla rekruterów (nie tylko tych zajmujących się branżą IT) codzienność.

Proces rekrutacji do pracy programisty jest zatem w porównaniu ze standardowym procesem rekrutacyjnym – najczęściej o te pierwsze spotkanie skrócony, właśnie aby zminimalizować ryzyko rezygnacji potencjalnego kandydata. Jak mówi Popin „To programista rozdaje karty. Także jeśli chodzi o finanse. Najczęściej rozmowa o oczekiwaniachpojawia się na pierwszym spotkaniu – jakie ma on wymagania co do wynagrodzenia, premii czy dodatków”.

Popin wskazuje także, że w branży IT wyjątkowa jest zależność, że jeśli podczas pierwszej rozmowy telefonicznej kandydat nie uzyska informacji, ile pracodawca jest w stanie zapłacić, to po prostu nie kontynuuje dalej rozmowy. „Im więcej konkretów i szczegółów programista otrzyma od potencjalnego pracodawcy czy rekrutera na pierwszym etapie, tym większe prawdopodobieństwo, że firma go zainteresuje i będzie się on zastanawiać nad zmianą pracy”. Jak podsumowuje Popin: „W innych sektorach wystarczy przedstawić kandydatowi kilka kluczowych haseł, zarysować potencjalne stanowisko pracy i angażujemy spotkanie. W branży IT takie postępowanie byłoby niemożliwe”.

Podsumowując:

  1. Branża IT rządzi się swoimi prawami i panuje w niej rynek pracownika, co jednak nie oznacza, że programiści mogą całkowicie dyktować warunki, uciekając się do nieczystych zagrań; jak punktuje Aniserowicz – po prostu nie warto, zawsze to kiedyś Ty sam możesz się znaleźć po drugiej stronie.
  2. Dla programistów liczą się konkrety – masz prawo do otrzymywania godnego wynagrodzenia, respektowania praw oraz atrakcyjnych warunków czy benefitów pozapłacowych i możesz je egzekwować już na etapie pierwszej rozmowy z rekruterem.
  3. Jako kandydaci na dane stanowisko pracy bądź pracownicy czasami zapominamy o zwykłej lojalności i poszanowaniu drugiej strony; umówiłeś się na spotkanie – przyjdź lub je odwołaj, masz zobowiązania względem firmy – wypełnij je. Pamiętaj, że Ty także kształtujesz branżę oraz możesz kiedyś sam zostać pracodawcą.

Jak nauczyć się języka angielskiego nie mając dużo kasy na kursy?

Podstawową umiejętnością, który każdy programista musi posiadać to znajomość języka angielskiego. Nie musisz mieć dużo pieniędzy na kursy. Jeśli masz braki w tej kompetencji to warto podgonić te zaległości.

programista  

W XXI wieku, kiedy świat z dnia na dzień staje się coraz bardziej połączony sprawne porozumiewania się językiem angielskim stało się podstawową umiejętnością każdego człowieka, której nieposiadanie zahacza wręcz o analfabetyzm. Osoba nieporozumiewająca się najpopularniejszym językiem obcym na świecie odcina się od olbrzymich zasobów wiedzy i ciężej jest jej uczestniczyć w kulturze. Do tego dochodzi jeszcze fakt, że część stanowisk pracy wymaga znajomości angielskiego, a odsetek ten będzie tylko rósł w przyszłości.

Co należy więc zrobić, jeżeli jeszcze nie udało nam się opanować sztuki poprawnego władania angielskim? Czy brak pieniędzy na kursy uniemożliwia poznanie tego języka?

Na szczęście odpowiedź na to pytanie jest zdecydowanie przecząca.

Najczęściej popełniany błąd w nauce języków

Większość ludzi mających problemy z nauką języków popełnia podstawowy błąd. Zakłada, że dwie lekcje w tygodniu wystarczą na opanowanie potrzebnego materiału. Nie chodzi mi tutaj o banalne stwierdzenie, że po powrocie do domu zawsze trzeba powtórzyć treści poznane w klasie. Przy nauce języków obcych zajęcia w salach lekcyjnych stanowić powinny jedynie ułamek czasu poświęcanego na szlifowanie umiejętności. Powinny być bardziej jak wierzchołek góry lodowej, pod którym kryje się znacząca większość wysiłku włożonego w poznawanie nowej mowy.

Lekcje szkolne oraz przeróżne kursy świetnie nadają się do nauki gramatyki, ćwiczenia pisania i mówienia. Lwia część pracy nad językiem polega jednak na zapamiętywaniu słownictwa. Dużą część czasu spędza się także na szlifowaniu gramatyki i stylistyki zdań, tak żeby rządzące nimi zasady były czymś na tyle oczywistym, że nie wymagają świadomego zastanawiania się. Wszystko to dzieje się poza obrębem klasy i stanowi serce nauki języka.

Najcenniejszym zasobem potrzebnym do nauki języka jest więc czas, a nie pieniądz. Zasobów finansowych używa się po to, żeby ułatwić/skrócić naukę, ale można obejść się także bez nich. Brak czasu jest znacznie gorszą przeszkodą w nauce języka.

Najlepszy sposób na naukę języków

Jeżeli udało nam się opanować język w stopniu trochę lepszym niż podstawowym, to najlepszym sposobem na dalszą naukę staje się zanurzenie w materiałach stworzonych w danym języku. Metoda ta jest czasochłonna, ale łatwo ją skorelować z naszymi pasjami, co sprawi, że poświęcenie cennych godzin na naukę stanie się przyjemne.

 

Dzięki niej poznamy język takim jakim jest w rzeczywistości, wraz ze wszystkimi jego subtelnościami, a czasem ich kompletnym brakiem. Korzystanie z oryginalnych źródeł sprawi, że pozbędziemy się sztuczności w posługiwaniu się językiem, która jest w początkowej fazie nauki rzeczą normalną, a może nawet wręcz pożądaną. W końcu super poprawne zdania też stanowią część języka, a od nativów ich się raczej nie nauczymy.

Zrozumienie kontekstu, w jakim mogą być używane poszczególne słowa wraz z intuicyjnym załapaniem różnić istniejących między poszczególnymi synonimami jest kluczowe, jeżeli chcemy dobrze opanować dany język. Tak naprawdę słownik jest bardziej przydatny dla osób, które tylko starają sobie przypomnieć słowa, które wyleciały im z głowy, niż dla tych, którzy ich jeszcze nie znają. Tworzenie sentencji w obcym języku złożonych z nieznanych sobie wcześniej słów znalezionych gdzieś we słowniku jest sprawdzoną receptą na napisanie sztucznie brzmiących, a często wręcz bełkotliwych tekstów, które ciężko jest zrozumieć. Dlatego tak ważne jest obcowanie z prawdziwym, żywym językiem.

Jeżeli przykładowo kochamy filmy, to powinniśmy włączyć suby oraz głos w oryginalnym języku i oglądać je, kiedy tylko znajdziemy wolny czas. Dobrze sprawdzą się tutaj ulubione filmy, takie które znamy na pamięć. Teraz będziemy je znać na pamięć w oryginale. Ta sama zasada tyczy się gier komputerowych, muzyki, książek, czy artykułów na interesujący nas temat.

Pasywność i aktywność w rozumieniu słów

Dobrze jest sprawdzać słowa, których nie znamy, ale nie ma też potrzeby, aby wykazywać zbyt dużą nadgorliwość w tym zakresie. Ważne jest nauczenie się odgadywania ich znaczenia na podstawie kontekstu oraz zdobycie umiejętności rozumienia zdań, których nie wszystkie elementy są nam znane. Z czasem część słów stanie się dla nas zrozumiała dzięki kontaktowi z nimi, a nie poprzez wkuwanie. Zaczniemy rozumieć ich znaczenie często mając problemy ze znalezieniem ich polskiego odpowiednika.

Ważne jest także, żeby zdać sobie sprawę z różnicy pomiędzy znajomością pasywną, a aktywną słownictwa. Słowa, które znamy pasywnie, to słowa, które rozumiemy, kiedy się z nimi spotkamy, ale mamy problemy przypomnieniem ich sobie. Świetnie rozumiemy je, kiedy coś czytamy, ale kiedy sami mamy napisać tekst, to sprawiają kłopoty i głowimy się przeczesując pamięć w ich poszukiwaniu. Z kolei słownictwo znane aktywne nie sprawia nam trudności, kiedy chcemy je sobie przypomnieć.

W praktyce niemożliwym jest, żebyśmy wszystkie słowa znali w sposób aktywny, nawet rdzenni użytkownicy języków tego nie potrafią. Żaden Polak nie zna polskiego tak dobrze, żeby nie mieć czasem problemów z przypomnieniem sobie jakiś zwrotów. Dlatego też nie powinniśmy się przejmować tym, że znaczenie niektórych słów nam czasem umyka i marnować zbyt wiele czasu na ich kucie metodą siłową. No chyba, że są to słowa naprawdę podstawowe i często używane. Z czasem coraz więcej z nich będzie nam wchodziło do pamięci, zwłaszcza jeżeli będziemy starali się korzystać z języka w sposób aktywny.

Aktywne posługiwanie się językiem

Kolejnym krokiem potrzebnym do biegłego władania językiem jest aktywne posługiwanie się nim. Nic tak nie pozwoli doszlifować naszych umiejętności jak rozmawianie,  czy pisanie na forach. Warto jest zacząć samodzielnie tworzyć zdania na możliwie wczesnym etapie nauki, dzięki czemu łatwiej będzie zidentyfikować niedociągnięcia w języku oraz zwiększyć płynność w posługiwaniu się nim. Nie trzeba tak mocno przejmować się problemami ze znalezieniem odpowiedniego słownictwa. Języki ze swojej natury są elastyczne i zawsze można znaleźć sposób na obejście pojawiających się nagle przeszkód.

Jeżeli przykładowo nie pamiętamy obcego odpowiednika słowa „kucharz”, to zawsze możemy określić przedstawiciela tego zawodu jako „osobę, która gotuje”. Nawet początkujący może przekazać część swoich myśli w ten sposób, co jest przecież najważniejszą funkcją języka. Metoda ta działa najlepiej jeżeli rozmowa odbywa się na żywo. Z czasem będziemy popełniali coraz mniej błędów, mówili coraz płynniej i coraz skuteczniej przekazywali idee.

Podejrzyj odcinek Arletty Witt na temat mówienia w języku angielskim

Nie stracenie kontaktu z językiem jest kluczem do sukcesu

Z nauką języka jest jak z zachowaniem dobrej formy – praca nigdy się nie kończy. Prędzej czy później osiągniemy moment, w którym zaprzestaniemy powtarzania gramatyki, a może nawet i słownictwa, ale nie oznacza to, że skończą się subtelności językowe, które będziemy poznawali. Zresztą nie chodzi tutaj tylko o jakieś super dogłębne poznanie najmniejszych detali danego języka.

Jeżeli zaprzestaniemy kontaktu z językiem, to z czasem zacznie ulatniać się z naszej głowy. Powoli będzie spadać płynność posługiwania się nim, będziemy zapominali niektórych słów, coraz gorzej będzie szła gramatyka. Dlatego tak ważny jest stały kontakt z oryginalnymi materiałami powstałymi w danym języku oraz częste posługiwanie się nim. Dzięki temu raz zdobyte umiejętności nie zaczną z czasem zanikać.

Dobra kondycja psychofizyczna

Bycie odpowiednio wyspanym, zdrowe odżywianie się, częsta aktywność fizyczna, brak nadmiernego stresu. To wszystko znacznie usprawni proces nauki języka. Jeżeli opanowywanie słownictwa, czy zasad gramatyki nam nie idzie, to problem może leżeć w sprawach niezwiązanych z samą nauką.

Nauczenie się jakiegokolwiek języka, czy to będzie angielski, niemiecki, francuski, czy japoński wymaga czasu i wysiłku. Osoba posiadająca talent w tym zakresie zacznie robić szybkie postępy jeżeli podejdzie do sprawy w sposób odpowiedni, ale każdy kto jest w stanie znaleźć codziennie przynajmniej godzinę na naukę będzie mógł prędzej czy później opanować wybrany przez siebie język. Problemem jest, jeżeli rzeczywiście naprawdę nie mamy czasu, którego będziemy mogli poświęcić na ciągłą naukę. Wtedy opanowanie języka, może znaleźć się poza naszym zasięgiem.

Najbardziej opłacalne języki programowania w Polsce i na świecie

Poznaj najbardziej opłacalne języki programowania

programista    

Spośród kilkuset bądź nawet kilku tysięcy istniejących na świecie języków programowania, to jednak zaledwie kilkadziesiąt jest wciąż rozwijanych, a ich znajomość opłaca się zarówno pod względem finansowym, jak i łatwości znalezienia pracy. Jakie są to języki? Czy te same trendy panują w Polsce, co i na świecie?

Kondycja zawodu programisty na świecie

Na początku warto wspomnieć, że programista to wciąż jeden z najlepiej opłacanych zawodów na świecie, w którym pracy nie zabraknie, a wręcz przeciwnie, jest jej coraz więcej. Jak prezentują się nastroje developerów z całego świata? Jak pokazuje tegoroczny raport Stack Overflow, zdecydowana większość z nich jest zadowolona zarówno ze swojej aktualnej pracy, jak i całej ścieżki kariery. Dość istotnie poziom satysfakcji zawodowej wzrasta wśród programistów posiadających przynajmniej 4 lata doświadczenia.

programista

Jakie języki programowania są najbardziej popularne na świecie?

Według corocznego, obszernego badania „Developer Survey 2017”, które objęło 64 tys. programistów z całego świata i zostało przygotowane przez największy serwis społecznościowy zrzeszający programistów z całego świata – Stack Overflow, najczęściej używanym językiem programowania jest od pięciu lat niezmiennie JavaScript. Drugie miejsce należy do SQL-a, a trzecie – do Javy. Co ciekawe, w zestawieniu tym pierwszy raz od pięciu lat Python zajął wyższe miejsce od PHP. Nadal dość wysokie pozycje zajmują również języki z grupy języków C. Pełen wykres poniżej.

programista

Jakie języki programowania są najlepiej opłacane na świecie?

Globalnie developerzy, którzy używają w pracy tak niszowego, bo nowego, języka programowania, jakim jest Clojure, mogą pochwalić się najwyższymi zarobkami – średnio rzędu 72 tys. dol. rocznie. W USA z kolei to programiści używający języków Go oraz Scala są opłacani najlepiej ze średnią roczną pensją na poziomie 110 tys. dol.

W wielkiej Brytanii zaś najlepiej opłacanym językiem jest TypeScript z płacami na poziomie 53 tys. dol. rocznie, podczas gdy w Niemczech zestawienie najlepiej opłacanych języków wygrywa Java, również z kwotą 53 tys. dol. rocznie. We Francji najlepiej opłacana jest znajomość Pythona, z zarobkami rzędu 42 tys. dol. rocznie. Mimo wszystko 56% ankietowanych programistów odczuwa, że zarabia za mało. Poczucie, że zarabiają za mało mają szczególnie developerzy pracujący dla rządu albo organizacji non-profit. Z kolei najlepiej opłacani czują się programiści pracujący w obszarze finansowym.

programista

Jak przedstawia wykres, obecnie najlepiej na świecie opłacana jest znajomość Clojure. To nowy, bo stworzony w 2017 roku przez Ricka Hickeya język programowania ogólnego przeznaczenia. Działa na maszynie Javy, jest szybki, dobrze przemyślany i nadaje się do programowania zarówno funkcyjnego, jak i współbieżnego.

Wysoko ceniona i dobrze opłacana jest także znajomość języka programowania Rust. Powstał on 11 lat temu, od 8 lat jest w posiadaniu Fundacji Mozilli, która po dziś dzień dba o jego nieustanny rozwój, a jego pierwsza stabilna wersja została wypuszczona dopiero 2 lata temu. Rust to język ogólnego przeznaczenia, który ma w praktyce być szybszą i lepszą alternatywą dla języka C.

Trzecie miejsce zestawienia zajął Elixir, który jest niewiele słabiej opłacany niż Rust. Język ten istnieje od pięciu lat i jest językiem funkcyjnym oraz współbieżnym. Ma składnię podobną do Ruby, działa na maszynie Erlanga i korzysta z niego między innymi WhatsApp.

Czwarte miejsce należy ex aequo do F# i Go. Język F# istnieje od 13 lat, został stworzony przez informatyka z Microsoftu i jest jednym z najbardziej nowoczesnych oraz wydajnych języków funkcyjnych. Mimo że jest technologią typu open-source, stanowi część platformy.NET. Umożliwia także pisanie kodu imperatywnego i obiektowego.

Język Go, istniejący od 8 lat i utworzony przez programistów z Google, również zdobywa coraz większą popularność. Łączy on prostotę użycia języków dynamicznych z wydajnością języków kompilowanych. Z tego powodu jest coraz bardziej popularny i aktualnie swoje aplikacje webowe przepisali na niego chociażby tacy giganci, jak Dropbox, YouTube czy wirtualnapolska.pl.

Najbardziej opłacalne języki programowania w Polsce

Jak sytuacja programistów wygląda w Polsce przedstawia Raport płacowy Sedlak & Sedlak dla branży IT 2017. W badaniu wzięło udział 87 firm, które przekazały dane o ponad 9 tys. pracownikach. Na największe zarobki mogą liczyć starsi programiści Javy – nawet do 12 tys. zł brutto, dalej – C i C++ (zarobki rzędu do 11,5 tys. zł brutto). Na trzecim miejscu z kolei znajdują się programiści aplikacji mobilnych.

programista

Najwięcej zarabiają starsi programiści z Mazowsza – mediana ich wynagrodzenia wśród osób zatrudnionych na umowę o pracę wynosi 11 tys. zł brutto miesięcznie. Na Śląsku z kolei mogą oni liczyć na 8,2 tys. zł brutto.

programista

programista

Na większe zarobki mogą również liczyć starsi programiści zatrudnieni na kontrakcie (średnio 12 tys. zł brutto miesięcznie) w porównaniu do osób zatrudnionych na umowę o pracę (ok. 10 tys. zł brutto miesięcznie). Podobnie wygląda sytuacja młodszych programistów, choć w ich przypadku osoby zatrudnione na umowie o pracę zarabiają miesięcznie średnio jedynie 1200 zł brutto mniej od tych zatrudnionych na kontrakcie.

Wywiad z Piotrem Prądzyńskim (Programista Na Swoim)

Czy warto założyć firmę programistyczną? O to zapytaliśmy się Programisty na swoim, czyli Piotra Prądzyńskiego.

   

Piotrze, od jak dawna prowadzisz działalność gospodarczą? Czy widzisz znaczną poprawę Twoich finansów dzięki prowadzonej firmie?

1 listopada 2017 roku minęły dokładnie dwa lata od kiedy wystartowałem z jednoosobową działalnością gospodarczą. Od razu zaznaczę, że założenie firmy wiązało się w moim przypadku głównie z przejściem na samozatrudnienie. Taki zabieg przeprowadza się głównie pod kątem optymalizacji finansowej, więc samo jego zastosowanie powoduje, że “do kieszeni” wpada więcej pieniędzy przy tych samych kosztach pracodawcy. Szerszą analizę opłacalności opublikowałem jakiś czas temu na moim blogu.

Prowadzenie przedsiębiorstwa może niektóre osoby przerazić. Jakie widzisz szanse i zagrożenia dla młodego programisty, jeśli chodzi o prowadzenie własnej działalności gospodarczej?

Z mojej perspektywy (etatowca, który przeszedł na samozatrudnienie) mogę powiedzieć, że taka zmiana faktycznie nie jest dla każdego. Przede wszystkim trzeba uświadomić sobie, że przejście na samozatrudnienie to nie tylko więcej pieniędzy w kieszeni. Wiąże się z nim znacznie więcej konsekwencji.

Napisałem o tym szerzej na blogu i zachęcam do zapoznania się z tym artykułem. W tym miejscu powiem tylko, że główną rzeczą, którą musi przemyśleć osoba decydująca się podjąć współpracę w formie B2B są dni wolne. O ile na etacie mamy szeroki wachlarz płatnych urlopów, o tyle przerwa w pracy przedsiębiorcy wiąże się zazwyczaj z brakiem przychodów w tym czasie. Analogicznie sytuacja wygląda z chorobowym.

Jaki masz plan rozwoju firmy na najbliższy czas?

Aktualnie dochody firmy opierają się w głównej mierze na jednym dużym kontrakcie. Stopniowo staram się jednak pracować nad własnymi produktami i generowaniem bardziej pasywnych źródeł dochodu. Na razie jednak żadnych konkretów.

Najbardziej popularne na świecie technologie

programista  

Jakie są najbardziej popularne, najczęściej stosowane i najlepiej opłacane technologie na świecie? Odpowiedzi na to pytanie dostarcza tegoroczna wersja raportu „Developer Survey 2017” przeprowadzanego rokrocznie przez największy serwis społecznościowy zrzeszający programistów z całego świata – Stack Overflow na próbie ponad kilkudziesięciu developerów z całego świata.

Jakie języki programowania warto znać?

Aktualnie na świecie wśród profesjonalnych programistów najczęściej używanym językiem jest JavaScript – zdobywa on pierwsze miejsce w zestawieniu popularności języków programowania niezmiennie od pięciu lat. Drugie miejsce z kolei należy do języka SQL, a trzecie – do Javy. Co ciekawe, w zestawieniu tym pierwszy raz od pięciu lat Python zajął wyższe miejsce od PHP. Nadal dość wysokie pozycje zajmują również języki z grupy języków C.

Jeśli zaś chodzi o wynagrodzenie, to na najlepsze zarobki mogą liczyć developerzy biegle posługujący się takimi językami, jak: Clojure, Rust, Elixir, F#, Go czy Perl, chociaż to zależy od kraju. W Polsce na najwyższe zarobki mogą liczyć programiści Javy – nawet do 12 tys. zł brutto, dalej – C i C++ (zarobki rzędu do 11,5 tys. zł brutto) i w końcu programiści aplikacji mobilnych, .NET/C# i PHP. Więcej na temat języków programowania pisałam tu (link do art. o językach).

Jakie technologie królują w branży IT?

Jak z kolei wygląda sytuacja jeśli chodzi o frameworki, biblioteki i pozostałe technologie? Wśród 27,5 tys. ankietowanych użytkowników serwisu StackOverflow, którzy odpowiedzieli na to pytanie, najbardziej popularne technologie, to: AngularJS i Node.js, czyli otwarte frameworki oparty na języku programowania JavaScript, które są wspierane oraz firmowane przez Google i wspomagają tworzenie i rozwój aplikacji internetowych na pojedynczych stronach. Zebrały one niemal po 30% głosów ankietowanych każdy.

Mocną trzecią pozycję zajmuje .NET Core, czyli następca .NET frameworka działającego jedynie na platformie Windows. Pierwszy raz .NET Core został wypuszczony w 2016 roku i – co odróżnia go od poprzednika – działa on na wielu platformach. Ten darmowy i udostępniany w systemie open-source framework zdobył niemal 20% głosów ankietowanych.

programista

Następne miejsca zajmują kolejno: React, czyli biblioteka JavaScriptu, która wykorzystywana jest do tworzenia interfejsów graficznych aplikacji internetowych i została stworzona przez programistę Facebooka (niecałe 13%), framework mobilny Cordova (prawie 7%) oraz Firebase, Xamarin, Hadoop i Spark (zaledwie po kilka procent odpowiedzi ankietowanych).  

Z jakich baz danych najchętniej korzystają developerzy z całego świata?

Wśród baz danych prym wiedzie mySQL, czyli system do zarządzania relacyjnymi bazami danych dostarczany przez amerykańskie przedsiębiorstwo Oracle (niecałe 44% wskazań ankietowanych). Drugą najpopularniejszą technologią jest powstały w 1989 roku SQL Server, czyli microsoftowski system do zarządzania bazą danych (34% odpowiedzi ankietowanych). Z kolei trzecie miejsce przypadło do wolnodostępnego systemu zarządzania relacyjnymi bazami danych PostgreSQL – 23% wskazań.

Nieco mniej, bo 22% odpowiedzi ankietowanych i tym samym czwarte miejsce w zestawieniu, odnotował SQLite, czyli kolejny system zarządzania bazą danych a jednocześnie biblioteka C taki system implementująca i obsługująca język programowania SQL. Niecałe 19% odpowiedzi uzyskał system MongoDB, czyli wydajny, otwarty nierelacyjny system z 2009 roku służący do obsługi baz danych pracujący w języku C++.

programista

Szóste miejsce zestawienia należy do systemu zarządzania bazami danych Oracle Database, stworzonego przez Oracle i działającego w standardowym języku zapytań SQL na zasadzie komercyjnej licencji (14% wskazań). Niewiele mniej wskazań uzyskał Redis (Remote Dictionary Server), czyli pamięciowa baza NoSQL przechowująca dane jako pary klucz-wartość. Najmniej wskazań ankietowanych zdobyła zaś baza Cassandra, czyli rozproszona baza danych napisana w Javie.

Jakich platform developerzy używają najchętniej i najczęściej?

Jeśli zaś chodzi o najczęściej i najchętniej używane platformy wśród programistów również obyło się bez większych zaskoczeń. Jedna trzecia respondentów używa najczęściej Windows Desktop (31% wskazań ankietowanych). Na drugim miejscu znajduje się aktualnie największa platforma oferująca usługi w modelu chmury, jaką jest Amazon Web Services (26% odpowiedzi). O jej popularności świadczy fakt, że korzystają z niej takie topowe serwisy, jak AirBnB, Netflix czy Pinterest, dostarcza ona również wielu narzędzi dla programistów.

programista

Trzecią platformą popularną wśród developerów jest Linux Desktop – najczęściej kojarzony jedynie z pecetami, mimo że jest liderem również m.in. wśród systemów mobilnych – i zdobył on nieco ponad 24% głosów ankietowanych. Zaraz za Linuxem, z 22% głosów, znajduje się popularny aktualnie Android. Kolejne miejsca należą do Mac OS-a (15% wskazań ankietowanych), iOS-a (14% odpowiedzi), WordPressa – aktualnie najpopularniejszej platformy dla blogów i sektora e-commerce (12% wskazań ankietowanych) a także Raspberry Pi (nieco ponad 11% głosów) i Microsoft Azure (10,5%).

O rozwijaniu umiejętności programistycznych

Jeśli zdecydowałeś się na zostanie programistą to pamiętaj, że branża IT ma to do siebie, że w błyskawiczny sposób się rozwija. To, co było aktualne miesiąc temu niekoniecznie może być w chwili obecnej. Z tego rozdziału dowiesz się jak dbać o rozwój swoich umiejętności.

programista  

Każdego dnia pojawia się nowy framework JavaScript (https://dayssincelastjavascriptframework.com/) i nikt nie jest w stanie nauczyć się ich wszystkich. W obecnych czasach jest dostępnych tak dużo języków programowania i poszczególnych frameworków, że bardzo ważne jest postawienie na konkretny zestaw języków/narzędzi i zgłębianie wiedzy na ich temat. Jeśli chcemy się znać na wszystkim to… nie będziemy się znać na niczym.

Wybór nawet języka mało popularnego, ale zostanie w nim ekspertem, zwiększy mocno nasze szanse na rynku pracy (chyba że wybierzemy zbyt niszowy język).

Kiedyś jedynym źródłem wiedzy były książki. Nadal są bardzo ważne, ale problem ich jest taki, że bardzo szybko się dezaktualizowują. Ostatnio bardzo popularne się robią screencasty na dany temat, które przekazują wiedzę w sposób multimedialny i bardziej interaktywny niż książki. Warte polecenia są także blogi i newslettery (np. https://tympanus.net/codrops/collective/, https://www.smashingmagazine.com/category/web-development-reading-list). Mamy też twittera, StackOverflow, meetupy i konferencje. Nigdy nie było tyle wiedzy dostępnej za darmo, jak teraz. Sztuką jest wybranie tego, co nam się przyda.

Wiedza teoretyczna to jedno, ale umiejętność jej wykorzystania jest jeszcze ważniejsza. Dlatego nie ma lepszego sposobu na rozwijanie umiejętności niż tworzenie projektów. Mogą to być nawet proste rzeczy wykorzystujące nową wiedzę i techniki. Najważniejsze jest by zdobytą wiedzę wdrażać i włączać do swojego arsenału, bo jak nie będziemy z niej korzystać, to zapomnimy i nie utrwalimy jej sobie.

Idealnie do tego nadają się w tym celu zadania typu Kata, czyli ćwiczenia polegające na napisaniu prostego lub bardziej złożonego algorytmu, który rozwiązuje dany problem. Powtarzając dane ćwiczenie (np. raz na miesiąc) – kod po kilku próbach będzie lepszy niż za pierwszym razem, napiszemy go szybciej i z mniejszą ilością błędów. Do takich ćwiczeń możemy też za każdym razem używać innego narzędzia (np. do testowania) by poznać w praktyce więcej narzędzi. Przykładowym zbiorem Kata ze screencastami jest: https://laracasts.com/series/code-katas-in-php.

O  szukaniu mentora

W każdej dziedzinie życia szukamy osób mądrzejszych od nas, od których moglibyśmy się dużo nauczyć, znacznie szybciej niż samemu, popełniając też przy tym mniej błędów. I o ile można zostać bardzo dobrym programistą samoukiem, to mogąc podglądać doświadczonego programistę/programistów, jest nieocenionym doświadczeniem dla początkujących i średniozaawansowanych programistów.

I nie chodzi tu tylko o umiejętności stricte techniczne, ale też umiejętności miękkie, planowanie pracy, rozwiązywanie problemów i szukanie rozwiązań. Są to umiejętności, których nie nauczymy się z książek, a jedynie z obserwacji, bądź na swoich błędach.

W firmach programistycznych Senior Developerzy, a w szczególności Team Leaderzy są wręcz odpowiedzialni za wdrażanie i rozwój Juniorów, przekazanie wiedzy i know-how. Posiadanie własnego mentora da Ci większą pewność siebie, bo będziesz zawsze mógł zapytać o zdanie, wybór rozwiązania, a także dowiesz się rzeczy, których nie przewidziałeś.

Natomiast jeśli pracujesz jako freelancer to naturalnymi kandydatami na mentorów są osoby, które tworzą różnego rodzaju kursy szkoleniowe. Osobiście mogę polecić m.in.:

  • Jeffrey Way – https://laracasts.com – tworzy jeden z największych serwisów wiedzy o web developmencie, szczególnie o Laravelu
  • Adam Wathan – https://adamwathan.me/ – propagator TDD, twórca screencastów i prowadzący ciekawych technicznych podcastów
  • Jason McCreary – https://twitter.com/gonedark – twórca narzędzia Laravel Swift i kursu Getting Git! – mistrz Gita od którego można się bardzo dużo nauczyć
  • David Heinemeier Hansson – https://twitter.com/dhh – twórca frameworka RubyOnRails i właściciel agencji 37signals

I wielu, wielu innych… Każdy jest aktywny na twitterze, także zobacz kto jest aktywny w środowisku, z którego korzystasz, i wzoruj się na nich.

O doszkalaniu się we własnym zakresie

Uncle Bob w swojej książce “Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów” sugeruje, że profesjonalny programista powinien doszkalać się we własnym zakresie w wymiarze 20 godzin tygodniowo. W mojej opinii jest to bardzo trudne do realizacji i najlepiej zacząć od mniejszego wymiaru, powiedzmy 5 godzin w sobotę i stopniowo go zwiększając (np. do 10h).

Autor i legenda ruchu Agile motywuje takie podejście tym, że w czasie pracy mamy wykonywać właściwą pracę dla naszego pracodawcy, za którą dostajemy pieniądze. A uczyć i rozwijać powinniśmy się w swoim prywatnym czasie, dzięki czemu nasza wartość i umiejętności będą stale rosły.

To jest tak samo jak ze studiami. Jeśli zakładasz, że studia nauczą Cię wszystkiego i przygotują do zawodu to po ich skończeniu nie znajdziesz tak ciekawej i dobrze płatnej pracy, jak koledzy którzy poświęcali wieczory i weekendy na doskonaleniu swoich umiejętności. Tak samo jest już w etapie późniejszym, gdy jesteś zawodowym programistą.

Bycie programistą ma wiele zalet, ale niektóre z nich są także wadami. Technologie cały czas się zmieniają, rozwijają i w zasadzie co 3-5 lat wszystko jest wywrócone do góry nogami. Jeśli będziesz polegać tylko na wiedzy i umiejętnościach, które nabędziesz w trakcie pracy, a firma nie będzie podążać za nowinkami, możesz mieć bardzo duże zaległości do nadrobienia, co równocześnie osłabia Twoją pozycję na rynku.

Dlatego kwestia doszkalania się we własnym zakresie to nie tylko kwestia rozwoju umiejętności, ale też bezpieczeństwa.

O prowadzeniu konta na github

Większość pracodawców w sektorze IT przykłada mniejszą wagę do CV, a większą do umiejętności i jakości kodu. Najlepszym sposobem by to sprawdzić jest właśnie konto na GitHubie. Możesz tam posiadać własne projekty, forki innych repozytoriów, które chciałeś usprawnić, a także tzw. playgroundy, czyli projekty, które zawierały jakiś projekt i patrzyłeś jak go można wykorzystać.

Konto na GitHubie (a także na StackOverflow.com) jest Twoją najlepszą wizytówką. Doświadczony programista bardzo szybko będzie mógł przeanalizować jakość kodu, zgodność ze standardami i Twoje umiejętności. Nie bój się mieć tam rozgrzebanych projektów. Znacznie lepiej wygląda konto, gdzie jest 10 projektów w różnym stopniu zaawansowania, niż 1 projekt, który jest dopracowany. Jeśli pokazujemy, że mamy tylko 1 projekt godny pokazania, to u pracodawcy zapali się lampka ostrzegawcza. Dlatego myślę, że przyzwoitym minimum jest przynajmniej 5, pokazujących wachlarz Twoich możliwości.

Ważnym aspektem tutaj jest również kwestia kontrybucji do środowiska OpenSource. Jeśli programista poświęca swój wolny czas by rozwijać projekty innych, to możemy zakładać, że będzie mu również zależało na ulepszaniu kodu wewnątrz firmy. I takim sposobem zdobywamy kolejny punkt, który może przesądzić o naszym zatrudnieniu.

Wywiad z Maciejem Aniserowiczem

Na sam koniec zostawiamy Ci ostatnie wskazówki od Macieja Aniserowicza z devstyle.pl

 

Od jak dawna budujesz swój personal branding i jak to się przekłada na zamówienia?

Pojęcie “personal brand” to dla mnie po prostu szczere pokazywanie siebie i swojej drogi. Nie staram się tego “budować” – staram się dążyć do swoich celów, jednocześnie publicznie pokazując decyzje i ich konsekwencje, sukcesy i porażki. Inni mogą z tego czerpać inspirację oraz uczyć się na moich, a nie swoich, błędach. Lub skorzystać ze sprawdzonych rozwiązań.

TO robię od ponad dekady. I na pewno ma to wpływ na sprzedaż moich produktów, zarówno tych “dla mas” (książka) jak i “premium” (szkolenia). W ten sposób zbudowałem swoją rozpoznawalność, a co za tym idzie – popyt na moją ofertę.

Nie polecam jednak skupiania się na marce/brandzie tylko na potrzeby sprzedaży i marketingu. Najważniejsze to żyć w zgodzie ze sobą.

Co byś poradził programiście, który chce porozmawiać z szefem na temat podwyżki? Czym powinien się wykazać na takiej rozmowie?

Temu tematowi poświęciłem cały rozdział w mojej książce “Zawód: Programista” :). Najważniejsze to wiedzieć, czego się potrzebuje. Tak naprawdę potrzebuje i chce, nie ograniczając się tylko i wyłącznie do zwiększenia wypłaty. Często pieniądze mogą być najtrudniejszym do uzyskania zasobem. O wiele łatwiejsza do uzyskania może okazać się praca zdalna (czyli: czas), zredukowanie liczby pracujących godzin (czas!) albo nawet budżet konferencyjny czy szkoleniowy.

Możliwości mamy dużo i warto zastanowić się, co na dłuższa metę da najwięcej korzyści. Mi zmniejszenie czasu pracy z 5 do 4 dni w tygodniu dało więcej niż 100% podwyżki, bo dzięki temu mogłem poświęcić więcej sił na własne inicjatywy, co w dalszej perspektywie pozwoliło na całkowitą rezygnację z pracy dla kogoś.

Trzeba też zaakceptować fakt, że taka rozmowa to negocjacje. Sztuka negocjacji nie jest prosta, ale można się tego po prostu nauczyć. Warto zainwestować kilkadziesiąt złotych i kilka wieczorów, by przeczytać jedną czy dwie książki na ten temat. To otwiera oczy.

Jak najlepiej rozwijać swoje umiejętności programistyczne?

W praktyce :). Zawsze polecam rozwój poprzez rozwiązywanie konkretnych problemów. Warto wymyślić sobie jakiś projekt, a następnie go zrealizować przy pomocy wybranej technologii.

Przestrzegam przed ciągłą nauką “na zapas”. W dzisiejszych czasach mnogość kursów, filmów, książek i innych materiałów wciąga w pułapkę ciągłego gromadzenia wiedzy. Czytamy, oglądamy, biernie chłoniemy informacje, ignorując umiejętność zastosowania ich w realnych zastosowaniach. To marnowanie czasu i pieniędzy.

Bardzo namawiam również do poszerzania swoich kompetencji w innych dziedzinach, a nie tylko programowaniu. Warto wyjrzeć zza monitora, odłożyć klawiaturę i zainteresować się tzw. “soft skills”, czyli po prostu umiejętnościom komunikacji, pracy z ludźmi, rozwiązywaniu konfliktów itd. Ta wiedza jest uniwersalna i przyda się nie tylko w pracy programisty, ale także w życiu codziennym.

Zobacz również:

Poradnik dla juniorów o szukaniu pracy w IT

Najlepsze praktyki code review

Artykuł powstał dzięki:

Coders Lab

Oferuje bardzo intensywne kursy typu bootcamp, umożliwiające przekwalifikowanie I (i) rozpoczęcie pracy w branży IT. Coders Lab to ponad 850 absolwentów, z których 82% pracuje w nowym zawodzie w branży IT. Kursy opracowywane są przez praktyków programowania w zgodzie z bieżącymi potrzebami rynku, a tryb kursu wzorowany jest na najlepszych praktykach szkół języków obcych. Coders Lab pomaga absolwentom w procesie zmiany zatrudnienia za pomocą programu Nowa Praca w ramach, którego współpracuje z blisko dwustoma firmami partnerskimi z całej Polski

Polecane artykuły

Zapisz się do naszego newslettera

Wyślij mi newsletter (Możesz się wypisać w każdej chwili).

email marketing powered by FreshMail
 

Subscribe to our newsletter

Send me your newsletter (you can unsubscribe at any time).

email marketing powered by FreshMail
 

Subscribe to our newsletter

email marketing powered by FreshMail