Rozwój techniczny - wszechstronny czy jednokierunkowy

Odpowiedz Nowy wątek
2017-09-12 22:02
0

Cześć,

Mam pytanie do osób z pewnym bagażem doświadczeń technicznym, które napotykały w swojej pracy problemy z różnych obszarów technicznych i które zastanawiały się czy nie zmienić technologii po kilku latach pracy będąc już seniorem albo architektem w dotychczasowej technologii.

Jestem developerem Javy z 5-letnim doświadczeniem. W swoim doświadczeniu głównie programowałem w Javie, aczkolwiek pojawiały mi się projekty, w których musiałem porzucić Javę i napisać projekt w Pythonie, ReactJSie, przeprowadzić migrację na bazie danych w Oraclu czy zintegrować systemy za pomocą narzędzia EAI (WebMethods).
Łącznie na 5 lat mojego doświadczenia, około 2 lata były poświęcone na projekty poza Javą, w trakcie których uczyłem się zagadnień i podejść występujących podczas migracji czy integracji systemów. Na pewno fajnym było pozyskanie tej wiedzy, pisząc zaawansowanego SQLki czy ucząc się WebMethods i "bardzo wysokopoziomowego sposobu programowania", aczkolwiek powodowało to, że nie byłem na bieżąco z technologiami w Javie (np. JSF, moduły Springa czy MyBatis), ale starałem się w wolnym czasie doganiać nowinki technologiczne.
Plus mojego doświadczenia jest taki, że teoretycznie mógłbym odnaleźć się w różnego rodzaju projektach, minus jest taki, że "albo jesteś dobry w jednej technologii, albo jesteś średni we wszystkich technologiach".
Zastanawiam się czy moje doświadczenie będzie jakoś zauważone i docenione przez przyszłych pracodawców czy raczej powinienem trzymać się jednej technologii (no i ReactJS, zawsze się przyda na pozycję Full-Stacka) i ćwiczyć jak największe skille w niej.

Czy mieliście podobne problemy w swojej pracy? Który wybór jest wg was lepszy i dlaczego?

Pozostało 580 znaków

2017-09-12 22:10
4

Hej miło mi to słyszeć, jesteśmy w podobnym miejscu! ;p
Zdecydowanie najlepszym rozwiązaniem, z którym się zetknąłem jest T-shaped skills. Czyli masz dogłębną ekspertyzę w jednej dziedzinie (w Twoim wypadku Java) i bardzo szeroką znajomość różnych innych technologii.
Pamiętaj, że narzędzia należy dobierać do problemu. I technologia ciągle się zmienia, nie warto więc kurczowo trzymać się jednej. Gdyby nagle umarła (np. Flash), pozostałbyś w średniej sytuacji. A tak przerzucenie się na inną to dla Ciebie kwestia krótkiego czasu ;)


edytowany 1x, ostatnio: ekhart, 2017-09-12 22:11

Pozostało 580 znaków

2017-09-12 22:35
0

