CodeGym Tesla

Poziom 6

Ścieżka programisty

Zdobywasz kolejny poziom! - 1

Moja znajoma często pyta, dlaczego programiści zawsze są tacy radośni. Odpowiedź jest prosta i zarazem zaskakująca: tak wyglądają ludzie, którzy kochają swoją pracę i mają dużo pieniędzy.

Witaj w świecie programowania!

Programiści zarabiają dobre pieniądze

Pozwól, że zacznę od tego, ile można zarobić jako programista. Opowiem, jak kształtuje się to wynagrodzenie oraz jakie miejsca pracy są najbardziej opłacalne, a jakie najmniej. Pewnie dotarły już do Ciebie różne sprzeczne informacje na ten temat, przez co łatwo się pogubić.

Głównym czynnikiem, decydującym o wysokości pensji programisty, są jego umiejętności. Oraz oczywiście to, gdzie on pracuje. Różnice w wysokości zarobków między dwoma programistami mogą być dziesięciokrotne, nawet jeśli ich kwalifikacje są identyczne!

Twoje umiejętności nie zmieniają się znacząco z dnia na dzień. Nie możesz w ciągu miesiąca stać się dwa razy bardziej doświadczony/a i dzięki temu podwoić wysokość swojej pensji. To, co możesz zrobić w ciągu miesiąca, to zmienić miejsce pracy i dostawać dwa razy więcej pieniędzy za dokładnie te same umiejętności, co wcześniej. Nigdy nie zapomnę, kiedy moje zarobki potroiły się w ciągu dwóch miesięcy, ale może opowiem o tym innym razem.

Teraz porozmawiajmy o najlepszych miejscach pracy dla programisty.

Na wysokość pensji w danej firmie najbardziej wpływają trzy następujące czynniki:

1) to, czy firma jest producentem jakiegoś oprogramowania, np. oprogramowanie jest jej flagowym produktem,

2) czy firma jest skupiona na krajowym, czy międzynarodowym rynku,

3) czy firma jest własnością krajową, czy zagraniczną.

Jeśli zależy Ci na tym, by zarabiać więcej, koniecznie zwróć uwagę na lokalizację Twojego potencjalnego miejsca zatrudnienia. Na przykład, jeśli mieszkasz w Dresden, możliwe, że rozwijając oprogramowanie zarobisz dziesięć razy mniej niż Twoja znajoma z Nowego Jorku. W takim przypadku powyższe czynniki mają ogromne znaczenie.

Trochę danych liczbowych

Skoro zarobki różnią się w poszczególnych częściach świata, proponuję przyjąć wynagrodzenie starszego programisty (ang. senior java developer) z 5-letnim stażem jako punkt wyjścia i nazwać je „pięcioletnim maksimum”. Wszystkie poniższe dane liczbowe będą podane jako procent od tej kwoty. Oto przykładowe wynagrodzenia w odniesieniu do „pięcioletniego maksimum” w różnych miastach na świecie:

Miasto Starszy Programista, 5-letnie doświadczenie
San Francisco (USA) $160 000
Nowy Jork (USA) $125 000
Londyn (UK) $120 000
Berlin (Niemcy) $110 000
Kijów (Ukraina) $40 000
Bengaluru (Indie) $31 000

Poniżej możesz zobaczyć, ile zarabia Starszy Programista z 5-letnim doświadczeniem w zależności od tego, dla jakiej firmy pracuje:

Poziom Zarobki, % „pięcioletniego maksimum” Opis
1 5%-10% Najniższy poziom płac reprezentują firmy, których głównym obszarem działań nie jest branża IT. Są to firmy państwowe, zazwyczaj skupione wokół rynku krajowego. Jako przykład można podać dział IT urzędu podatkowego czy innej organizacji rządowej.
2 30% Poniżej średniej – działy IT różnych działalności pozarządowych, np. banków itp.
3 50% Średnia – firmy tworzące oprogramowanie.
4 80% Powyżej średniej – firmy tworzące oprogramowanie dla zagranicznych klientów.
5 100% Na samym szczycie – firmy, które mają zagranicznych właścicieli i tworzą oprogramowanie dla zagranicznych klientów. Takich firm jest niewiele. Rzadko mają one wakaty i bardzo trudno jest się do nich dostać. Czasami jednak się to udaje.
Zdobywasz kolejny poziom! - 2

Co w tym wszystkim jest zaskakujące?

To, że połowa wszystkich programistów pracuje dla firm na Poziomach 1 i 2.

Z czego to wynika?

Na Poziomach 3 i 4 są setki wakatów. W tych firmach zarobisz więcej i będziesz miał/a lepsze warunki pracy.

