Cześć. Na wstępie zaznaczę, że choć moje pytanie wydaje się podobne do innych typu „co dalej?”, „jak zacząć?”, to myślę, że moja sytuacja jest nieco inna i nie jestem pewien jak skutecznie z niej wyjść.
Od 2.5 roku pracuję jako Junior Frontend Developer. Mam jednocześnie to szczęście (tak myślałem na krótką metę) i tego pecha (to dostrzegłem po przewinięciu się przez kilka projektów), że w projektach nie miałem okazji uczestniczyć w fazach dobierania technologii, konfiguracji projektu ani budowania aplikacji od zera. Za każdym razem dołączałem do zespołu, gdy projekt miał już tą początkową fazę za sobą, albo ktoś bardziej doświadczony zajmował się konfiguracją, a ja po prostu zaczynałem kodzić jakieś funkcjonalności. Z tego powodu nie mam doświadczenia w posługiwaniu się, obecnie praktycznie nieodzownymi, narzędziami typu: module bundlery, task runnery, package managery. To zawsze w projektach było już zrobione - ja tylko „uruchamiałem gotowca” – i, jako początkujący, jakoś bałem się w tym grzebać. Wolałem skupić się na szlifowaniu czystego JavaScriptu i nauce Angulara (zatrzymałem się na wersji 4).
W aktualnym projekcie tkwię od roku. Delikatnie mówiąc - nie należy do wymarzonych. Chcę go zmienić. Przy okazji zamierzam też przejść z Juniora na Professionala/Regulara, lecz obawiam się, że przez tą (myślę, że dość znaczącą) lukę w postaci braku doświadczenia w posługiwaniu się wspomnianymi narzędziami nie będę miał takiej możliwości bez nadrobienia zaległości, z czego zdaję sobie sprawę.
Projekt, w którym się zasiedziałem jest dosyć archaiczny i skomplikowany (należy do tych „korpo legacy”). Mimo, że stos technologiczny frontu jest dość prosty: ES5, Handlebars, SCSS, Gulp, WebSocket (komunikacja frontu z Javą, nie z NodeJS); to zastosowanie customowego frameworka (praktycznie brak dokumentacji) i nietypowe środowisko docelowe utrudniają wykonywanie pracy stricte frontendowej, jeśli nie jest się Full Stackiem (takim z naciskiem na znajomość Javy i SQL).
Przechodząc do sedna. Mam następujące pytania:
- Ile czasu według Was (zwłaszcza tych bardziej doświadczonych) może zająć ogarnięcie aktualnie stosowanych narzędzi, frameworków (przy założeniu, że wcześniej korzystałem z AngularJS i Angular2/4), technik (PWA, SSR itd.)? Wiem, że na to pytanie odpowiedź najpewniej brzmi „zależy”, ale przyjmując, że ma się solidne podstawy i doświadczenie w komercyjnych projektach, jest to lepsza sytuacja, niż nauka wszystkiego kompletnie od zera. Obecnie skupiam się na nauce wzorców projektowych, następnie na testach jednostkowych (tych jakoś też nie musiałem pisać w projektach).
- Czy rozsądną opcją jest, jako stan przejściowy, zredukować etat do np. połowy, po to aby mieć więcej czasu na naukę i tym samym szybciej nadrobić zaległości? Może czasami warto zrobić jeden krok w tył, żeby móc zrobić dwa do przodu…
Jeśli ktoś był lub jest w podobnej sytuacji, to chętnie skorzystam z przebytych doświadczeń i pomysłów na "odrdzewienie".
Dziękuję za wszelkie rady. :)