Bycie przeciętny w wielu technologiach, czy specem w jednej

0

Cześć. Od dłuższego czasu mam w głowie pewną rozterkę. Jestem studentem i pracuję w firmie (nie korpo) od prawie 3.5 roku i jestem zaangażowany w praktycznie wszystkie technologie. Ogarniam backend (PHP na kilku framworkach, spring boot), frontend (react, vue) i mobile (framework androida, flutter). W związku z tym, że seniorzy umieją albo backend albo/i frontend, to z takiego mobile wszystko muszę ogarniać sam. Przykładowo jeśli mam coś do zrobienia na mobile to sam sobie piszę API, ogarniam apkę mobilną i deploy'e.

Nie daje spokoju jedna rzecz - czy praca w tak wielu technologiach przy moim doświadczeniu to jest dobry pomysł? Mówi się, że jak ktoś jest ekspertem od wszystkiego, to jest ekspertem od niczego. Przez takie warunki sam nie wiem, czy jestem już midem czy dalej juniorem, mimo że na własną rekę utrzymuje kilka projektów i robię rzeczy, którymi zajmują się seniorzy. Teraz gdybym chciał zmienić pracę, to myślę, że biorąc pod uwagę realia rynku pracy, trafiłbym z automatu na juniora z beznadziejną stawką. Raczej w korpo zatrudnia się ludzi na stanowisko stricte pod backend / frontend / mobile / devops itp. Będąc w temacie stawki to mam wrażenie, że jest absurdalna. Moi znajomi, którzy są zatrudnieni w korpo i klepią tylko backend w jednej technologii, mając mniejszy exp i pojęcie o programowaniu, potrafią zarobić x2/x3 więcej. I obstawiam, że to samo tyczy się moich kolegów z pracy, którzy znają się tylko na jednej rzeczy. Właśnie to prowadzi mnie do frustracji, bo potrafię wykonać ich pracę, zaproponować samemu rozwiązanie, skonfigurować co trzeba w np. cloud, ale moja stawka tego nie odzwierciedla. Dodam, że akurat atmosfera w firmie jest super tak samo elastyczne godziny pracy.

Z drugiej strony daje mi to pewną przewagę. Mam większą wiedzę w stosunku do innych osób i jestem bardziej elastyczny. Dodatkowo uwalnia to trochę od przemęczenia przy pracy z jednym językiem. Gdybym miał super pomysł na startup, to mogę w całości sam sprototypować apki, niskim kosztem. Tylko patrząc na to realistycznie, z punktu widzenia innego pracodawcy, byłbym słabym ogniwem w zespole, w porównaniu do osób, które mają certy czy zaliczonych kilka szkoleń z np. architektury, co przekłada się na niską stawkę.

Co o tym myślicie? Powinienem zmienić pracodawcę i skupić się tylko na backendzie, bo to mnie najbardziej interesuje? Wtedy miałbym zapewne lepszą stawkę. Czy może się mylę i taki rozwój w przyszłości wyjdzie mi na lepsze?

3

Czemu nie być specem w wielu?

0

@Riddle

czas?

Thread:

Co o tym myślicie? Powinienem zmienić pracodawcę i skupić się tylko na backendzie, bo to mnie najbardziej interesuje? Wtedy miałbym zapewne lepszą stawkę. Czy może się mylę i taki rozwój w przyszłości wyjdzie mi na lepsze?

Perspektywa kasy:

Pierwsza myśl byłaby taka że specjalizacja to szybka droga do sensownej kasy, więc byłoby to spójne z tym co piszesz Moi znajomi, którzy są zatrudnieni w korpo i klepią tylko backend w jednej technologii, mając mniejszy exp i pojęcie o programowaniu, potrafią zarobić x2/x3 więcej.

Aczkolwiek można tez powiedzieć że firmy bardzo pożądają full stacków, a jak dodasz do tego clouda/devłops lub nie dej boże ogarnięcie domeny/biznesu, to w ogóle $$$$$$$$$$$.

Perspektywa rozwoju:

Dotykanie wszystkiego ma taką zaletę że masz świadomość możliwości oraz wyzwań przy stosowaniu danych narzędzi, technologii, metod, etc.

To przekłada się m.in na:

  • szybsze odnajdywanie się w/uczenie się nowych rzeczy, bo często te same koncepty występują w wielu technologiach.
  • potencjał do lepszego wybierania rozwiązań
  • potencjał do unikania wkopywania się w rozwiązania które się nie sprawdzają

jednakże często jest to wiedza dość powierzchowna, płytka, więc możesz po prostu nie potrafić wykorzystać danej rzeczy w pełnym jej potencjale.

Co jest lepsze? myślę że nie da się na to odpowiedzieć bez rozważania konkretnego przypadku - technologia, cel kariery, zarobki, firm do których aplikujesz, etc.

Czym innym bycie expertem od używania frameworka do jsa, a czym innym jest bycie ekspertem w projektowaniu przeglądarek, kart graficznych, whatever.

Tak samo możesz trafić na firmę która potrzebuje eksperta od frameworka do jsa, bo mają jakiś problem wydajnościowy do naprawienia i mogą ci dużo zapłacić

A tak samo możesz trafić na firmę "mniej techniczną" czy startup, który potrzebuje kogoś kto po prostu im ogarnie te komputry i są skłonni za to dużo zapłacić

4

t-shaped skills
https://en.wikipedia.org/wiki/T-shaped_skills
czyli możesz być specem w jednej rzeczy, a ogarniać "jako tako" wiele innych.

1
intel45 napisał(a):

Mówi się, że jak ktoś jest ekspertem od wszystkiego, to jest ekspertem od niczego.

Wszystkie powiedzenia jakie znasz i się dobrze rymują albo i nie to nic nie znaczą.

Ale na pewno ogarnięcie wielu technologi może być bardziej czasochłonne, ale wszędzie i tak będzie wiele rzeczy się powtarzać czy to mobile, web, to taki rest zawsze będzie się powtarzał.
Jak robisz projekty od zera do końca to jednak ma się trochę lepsze doświadczenie niż klepać w wielu po trochu.
Więc dobrze jest robić coś samemu od początku do końca.

Firmy preferują ekspertów od jednej rzeczy, bo łatwiej tak jest bierzesz jednego gościa i tylko daną rzeczą się zajmuje, żyją w wyśnionym świecie, większość ludzi ma większe predyspozycje, ale po prostu skupiają się na danej rzeczy bo to jest w ich obowiązkach pracy.
Ale większość ludzi i tak zna się na wielu rzeczach.

intel45 napisał(a):

Z drugiej strony daje mi to pewną przewagę. Mam większą wiedzę w stosunku do innych osób i jestem bardziej elastyczny. Dodatkowo uwalnia to trochę od przemęczenia przy pracy z jednym językiem. Gdybym miał super pomysł na startup, to mogę w całości sam sprototypować apki, niskim kosztem.

I też nie przesadzaj z tym, dość często się spotykam z takim powiedzeniem, że to jest proste, ale nikt tego nie zrobił.
Nawet proste projekty i tak trzeba się przemęczyć długo je robiąc, jak sam zrobisz za darmo to tak prawie bez kosztów aplikacja zostanie wykonana.
I jak będziesz miał super pomysł to dalej i tak trzeba trochę się spiąć, żeby do końca projekt doprowadzić nawet samodzielnie.

Ja mam pełno pomysłów i to nie jest takie łatwe wszystko do zrobienia, najtrudniejsze jest zmobilizowanie się, a czasem zmobilizujesz się do złego projektu, który nic nie osiągnie.
Czyli zmarnujesz czas, ale zawsze się czegoś nauczysz więc może to nie do końca zmarnowany czas.

1

@tumor:

Firmy preferują ekspertów od jednej rzeczy, bo łatwiej tak jest bierzesz jednego gościa i tylko daną rzeczą się zajmuje

Myślę że nie można uczciwie powiedzieć że firmy preferują X, a przynajmniej bez danych.