Znam dwóch młodszych programistów (ang. junior Java developer): jeden z nich dostał pracę za 3% „pięcioletniego maksimum” (w firmie na Poziomie 1), a drugi za 30% „pięcioletniego maksimum” (Poziom 4). Po co zarabiać mniej?

Zapotrzebowanie na dobrych programistów przekracza podaż, także praca dla firm, które mało płacą, nie ma sensu!

Wniosek 1: Średnia pensja programistów Javy (z jakimkolwiek doświadczeniem) to 40%-50% „pięcioletniego maksimum”.

Wniosek 2: Twoje średnie wynagrodzenie po 5 latach pracy wzrośnie do około 90%-110% „pięcioletniego maksimum”, jeśli wybierzesz pracę w firmach na Poziomach 3/4 zamiast w tych na Poziomach 1/2.

Ile możesz zarobić, jeśli nie będziesz się zatrzymywać?

W dodatku, jeśli wciąż będziesz podnosił/a swoje kwalifikacje i inwestował/a w naukę programowania, to Twoje zarobki będą rosły następująco (zaczynając od dziś):

Zdobywasz kolejny poziom! - 3

Plan

0-3 miesiące (Student/ka)

O programowaniu wiesz niewiele. Być może słyszałeś/aś o tym co nieco w liceum lub na uczelni, ale Twoja wiedza jest tylko powierzchowna.

Twoje zadanie – Naucz się programowania w języku Java.

Twój cel – Zdobądź pracę jako młodszy programista Java w firmie na co najmniej 3 Poziomie.

Pamiętaj, że przez pierwsze trzy miesiące możesz nic nie zarobić. Skup się tylko na nauce Javy.

Pomyśl o tym, że w przyszłości, kiedy będziesz miał/a już rodzinę i mnóstwo zobowiązań finansowych, będzie Ci bardzo trudno zmienić swoją pracę. A jeśli zdecydujesz się to zrobić, będziesz musiał/a najpierw zaoszczędzić dużo pieniędzy, aby sfinansować zmianę swojej branży. Najważniejsze w karierze to unikać głupich błędów.

3-15 miesięcy (Młodszy Programista)

W tym momencie powinieneś/powinnaś już pracować jako programista Java. Z każdym dniem coraz lepiej rozumiesz programowanie, a Twoje doświadczenie rośnie. Ale to jeszcze nie czas na odpoczynek. Zanim spoczniesz na laurach, musisz się jeszcze wiele nauczyć.

Twoje zadanie – Ucz się technik, których będziesz potrzebować jako średniej klasy programista. Cóż to za technologie? Świat ciągle się zmienia. Pozwól, że dam Ci radę. Znajdź w sieci jakieś ogłoszenia o pracę jako programista Java i przejrzyj wymagania. Polecam też sięgnąć po książkę Bruce'a Eckela „Thinking in Java. Edycja polska”.

Twój cel w pierwszym roku pracy jako młodszy programista to podnieść swe kwalifikacje do średniego poziomu. Nikt nie mówił, że będzie łatwo, ale dla osób zorientowanych na cel jest to możliwe. Twoje zarobki wzrosną wtedy do 40% „pięcioletniego maksimum” ($64000 dla San Francisco i Londynu, $12000 dla Bengaluru).

Drugi rok pracy jako programista (średniej klasy programista Java, Poziom 1)

Dołożyłeś/aś wszelkich starań i teraz jesteś średniej klasy programistą Java. Twoja pensja w wysokości 50% wynagrodzenia starszego programisty Java pozwala Ci całkiem dobrze żyć. Dostałeś/aś w pracy kilka dużych zadań, dzięki czemu znacząco wzrosło Twoje doświadczenie. Za dwa bądź trzy lata zostaniesz starszym programistą Java. Nie śpiesz się. Bądź co bądź, Twoje zarobki nie wzrosną w jednej chwili.

Twoje zadanie – Naucz się wzorców projektowych i przeczytaj „Kod doskonały” McConnella. Popraw jakość własnego kodu i ćwicz się w pracy grupowej. Możesz też przyjąć zasadę, że czytasz miesięcznie jedną książkę o tematyce IT. Za cztery lata będziesz mądrzejszy/a od swych współpracowników aż o 50 książek. Nie odkładaj tego wszystkiego na później, bo kiedy na przykład założysz rodzinę, już nigdy nie będziesz miał/a tyle wolnego czasu.

Twój cel – Wybierz sobie kilka technologii, w których chcesz się specjalizować jako starszy programista. Przecież nie możesz być dobry/a we wszystkim. Dobrym pomysłem jest zostanie ekspertem w jakiejś wąskiej dziedzinie.

