Jak rozwijać karierę jako początkujący programista?

Zostałeś niedawno programistą i stawiasz pierwsze kroki w profesjonalnej firmie. Być może właśnie spełniłeś swoje marzenie aby zostać profesjonalnym developerem. Zarabiasz dwa razy więcej niż Twoi rówieśnicy, którzy studiowali inne kierunki. Jest szał i czujesz zalążek sukcesu. Chciałbyś, aby ten stan trwał wiecznie. Niestety, chociaż pracę programisty wielu kojarzy z pracą marzeń, szybko może się okazać, że czas i rynek zweryfikuje Twój sukces. Technologia idzie do przodu, a wiedza jest szeroko dostępna. Na dzień dzisiejszy jest niedobór specjalistów, ale każdego dnia ich liczba rośnie. Szczególnie w branży IT ludzie nieustannie podnoszą kwalifikacje. Jeśli nie chcesz wypaść z obiegu, musisz także cały czas zwiększać swoje umiejętności. W przeciwnym razie okaże się, że za 2-3 lata nie będziesz w stanie wynegocjować żadnej większej podwyżki. Zmiana pracy odpada, bo jest pełno ludzi dookoła z podobnym stażem pracy, ale z nieporównywalnie większymi umiejętnościami.

Mówi się, że programista ze znaczącym stażem pracy nie ma problemu ze znalezieniem „oferty życia”. Jednak prawda jest taka, że wielu doświadczonych programistów nie jest w stanie przejść przez rozmowy kwalifikacyjne. Ich doświadczenie poza liczbą lat nic nie znaczy. Budującym faktem jest to, że jesteś w tym momencie na bardzo dobrej drodze. Programistycznej drodze, której wielu może pozazdrościć.  Od Ciebie zależy jak dalej pokierujesz swoim rozwojem. Jeśli jesteś jednak leniwy i zupełnie wystarczy Ci to co masz teraz. Jeśli lubisz przeciętność, a swój sukces uzależniasz od stwierdzenia: „jakoś to będzie„, to śmiało możesz przestać czytać dalszą część artykułu, bo niekoniecznie znajdziesz tam coś dla siebie.

Osobiście jestem bardzo zadowolony z mojej ścieżki kariery i miejsca w którym jestem, aczkolwiek zdaje sobie sprawę, że to nie koniec. Przez ostatnie lata, kiedy budowałem swoją pozycję na programistycznym rynku, wiele się nauczyłem. Głównie na błędach. Poniżej chciałbym podzielić się z Wami moimi spostrzeżeniami oraz radami, które być może pomogą Wam w Waszym rozwoju. Ze względu na formę tego wpisu, przedstawię w skrócie moją subiektywną listę „must do”. Skupię się na wszystkich rzeczach, które uważam za mega ważne, a które nie są związane z technicznymi sprawami. Nie znaczy to, że techniczne sprawy nie są ważne! Są strasznie ważne, ale o tym aspekcie rozwoju jeszcze napiszę.

Ucz się języka angielskiego!

Serio! To chyba najważniejszy atut i broń każdego programistycznego adepta. Zdaję sobie sprawę, że każdy z nas miał angielski na jakimś etapie edukacji i zdecydowana większość coś tam po angielsku umie. Nie ważne. Jeśli nie czujesz się doskonale w operowaniu tym językiem to jak najszybciej zapisz się na kurs. Biegła sztuka mówienia po angielsku potrafi zwiększyć Twoje zarobki nawet dwukrotnie! Niezależnie na jakim etapie kariery jesteś. Jeśli zdecydujemy się na pracę zdalną dla firmy z zachodu, to nawet czterokrotnie lub więcej!!! Brzmi chyba dobrze, nie?

