Kod

Jak zostać programistą w wieku 40 lat

Jak zostać programistą w wieku 40 lat

Zawartość:

    Darmowy kurs Pythona ➞ Mini kurs dla początkujących i doświadczonych programistów. 4 fajne projekty w portfolio, komunikacja na żywo z prelegentem. Kliknij i dowiedz się, czego możesz się nauczyć na kursie.

    Dowiedz się więcej

    Wspomniałeś, że większość swojej kariery spędziłeś jako menedżer. Przez dziesięć lat, zanim zająłeś się rozwojem, prowadziłeś własną firmę i pracowałeś na własny rachunek. Jak trudno było podjąć decyzję o odejściu z zarządzania i zostaniu pracownikiem etatowym? Co skłoniło Cię do wyboru IT i uświadomienia sobie, że to jest Twoje powołanie?

    Porzucenie zarządzania zespołem było dla mnie naturalnym krokiem. Potrafię skutecznie zarządzać ludźmi, ale szczerze mówiąc, zawsze wolałem angażować się w bezpośrednią pracę i tworzyć coś własnymi rękami, niż zarządzać innymi.

    W branży informatycznej wybór zawodu jest trudniejszy. Chodzi bardziej o pragmatyzm niż o chęć podążania za powołaniem. Szczególnie pociąga mnie fakt, że wiele firm oferuje możliwość pracy zdalnej. Takie rozwiązanie pozwala uniknąć codziennych dojazdów, które kiedyś zajmowały godzinę w jedną stronę. Praca zdalna nie tylko oszczędza czas, ale także daje większą swobodę w organizacji pracy.

    Kiedy zamknąłem firmę i zacząłem zajmować się IT, zauważyłem, że korzystam z samochodu tylko dwa lub trzy razy w tygodniu. Przeważnie woziłem córkę na szkolenia lub jeździłem do miasta w sprawach osobistych. To sprawiło mi radość, ponieważ uświadomiłem sobie, że nie muszę już dojeżdżać do biura. Przejście do IT otworzyło przede mną nowe możliwości i pozwoliło mi lepiej zarządzać czasem.

    Zmiana ścieżki kariery okazała się mniej trudna niż przyznanie się, że poprzednie 10 lat zostało zmarnowane. Przyznanie się, że moja praca nie miała perspektyw, było trudne. Zdałem sobie sprawę, że możliwości oferowane przez zatrudnienie znacznie przewyższały te, które miałem we własnej firmie. Ostatecznie zrozumiałem, że mogę zarabiać więcej, pracując dla kogoś innego, niż rozwijając własną firmę, która nie przynosiła rezultatów.

    Moje pierwsze zetknięcie z IT miało miejsce dzięki mojemu bratu, który pracował w tej branży już od roku. Podzielił się ze mną przydatnymi kontaktami i zasugerował grupy dyskusyjne, które zacząłem odkrywać. Po drodze zdałem sobie sprawę, że ludzie z tej branży mają zupełnie inne zainteresowania niż moje dotychczasowe hobby. Zainteresowałem się społecznością IT, przyciągnięci jej otwartością i życzliwością, a także ich podejściem do życia i pracy. Zainspirowało mnie to do zanurzenia się w świecie technologii informatycznych i rozwijania swoich umiejętności w tej dynamicznie rozwijającej się dziedzinie.

    Kadr: Serial telewizyjny „Dolina Krzemowa”

    Wybierając język programowania, należy wziąć pod uwagę kilka czynników. Skupiłem się na swoich celach i problemach, które chciałem rozwiązać za pomocą programowania. Na przykład, jeśli chcesz tworzyć aplikacje internetowe, JavaScript będzie świetnym wyborem. Jeśli interesują Cię aplikacje mobilne, możesz rozważyć Swift lub Kotlin. Nie żałuję wyboru, ponieważ wybrany język pozwala mi skutecznie realizować projekty i rozwijać się zawodowo. Ostatecznie ważne jest, aby wybrać język, który odpowiada Twoim zainteresowaniom i rynkowi pracy.

    Nie żałuję wyboru Go jako języka programowania. Podoba mi się jego składnia i interesujące połączenie prostoty i złożoności. Nie poleciłbym go jednak początkującym, ponieważ Go może być wyzwaniem dla tych, którzy dopiero zaczynają programować. W rezultacie znalezienie pierwszej pracy zajęło mi znacznie więcej czasu niż gdybym nauczył się JavaScriptu lub Pythona, które są bardziej przystępne dla początkujących.

    Go to naprawdę interesujący język programowania, który pozwala tworzyć wydajne i produktywne aplikacje. Cieszę się, że wybrałem go do moich projektów. W przyszłości planuję uczyć się innych języków programowania, nie po to, by się na nie przesiąść, ale by zrozumieć ich strukturę i funkcje. Pomoże mi to poszerzyć wiedzę i zobaczyć, jak problemy można rozwiązywać na różne sposoby, odmienne od mojego obecnego podejścia.

    Uczyłem się języka programowania Go przez kilka miesięcy. Na początku zapoznałem się z podstawami składni i struktury języka, a następnie zagłębiłem się w bardziej złożone tematy, takie jak współbieżność i praca z protokołami sieciowymi. Praktyka i tworzenie małych projektów pomogły mi utrwalić wiedzę i lepiej zrozumieć koncepcje Go. Język ten charakteryzuje się prostotą i wydajnością, co czyni go doskonałym wyborem do tworzenia wysokowydajnych aplikacji.

    Przejście od nauki podstaw Go do znalezienia pracy zajęło mi około pięciu miesięcy. Wcześniej uczestniczyłem w małym startupie jako wolontariusz, pomagając zespołowi w rozwoju backendu. Frontend był gotowy i działał, ale zespół miał trudności z backendem i finansami. Nie szukałem źródła utrzymania; Chciałem zdobyć praktyczne doświadczenie i zmierzyć się z rzeczywistymi problemami. Biorąc pod uwagę moje zaangażowanie w startup, zacząłem pisać swój pierwszy kod produkcyjny około cztery miesiące po rozpoczęciu szkolenia.

    Programowania można uczyć się na wiele sposobów, a każda metoda ma swoje zalety. Osobiście korzystałem z połączenia książek, kursów i artykułów. Książki zapewniają dogłębne zrozumienie teorii i podstaw, a kursy i artykuły pomagają zastosować tę wiedzę w praktyce. Gdybym zaczynał od nowa, skupiłbym się na nauce praktycznej, wybierając kursy online z projektami i wyzwaniami. Polecam innym również kursy zawierające zadania praktyczne, ponieważ pomaga to utrwalić wiedzę i rozwinąć umiejętności rozwiązywania rzeczywistych problemów. Ważne jest również aktywne uczestnictwo w społecznościach programistycznych i dzielenie się doświadczeniami, co może znacznie przyspieszyć proces nauki.

    Jako osoba, która wróciła do programowania po dwudziestoletniej przerwie, polecam początkującym rozpoczęcie nauki poprzez kursy, zarówno płatne, jak i bezpłatne. Obecnie istnieje wiele platform edukacyjnych oferujących wysokiej jakości materiały. Na takich kursach możesz zdobyć podstawową wiedzę, nauczyć się efektywnie korzystać z literatury, czytać przewodniki i dokumentację. Zacznij od prostych metod i rozwiązuj elementarne problemy, aby stopniowo pogłębiać swoje umiejętności i zwiększać pewność siebie w programowaniu.

    W przeciwieństwie do kursów, oficjalne podręczniki i dokumentacja Go, od których zaczynałem, nie są zaprojektowane tak, aby zapewnić płynne wprowadzenie do języka. Są skierowane do osób, które mają już doświadczenie w programowaniu w innych językach i chcą przejść na Go. Materiały te pomagają szybko się w nim zadomowić, ale mogą być trudne dla początkujących, którzy nie znają podstaw programowania.

    Słyszałem, że uczęszczałeś do szkoły online. Jakie lekcje odbyłeś? Czy były w formie wideo, czy webinarium? Czy otrzymywałeś wsparcie od instruktorów? Co naprawdę pomogło, a co okazało się bezużyteczne?

    Na początku kursu wykonywałem zadania znacznie szybciej, niż instruktor był w stanie je sprawdzić. Jednak pod koniec kursu wideo zacząłem mieć problemy. Na szczęście trafiłem na świetnego instruktora, który dostarczał ciekawe zadania i dzielił się aktualnymi wzorcami stosowanymi w branży. Udzielił mi kompleksowego feedbacku, który był bardzo pomocny. Chociaż moje programy działały poprawnie, pomógł mi poprawić styl i estetykę kodu, co znacząco podniosło jakość mojej pracy.

    Największym wyzwaniem dla mnie były interfejsy i programowanie obiektowe (OOP). Pełne zrozumienie interfejsów zajęło mi dwa lub trzy miesiące po pierwszym spotkaniu z nimi. Kluczowym czynnikiem w tym procesie była pomoc mentora, którego znalazłem na GetMentor, a także kursy, w których uczestniczyłem. Dzięki temu mogłem lepiej zrozumieć zasady interfejsów i rozwinąć swoje umiejętności w zakresie programowania obiektowego (OOP).

    Chciałbym wyrazić wdzięczność Paszy za jego nieocenioną pomoc. Hojnie dzielił się swoją wiedzą i doświadczeniem, mimo że nasza komunikacja ograniczała się do zaledwie dwóch lub trzech spotkań. Dzięki jego wskazówkom i kluczowym punktom, którymi się ze mną podzielił, mogłem głębiej zrozumieć złożone zagadnienia i dojść do ważnych wniosków. Jego wsparcie było nieocenione i doceniam jego wkład w mój proces uczenia się.

    Książka Tanenbauma o sieciach komputerowych wywarła na mnie nieoczekiwany wpływ, zwłaszcza rozdział poświęcony interfejsom. Analizuje ona interfejsy z innej perspektywy, pozwalając mi głębiej zrozumieć ich istotę i funkcjonalność. Uświadomiłem sobie, jak ważne są interfejsy dla efektywnej interakcji w sieciach komputerowych i jaką kluczową rolę odgrywają w zapewnianiu komunikacji między różnymi urządzeniami. To zrozumienie znacząco poszerzyło moją wiedzę i pogłębiło moje zainteresowanie tematem sieci komputerowych.

    Zdjęcie: Piter Publishing House

    Wtedy zdałem sobie sprawę, że wiedzę o języku można zdobyć nie tylko z książek, ale także z różnych źródeł. To odkrycie poszerzyło moje podejście do nauki i pozwoliło mi korzystać z różnych źródeł informacji, aby pogłębić swoją wiedzę.

    Dużo czytałem o języku programowania Go, znanym z wysokiej jakości dokumentacji wszystkich bibliotek i pakietów. Jednak większość tych informacji jest dostępna tylko w języku angielskim, co stało się dla mnie dużym wyzwaniem, ponieważ na początku studiów nie znałem tego języka.

    Po ukończeniu szkoły online wziąłem udział w darmowej wersji kursu zaawansowanego na platformie Coursera, która cieszy się popularnością wśród programistów Go. Kurs ten został opracowany przez jednego ze specjalistów z VK i zapewnił mi cenny wgląd w kluczowe aspekty języka, w tym metody pracy z wielowątkowością. Zdobyta wiedza stała się ważnym krokiem w moim rozwoju zawodowym i pogłębiła moje umiejętności programowania w Go.

    Kiedy zacząłeś szukać pracy? Jak napisałeś swoje CV?

    Zacząłem aplikować o pracę w Go trzy miesiące po rozpoczęciu nauki tego języka. W tamtym momencie moje CV wyglądało słabo i nieprzekonująco, dlatego nie otrzymałem ani jednej odpowiedzi. Prawie nie otrzymałem żadnych odrzuceń; byłem po prostu ignorowany. To wywołało u mnie poczucie całkowitej beznadziei.

    Nie podobało mi się to, więc stopniowo aktualizowałem swoje CV. Konsultowałem się z kolegami z branży i dodawałem umiejętności i projekty, które podkreślałyby moje istotne doświadczenie. Następnie ponownie zacząłem aplikować o pracę, ale znów spotkałem się z odmowami. Nadal udoskonalałem swoje CV i jednocześnie zgłębiałem naukę języka programowania Go.

    Wysłałem około 60 odpowiedzi na hh.ru i kolejne 20-30 na inne platformy, takie jak Habr.Career i Rabota.ru. Jednak dzięki moim odpowiedziom nie dostałem pracy. Zostałem odkryty na Habr.Career i zaoferowano mi pracę w startupie kryptowalutowym. Odpowiedziałem, że mój poziom jest mniej więcej równoważny młodszemu stażem. Jednocześnie zrozumiałem, że branże fintech i kryptowalut zazwyczaj potrzebują specjalistów co najmniej średniego szczebla.

    Niespodziewanie poinformowano mnie, że firma ma dobrą reputację w zatrudnianiu specjalistów na poziomie podstawowym i jeśli pomyślnie ukończę zadanie testowe, możemy omówić dalszą współpracę. Otrzymałem link do strony internetowej firmy (whattofarm.io) i samego zadania testowego. Poprosiłem o tydzień na jego wykonanie. W sumie pracowałem nad nim około trzech godzin dziennie, a cały proces zajął pięć dni. Moim zdaniem rezultaty były zadowalające: spełniłem wszystkie wymagania zadania testowego, choć mogłem popełnić drobne błędy. Ogólnie rzecz biorąc, wszystko działało prawidłowo.

    Ekipa przez długi czas nie mogła ukończyć testu: ktoś zachorował, pojawiły się nieprzewidziane sytuacje itd. Kilkakrotnie im o tym przypominałem, ale zaczynałem tracić nadzieję. W pewnym momencie napisali do mnie, proponując rozmowę. Umówiliśmy się na rozmowę kwalifikacyjną i tak dostałem obecną pracę.

    Teraz rozumiem, że zespół miał mnóstwo pracy, ponieważ zbliżała się premiera produktu.

    Wróćmy do tematu CV. Wspomniałeś o jego aktualizacji i dodaniu nowych szczegółów. Jakiej rady udzieliłbyś tym, którzy zaczynają wysyłać CV? Kiedy jest najlepszy moment na wejście na rynek pracy i co powinno się w nim znaleźć? Jak je poprawnie napisać? Co Twoim zdaniem składa się na dobre CV dla początkującego?

    Ważne jest, aby zacząć przygotowywać się do wejścia na rynek pracy wcześnie, aby być gotowym na poszukiwania pracy. Twoje CV powinno być jasne i uporządkowane, podkreślając kluczowe umiejętności i osiągnięcia, które mogą zainteresować potencjalnego pracodawcę. Nie zapomnij uwzględnić wykształcenia, staży i projektów, nawet jeśli ukończyłeś je w trakcie studiów. Dobre CV juniora powinno wykazywać motywację i chęć rozwoju w wybranej dziedzinie, a także zdolność do szybkiego uczenia się nowych umiejętności.

    Powinieneś wejść na rynek pracy z umiejętnościami związanymi z usługami sieciowymi, ponieważ jest to główny obszar zainteresowań większości programistów back-end. Co oznaczają te umiejętności? Oznacza to, że powinieneś umieć tworzyć proste interfejsy API, rozumieć dokumentację API innych firm, wysyłać żądania, obsługiwać odpowiedzi oraz zapisywać i odczytywać dane z bazy danych. Umiejętności te są kluczem do udanej kariery w back-end i znacznie zwiększają Twoje szanse na zatrudnienie.

    Wysokiej jakości CV powinno być krótkie i zwięzłe. Najlepiej, aby zmieściło się na jednej stronie w Dokumentach Google, używając standardowej czcionki. Unikaj zbędnych informacji. Ważne jest, aby opisać swoje doświadczenie w sposób związany z branżą programistyczną. Na przykład, zaktualizowałem swoje CV i zdałem sobie sprawę, że wszystkie 14 lat po studiach spędziłem na różnych aspektach programowania. Podkreśliłem swoje doświadczenie w instalowaniu i konfigurowaniu serwerów, co robiłem, ale wcześniej nie podkreślałem tego w swoim CV. Pozwoliło mi to dokładniej przedstawić moje umiejętności zawodowe i przyciągnąć uwagę pracodawców z branży IT.

    Pracując z maszynami CNC, skupiłem się na programowaniu sterowników. To doświadczenie znacząco poprawiło moje perspektywy zawodowe: po pierwsze, wzrosła liczba zaproszeń na rozmowy kwalifikacyjne, a po drugie, pracodawcy zaczęli interesować się konkretnymi sterownikami, z którymi pracowałem, i moim doświadczeniem programistycznym. Szczerze przyznawałem, że nie były to mikrokontrolery, a sterowniki przemysłowe programowane w specjalistycznym języku diagramów logicznych. Niemniej jednak, jest to również cenne doświadczenie, które dobrze wygląda w CV. Frazy takie jak „konfiguracja serwera” i „programowanie mikrokontrolerów” stanowią doskonałe bodźce dla rekruterów. Takie podejście nie tylko podkreśla moje umiejętności, ale także czyni mnie bardziej atrakcyjnym kandydatem na rynku pracy.

    Podczas procesu poszukiwania pracy zauważyłem dwie ważne rzeczy. Po pierwsze, CV bez listu motywacyjnego radziło sobie lepiej. Nie potrafię wyjaśnić dokładnie, dlaczego, ale fakt pozostaje faktem. Po drugie, kiedy usunąłem moje oczekiwania płacowe, liczba odpowiedzi znacznie wzrosła. Najwyraźniej, widząc moje oczekiwania płacowe w przedziale 60 000–70 000 rubli, rekruterzy i menedżerowie ds. zatrudnienia od razu ocenili mój poziom umiejętności i nie brali mnie pod uwagę jako kandydata.

    Mam doświadczenie z Go, które zdobyłem w startupie. Chociaż mój wkład był niewielki, opracowałem funkcjonalność, która działa skutecznie i przynosi korzyści zespołowi. Ten kod stał się ważnym krokiem w dalszym rozwoju projektu i ulepszaniu jego funkcjonalności. Moje doświadczenie z Go potwierdza, że ​​nawet niewielkie zmiany mogą mieć znaczący wpływ na ogólny postęp.

    Co ciekawe, początkowo opisałem swój startup jako „mecze e-sportowe… coś w tym stylu”, co generalnie było trafne. Jednak w ostatecznej wersji CV, nastawionej na wysoką konwersję, zmieniłem to na bardziej ogólne „startup – agregator usług”. To również było poprawne, ale brzmiało bardziej profesjonalnie i nie wywołało negatywnej reakcji rekruterów.

    W moim CV wymieniłem wszystkie technologie, z którymi miałem styczność, w tym frameworki, bazy danych i znane biblioteki. To podkreśla moją szeroką wiedzę i chęć korzystania z różnych narzędzi w procesie rozwoju.

    Oczywiście mogę wymienić kilka konkretnych pakietów i technologii. Popularne technologie to React, Angular i Vue.js do tworzenia interfejsów użytkownika. Warto również wspomnieć o Node.js i Express po stronie serwera, a także o MongoDB i PostgreSQL, które są często wykorzystywane do pracy z bazami danych. Należy pamiętać, że wybór technologii zależy od konkretnych potrzeb projektu i jego skali.

    Znajomość Gita jest niezbędna dla programistów. To narzędzie powinno znaleźć się w arsenale każdego. Zalecana jest również znajomość Dockera i Docker Compose, a także pakietów sieciowych. Go ma standardowy pakiet sieciowy, ale wielu programistów woli korzystać z bibliotek zewnętrznych, takich jak Gorilla Mux, Gin czy Echo. Jeśli masz doświadczenie z tymi bibliotekami, koniecznie zaznacz to w swoim CV. Jeśli jeszcze ich nie wypróbowałeś, poświęć dzień lub dwa na zapoznanie się z nimi i dodaj to do swojego CV. Doświadczenie osobiste pokazuje, że praca z gniazdami internetowymi może znacznie rozwinąć umiejętności; dokładnie tak zrobiłem, uczestnicząc w wolontariackim startupie.

    Doświadczenie z bazami danych, zarówno relacyjnymi, jak i nierelacyjnymi, jest ważnym aspektem. Doświadczenie z SQL, zwłaszcza PostgreSQL, będzie dużym atutem. Warto również rozważyć bazy danych NoSQL, takie jak Redis i MongoDB. Znajomość tych technologii pomoże Ci opracować bardziej wydajne i skalowalne rozwiązania.

    Kadr: serial „Dolina Krzemowa”

    Praca z Zadania testowe różniły się poziomem trudności. Niektóre były stosunkowo proste i wymagały jedynie podstawowej wiedzy, podczas gdy inne były znacznie trudniejsze i wymagały dogłębnego zrozumienia materiału. Zazwyczaj wykonanie zadań testowych zajmuje od kilku godzin do kilku dni, w zależności od ich złożoności i objętości. Ogólnie rzecz biorąc, wykonanie takich zadań wymaga skupienia i umiejętności analizowania informacji, co może być trudne dla niektórych. Jednak taka praktyka pomaga rozwijać umiejętności i pogłębiać zrozumienie tematu.

    Otrzymane przeze mnie zadania testowe były dość zróżnicowane. Jedno z nich pochodziło od pracownika Sberbanku: opracowanie ogranicznika częstotliwości wykonywania zadań, mającego na celu ograniczenie liczby jednocześnie wykonywanych zadań i ich realizacji w określonym czasie. Ukończenie tego zadania zajęło mi około pięciu do sześciu godzin, z czego dwie godziny poświęciłem na naukę koncepcji ogranicznika częstotliwości wykonywania zadań i jego działania.

    Większość zadań testowych w pracy wymaga interakcji z API: odbierania danych, przetwarzania ich i zapisywania w bazie danych. Natrafiłem na jedno zadanie testowe, które okazało się wyjątkowo trudne ze względu na słabą dokumentację dostarczonego API. Aby zrozumieć zadanie, musiałem wyodrębnić struktury danych z żądań wysyłanych do ich witryny, co oznaczało konieczność zbadania, jakie żądania witryna wysyłała i jakie odpowiedzi zwracała. Ten proces był niezwykle czasochłonny i niewygodny. Ostatecznie nie byłem w stanie ukończyć zadania i postanowiłem zrezygnować z dalszej współpracy z tą firmą, ponieważ warunki pracy były dla mnie nie do przyjęcia.

    Jeśli napotkasz zadanie testowe, które uważasz za zbyt trudne, możesz chcieć je porzucić. Niejasne opisy zadań często prowadzą do niezadowalających rezultatów. Z mojego doświadczenia wynika, że ​​najskuteczniejsze zadania testowe wiązały się z jasnymi i szczegółowymi instrukcjami, tak jak ma to miejsce w firmie, w której obecnie pracuję. Wszystkie wymagania były jasno określone, eliminując wszelkie pole do błędnej interpretacji. Jasny opis zadania jest kluczem do pomyślnego ukończenia pracy i uzyskania pozytywnego wyniku.

    Ile testów już ukończyłeś?

    Uważam, że liczba zadań testowych powinna być ograniczona do pięciu lub sześciu. W obecnej sytuacji ukończenie zadania testowego jest dla mnie okazją do zbudowania portfolio. Wykonuję zadanie testowe, a następnie publikuję je na moim koncie GitHub. Moim zdaniem zadania testowe to świetny sposób dla początkujących programistów nie tylko na doskonalenie umiejętności, ale także na naukę nowych technologii.

    Uczestniczyłem w około dziesięciu rozmowach kwalifikacyjnych. Podczas spotkań z działem HR pytano mnie o moje doświadczenie, motywację i podejście do pracy zespołowej. Podczas rozmów technicznych nacisk kładziono na moją wiedzę w konkretnej dziedzinie, rozwiązywanie problemów i rozumienie technologii. Pytania wymagające dogłębnej wiedzy i praktycznego zastosowania były dla mnie trudne. Czułem się mniej pewny siebie w obszarach, w których brakowało mi doświadczenia, a potem zacząłem poświęcać więcej czasu na samokształcenie i praktykę. W mojej obecnej pracy uważam, że z powodzeniem ukończyłem rozmowy kwalifikacyjne, ponieważ byłem w stanie wykazać się swoimi umiejętnościami i pewnością siebie w odpowiedziach.

    Uczestniczyłem w około pięciu rozmowach kwalifikacyjnych. Cztery z nich odbyły się z menedżerami HR, a jedna ze specjalistą technicznym. Miałem również kolejną rozmowę kwalifikacyjną z programistą, który pracował nad własnym projektem. Nie tylko zatrudniał pracowników, ale także zajmował się ich pensjami i pisał większość kodu.

    Moje najbardziej nieudane rozmowy kwalifikacyjne odbyły się w Avito i Ozon. Specjaliści ds. HR zdawali się od razu zdawać sobie sprawę, że nie spełniam ich wymagań. Jednak uprzejmie obiecali przekazać moją kandydaturę zespołowi technicznemu i poinformować mnie o wyniku. Ostatecznie nigdy nie otrzymałem odpowiedzi.

    Moje najbardziej pozytywne doświadczenia pochodzą z pracy w małych zespołach. Dotyczy to zarówno wspomnianego wcześniej kolegi, który zatrudnił dodatkowych programistów do swojego projektu, jak i obecnych pracowników, z którymi teraz współpracuję. W takich zespołach otrzymywałem szybką informację zwrotną, która pozwoliła mi lepiej zrozumieć oczekiwania i zadania, które przede mną postawiono. Pracując w małych grupach, czuję się bardziej zaangażowany i mam możliwość konstruktywnej komunikacji, co przyczynia się do efektywniejszej realizacji zadań i osiągania wspólnych celów.

    Przygotowując się do rozmów kwalifikacyjnych, warto rozważyć kilka strategii. Ważne jest, aby zaprezentować swoje doświadczenie w sposób zgodny z wymaganiami stanowiska. Musisz pewnie mówić o swoich umiejętnościach i projektach, nawet jeśli nie posiadasz pełnego zakresu wiedzy. Głównym celem jest pozytywne przejście rozmowy kwalifikacyjnej, podczas której specjaliści ocenią Twoje CV i doświadczenie. Jeśli dział HR zauważy brak pewności siebie lub odpowiedniej wiedzy, może to doprowadzić do negatywnej oceny i w rezultacie do odmowy kontynuowania rozmowy. Dlatego ważne jest, aby starannie przygotować się i podkreślić te aspekty Twojego doświadczenia, które mogą zainteresować pracodawcę.

    Czy miałeś również inne źródła dochodu podczas studiów i poszukiwania pracy? Chciałbym wiedzieć, jak łączyłeś studia z pracą i z jakich możliwości zarobkowania korzystałeś.

    Przez długi czas miałem bardzo skromne dochody. Żyłem z zarobków żony. Mimo to nasze potrzeby rodzinne pozostały minimalne. Udawało nam się przeżyć za 30 000-40 000 rubli miesięcznie na artykuły spożywcze i podstawowe potrzeby, takie jak benzyna i zakupy dla dzieci. Mam dwie córki i chociaż staramy się oszczędzać, czasami pojawiają się dodatkowe wydatki.

    Psychicznie było to dla mnie bardzo trudne. Przez pierwsze dwa, trzy miesiące czułem się pełen energii i dumny ze zmiany zawodu. Jednak kolejne pięć miesięcy bez stałej pracy okazało się dla mnie trudne. Nie byłem całkowicie bezrobotny; niewielkie kwoty pieniędzy wpływały z różnych źródeł, ale były to jedynie skromne dochody.

    Na początku mojej drogi aktywnie wspierali mnie żona i brat, którzy zapewniali mnie, że wszystko się ułoży i będzie dobrze. Mówili: „Dawaj dalej, na pewno wszystko się ułoży”. Są chwile, kiedy tracisz motywację i chęć do czegokolwiek. W takie dni próbowałem odwrócić uwagę, oglądając film lub grając w gry. Były też dni, kiedy w ogóle nie rozwijałem się ani nie szukałem pracy, po prostu odkładając wszystko na później. Wsparcie bliskich i możliwość przejścia na relaks pomogły mi utrzymać motywację i pewność siebie w przyszłości.

    Każdy w życiu doświadcza trudnych chwil, kiedy pojawia się chęć poddania się i zaczynania od nowa. W takich momentach ważne jest, aby nie poddawać się impulsywnym decyzjom. Zamiast tego, należy przeanalizować sytuację, zrozumieć przyczyny swojego niezadowolenia i poszukać sposobów na rozwiązanie powstałych problemów. Wsparcie przyjaciół i rodziny, a także profesjonalna pomoc, mogą odegrać znaczącą rolę w przezwyciężeniu takich kryzysów. Najważniejsze to pamiętać, że wszelkie trudności są przejściowe i można je pokonać.

    Oczywiście, takie sytuacje się zdarzają. Im dłużej jesteś bezrobotny, tym częściej myślisz o podjęciu jakiejkolwiek dostępnej pracy. Rozważałem różne oferty w moim głównym zawodzie i byłem nawet gotowy pracować jako monter. Jednak w pewnym momencie zdałem sobie sprawę, że taki krok doprowadzi do znienawidzenia mojej pracy i utrudni mi rozwój w programowaniu. Jak możesz awansować w zawodzie, jeśli wracasz do domu wyczerpany i brakuje ci energii, by robić to, co kochasz? W takich chwilach polegałam na silnej woli i wsparciu bliskich, co pomagało mi radzić sobie z trudnościami i nie tracić motywacji.
    Kadr: film „Rycerz Pucharów”

    Droga każdego człowieka w IT jest wyjątkowa. Jeśli masz możliwość wzięcia urlopu i skupienia się na nauce, może to być najlepsza opcja dla Twojego rozwoju. Praca często odciąga uwagę od głównego celu, tworząc poczucie, że bieżące obowiązki są ważniejsze niż aspiracje do rozwoju zawodowego. Dlatego warto rozważyć opcje, które pozwolą Ci głębiej zgłębić technologie i umiejętności niezbędne do udanej kariery w IT.

    Moim zdaniem stwierdzenie, że ważne jest skupienie się na obecnej pracy, jest błędne. Jeśli chcesz zmienić karierę, najważniejsze jest to, co czeka Cię w przyszłości, a nie Twoja obecna praca. Ważne jest, aby skupić swoje wysiłki i uwagę na osiąganiu nowych celów. Poświęcanie czasu na zbyt wiele obszarów negatywnie wpłynie zarówno na obecną pracę, jak i na Twój postęp w IT. Skupienie się na przyszłości pomoże Ci lepiej się rozwijać i osiągać pożądane rezultaty.

    Do grudnia stałem przed dylematem: wybrać ścieżkę product managera czy programisty. Byłem rozdarty między tymi dwoma, co nie pozwoliło mi osiągnąć znaczącego sukcesu w żadnej z tych dziedzin. Postęp w rozwoju nastąpił dopiero po tym, jak postanowiłem skupić się wyłącznie na tym obszarze.

    Miałem wyjątkową okazję skupić się na nauce programowania, co pozwoliło mi szybko zanurzyć się w zawodzie programisty. Jak to się stało? Trudno to wytłumaczyć. W pewnym momencie zdałem sobie sprawę: „Po co robię wszystko inne, skoro moim prawdziwym celem jest zostać programistą?”. Ten moment uświadomienia stał się punktem zwrotnym w mojej karierze i pomógł mi skupić się na nauce kluczowych umiejętności niezbędnych do udanej kariery programisty.

    Przed Nowym Rokiem postanowiłem podjąć się niewielkiego projektu instalacji Wi-Fi w szkołach, po uzgodnieniu z przyjacielem, który nadal pracuje w branży instalacyjnej. Skontaktowałem się z kilkoma placówkami edukacyjnymi i pojechałem na miejsce. Jednak już na etapie przygotowań, gdy dopiero zaczynałem wyjmować narzędzia z samochodu, poczułem, że będzie to zbyt trudne. Ostatecznie zdecydowałem się dokończyć pracę tylko w jednej szkole i porzuciłem dalsze projekty.

    Trzeciego dnia pracy w nowej szkole, mój młodszy brat i ja jechaliśmy z drabiną na dachu samochodu. Tego wieczoru, około godziny ósmej, zauważyliśmy inne dzieci, które również prowadziły samochód z drabiną. Odwróciłem się do brata i powiedziałem: „Słuchaj, jesteśmy tacy sami jak oni. Co robimy? Ty marzysz o tworzeniu muzyki elektronicznej, a ja chcę programować. Czemu o tej porze dnia jedziemy nie wiadomo gdzie z drabiną na dachu?”. Ten moment skłonił nas do refleksji nad naszymi celami i tym, jak spędzamy czas.

    Podjęliśmy decyzję, że nigdy więcej nie podejmiemy się nowych projektów i skupimy się wyłącznie na tym, co naprawdę nas interesuje. To było jak nagłe uświadomienie sobie: „Co teraz robisz?”. Uświadomienie przyszło nagle i poczuliśmy potrzebę zmiany kierunku naszych działań, aby robić to, co przynosi satysfakcję i radość.

    Ile czasu poświęcasz obecnie na naukę, skoro dostałeś pracę i odniosłeś pewien sukces zawodowy?

    Poświęcam około 10 godzin dziennie na pracę i naukę. Codziennie poświęcam też czas na naukę języka angielskiego, ponieważ zdaję sobie sprawę, że jest to jedna z najważniejszych umiejętności dla programisty.

    Jakie są Twoje plany na przyszłość? Jakich języków programowania chciałbyś się nauczyć? Jakimi technologiami się interesujesz i jak planujesz rozwijać się w swoim zawodzie? Jakie książki czytasz, aby poprawić swoje umiejętności i poszerzyć horyzonty?

    Zawsze mam więcej planów niż czasu. Teraz moim głównym priorytetem jest integracja z zespołem i stanie się użytecznym członkiem. Zdaję sobie sprawę, że jeśli nie będę w stanie wykazać się umiejętnością wykonywania zadań i udowodnić swojej wartości, będę musiał poszukać nowej pracy. Szczerze chcę pozostać w tym zespole, ponieważ projekt bardzo mnie interesuje, a praca z Go jest czymś, co uważam za fascynujące. Mamy już w pełni zaimplementowany backend w Go, co otwiera wiele możliwości rozwoju zawodowego.

    W przyszłości planuję zgłębić temat front-end developmentu i JavaScript. Jest to konieczne, aby lepiej zrozumieć, w jaki sposób moje rozwiązania będą wykorzystywane przez zespół front-endowy i jak mogę sprawić, by ich praca była wygodniejsza i wydajniejsza. Znajomość JavaScriptu pomoże mi nawiązać bliższą współpracę z programistami i poprawić ogólne rezultaty projektu.

    Chciałbym zakończyć swoją historię na Pythonie. Ten język programowania jest naprawdę interesujący i daje możliwości tworzenia złożonych i wydajnych aplikacji. Python ma prostą i zrozumiałą składnię, dzięki czemu jest łatwy w nauce. Można go używać do realizacji różnorodnych projektów, od tworzenia stron internetowych po analizę danych i uczenie maszynowe. Dlatego staram się pogłębiać swoją wiedzę i umiejętności w Pythonie, aby wykorzystać wszystkie oferowane przez niego możliwości.

    Java to klasyczny język programowania obiektowego, który zapewnia doskonałą możliwość dogłębnego zrozumienia podstawowych zasad programowania obiektowego (OPP). Studiując Javę, będę w stanie opanować różne wzorce projektowe i skutecznie stosować je w mojej pracy zawodowej. Obecnie uczę się również Kotlina, co pozwoli mi poszerzyć moje umiejętności i wykorzystać nowoczesne podejście do tworzenia oprogramowania. Java i Kotlin razem tworzą potężne narzędzie do tworzenia wysokiej jakości aplikacji.

    Marzę o wypróbowaniu Haskella, ponieważ wiele słyszałem o tym języku programowania. Pociąga mnie możliwość pisania kodu inaczej, w zupełnie nowym formacie. Haskell oferuje unikalne podejście do programowania funkcyjnego, co sprawia, że ​​nauka i stosowanie go jest ciekawym doświadczeniem. Chcę dowiedzieć się, jak korzystanie z tej technologii może zmienić moje podejście do tworzenia oprogramowania i poprawić moje umiejętności programistyczne.

    Przeczytaj także:

    • 9 umiejętności interpersonalnych idealnego młodszego programisty: perspektywa lidera zespołu
    • Wynagrodzenia programistów back-end na różnych poziomach w Rosji: badanie Skillbox Media
    • Jak analizować strony internetowe i materiały multimedialne za pomocą JavaScript i Node.js