Zdobywasz kolejny poziom! - 4

Trzeci rok pracy jako programista (średniej klasy programista Java, Poziom 2)

Jesteś teraz średniej klasy doświadczonym programistą i chciałbyś/chciałabyś zostać starszym programistą. To zarówno przyjemne, jak i prestiżowe. Twoja pensja wzrośnie do 60% „pięcioletniego maksimum” ($18000 w Bengaluru, $24000 w Kijowie, $66000 w Berlinie, $75000 w Nowym Jorku). Od tego momentu zapotrzebowanie na takich profesjonalistów, jak Ty, przekracza podaż. Zawsze będziesz w stanie znaleźć pracę w ciągu kilku dni i raczej nie będziesz już nigdy zarabiać mniej niż teraz. Oczywiście, jeśli nie zrobisz niczego głupiego.

Twoje zadanie – Kontynuuj naukę wybranych przez siebie technologii. Nadal ciężko pracuj, nie dla dobra Twojego pracodawcy, ale dla Twego własnego. Poproś o możliwość uczestniczenia w projektach z zaawansowaną technologią, na przykład Big Data. Tak czy siak spędzasz w biurze osiem godzin dziennie, możesz w tym czasie zarobić troszkę mniej, ale za to zyskać wartościowe doświadczenie, które przyda Ci się w przyszłości.

Twój cel – Zdobądź nową pracę. Wszędzie znajdziesz fajnych ludzi. W nowej pracy na pewno będziesz brać udział w nowych projektach i nie ominie Cię praca z nowymi technologiami. Nie przywiązuj się za bardzo do starego biurka. Jeśli nadal pracujesz w firmie na Poziomie 3, zacznij myśleć nad przeniesieniem się do Poziomu 4. Piąty poziom, jakkolwiek atrakcyjny by się nie wydawał, nadal jest poza Twoim zasięgiem.

Czwarty rok pracy jako programista (Starszy Programista Java, Poziom 1)

Zostałeś/aś Starszym Programistą. Gratuluję. Być może czujesz, że na to nie zasłużyłeś/aś. Wciąż gratuluję! To, czy jesteś wart/a tego stanowiska, nie ma teraz znaczenia. Liczy się to, czy będziesz jego wart/a w przyszłości.

Myślę, że zgadzasz się ze mną, że lepiej jest równać w pracy do poziomu wyżej, niż niżej.

Mam nadzieję, że pamiętasz o mojej radzie, by czytać jedną książkę miesięcznie? Każdy/a student/ka zazdrości Ci teraz Twojej wiedzy. Możliwe, że nawet się o nią modli. Pomyśl tylko: zarabiasz dobre pieniądze, blisko 90% „pięcioletniego maksimum”. Pewnie wciąż jesteś młody/a. Cały świat jest na wyciągnięcie Twoje ręki.

Twoje zadanie – Przemyśl wybrane przez siebie technologie. Może chciałbyś/chciałabyś zmienić swą specjalizację. Wszystko szybko się zmienia: świat, technologie oraz Twoja wiedza w ostatnich latach. To, co wybierzesz, zostanie z Tobą na następne lata. Najwyższy czas, by wybrać to, co naprawdę lubisz.

Twój cel – Wybierz obszar swojego dalszego rozwoju. Wybór jest ogromny. Zbyt ogromny, by to wszystko opisać, ale spróbuj wybrać teraz. Mała zmiana dzisiaj tworzy wielką zmianę w przyszłości.

Piąty rok pracy jako programista (Starszy Programista Java, Poziom 2)

Masz już wizję swojej przyszłości i pracujesz po to, by zrealizować swe marzenia. Przy odpowiednim wyborze specjalizacji i dzięki Twojej motywacji pierwsze efekty zobaczysz już niedługo. Gratuluję. To ekscytujące, że kolejna osoba na świecie jest teraz zadowolona ze swej kariery.

Mam dla Ciebie dobrą radę: ludzie często przeceniają to, co mogą osiągnąć w ciągu roku i nie doceniają tego, co mogą osiągnąć za pięć lat. Pomyśl o ostatnich pięciu latach swojego życia. Czyżbym się mylił?

Twoje zadanie – Nie podejmuj niewłaściwych decyzji. Jeśli chodzi o Twoje cele, nie możesz być rozkojarzony/a.

Twój cel – Wybierz jakiś obszar i idź naprzód. Myślałeś/aś, że to już koniec? Pamiętasz moment, kiedy kończyłeś/aś szkołę? To nie jest koniec – to dopiero początek.

Przyszła specjalizacja

Zdobywasz kolejny poziom! - 5

