Na początku kariery programisty często czujesz się onieśmielony: stajesz przed nieznanymi problemami, musisz się wiele nauczyć i podejmować trudne decyzje. W niektórych przypadkach popełniamy błędy w tych decyzjach. To jak najbardziej naturalne i nie warto się tym zadręczać. To, co warto robić, to zapamiętywać swoje doświadczenie na przyszłość. Jestem programistą senior, który w swoim czasie popełnił mnóstwo błędów. Poniżej opowiem o ośmiu najpoważniejszych z nich, które popełniłem, będąc jeszcze nowicjuszem w programowaniu, i wyjaśnię, jak można ich było uniknąć.

Wziąłem pierwszą ofertę, która się pojawiła
Gdy uczysz się pisać kod samodzielnie lub kończysz studia, zdobycie pierwszej pracy w zawodzie staje się jednym z głównych celów. Coś w rodzaju światła na końcu długiego tunelu.
Niemniej jednak znalezienie pracy nie jest proste. Liczba osób ubiegających się o stanowiska juniorskie ciągle rośnie. Musisz , przejść przez całą serię rozmów kwalifikacyjnych i często cały ten proces bardzo się wydłuża. Biorąc to wszystko pod uwagę, nic dziwnego, że każda oferta pracy wywołuje chęć złapania jej obiema rękami.
Jednak może to być złą decyzją. Moja pierwsza praca była daleka od ideału zarówno pod względem rozwoju zawodowego, jak i przyjemności z pracy. Programiści kierowali się hasłem „jakoś to będzie”, a nadmierne wysiłki były niepożądane. Wszyscy starali się zrzucać winę na innych, a ja często musiałem podejmować skróty, aby zmieścić się w bardzo napiętych terminach. Ale najgorsze było to, że absolutnie niczego się nie nauczyłem.
Na rozmowach kwalifikacyjnych ignorowałem wszystkie znaki, tak fascynowała mnie perspektywa zatrudnienia. Jeśli jakieś wątpliwości się pojawiały, wszystkie znikały z mojej głowy, gdy tylko usłyszałem, że mnie przyjmują! A jeszcze na dobrą pensję!
I to była ogromna pomyłka.
Pierwsza praca ma ogromne znaczenie. Daje ogólny wgląd w to, co to znaczy być prawdziwym programistą, a doświadczenie i nauka, które z niej uzyskasz, mogą stanowić podstawę na całej twojej przyszłej karierze. Dlatego ważne jest, aby dokładnie zbadać ofertę pracy i pracodawcę, zanim zdecydujesz się na przyjęcie. Każde złe doświadczenie lub zły mentor są ci zdecydowanie niepotrzebne.
- Poszukaj informacji o firmie. Przejdź przez strony z recenzjami, odwiedź oficjalną stronę, po prostu przeszukaj Internet i zbierz opinie. Dzięki temu lepiej zrozumiesz, czy firma spełnia twoje potrzeby i cele.
- Zapytaj znajomych. Jeśli ktoś z twojego kręgu pracował dla tego pracodawcy lub zna kogoś z zespołu, porozmawiaj z nimi osobiście. Dowiedz się, co im się podobało, co nie i jak ogólnie oceniają to doświadczenie.
Nie zadawałeś potrzebnych pytań na rozmowach kwalifikacyjnych.
Rozmowa kwalifikacyjna to najlepsza okazja, aby lepiej poznać firmę, więc zawsze przygotuj pytania, które chcesz zadać pracownikom. Oto kilka przykładów:
- Zapytaj o proces rozwoju (jakie metodologie stosują? Czy przeprowadzają inspekcję kodu? Jakie stosują strategie branżowe?)
- Zapytaj o testowanie (jakie testy są przeprowadzane? Czy są specjalni ludzie zajmujący się tylko testowaniem?)
- Zapytaj o kulturę korporacyjną (jak nieformalnie wszystko wygląda? Czy przewidziana jest jakakolwiek pomoc dla juniorów?)
Nie zdecydowałeś się na ścieżkę kariery.
Bez wątpienia, droga do zostania doświadczonym programistą jest zawiła. Obecnie masz możliwość wyboru spośród wielu języków, frameworków i narzędzi. Moim błędem na początku kariery było próbowanie opanowania wszystkiego. Jak dziwnie by to nie brzmiało, doprowadziło to jedynie do tego, że w niczym nie poczyniłem większych postępów. Najpierw chwyciłem się Javy, później JQuery, potem przeszedłem do C#, a następnie do C++… Zamiast wybrać jeden język i poświęcić mu wszystkie siły, skakałem z jednego na drugi, po prostu według nastroju. Mogę cię zapewnić, to niezwykle nieefektywna metoda nauki.
Osiągnąłbym lepsze wyniki i szybciej awansował w karierze, gdybym od razu określił swoją ścieżkę, to znaczy zdefiniowany zestaw technologii, i skupił się na nich. Na przykład, jeśli jesteś frontendowcem, opanuj JavaScript, CSS/HTML oraz jakiś framework według własnego wyboru. Jeśli zajmujesz się backendem, również wybierz jeden język i przestudiuj go dokładnie. Nie musisz znać zarówno Pythona, jak i Javy oraz C#.
Dlatego skup się, określ kierunek i stwórz plan, który pozwoli ci stać się profesjonalistą w wybranej dziedzinie (oto , która może ci w tym pomóc).
Popisywałem się kodowaniem
Więc przygotowujesz projekt testowy, aby pokazać pracodawcy swoje umiejętności, lub już zająłeś się swoim pierwszym zadaniem w nowej pracy. Robisz wszystko, aby zrobić dobre wrażenie. Jak najlepiej osiągnąć rezultat? Pewnie pokazując w trakcie pracy te zaawansowane techniki, które ostatnio opanowałeś, prawda?
Nie. To poważny błąd, który sam popełniałem, a zbyt często dostrzegam go w pracy innych juniorów. Jest im bardzo charakterystyczne, by wynajdywać koło na nowo lub szukać skomplikowanych rozwiązań w chęci zaimponowania wiedzą.
Najlepsze podejście do pisania kodu to . Dążąc do prostoty, stworzysz kod, który będzie zrozumiały i z którym łatwo będzie pracować w przyszłości (programista, który przyjdzie po tobie, to doceni).
Zapominałem, że życie poza kodem istnieje
Nigdy nie "wyłączałem się" — to zły nawyk, który wykształciłem bardzo wcześnie. Wracając do domu na koniec dnia, regularnie zabierałem ze sobą służbowy laptop i spędzałem godziny, aby zamknąć zadanie lub naprawić błąd, chociaż obie rzeczy mogły spokojnie poczekać do rana. Jak można się spodziewać, taki tryb życia powodował stres i szybko się wypaliłem.
Powód takiego zachowania wynikał częściowo z mojego pragnienia, aby wszystko robić jak najszybciej. A przecież w rzeczywistości powinienem był zrozumieć, że praca to proces długoterminowy i z wyjątkiem nielicznych przypadków dzisiejsze zaległości można spokojnie przenieść na jutro. Ważne jest, aby okresowo się przestawić i przypomnieć sobie, że życie nie kończy się na pracy — są przyjaciele, rodzina, pasje i rozrywki. Oczywiście, jeśli lubisz siedzieć nad kodem do świtu — śmiało! Ale gdy to przestaje sprawiać przyjemność, zatrzymaj się i pomyśl, czy nie warto zająć się czymś innym. W końcu nie pracujemy ostatniego dnia!
Unikałem mówienia: „Nie wiem”
Utknąć w procesie rozwiązywania jakiegoś problemu lub wykonania zadania to normalna sprawa, z tym zmagają się nawet najbardziej doświadczeni seniorzy. Kiedy byłem juniorem, rzadziej mówiłem: „Nie wiem”, niż powinienem i to był mój błąd. Gdy ktoś z kierownictwa zadawał mi pytanie, na które nie znałem odpowiedzi, starałem się wprowadzić zamieszanie, zamiast po prostu to przyznać.
Wydawało mi się, że jeśli powiem: „Nie wiem”, ludzie pomyślą, że w ogóle nie orientuję się w tym, co robię. W rzeczywistości wcale tak nie jest, wszyscy jesteśmy tylko ludźmi. Dlatego jeśli ktoś pyta cię o coś, czego nie wiesz, po prostu to powiedz. Taki sposób myślenia ma kilka zalet:
- To uczciwe — nie wprowadzasz pytającego w błąd
- Istnieje szansa, że ci wyjaśnią i wtedy nauczysz się czegoś nowego
- To budzi szacunek — nie każdy potrafi przyznać, że czegoś nie wie
Śpieszyłem się, aby awansować
Na pewno słyszałeś przysłowie: „Zanim zaczniesz biegać, naucz się chodzić”. Jest ono szczególnie aktualne w dziedzinie programowania internetowego. Kiedy po raz pierwszy startujesz jako junior, masz ochotę wziąć byka za rogi i od razu zająć się jakimś dużym, skomplikowanym projektem. Pojawiają się nawet myśli o tym, jak najszybciej zdobyć awans na kolejny poziom!
Ambicje są oczywiście dobre, ale na początku kariery nikt nie zaoferuje ci nic podobnego. Na początku kariery najprawdopodobniej będziesz zajmować się prostymi zadaniami i poprawkami błędów. To nie jest najciekawsza zajęcie na świecie, ale nie masz innego wyjścia. Pozwoli ci to krok po kroku zapoznać się z bazą kodu i poznać wszystkie procesy. Jednocześnie twoje kierownictwo będzie miało możliwość zobaczyć, jak wpasowujesz się w zespół i w czym jesteś najlepszy.
Mój błąd polegał na tym, że irytowały mnie te drobne zadania, co odciągało mnie od pracy. Uzbrój się w cierpliwość, rób wszystko, co ci każą, z zaangażowaniem, a wkrótce dostaniesz coś ciekawszego.
Nie angażowałem się w społeczność i nie budowałem kontaktów.
Programiści mają wspaniałą społeczność: zawsze są gotowi pomóc, udzielić informacji zwrotnej i nawet dodać otuchy. Programowanie to trudna rzecz i czasami naprawdę wyczerpująca. Okres pracy jako junior przeszedłby mi łatwiej, gdybym od samego początku aktywnie komunikował się z kolegami.
Kontakty ze społecznością są również bardzo przydatne do samokształcenia. Możesz wnosić wkład w projekty z otwartym kodem, uczyć się z cudzych kodów, obserwować, jak programiści prowadzą projekt wspólnie. To wszystko są umiejętności, z których możesz skorzystać w głównym miejscu pracy, a które z czasem uczynią cię dobrym specjalistą.
Wybierz społeczności, które cię interesują — mogę polecić freeCodeCamp, CodeNewbies, 100DaysOfCode — i dołączaj! Możesz również uczestniczyć w lokalnych meet-upach w swoim mieście (przeszukaj meetup.com).
W końcu w ten sposób możesz zyskać profesjonalne kontakty. W zasadzie kontakty to po prostu ludzie w twojej branży, z którymi się komunikujesz. Po co to potrzebne? Cóż, na przykład, jeśli kiedykolwiek zechcesz zmienić pracę. Jeśli skontaktujesz się ze swoimi znajomymi, ktoś być może poleci ci odpowiednią ofertę pracy, a nawet zarekomenduje cię pracodawcy. To da ci znaczną przewagę podczas rozmowy kwalifikacyjnej — ktoś już za ciebie zachęcił, nie będziesz już „kolejnym CV w stosie”.
To wszystko, dziękuję za uwagę!
Źródło: habr.com
