Gratulacje – Dostałeś tę pracę!
Będąc nowym pracownikiem, często czuje się pośpiech i nacisk w podejmowaniu nowych wyzwań, a Ty sam się do tego przyczyniasz. Nie popełniaj błędu – to dopiero początek Twojej podróży w drodze po awans. Na tym etapie juniorzy są w stanie pisać skrypty kodu, rozwiązywać niektóre błędy, ale w większości przypadków są świeżakami. Najczęściej, aby ewoluować, potrzebują pomocy kogoś bardziej doświadczonego, kto może ich poprowadzić. Pamiętaj, że będąc jednym z nich, wciąż uczysz się w pracy i musisz być trzymany za rękę. Jeśli chodzi o pisanie kodu, know-how jest ograniczone do jednego lub dwóch języków (dla większości ludzi jest to Java lub C), może jeden framework i to prawie wszystko. Portal StackOverflow to twój najlepszy przyjaciel, a GIT to coś, czego używałeś raz lub dwa razy.
Większość świeżych programistów jest w stanie rozwiązywać powierzone im zadania, ale nie przyglądają się “szerszej perspektywie” – jak działa system, jak ulepszyć i zautomatyzować niektóre zadania lub skrócić czas realizacji. Ten rodzaj myślenia wiąże się z doświadczeniem, które zazwyczaj jest domeną pracowników średniego i wyższego szczebla. Jeśli chodzi o preferencje, większość młodych programistów typu back-end lub front-end nie ma żadnych – nie obchodzi ich, za jakie projekty są oni odpowiedzialni. Potrzeba dużo czasu, aby znaleźć swoją niszę i rodzaj pracy, do której najlepiej pasują. Przez następne dwa lata (zazwyczaj wtedy, gdy większość z nich osiągnie poziom średnio-zaawansowanego developera) trzeba dużo ćwiczyć i uczyć się.
Podsumowując, młodsi programiści:
Od momentu zatrudnienia do osiągnięcia tej dwuletniej oceny jest mnóstwo czasu na samodoskonalenie. Ale co można zrobić? Oto kilka wskazówek i trików, które mogą pomóc Ci w drodze do awansu.
Jest to kluczowy i najważniejszy czynnik w doskonaleniu umiejętności. Nawet starsi programiści nie wiedzą wszystkiego. Największa tajemnica handlowa, która nie jest żadną tajemnicą – wszyscy korzystamy z Google i Stack Overflow, kiedy utkniemy. Nie pozwól, aby chwila ukończenia studiów/obozu/ kursu zniechęcała Cię do wykazywania luk w wiedzy. Lepiej jest przyznać, że czegoś się nie wie, niż pozostać w niewiedzy. Twoi koledzy z zespołu będą zadowoleni, że zadajesz im pytania.
Wiesz, czym jest pętla i nikt nie może Cię zaskoczyć pytaniem o programowanie obiektowe. To wspaniale, ale to nie wszystko. Jeśli chcesz osiągnąć poziom średnio-zaawansowanego programisty, któregoś dnia musisz dodać kilka języków (Python, Ruby, Go – twój wybór) i mnóstwo innych umiejętności.Jeden z przykładów listy czego warto się uczyć możesz znaleźć tutaj: https://www.jobhero.com/senior-developer-job-description/
Spośród podstawowych umiejętności niektóre z nich wymieniłem poniżej:
Chociaż jest to lista podstawowych umiejętności dla starszego developera, obowiązują te same zasady, tzn. musisz znać wiele języków, tworzyć UX/UI i pisać aplikację oraz wykazywać się innymi umiejętnościami technicznymi. Nie musisz znać ich wszystkich, żeby się posunąć naprzód. Wybierz kilka, które pasują do Twoich podstawowych umiejętności. Na przykład, jeśli jesteś początkującym programistą, skoncentruj się na frameworkach HMTL, CSS, budowie stron internetowych. Z drugiej strony, jeśli wolisz pracować jako programista i nie chcesz iść w stronę na przykład UX, nie szukaj dalej niż Java, C, C++ i tak dalej.
Zanim otrzymasz upragniony awans, musisz być świadomy, że bycie deweloperem średniego i wyższego szczebla wymaga również dobrej komunikacji z innymi członkami zespołu. Nie mam tu na myśli pisania krótkich wiadomości przez Skype’a, ale wyrażanie myśli w sposób jasny i przejrzysty. Pracując w firmie napotkasz wiele osób, które mogą być bardziej lub mniej techniczne od Ciebie. Dotyczy to kierowników projektów, kierowników zespołów, właścicieli produktów lub klientów. Musisz być w stanie przedyskutować z nimi swoje problemy w jasny i ustrukturyzowany sposób. Jednak komunikacja nie zawsze ogranicza się tylko do rozmowy z innymi ludźmi. Jest to również sztuka prowadzenia prezentacji i pisania dobrej dokumentacji oraz komentowania kodu w odpowiedni sposób.
Młodszy programista często wybiera najbardziej złożone rozwiązanie dla danego zadania, co skutkuje niepotrzebnym i skomplikowanym kodem. Wierzcie lub nie, ale programista średniego poziomu unika tworzenia zbyt skomplikowanego kodu. Złożony kod jest oznaką tego, że junior nie ma wiedzy o tym, jak najlepiej rozwiązać problem, który jest mu przedstawiany. Skonstruuj swój kod. Doświadczony programista stworzy modułowy, dobrze udokumentowany, adaptowalny, łatwy do aktualizacji i wdrożenia kod. Co więcej, kod średnio-zaawansowanych programistów nie powinien być powtarzalny, ponieważ pokazuje, że jest źle zaprojektowany.
Jest to dość oczywiste – jeśli zaczniesz się nudzić w pracy, oznacza to, że projekty, które bierzesz na siebie, są zbyt proste. Poproś o bardziej skomplikowane i spróbuj rozwiązać je samodzielnie, bez pomocy i wskazówek innych deweloperów. Rozwijaj swoje umiejętności, czy to poprzez wewnętrzne szkolenia, filmy wideo z YouTube, czy inne środki. Takie działania z pewnością przybliżą Cię do awansu. Oto kilka przykładów, gdzie rozwijać swoje umiejętności:
Podsumowując, jako deweloper średnio-zaawansowany możesz pracować na własną rękę, ale nie jesteś gotowy do bycia Liderem. Jesteś jednak kluczowym członkiem każdego zespołu. Umiejętnie posługujesz się językiem i prawdopodobnie uczysz się innych oraz poprawiasz swoje słabe punkty.
Ale co najważniejsze, musisz być pokorny, uczyć się dalej, a awans przyjdzie z czasem. Powodzenia 🙂
Rafał Pacholczyk
“Posiadam 6 lat doświadczenia w IT z czego ponad 2 w testowaniu.
Jestem typem samouka, dzięki czemu zawsze szukam nowych ścieżek rozwoju.
Poza pracą jestem trenerem w SDA, uczę kolegów i koleżanki z branży IT angielskiego oraz okazjonalnie biorę udział w projektach OpenSource oraz Meetupach.”