Doświadczenie młodszego programisty

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. 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:

  • Zazwyczaj, potrzebują “trzymania za rękę”.
  • Dostają konkretne zadania, które są dokładnie sprawdzane , a następnie informowani są przez bardziej doświadczonych kolegów co należy poprawić.
  • Powinni brać udział w szerokim wachlarzu projektów, nad którymi mogliby pracować, aby znaleźć rodzaj pracy, który lubią i gdzie mogą być najbardziej efektywni.

Obszary wymagające poprawy

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 po drodze.

Poproś o pomoc i nie bój się pokazać, że jesteś niedoświadczony.

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.

Rozwijaj swoje umiejętności, niezależnie od tego, czy są to umiejętności twarde czy miękkie.

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:

  • Szeroka i wszechstronna wiedza na temat procesu tworzenia oprogramowania i jego technologii.
  • Dobra znajomość języków, takich jak Java, C++, PHP i SQL.
  • Silne doświadczenie w kodowaniu
  • Duża wiedza na temat interfejsów użytkownika
  • Duża wiedza na temat technologii HTML i frameworków
  • Doświadczenie w tworzeniu i utrzymywaniu baz danych
  • Zaawansowane umiejętności: Podczas gdy większość pracodawców nie wymagała następujących umiejętności, na wielu miejscach pracy były one preferowane. Dodaj je do swojego zestawu umiejętności aby poszerzyć swoje możliwości kariery.
  • Rozwój interfejsu użytkownika z wykorzystaniem języków takich jak CSS, HTML/HTML5, JavaScript lub JSON.
  • Doświadczenie w tworzeniu stron internetowych i aplikacji zoptymalizowanych pod kątem urządzeń mobilnych.

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.

Popracuj nad sposobem komunikacji z innymi.

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.

Używaj właściwych narzędzi.

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.

Weź udział w złożonych projektach i ucz się.

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. Oto kilka przykładów, gdzie rozwijać swoje umiejętności:

  • Szkolenia w miejscu pracy
  • College
  • Szkolenia
  • MOROC’s
  • Projekty osobiste
  • Lista jest długa, ale najważniejsze – istnieje niezliczona liczba sposobów udoskonalenia i podniesienia swoich 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 i uczyć się dalej. 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.”