Kariera po kilku latach - wszystkiego po trochu czy wąska specjalizacja

1

Nękają mnie ostatnio rozważania na temat rozwoju mojej kariery, chciałbym odbić się od waszych opinii na ten temat.
Pracuję w średniej wielkości vendorze IT dla dużych korpo. Zaczynałem na studiach od pisania CRUD i prostych BI w SpringBoocie, do tego jakieś niszowe biblioteki JS. Po około roku doszedł do tego Angular, kroczyłem dzielnie w stronę fullstacka SpringBoot + Angular, później doszły hybrydowe aplikacje mobilne w Cordovie, ale to wciąż blisko Angulara, więc nie bałem się, że to zbyt dużo tematów. Następnie doszło do tego sporo grzebania w Azure, trochę w CI/CD, trochę w Node, trochę w AWS i GCP, trochę automatyzacji w Powershell - generalnie trzeba zrobić to, co akurat jest do zrobienia bez względu na technologię.
Po prawie pięciu latach mam wrażenie, że poszło to w złą stronę, znam powierzchownie / dość sprawnie używam wielu technologii, ale w żadnej nie czuję się tak doświadczony, jak po 2-3 latach jej używania powinienem się moim zdaniem czuć. Gdyby ktoś mnie teraz zapytał jaka jest moja specjalizacja to głowiłbym się nieźle nad odpowiedzią.
Zastanawiam się czy powinienem wybrać konkretną ścieżkę i z innymi technologiami stanowczo się pożegnać czy też taka wszechstronność też jest w cenie na rynku pracy, co uważacie?
W tej chwili widzę ścieżki:

  • Mobile developer - Cordova i Flutter, ciągnie mnie w tą stronę i mam spore doświadczenie

  • SpringBoot + Angular fullstack - powrót do korzeni, ale dość ciężki, jako, że w Javie ostatnio robiłem coś z rok temu, nie znam w ogóle wersji 11 ani 14. Generalnie co do kierunku, w którym kroczy Java mam mieszane uczucia, dodatkowo nigdy nie czułem się gigantem obiektowego programowania. Angular też co raz mniejszy ma udział w rynku :|

  • Back-end developer - SpringBoot, ale z odcięciem się od front-endu a zagłębieniem trochę w Cloud,

  • Cloud architekt - Dobra znajomość Azure i możliwość rozwoju w AWS pozwala mi myśleć o takim kierunku, jednak tutaj wiem, że długa droga do przebycia, nie bardzo też umiem zdefiniować jakie języki programowania musiałbym jednocześnie znać

0

Tak jak to opisałeś to na tą chwilę dowozisz projekty i tematy, są różne technologie. 5 lat expa i jedna firma?

Mam dwie inne perspektywy:
-moja własną gdzie pracowałem sporo ze starymi produktami. Niestety jest spagetti i nikt nie ma czasu na super wzorce. Tutaj siłą rzeczy stajesz się expertem od Spring 3/4, JSP i Javy 7 :P
-znajomi którzy siedzą na kontraktach: jest sporo podróżowania bo będąc specjalsem nie dostaniesz pracy w każdym software house, tylko u klientów których stać i mają konkretne potrzeby

Można też się rozwijać nie-technicznie:
Jak angielski?
Jak stoisz z czystym kodem, wzorcami, pisaniem dokumentacji i testów? To zawsze jest w cenie, niezależnie od technologii.

0

Tak, 5 lat w jednej firmie, z kilkumiesięczną przerwą na freelancing aplikacji mobilnych i powrotem na bardziej elastycznych warunkach.
Wiem, że to dość długo, ale czując się dobrze w firmie i rozwijając cały czas łatwo mi przychodziło ignorowanie tej średniej 1,5 - 2 lata pracy programisty dla jednej firmy. Dopiero tej wiosy zaczynam czuć, że te perspektywy na rozwój nie do końca idą w taką stronę jak powinny.

Angielski dobrze, umiejętności miękkie też dobre - wręcz oceniam, że wyższe niż techniczne porównując się z kolegami. W pisaniu czystego kodu i TDD oceniam się dość nisko i to mnie boli, ale robienie wielu różnych rzeczy w tym nie pomaga. Przykład: żeby pisać czysty kod w Javie trzeba bardzo dobrze znać patterny OOP, których znowu nie użyję pisząc w Powershellu czy Darcie - takie mam wrażenie, może jest mylne.

Krótkoterminowo postanowiłem udokumentować swoje skille w Azure certyfikatami Microsoftu: tej wiedzy mam sporo, więc nakład sił nie jest duży, a wiedza w Cloudzie zawsze będzie w cenie, nawet gdybym miał przesiadać się kiedyś na innego clouda, mindset, który nabywasz zostaje.
Długofalowo dalej się zastanawiam ;]

0
snottor napisał(a):

Zastanawiam się czy powinienem wybrać konkretną ścieżkę i z innymi technologiami stanowczo się pożegnać czy też taka wszechstronność też jest w cenie na rynku pracy, co uważacie?

Wazna jest wszechstronność, ale wszechstronność w danej dziedzinie. Czyli jak ja np jestem javowcem, to bazy danych, jakieś Jenkinsy, basha też dobrze jest znać. Z drugiej strony, zbyt ogólna wszechstronność nie jest konieczna - programowanie mikrokontrolerów mi się raczej nie przyda, tak samo jak programowanie robotów.

  • SpringBoot + Angular fullstack - powrót do korzeni, ale dość ciężki, jako, że w Javie ostatnio robiłem coś z rok temu, nie znam w ogóle wersji 11 ani 14.

Brak znajomości javy 11 czy 14 nie jest problemem - nowości nie ma aż tak dużo, można nadrobić w 1 dzień.

1

Z doświadczenia po pracy i studiów na infie widzę że ludzie którzy ogarniają wszystko po trochu zazwyczaj piszą gówniany kod. Jak mówisz że w Javie robiłeś rok temu to raczej nie chciałbym widzieć jak wygląda popełniony przez Ciebie kod, nie mówiąc o obsłudze, czy debugowaniu w intellij. To są rzeczy które się zapomina. Skup się na jednej technologii i tyle. Teraz zatrudniają nawet samych specy od Angulara za kolosalne stawki, tak samo od Azure, czy Javy. Ale trzeba być w danej technologii "wychlastanym" inaczej jesteś od wszystkiego jak informatyk.
Poza tym, wszędzie tak jest, że jak się zwiększa ilość to spada jakość, tak samo jest z technologiami w IT, a doby nie oszukasz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1