Na początku kariery programisty często czuje się lęk: stają przed tobą nieznane problemy, musisz nauczyć się wielu rzeczy i podejmować trudne decyzje. W niektórych przypadkach mylą się w wyborach. To całkowicie naturalne, więc nie ma co się za to ukarać. Ale warto pamiętać o swoim doświadczeniu na przyszłość. Jestem programistą seniorem, który popełnił wiele błędów na początku kariery. Poniżej opowiem o ośmiu najpoważniejszych z nich, jakie popełniłem jako nowicjusz w programowaniu, oraz wyjaśnię, jak można ich uniknąć.

Wziąłem pierwszą ofertę, która się pojawiła
Gdy uczysz się pisać kod samodzielnie albo 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.
Znalezienie pracy z drugiej strony nie jest proste. Liczba osób ubiegających się o stanowiska juniorów rośnie. , przejść przez całą serię rozmów kwalifikacyjnych, a często cały ten proces znacznie się wydłuża. Biorąc pod uwagę to wszystko, nic dziwnego, że każda oferta pracy budzi pragnienie, aby chwycić ją obiema rękami.
Jednak może to być złym pomysłem. Moja pierwsza praca była daleka od ideału, zarówno pod względem rozwoju zawodowego, jak i przyjemności z procesu. Programiści kierowali się hasłem „jakoś to będzie”, więc nikt nie miał ochoty się zbytnio wysilać. Wszyscy starali się przerzucić winę na innych, a ja często musiałem przyspieszać pracę, aby zmieścić się w bardzo krótkich terminach. Ale najgorsze było to, że w ogóle się nie uczyłem.
Na rozmowach kwalifikacyjnych ignorowałem wszystkie znaki, tak bardzo fascynowała mnie perspektywa zatrudnienia. Jeśli pojawiały się jakiekolwiek wątpliwości, znikały jak tylko usłyszałem, że mnie przyjmują! I to na dobrą pensję!
I to była wielka pomyłka.
Pierwsza praca ma ogromne znaczenie. Daje ogólne wyobrażenie o tym, jak to jest być prawdziwym programistą, a doświadczenie i nauka, które z niej wyniesiesz, mogą stanowić fundament dla całej przyszłej kariery. Dlatego ważne jest, aby dokładnie zebrać wszystkie informacje o ofercie i pracodawcy przed podjęciem decyzji. Trudne doświadczenia i złe mentory to coś, czego z pewnością nie potrzebujesz.
- Poszukaj informacji o firmie. Przejrzyj strony z recenzjami, odwiedź oficjalną stronę, po prostu przeszukaj Internet i zbierz opinie. W ten sposób lepiej zrozumiesz, czy firma odpowiada Twoim potrzebom i celom.
- Porozmawiaj ze znajomymi. 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łem potrzebnych pytań na rozmowach kwalifikacyjnych
Rozmowa kwalifikacyjna to najlepsza okazja, aby lepiej poznać firmę, więc koniecznie przygotuj pytania dotyczące tego, co chcesz wiedzieć od pracowników. Oto kilka przykładów:
- Zapytaj o proces rozwoju (jakie metodyki stosują? Czy odbywa się przegląd kodu? Jakie strategie branżowe są stosowane?)
- Zapytaj o testowanie (jakie testy są przeprowadzane? Czy są specjalni ludzie, którzy zajmują się tylko testowaniem?)
- Zapytaj o kulturę organizacyjną (jak nieformalnie jest? Czy dostępne jest jakieś wsparcie dla juniorów?)
Nie zdecydowałem się na trajektorię rozwoju
Niezaprzeczalnie ścieżka stawania się doświadczonym programistą jest kręta. 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 to, że próbowałem opanować wszystko. Co dziwne, prowadziło to tylko do tego, że w żadnym nie zrobiłem większych postępów. Najpierw zabrałem się za Javę, potem za jQuery, następnie przeszedłem do C#, a potem do C++... Zamiast wybrać jeden język i skupić na nim wszystkie swoje siły, skakałem z jednego na drugi, po prostu w zależności od nastroju. Mogę Cię zapewnić, że to bardzo nieefektywna metoda nauki.
Osiągnąłbym lepsze wyniki i szybciej awansowałbym w karierze, gdybym od razu określił trajektorię, czyli zestaw technologii, na których chciałbym się skupić. Na przykład, jeśli jesteś frontendowcem, opanuj JavaScript, CSS/HTML oraz dowolny framework, który wybierzesz. Jeśli zajmujesz się backendem, wybierz jeden język i dokładnie go zgłębiaj. Nie musisz znać zarówno Pythona, jak i Javy, oraz C#.
Skup się więc, określ kierunek i stwórz plan, który pozwoli ci stać się profesjonalistą na wybranej ścieżce (oto , która może ci w tym pomóc).
Wymyślałem skomplikowane rozwiązania w kodzie
Więc przygotowujesz test, aby pokazać pracodawcy swoje umiejętności, lub już zabrałeś się za pierwsze zadanie w swojej pierwszej pracy. Robisz wszystko, żeby zrobić wrażenie. Jak najlepiej osiągnąć rezultat? Pewnie poprzez zaprezentowanie skomplikowanej techniki, którą niedawno opanowałeś, prawda?
Nie. To poważny błąd, który sam popełniłem, a częściej, niż bym chciał, widzę go w pracy innych juniorów. Mają oni tendencję do wymyślania na nowo koła lub szukania skomplikowanych rozwiązań, próbując zaimponować swoimi umiejętnościami.
Najlepsze podejście do pisania kodu wyraża . Dążąc do prostoty, uzyskasz czytelny kod, z którym łatwo będzie pracować w przyszłości (programista, który przyjdzie po tobie, to doceni).
Zapominałem, że istnieje życie poza kodem
Nigdy się nie «wyłączałem» — to zły nawyk, który nabyłem bardzo wcześnie. Wracając do domu pod koniec dnia, regularnie zabierałem ze sobą służbowy laptop i spędzałem godziny przed nim, by zamknąć zadanie lub naprawić błąd, chociaż obie te rzeczy mogły spokojnie poczekać do rana. Jak można się było spodziewać, taki tryb życia powodował stres i szybko się wypaliłem.
Przyczyną takiego zachowania było częściowo moje pragnienie szybkiego działania. A w rzeczywistości powinienem był zrozumieć, że praca to proces długoterminowy i, z rzadkimi wyjątkami, niedokończone rzeczy można spokojnie odłożyć na jutro. Ważne jest, aby od czasu do czasu się przełączyć i przypomnieć sobie, że życie to nie tylko praca — są przyjaciele, rodzina, hobby, rozrywki. Oczywiście, jeśli lubisz siedzieć nad kodem do świtu — proszę bardzo! Ale gdy to przestaje być przyjemnością, zatrzymaj się i zastanów, czy nie czas zająć się czymś innym. W końcu nie pracujemy na ostatni dzień!
Unikałem mówienia: „Nie wiem”
Zatrzymanie się w procesie rozwiązywania jakiegoś problemu lub realizacji zadania jest sprawą powszechną, z tym borykają się nawet najbardziej doświadczeni seniorzy. Kiedy byłem juniorem, mówiłem: „Nie wiem” rzadziej, niż powinienem, i to był błąd. Gdy ktoś z kierownictwa zadawał mi pytanie, a ja nie znałem odpowiedzi, starałem się unikać jasnej odpowiedzi, zamiast po prostu to przyznać.
Wydawało mi się, że jeśli powiem: „Nie wiem”, ludzie pomyślą, że w ogóle nie znam się na tym, co robię. W rzeczywistości to wcale nie prawda, nie ma ludzi wszechwiedzących. Dlatego, jeśli pytają cię o coś, czego nie wiesz, po prostu to powiedz. Taka postawa ma wiele zalet:
- To uczciwe — nie wprowadzasz pytającego w błąd
- Jest szansa, że ktoś ci to wyjaśni i dzięki temu dowiesz się czegoś nowego
- To budzi szacunek — nie każdy potrafi przyznać, że czegoś nie wie
Spieszyłem się, aby się rozwijać
Pewnie słyszałeś powiedzenie: „Zanim pobiegniesz, naucz się chodzić”. Nie ma miejsca, w którym byłoby to bardziej aktualne, niż w obszarze programowania webowego. Kiedy po raz pierwszy zaczynasz pracę jako junior, czujesz chęć, by wziąć byka za rogi i od razu zająć się jakimś dużym, skomplikowanym projektem. Nawet przelatują myśli o tym, jak szybko zdobyć awans na następny poziom!
Ambicje są oczywiście ważne, ale w praktyce nikt nie da ci takich zadań od samego początku. Na początku kariery prawdopodobnie dostaniesz prostsze zadania i błędy do poprawienia. To nie jest najbardziej ekscytujące zajęcie na świecie, ale nie ma na to wpływu. To pozwoli ci krok po kroku zorientować się w kodzie i poznać wszystkie procesy. W międzyczasie twoje kierownictwo ma okazję zobaczyć, jak wpasowujesz się w zespół i co ci wychodzi najlepiej.
Mój błąd polegał na tym, że denerwowałem się tymi małymi zadaniami, co odciągało mnie od pracy. Uzbrój się w cierpliwość, rób wszystko, co ci każą, sumiennie, a wkrótce dostaniesz coś ciekawszego.
Nie angażowałem się w społeczność ani nie nawiązywałem znajomości.
Programiści mają wspaniałą społeczność: zawsze są gotowi pomóc, dać feedback i nawet pocieszyć. Programowanie to trudna sztuka i czasami bardzo wyczerpująca. Dla mnie okres pracy jako junior mógłby być łatwiejszy, gdybym od początku aktywnie rozmawiał z kolegami.
Kontakty ze społecznością są również bardzo przydatne do samokształcenia. Można wnosić wkład w projekty z otwartym kodem, uczyć się od innych, obserwować, jak programiści prowadzą projekt wspólnie. To wszystko to umiejętności, które możesz wykorzystać w pracy i które z czasem uczynią cię dobrym specjalistą.
Wybierz społeczności, które cię interesują — mogę polecić freeCodeCamp, CodeNewbies, 100DaysOfCode — i dołącz do nich! Możesz również odwiedzać lokalne meetupy w twoim mieście (poszukaj na meetup.com).
W końcu w ten sposób możesz nawiązać profesjonalne kontakty. W istocie, kontakty to ci ludzie z twojej branży, z którymi się komunikujesz. Po co to potrzebne? Cóż, powiedzmy, że kiedyś zechcesz zmienić pracę. Jeśli zwrócisz się do swoich kontaktów, ktoś może polecić ci odpowiednią ofertę pracy, a nawet zarekomendować cię pracodawcy. To da ci istotną przewagę na rozmowie kwalifikacyjnej — już ktoś za tobą stoi, nie jesteś tylko 'kolejnym CV w stosie'.
To wszystko, dziękuję za uwagę!
Źródło: habr.com