Biegłe czytanie dokumentacji, materiałów naukowych czy książek to absolutne minimum i nie ma nawet co tu dyskutować. Zaryzykuje stwierdzeniem, że 99% posad programistycznych wymaga tej umiejętności, a ten pozostały 1% to posady za bardzo małe pieniądze przy nieatrakcyjnych projektach. Takie nie powinny Ciebie interesować. Drugą ważną sprawą jest rozmowa. Powinieneś swobodnie wypowiadać się w każdym temacie, czy to w sprawach technicznych czy nie. Brak tej umiejętności będzie bardzo Cię ograniczał w miarę postępu Twojej kariery. Ceniony programista to taki, który ma dużo do powiedzenia. Taki, który potrafi przedstawić swoje zdanie na temat danej technologii czy proponowanego rozwiązania.

Jeśli chcesz kiedyś zostać prawdziwym seniorem lub liderem to licz się z tym, że będziesz uczestniczył w ważnych dyskusjach. Takie rozmowy zwykle odbywają się w międzynarodowym gronie. Nawet jeśli byłbyś bardzo mocnym ekspertem w danej dziedzinie, to jeśli nie będziesz potrafił przedstawić odpowiednich argumentów, to będziesz postrzegany jako osoba niekompetentna. Bazując na moim doświadczeniu, wiem, że wiele osób zastanawia się jak najlepiej tego angielskiego się nauczyć. Truizmami są stwierdzenia typu: musisz dużo czytać po angielsku, otaczać się językiem, oglądać filmy, korzystać z aplikacji mobilnych uczących słówek itd. Oczywiście, że musisz, ale to nie wszystko! Personalnie uważam, że najlepszą metodą nauki jest dedykowany kurs. Przy czym zajęcia nie powinny odbywać się w grupach wieloosobowych. Na tego typu zajęciach niewiele będziesz mieć szans na wypowiedzenie się. Dobra grupa na kurs angielskiego nie powinna liczyć więcej niż 3-4 osoby. Wtedy będziemy mieć szansę na naprawdę szybki rozwój umiejętności. Nie żałuj pieniędzy na kursy angielskiego! To inwestycja, która momentalnie się zwraca.

Bądź profesjonalistą w pracy!

Gdybyś miał wybór, to z kim wolałbyś pracować? Z osobą od której bije po oczach profesjonalizmem, która zawsze z uśmiechem na ustach jest w stanie Ci służyć dobrą radą i każdy wie, że można na niej w jakiś sposób polegać. Czy może z osobą, która przychodzi do pracy na wiecznym kacu albo ledwo przespanej nocy spędzonej na graniu w kolejny dodatek do WoW’a?

Bycie profesjonalistą jest niezależne od branży jak i doświadczenia, które posiadamy. Każdy chce pracować z profesjonalistą i jest to w pełni zrozumiałe. Zatem jak zachowuje się profesjonalny programista? Domeną takiej osoby jest przede wszystkim uczciwość i komunikatywność. Profesjonalny developer nie sabotuje projektu zespołowego jak coś mu się nie podoba. Potrafi  jednak swoje niezadowolenie szeroko zakomunikować. Problemy zawsze powinny być otwarcie komunikowane, aby je po prostu rozwiązywać. Profesjonalista robi to co do niego należy, a często i więcej. Nikt oczywiście nie każe Ci robić nieustannie bezpłatnych nadgodzin, aby pokazać jak wiele jesteś w stanie dokonać, ale jeśli np. kolega z zespołu prosi Cię o pomoc, to korona Ci z głowy nie spadnie jak zostaniesz 30 minut dłużej i udzielisz cennych rad. Taka pomoc zawsze procentuje! Jeśli będziesz typowym aroganckim mrukiem to niezależnie od stanu Twojej wiedzy, nigdy nie zostaniesz profesjonalistą. Bynajmniej nie będziesz nigdy tak postrzegany!

Buduj zdrowe i silne relacje!