Możesz zostać ekspertem technicznym (czołówka branży), menagerem (niżej w branży) bądź profesjonalnym/niezależnym konsultantem (środek branży). To zależy tylko od Twoich preferencji.

Kariera programisty

Programowanie różni się od innych profesji. Będąc programistą, nie musisz starać się o posadę menagera, by dobrze zarabiać. W wielu przypadkach starszy programista zarabia nawet więcej, niż jego szef. Im więcej zyskasz doświadczenia, tym szybciej Twoje relacje z kierownictwem przejdą od „pracownik-menager” do „supergwiazda-jej agent”. Programiści, którzy znają swoją wartość, mogą wybierać najbardziej interesujące ich projekty i starać się o najciekawsze stanowiska pracy. Chwalmy tych, którym udało się tego dokonać!

Co trzeba zrobić, by najbardziej pożądanym programistą na świecie? Musisz zyskać duże doświadczenie w najnowszych, najbardziej pożądanych technologiach. Jak to zrobić? Czytaj dalej.

Zdobywasz kolejny poziom! - 6

Kiedy dostaniesz swoją pierwszą pracę jako programista, wydarzą się dwie rzeczy (możliwe, że nawet nie będziesz ich świadomy/a).

1. Bardzo szybko zdobędziesz doświadczenie w prawdziwych projektach. Rok pracy jako programista da Ci znacznie większą wiedzę i umiejętności niż pięć lat studiów. To właśnie to, o czym piszą w ogłoszeniach o pracę w branży IT: „Wymagane trzyletnie doświadczenie w pracy jako programista Java”.

2. Przez osiem godzin dziennie będziesz uczył się nowych technologii i jeszcze Ci za to zapłacą. Trudno jest nie zauważyć tych możliwości. Często są one tak ważne, że chętnie pracowałbyś/pracowałabyś za darmo, aby je zdobyć, albo nawet za nie zapłacił/a. Jeśli mądrze wybierzesz swoje projekty, szybko będziesz się wspinać po szczeblach kariery.

Co mam wybrać?

Jeśli nie masz pojęcia, które technologie będą się liczyły w przyszłości, możesz zacząć od „lubię to” i „nie lubię tego” lub od „to jest modne” i „to nie jest modne”. Albo będziesz miał/a szczęście, albo nie. Lepiej jest jednak przewidzieć, gdzie się trafi później.

Jest wiele sposobów na to, w jaki sposób programista będzie się rozwijać. Wymienię kilka z nich i powiem, co o nich myślę. Ale nie bierz moich słów za pewnik. Chcę Ci tylko zasygnalizować pewne rzeczy.

Bądź wiecznym programistą

Jeśli uwielbiasz pisać kod, to zostań starszym programistą, potem głównym technikiem, a potem projektantem. Możesz także po prostu pracować jako programista przez 50 lat. Wynagrodzenie starszych programistów i głównych techników jest często wyższe niż pensja ich menagerów. Tutaj nie ma przegranych.

Bądź menagerem. Szczęśliwcze, jesteś wyjątkowy/a.

Przeszedłeś/przeszłaś na stronę wroga. Żartuję. Jeśli uważasz, że masz zdolności organizacyjne, to może to jest Twoim przeznaczeniem: kierowanie grupą, zostanie menagerem projektu. Dzięki temu będziesz zarządzać czymś ważnym i pomoże Ci w przyszłości założyć swój własny biznes. Brzmi nieźle, prawda?

Łap okazję.

Zdobywasz kolejny poziom! - 7

Jeśli będziesz kiedyś mieć rodzinę i dzieci, to możliwe, że będziesz szukać cichego i bogatego życia w kraju ze stabilną gospodarką. Może będziesz chciał/a się przenieść do Kanady, Stanów Zjednoczonych, Szwajcarii czy Australii. Posiadasz świetne umiejętności i wykonujesz pożądany zawód. Nie będziesz zatem musiała/a zaczynać od początku, możesz od razu zdobyć pracę jako starszy programista Java z dobrą pensją. Brzmi całkiem nieźle.

Zwiedź cały świat.

Załóżmy, że nie masz swojej rodziny i pragniesz podróżować. Praca jako freelancer to coś dla Ciebie. Znajdź klienta, negocjuj stawkę ($20-$50/godzina), bierz laptop i pracuj w podróży! Zarobisz wystarczająco dużo pieniędzy, żeby mieszkać tam, gdzie zechcesz. Dlaczego nie zacząć realizować swoich marzeń już teraz?

Nierozsądni ludzie marnują mnóstwo pieniędzy. Rozsądni je oszczędzają. A przyszli programiści inwestują w siebie i w profesjonalną edukację. Specjaliści IT mają przed sobą świetlaną przyszłość!