Są różne firmy, które mają różne potrzeby. Niektórzy wolą ludzi z przekrojowymi umiejętnościami, realizujących zlecenia kompleksowo, a niektórzy wolą jak największych ekspertów z danego tematu.

A jeszcze niektórzy aby było w miarę OK i tanio ;)

2

No generalnie zabawa polega na tym, że jesteś specem od tego co chcesz a uczysz się pod rozmowy kwalifikacyjne

1

Na tak wczesnym etapie nie przejmowałem się takimi rzeczami (fakt, że wtedy rynek był bardzo głodny programistów) i w efekcie w moim CV prawie każda praca jest w innej technologii (i jeszcze drugie tyle technologii na githubie, bo przecież komercyjnie rzadko kiedy używa się tych ciekawych i miłych w użyciu ;)). Chyba powoduje to, że trudniej zdobyć pracę, ale koniec końców zawsze pracę znajduję jak już tego chcę (nie mogę powiedzieć na pewno, bo mam też dużo długich podejrzanych przerw w zatrudnieniu). Pewnie różni ludzie różnie interpretują taki stan rzeczy. Ostatecznie możliwość wpisania dwóch różnych technologii w jednej pracy to super opcja, bo lata doświadczenia to fetysz rekruterów. Nie obchodzi ich jaką część danej pracy robiłeś w czym. Ważne, że robiłeś i umiesz odpowiedzieć na proste pytania kwalifikacyjne (czasem trochę trudniejsze). Osatnio nawet dostaję propozycje, żeby coś napisać albo nagrać jakiś materiał szkoleniowy. Myślę, że to po prostu inna ścieżka rozwoju, choć pewnie nie tak dochodowa jak skupieni`

0

W mojej opinii nawet przy założeniu, że docelowo chcesz się specjalizować w jednej konkretnej dziedzinie, bardzo dobrze mieć za bagaż doświadczenia 2-3 lat w szerokim zakresie, z jednej strony aby świadomie wybrać ścieżkę rozwojową (co faktycznie Ci się podoba w pracy w IT), z drugiej strony mieć podstawy i czucie tematu od DevOps po front. Masz dobry moment aby zdecydować się na jakiś kierunek, ale generalnie nie ma jednej, słusznej drogi, dobry fullstack też może mieć odpowiednią pozycję na rynku. Szczególnie jak robisz w okolicach PHP, to tu jest dosc duży przestrzał frameworków, mniej korporacyjna technologia, więc bycie fullstackiem może być jeszcze bardziej cenione niż w innych technologiach.

1

Z perspektywy wielu lat w IT nie idzie pogodzić bycia specjalistą w wielu technologiach, to po prostu niemożliwe. Musiałbym całkowicie zrezygnować z życia prywatnego, co jest głupotą.

0

Widać co boli: za mało zarabiasz. Idź ponegocjować stawkę a jako argusów użyj tego co tutaj podajesz.

1
tumor napisał(a):

Firmy preferują ekspertów od jednej rzeczy, bo łatwiej tak jest bierzesz jednego gościa i tylko daną rzeczą się zajmuje, żyją w wyśnionym świecie

Bo ja wiem. Mam wrażenie, że firmy bardziej chcą, żeby ludzie deklarowali dobrą znajomość w wielu rzeczach naraz.
"Deklarowali" bo to nie chodzi o bycie ekspertem w wielu rzeczach naraz, tylko o znajomość pozwalającą na przejście rozmowy kwalifikacyjnej i pewność siebie na tyle, żeby powiedzieć na rekrutacji, że się owszem, zna tę technologię bardzo dobrze (a tych technologii wymaganych potrafi być dużo na jedno stanowisko).

Bycie ekspertem od jednej rzeczy raczej nie jest w cenie, bo firmy nawet nie mają takich możliwości, żeby wyłapać tych ekspertów i odróżnić od osób, które po prostu znają dane technologie jako tako (Bo kto będzie rekrutować eksperta? Nie-ekspert? W jaki sposób?)

2

Pracowałem z programistami tzw. Fullstackami Java + Angular, co robili takie fikołki na zapytaniach SQL i projektowaniu encji w bazach danych, że ciągle były jakieś błędy. Tak samo na Frontendzie. Robili wszystko "na raz" byleby zdrutować, bo nie mieli specjalistycznej wiedzy, a potem takie aplikacje przypominały tykającą bombę i g**no takie co się dokleja kolejną papę. Tak samo nie wyobrażam sobie, żeby jedna osoba była dobrym programistą w Javie i DevOpsem na raz.

0

@LukeJL:

Bycie ekspertem od jednej rzeczy raczej nie jest w cenie, bo firmy nawet nie mają takich możliwości, żeby wyłapać tych ekspertów i odróżnić od osób, które po prostu znają dane technologie jako tako (Bo kto będzie rekrutować eksperta? Nie-ekspert? W jaki sposób?)

Które firmy nie mają? Januszoft Ltd?

Zawsze taki ekspert może prowadzić usługi software consultingowe i robić pojedyncze zlecenia dla X różnych firm.

@Rexioo:

Tak samo nie wyobrażam sobie, żeby jedna osoba była dobrym programistą w Javie i DevOpsem na raz.

Czemu ciężko jest sobie wyobrazić że ktoś np. kodził w javce 5 lat, a póżniej kilka jak robił głównie devops? iiii ogarniał

1
WeiXiao napisał(a):

Które firmy nie mają? Januszoft Ltd?

No jeśli firma szuka eksperta od jednej rzeczy, to często dlatego, że go nie ma na pokładzie.

1

@LukeJL

A skąd wiesz?

A jak podejdziemy do tego w ten sposób: jeżeli firma robi coś tak zaawansowanego że potrzebuje experta, to jakoś do tego musieli dojść, więc kogoś musieli już mieć wcześniej. Oczywiście w rzeczywistości są różne sytuacje, więc nie twierdzę że to co ty opisujesz nie istnieje.

Zresztą, tutaj też piszesz niezbyt przekonująco Bo kto będzie rekrutować eksperta? Nie-ekspert?

Bo to nie jest binarne, a płynne

Jeżeli założymy że próg na bycie ekspertem jest 100punktów w wymyślonej skali, to ktoś mający 80 czy 90 nie jest ekspertem, aczkolwiek jest w stanie ocenić w miarę sensownie.

1

Przysłowie jest prawdziwe - można być ponad przeciętnym w wielu dziedzinach ale nie specem. Albo specem w jednej wręcz wybitnym w tej dziedzinie jak ma się głowę na karku. Wiele na raz daje szersze pole manewru z dużymi ograniczeniami w sprawach zaawansowanych - posiadanie 1 super kompetycji daje bardzo szerokie kompetęcje w wąskim gardle specjalizacji.

Czasami lepiej być w jednym tytanem niż w wielu innych standardowym lub trochę ponad to. Ale to zależy jaka to dziedzina, jaka droga zawodowa oraz jakie ktoś ma plany na życie.

Często różne gałęzie są od siebie tak odmienne, że nie da się być ekspertem w wielu - jak u mnie nie jestem w stanie ogarnąć rozumem każdego prawa bo jest każe za rozłożyste. Więc mogę specjalizować się w do 3 z czego w 1 być naprawdę bardzo dobry. Inaczej się zaczynają mylić podobne schematy - ale jednak diametralnie inne czy w prawie czy programowaniu na pewno także. Bo podobne wzorce ale mające zupełnie inne "funkcje" i konotacje.

Czy wybrać 1 diament czy kilka rubinów - to zależy co będzie droższe jak się przeliczy dla własnej kariery. Elastyczność też ma swoją wagę.

1

Prawda jest taka że programista który zna 30 języków i 30 frameworków Javascript nie napisze dobrego oprogramowania do respiratora, jak programista C++ z 30 letnim stażem w jednym języku. Człowiek piszący sterowniki w C od 30 lat zawsze będzie lepszym fachowcem i inżynierem niż gość który przeskakuje po językach.
Dobrze jest znać dwa języki, jeden skryptowy drugi natywny, sprawdza to się przy pisaniu gier, ale czy ten skryptowy jest wymagany? Szybciej w nim napiszesz jakieś przeskakiwanie po menu, ale trzeba też wpierw napisać implementację łącząc C++ z Pythonem

1

Trochę trywialna odpowiedź ale zastanów się co sprawia Ci przyjemność i iść w to. Dla mnie fullstackowanie jest super bo lubię pracować w niedużych firmach, mieć wpływ na to co robię i dostarczać wartość (nawet jeżeli jakiś purysta powie OLABOGAALETOSIEROBIINACZEJ... - na koncu chodzi o to zeby soft przynosil $). Predzej czy pozniej w firmie ktorej pracujesz bedziesz bardziej robil coś w którąś stronę (frontendy, backendy, devopsy) ale to przyjdzie samo IMHO. Powodzenia w decyzji.

0
ruby_rb napisał(a):

Prawda jest taka że programista który zna 30 języków i 30 frameworków Javascript nie napisze dobrego oprogramowania do respiratora, jak programista C++ z 30 letnim stażem w jednym języku. Człowiek piszący sterowniki w C od 30 lat zawsze będzie lepszym fachowcem i inżynierem niż gość który przeskakuje po językach.
Dobrze jest znać dwa języki, jeden skryptowy drugi natywny, sprawdza to się przy pisaniu gier, ale czy ten skryptowy jest wymagany? Szybciej w nim napiszesz jakieś przeskakiwanie po menu, ale trzeba też wpierw napisać implementację łącząc C++ z Pythonem

To się trochę mija z prawdą, bo sugerowałoby że zdobywanie nowych umiejętności w jakiś sposób inwaliduje poprzednie :|

0

To nie jest dobry pomysł. Będziesz przeciętny w każdej technologii bo nie da się znać wszystkiego na dobrym poziomie. Może niektóre firmy potrzebują takich osób ale w dłuższej perspektywie nawet jak będziesz pretendował na seniora to w końcu dojdziesz do wniosku, że musisz określić w jakim kierunku chcesz iść jako inżynier. Tylko mając np. 7 lat doświadczenia w kilku technologiach będziesz do tyłu z osobami, które 7 lat poświęciły na dokładne zrozumienie ekosystemu w którym działają na codzień. Już pomijając fakt, że mobile i webówka to dwa różne światy. Już lepiej przysiąść do podstaw ( algorytmy, sieci, systemy operacyjne). Dobrze zrozumieć dane zagadnienia i wtedy dobierać sobie technologie w której chcesz się rozwijać jako inżynier, a nie klepacz kodu. Bo niestety jak coś się zna pobieżnie to popełnia się więcej błędów, że względu na brak dokładnego zrozumienia jak coś działa "pod spodem".

0
Lukiruki napisał(a):

To nie jest dobry pomysł. Będziesz przeciętny w każdej technologii bo nie da się znać wszystkiego na dobrym poziomie.

A to czemu niby?

2

Coachem nie jestem, ale mój dziadek zawsze mawiał: "Ktoś kto zna się na wszystkim, tak na prawdę nie zna się na niczym". Uważam, że to prawda. Nawet z logistycznego punktu widzenia, żeby być prawdziwym specjalistą w jakiejś dziedzinie trzeba poświęcić jej tysiące godzin. Inna kwestia - Niektórym efekt dunninga-krugera wchodzi za mocno i mają złudne przekonanie, że są jakimiś tam specjalistami.

Zamiast tego proponuje kompromis. Skupić się na jednej specjalizacji + orientować się w pozostałej otoczce. Taka osoba jest znacznie więcej warta niż samozwańczy "ekspert" od wszystkiego.

0
Riddle napisał(a):
Lukiruki napisał(a):

To nie jest dobry pomysł. Będziesz przeciętny w każdej technologii bo nie da się znać wszystkiego na dobrym poziomie.

A to czemu niby?

Czas oraz szybkość z jaką zmieniają się rozwiązania, szczególnie na mobile. Poznanie kilku technologii ma swoje plusy ale przeważnie jest to wiedza powierzchowna i nie pozwala dokładnie zrozumieć napotkanego problemu. Oczywiście to i tak wszystko zależy od osoby, jej predyspozycji i ambicji. Ja piszę jedynie ze swojego doświadczenia mając swoje epizody z pisania na Androida i iOS'a.

2
ledi12 napisał(a):

Coachem nie jestem, ale mój dziadek zawsze mawiał: "Ktoś kto zna się na wszystkim, tak na prawdę nie zna się na niczym". Uważam, że to prawda. Nawet z logistycznego punktu widzenia, żeby być prawdziwym specjalistą w jakiejś dziedzinie trzeba poświęcić jej tysiące godzin. Inna kwestia - Niektórym efekt dunninga-krugera wchodzi za mocno i mają złudne przekonanie, że są jakimiś tam specjalistami.

Zamiast tego proponuje kompromis. Skupić się na jednej specjalizacji + orientować się w pozostałej otoczce. Taka osoba jest znacznie więcej warta niż samozwańczy "ekspert" od wszystkiego.

W programowaniu nie koniecznie tak jest. Im więcej działek w programowaniu przerobisz tym bardziej zaczynasz rozumieć prostą prawdę, że każde programowanie sprowadza się do prostej zasady. Zczytujesz dane z kilku miejsc, przetwarzasz i wpychasz odpowiedź w inne. Niezależnie czy programujesz grę czy firmware, wszystko się sprowadza do tych samych prostych zasad. Oczywiście szczegóły techniczne są trochę inne, każde rozwiązanie ma swoje zalety i wady, ale powtarzają się te same wzorce. Jeśli rozumiesz te wzorce to z dużą łatwością wejdziesz w każdą technologię. Są też różne języki programowania i ich też warto znać wiele, bo każdy uczy trochę innego podejścia do programowania, im więcej ich znasz tym szerszą masz perspektywę. Im więcej rzeczy się dotkniesz, tym lepiej rozumiesz całokształt biznesu, to też jest bardzo użyteczne, zwłaszcza jeśli nie chcesz być wyrobnikiem do końca życia. Pewnie, nigdy nie będę w randze Joanny Rutkowskiej, ale to chyba jest liga dla bardzo wąskiej grupy ludzi. To jest droga dla no-life'a (przynajmniej przy moim skromnym poziomie inteligencji).

1

Po 17 latach dotykania wielu technologii mam jeden wniosek. Wniosek powstał z miesiąc temu jako odpowiedź na to co dzieje się teraz na rynku.
Idę w specjalizację jakiejś technologii typowo corpo - Dynamics, IAM albo coś innego, wąskiego.
Rynek zalany jest Ukraińcami, bootcampowcami i juniorami po studiach. Trzeba ich zostawić w tyle i wykonać nie krok ale skok naprzód.

2

@elwis:
Chyba nie pracowales w gamedevie nizej poziomowym.
Tam specjalista mozesz byc od tak waskiej czesci jak openGL (ogarnianie wszystkich szczegolow implementacji dla poszczegolnych urzadzen) i ma to totalnie malo wspolnego z typowa webówką, która jawi Ci się wtedy jak coś tak uber prostego, jak wiązanie buta.

0

Specem w jednej, jak Ci się znudzi łatwiej będzie zostać specem w drugiej.

0

Know everything about something and know something about everything.

Takie podejście uważam za najlepsze. A tak od bardziej życiowej strony to w pytaniu autora dostrzegam niepokój z tym, że wybiorę źle i kariera pójdzie niepomyślnie. Wyluzuj, nie masz wpływu na wszystko. Możesz siedzieć po godzinach i się specjalizować w temacie X, aby potem dostać w tej technologii pracę, bo praca jednak definiuje co naprawdę umiesz.
Moim zdaniem jednak nie warto. Lepiej dać sobie trochę luzu i nie próbować być specem od wszystkiego. Jest jeszcze życie poza pracą.

2

Warto również zwrócić uwagę na ogłoszenia. Te najlepiej płatne dotyczą właśnie specjalizacji w konkretnej działce :) Oczywiście z domieszką paru innych rzeczy, ale nie one-army specialist of everything.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.