Dużo się teraz mówi o tym słynnym networkingu w świecie IT. Nie bez przyczyny. Znajomości są bardzo ważne. Oczywiście te dobre znajomości. Podczas swojej kariery powinieneś ciągle budować swoją sieć kontaktów w prawidłowy sposób. Jest na to naprawdę wiele okazji, a Ty powinieneś je dostrzegać.

Na wstępie jednak pragnę Cię ostrzec, że networking ma dwie strony: ciemną i jasną. Ciemna strona networkingu to jedna z najgorszych rzeczy. Ważne jest, żeby trzymać się od niej z daleka. Czym jest ta ciemna strona? Zasada jest jedna: dobrze budowana sieć kontaktów to taka, która jest budowana bezinteresownie. Ludzie często pragną zacieśnić relacje w momencie, kiedy czegoś potrzebują. Nie tędy droga. Poprawny networking wymaga czasu. Naucz się cierpliwości! W przeciwnym razie szybko zostaniesz dostrzeżony jako osoba interesowna, która nie jest w stanie nic od siebie dać, tylko szuka możliwości dla siebie.

Zawsze chętnie pomagam znajomym w znalezieniu fajnej oferty. Natomiast nigdy nikogo nie sprzedaję rekruterom polującym na głowy programistów. Rekruterzy po paru wiadomościach wymienionych ze mną na LinkedIn’ie lub konferencji często pytają się czy mogę polecić im kogoś z moich znajomych. Po paru wymienionych zdaniach żadna relacja nie jest budowana, więc czemu miałbym im sprzedawać dane kontaktowe znajomych? Lepszym podejściem ze strony rekrutera byłoby przedstawienie swojej oferty lub firmy w przyjazny sposób. Bez nachalnego nakłaniania. Tak, żebym sam poczuł myśl typu: „Kurczę! To chyba naprawdę fajna firma może być. Skoro nie jestem zainteresowany, to może zapytam Pawła, czy nie chciałby do nich się zgłosić„. Zapewniam, że w inny sposób to nie zadziała. Ty też nie rozdawaj danych kontaktowych do swoich znajomych. Pamiętaj, że to bardzo łatwa droga to zniszczenia nawet trwałych relacji!

Dobrym networkingiem nie jest także wysłanie setek zaproszeń na LinkedIn’ie do osób ze środowiska IT i liczenie na to, że ktoś nagle zwróci się do nas z ofertą nie do odrzucenia. Tak budowane relacje są również bardzo płytkie i raczej jedyne na co możemy liczyć, to odzew osób o podobnym sposobie działania. Nagle się może okazać, że z pozoru świetna oferta pracy nie jest w rzeczywistości kolorowa, a osoba ta jedynie chciała nas sprzedać potencjalnemu pracodawcy w celu uzyskania prowizji. Branża IT jest pod tym względem bezlitosna. Koszty rekrutacji są duże, więc niestety większość rekruterów stosuje każde możliwe zagrywki.

Uff. To czym jest w takim razie dobry networking?

To przede wszystkim budowanie silnych relacji. Możliwe są one jedynie wtedy, kiedy to Ty jesteś w stanie pierwszy zaoferować coś od siebie. Może to być dobra rada odnośnie ścieżki kariery, wskazanie potencjalnych opcji rozwoju, wyprowadzenie kogoś z błędu w którym tkwi, naładowanie kogoś pozytywną energią czy wystąpienie jako prelegent na lokalnym meetup’ie technologicznym. Sposobów jest mnóstwo i każdy jest w stanie odnaleźć w sobie jakaś wartość, którą może przekazać dalej. Nie myśl o rezultatach, one same przyjdą w nieoczekiwanym momencie. Zawsze!

Bądź przygotowany na zmiany!