Hej, mam podobnie i znam ten bol. Jak miałem rekrutacje na Java Developera ze znajomością Springa to nikt nie bral pod uwage doswiadczenia w migracji z Oracla, a na pewno nie mialem takiej znajomosci Springa jak koledzy z moim stazem pracujacy tylko w Springu. Prawda jest taka, ze dla pracodawcy wazne jest jak bardzo podpasowujesz pod jego wymagania projektowe :(

Zgadza się. Acz bardziej bym uściślił, że headhunterzy patrzą na to tylko czy pasujesz do projektu, do którego szukają ludzi. Mądrzejszy pracodawca będzie miał jednak na uwadze nie tylko to. - ekhart 2017-09-12 22:39

Pozostało 580 znaków

2017-09-13 01:23
0

Nigdy nie wiesz co się w żyicu przyda i kiedy jakiś głupi skill okaże się kartą przetargową.
Robiłem w trakcie studiów wakacyjny staż i akurat tak wyszło, że pasującą technologią był python, więc pisałem w pythonie, mimo że tez miałem taki dylemat z serii "a mógłbym zrobić dodatkowe 4 miesiące doświadczenia w Javie!". Rok później okazało się, że dostałem bardzo dobrą pracę właśnie dlatego że szukali kogoś ze znajomością javy + pythona a ja miałem doświadczenie w obu. Co więcej na tym stażu pracowałem z pewną wewnętrzną, dość niszową technologią, którą znów można by uznać za "stratę czasu", a moją aktualną pracę dostałem właśnie ze względu na to, bo znów potrzebnymi skillami była java i python, ale projekt jest związany z tą wewnętrzną technologią i jej znajomość działała mocno na plus.

Narzędzia dobiera się do problemów które trzeba rozwiązać. Język X czy Y nie są żadnym panaceum i nie nadają się do wszystkiego. Znajomość tylko jednej technologii to jest trochę kalectwo i kończy się zwykle wbijaniem śrubek za pomocą młotka (zgodnie z zasadą jeśli masz młotek to nagle wszystko wygląda jak gwoździe).

Pozostało 580 znaków

2017-09-13 07:47
0

Warto sobie wybrać jedną wiodącą technologię i ją stale pogłębiać, ale też uczyć się innych.

Do Javy świetnym uzupełnieniem są:

Można też oczywiście uczyć się czegoś z zupełnie innej dziedziny (C++, Rust, Nim, etc.) - to jest wybór każdego z nas. A nuż okaże się trafnym wyborem - j.w.

Niektóre firmy zagraniczne mają podejście "wystarczy że jesteś inteligentny i znasz algorytmikę". Nie wiem na ile to się sprawdza, ja miałem niedawno do czynienia z dość doświadczonym programistą Javy, który nie wiedział co to znaczy niemutowalność niektórych klas w JDK (czyli Java mu nie przeszkadzała w pracy).

Pozostało 580 znaków

2017-09-13 17:08
0

Dzięki za informację, aczkolwiek chodziło mi bardziej o opinie na temat bardzo skrajnych obszarów technologicznych. Znam Javę i raczej nauka innego języka programowania (obojętne czy to język backendowy, frontendowy, funkcjonalny czy interpretowany) nie jest wyzwaniem, aczkolwiek jak poznawałem WebMethods czy inne toole EAI to tego programowania praktycznie nie było, a podejście do rozwiązywania problemów też trochę inne, po prostu trochę inny świat.
W związku z tym, też się zastanawiam czy nauka tego typu skrajnych obszarów technicznych na projekcie, gdzie przez 1 rok nie widzisz kodu tylko jakieś mapowania i translacje, nie sprowadzi mnie na manowce, że będę musiał sobie przypominać czym jest programowanie a nie mówiąc już o znajomości nowinek w Springu 5... :/

edytowany 1x, ostatnio: Andrzej Poniedzielski, 2017-09-13 17:09
WebMethods..... wspieramy Cię ;-) - jarekr000000 2017-09-13 22:15

Pozostało 580 znaków

2017-09-13 17:17
0

Jak nie widzisz kodu to jesteś integratorem albo bardziej oficjalnie "specjalistą ds. procesów biznesowych".
Ale nie programistą.
Praca może łatwiejsza, ale możesz zapomnieć jak się programuje.

nie zgodzę się tu akurat, jedno i drugie jest tak samo skomplikowane, tylko innych narzędzi się używa do rozwiązywania problemów ;) - Andrzej Poniedzielski 2017-09-13 19:05

Pozostało 580 znaków

2017-09-13 17:46
3

Specjalizuj się w domenach, np. pisanie gier czy inne hft, nie w technologiach.
Gry będą potrzebne zawsze, technologie przemijają ;)

Pozostało 580 znaków

2017-09-13 17:54
0

@Shalom: troche nie do końca się zgodzę. Oczywiście na przyklad jak się zna Jave nauka Pythona nie jest jakaś cieżka, ale ogarnięcie sobew na przykład JavaScriptu i CSSów i np. Javy jednocześnie jest bardzo trudna


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

2017-09-13 19:33
2

@scibi92 no tak bo nie istnieją fullstack developerzy ;)
Zresztą pytanie nie było czy to trudne czy nie, ale czy to wartościowe czy nie. Moim zdaniem wartościowe bo tak realistycznie jak ktoś pracuje kilka lat w jednej technologii to już wiele więcej sie nowego nie dowie. Kogoś kto klepie w technologii X 5 lat od kogoś kto klepie 10 lat różni doświadczenie "projektowe", ale już nie technologiczne. Jak ktoś klepał 5 lat w C++ a teraz 5 lat w Javie to będzie równie użyteczny co gość który od 10 lat siedzi w Javie. Ba, może będzie nawet bardziej użyteczny bo "widział coś więcej" i nie bedzie wbijać śrubek młotkiem tylko powie "hej chłopaki, to można inaczej..."

Pozostało 580 znaków

2017-09-13 19:38
1

A to nie jest czasem tak, że praca i chęć doskonalenia skilla profesjonalnego tworzenia kodu ciągną w jedną stronę, a marzenia, pomysły i ciągła potrzeba nowych wrażeń sprawia, że skacze się z jednego kwiatka na drugi?

Życie jest długie i chyba starczy na poznanie wszystkiego.

Ale i tak skądś się czuje, co jest tak magiczne, że trzeba to poznać.

Eh sterta książek i technologi czeka do poznania, ale najpierw trzeba dobrze stanąć na nogach, a potem można pogrążyć się w marzeniach.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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