Nie ma chyba bardziej podatnej na wszelkie zmiany branży niż IT. Skoro branża ciągle ewoluuje, to Ty też musisz! Nie chodzi mi o to, aby wpaść w pułapkę ciągłego rozwoju i 100% wolnego czasu przeznaczać na naukę, bo to jest chore! Życie to nie tylko praca i programowanie. Nie wszyscy programiści to pasjonaci, a nawet powiedziałbym, że zdecydowana większość to po prostu profesjonalni rzemieślnicy. Nie trzeba zamykać się w piwnicy i non stop kodzić. To stary stereotyp utrwalany przez ignorantów. Jednak skrajność w drugą stronę skutecznie z biegiem upływu lat wyeliminuje nas z rynku. Obecnie jest wiele języków programowania i technologii, a nam jako programistą często wystarczy specjalizować się w pojedynczych aspektach, aby trzymać silną pozycję na rynku pracy. Co jeśli rynek się zmieni? Jak powinieneś być na to przygotowany?

Zamiast uczyć się wszystkiego co nowe i wpadać we wspomnianą pułapkę rozwoju, to ucz się tego co Ci potrzebne! Jak już wspomniałem, nie musisz poświęcać na naukę 100% czasu wolnego, ale dobrze jest zawsze mieć jakąś książkę do poczytania, bądź mały projekt na boku. Szczególnie jak zaczynasz swoją karierę zawodową to rozwijaj się także po godzinach pracy. Nawet poświęcenie zaledwie 2h dziennie na daną technologię uczyni Cię ekspertem w perspektywie 1-2 lat. Z wiedzą ekspercką będziesz o wiele stabilniejszy na rynku pracy.

Warto także interesować się zmianami trendów oraz skupiać się na tym co aktualnie potrzebne Ci do rozwoju zawodowego. Jeśli zdajesz sobie sprawę, że tkwisz w starym projekcie. Jeśli używasz w nim jakiejś starej technologii, która już nie ma szerokiego wsparcia to więcej niż pewne jest to, że projekt w końcu będzie przepisywany albo zamknięty. Warto abyś znał alternatywy. Wiedział jakie technologie są obecnie używane w rozwiązaniach podobnej klasy. Wygospodaruj sobie z góry ustalony czas na rozwój po godzinach pracy. W tym czasie możesz się uczyć nowych rzeczy (ale tylko potrzebnych w konkretnym celu!!!) lub pogłębiać swoją wiedzę w technologii w której pracujesz. Sam ocenisz ile możesz na to poświęcić i jak ten czas przekłada się na niwelowanie ryzyka związanego z „czarnym łabędziem„. Sednem sprawy jest to, abyś znalazł swój indywidualny balans w rozwoju zawodowym. Dotyczy to także sytuacji, kiedy pracujesz przy projekcie, który w ogóle Cię nie interesuje, a technologia w której musisz programować po prostu Cię męczy. Nie bój się zmiany i działaj. Z pewnością wyjdzie to na dobre dla Ciebie jak i dla całego projektu.

Czytaj książki. Dużo książek!

Programista zarabia wiedzą, a wiedza jest w książkach. Ty natomiast masz niesamowitą szansę tę wiedzę wydobyć. Serio, jesteś szczęśliwcem.  Żyjesz w czasach w których wiedza jest na wyciągnięcie ręki. Zabrzmię jak dinozaur, ale za moich czasów licealnych była jedna księgarnia w mieście z ograniczonym asortymentem książek IT (maksymalnie 10-15 pozycji ogółem), zero sklepów internetowych, allegro raczkowało, a youtube’a jeszcze nie było. Te czasy minęły. Teraz książek programistycznych jest bardzo dużo i wszędzie można je stosunkowo tanio dostać.

Jeśli w pracy programujesz w jakiejś technologii to nie trać czasu na zastanawianie się, która książka będzie najlepsza do tego. Weź jakąkolwiek i przeczytaj, a potem następną…i następna! Do samego czytania jest wiele podejść. Niektórzy kupują po 10 książek na raz, a potem się okazuje, że żadnej nie skończyli. Do 8 z 10 książek w ogóle nie zajrzeli. Inni wyznają zasadę, że nie kupują kolejnej książki dopóki nie skończą aktualnie czytanej. Ty wybierz co bardziej Ci pasuje, ale coś wybierz i czytaj! Ja zwykle czytam 2-3 książki na raz i takie podejście jest dla mnie bardzo wygodne. Może dla Ciebie będzie inne, ale to już Ty zadecydujesz!

Nie ograniczaj się tylko do typowych książek programistycznych, ale miej umysł otwarty również na inne sprawy. Nie namawiam Cię do czytania czarodziejskich poradników coachingowych, ale jest wiele konkretnych książek traktujących o ważnych aspektach samorozwoju oraz rozwoju umiejętności miękkich. Książki te są rzeczowe, pokazują konkretne techniki i narzędzia. Dzięki rozwojowi umiejętności miękkich nauczyłem się sprawnie komunikować, prezentować swoją wiedzę czy znacząco zwiększyłem swoją produktywność w różnych obszarach. Wielu programistów z niechęcią podchodzi do umiejętności miękkich. To Twoja szansa! Kończąc nawet jedną taką książkę będziesz miał większą wiedzę niż Twoja konkurencja na rynku pracy (Konkurencja na rynku pracy haha, dziwnie to dla mnie brzmi. Nigdy nie konkurowałem na rynku pracy, zawsze starałem się pomagać).

Z pewnością w niedługim czasie opublikuje różne wpisy o technicznych i nietechnicznych książkach. Postaram się doradzić konkretne tytuły. Na razie jednak skup się na wyrobieniu samego nawyku czytania i wybierz coś sam. Na pewno masz coś na półce co od dłuższego czasu kurzy się, a Ty chciałbyś to przeczytać.

Wiele osób twierdzi, że nie ma czasu na czytanie. Rozumiem, bo sam mam z tym problem. Jeśli nie macie czasu po pracy na książkę to zacznijcie wstawać 30 minut wcześniej i czytajcie. Na początek te 30 minut jest zupełnie wystarczające! To i tak lepsze niż nic. Mój teraźniejszy sposób na czytanie odkryłem przy zmianie biura. Po przeprowadzce firmy w dalsze miejsce od mojego zamieszkania mogłem jeździć codziennie do pracy samochodem. Byłoby ciepło i wygodnie. Samym autem też lubię jeździć, ale…. Wybrałem tramwaj, bo w tramwaju mogę czytać. Czekając na tramwaj mogę czytać na przystanku. Do pracy mam 30 minut w jedną stronę. Dziennie zyskuję na takim wyborze pełną godzinę czytania. Pogłębiam wiedzę ekspercką jak i rozwijam umiejętności miękkie. Kilka lat temu, jak pracowałem w innej firmie, do której też musiałem dojeżdżać, stosowałem taką samą technikę. W rok czasu przeczytałem około 20-30 książek! Moja kariera i umiejętności w zaskakującym tempie poszybowały na inny poziom. Tobie też polecam takie działanie! Uwierz, że będą z tego rezultaty. I to szybciej niż się spodziewasz!

 

Czyli jak rozwijać karierę jako początkujący programista?

Mam nadzieje, że przybliżyłem Ci parę wartościowych aspektów o których naprawdę warto pamiętać. Szczególnie na samym początku kariery taka wiedza jest istotna. Pozwoli Ci to uniknąć różnych błędów, które ja początkowo popełniałem. Te 5 punktów o których napisałem pozwala mi nie tylko w sposób satysfakcjonujący rozwijać moją karierę. Sprawia też, że czerpię z tego przyjemność. Głęboko wierzę, że biorąc pod uwagę moje obserwacje. Obserwacje o tym jak rozwinąć karierę jako początkujący programista i wciąż ją rozwijać dalej jako doświadczony programista. Dojdziesz daleko i nie napotkasz rozczarowań na swojej drodze. Rozwiniesz się szybciej niż każdy przęciętniak. Mnie przeciętność nudzi. Jak jest z Tobą, to już od Ciebie zależy.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *