Jeden język vs kilka języków w pracy

0

Cześć, żeby nie przedłużać - zacząłem się jakiś czas temu uczyć Scali, dostałem pracę i od stycznia zaczynam bycie juniorem.

Dostałem wczoraj maila, że chce mnie dwóch liderów - u jednego jest 100% Scala, u drugiego jest mix Scala, Rust, Ruby, Go, Python i Java, z przewagą tego pierwszego (około połowa), a reszta jest mniej więcej po równo. Mam sobie wybrać, gdzie idę. W obu zespołach są mikroserwisy. W żadnym nie trzeba pracować z front endem.

Pytanie brzmi, czy na początku kariery programistycznej lepiej spróbować kilku języków i w żaden się nie wgłębiać, czy wejść od razu głębiej w jeden? Dlaczego?

3

To zależy, w małej firmie: Scala, Rust, Ruby, Go, Python i Java to mocna przesada. Zwłaszcza że jest np. Ruby i Python, te języki zajmują tą samą "niszę ekologiczną" więc użycie jednego gdy mamy już w firmie ten drugi nie ma najmniejszego sensu. W dużych firmach taki eklektyzm językowy nie budzi podejrzeń bo może być rezultatem np. przejęcia mniejszej firmy. Istnieje też ryzyko że np. nikt nie chce utrzymywać tego Ruby'iego i w głowie jakiegoś seniora pojawi się pomysł: "No, niech się młody tym zajmie! ".

Z tego co napisałeś niestety nie mogę udzielić Ci żadnej rady. Kultura pracy w danej firmie oraz ludzie z którymi będziesz pracował są o niebo ważniejsi niż języki programowania. Do tego warto pomyśleć o takich rzeczach jako dojazd do pracy, premie, ogólne wynagrodzenie i możliwości awansu.

Większa liczba technologii - z jednej strony pokazuje że firma nie boi się eksperymentować, i pewnie będzie używać innych cutting-edge technologies. Z drugiej strony technologie mogą być używane, ale brakuje wiedzy eksperckiej - innymi słowy dziwne bugi i sytuacje na produkcji to może być normalność ponieważ nie ma tam np. seniora Ruby a tylko programiści Javy piszący od czasu do czasu Ruby'ego (lub na odwrót).

4

Jak jesteś jeszcze na etapie kiedy chce Ci się programować dla przyjemności, dużo czytasz o dobrych praktykach itp to wziąłbym wiele języków ale pewnie będziesz musiał się uczyć po godzinach. Z drugiej strony w CV możesz sobie później wpisać pod konkretną ofertę że pracowałeś tylko z Java albo Java/Scala bo będziesz miał więcej opcji na pracę. Jeśli nie jesteś omnibusem i nie chcesz nadgodzin to brałbym tylko Scala.

17

u drugiego jest mix Scala, Rust, Ruby, Go, Python i Java

Koszmar, byłem kiedyś w projekcie gdzie na backendzie były Java/Kotlin/Scala/Groovy, Erlang/Elixir, JavaScript/TypeScript, Go, Python. Każdy mikroserwice w innej technologii. Na początku wydaje się to fajne, ale na dłuższą metę jest męczące. W monokulturze (np tylko Scala) łatwiej pisać bo możesz podglądać rozwiązania między mikroserwisami. A tam trzeba było za każdym razem wynajdywać koło na nowo

4

Na swoją pierwszą pracę odradzam pakowania się w takie szambo jak pierdylird języków (swoją drogą ciekawe jak do tego doprowadzili). Bez tego będziesz miał bardzo dużo rzeczy do nauczenie się i i ogarnięcia. Potem i tak pewnie ten język zmienisz kilka razy, zaczniesz robić w innych, ale na początek to się trzeba na czymś zaczepić, nauczyć pływać w tym basenie pełnym rekinów zwanym branżą IT

4

Ja bym zapytał o to, czy skoro tych dodatkowych języków nie znasz, to czy dadzą Ci zarówno czas na ich ogarnięcie, jak i będą na początku patrzeć życzliwie. Bo przy takim założeniu to opcja druga jest bardziej rozwojowa. Ale w sytuacji, jeśli dzisiaj zaczynasz a jutro masz pchać kod na produkcję, to raczej bym nie polecał takiego rozwiązania, bo możesz się nieźle wkopać.

1
cerrato napisał(a):

, czy skoro tych dodatkowych języków nie znasz, to czy dadzą Ci zarówno czas na ich ogarnięcie

Ile czasu potrzeba na Rust, Ruby, Go, Python i Java kiedy ktoś nie zna żadnego z nich?

OP dopiero zaczyna (junior od stycznia), zatem nie będzie to nauka an zasadzie: poznam specyfikę składni, a dalej szybko poleci bo mam długie doświadczenie

0

Z perspektywy CV lepiej wybrać jeden język, ponieważ hr lubi proste odpowiedzi. Ja nawet mimo, że płynnie piszę w paru językach to wysyłając CV zostawiam info max o dwóch językach, by ktoś przypadkiem nie pomyślał, że umiem wszystko i nic.

Mimo to wybrałbym opcje z wieloma językami, bo jako junior lepiej jest wybierać rzeczy wpływające na rozwoj. Z tych wszystkich języków jakie wymieniłeś najtrudniejsza jest scala, a jeśli już ją mniej więcej ogarniasz to inne języki w miarę szybko poznasz. Przejście na pracę z wieloma językami da Ci większy bagaż doświadczeń, te języki trochę się różnią i rozwiązują trochę inne problemy, możliwość zorientowania się jak to wszystko wygląda jest super na początku. Później wpisz sobie do CV ten język, który najbardziej przypadnie Ci do gustu.

W ten sposób wilk będzie syty i owca cała, bo w razie czego zostawiasz sobie furtkę w CV do zmiany języka. Na późniejszych etapach skoki między językami w zasadzie gorzej wyglądają w CV i zamiast stawkę mida dostaniesz na jakiś czas stawkę juniora więc jeśli określisz się wcześniej co do języka to lepiej dla Ciebie.

3
Kamil1998 napisał(a):

zaczynam bycie juniorem.

We ty sie chłopie jednego języka naucz.

0

Kilka języków programowania w pracy. Brzmi pięknie. Wkleiłbym jakiś cytat z wieżą i Babilonem w tle. Ale kto chce to sobie znajdzie. Wkleję to:
https://time.com/5889376/boeing-737-max-house-report/

0

@Kamil1998: To wszystko zależy - jednej odpowiedzi nie ma
możesz mieć np cpp, C#, JAVA - ale nie korzystać z nowych ficzerów bo projekt długodystansowy i panie tam jeszcze robią np w VS2015 a przejście na VS2019 to moze bedzie za 2 lata.
może być tak - u nas jest cpp17, co oznacza, że flaga kompilatora jest ustawiona na cpp17, a do roboty masz ify, switche, for-y - bo głownie utrzymanie

trudno powiedzieć co masz robić w 10 językach a co w tym jednym
pisac poezje czy tabliczki z komunikatem wstęp wzbroniony

1

Za więcej języków domagaj się więcej kasy bo trzeba niewątpliwie wiedzieć więcej i więcej wysiłku i gimnastyki to kosztuje. Jeśli kasa jest (niemal) identyczna - bierz ten gdzie jest mniej języków.

2

Gdyby w tej drugiej ofercie było tylko Scala i Rust to bym się zastanawiał.
Ruby jest jeszcze ciakawy.
Ale reszta tej paczki: Go, Python i Java* jest jednak mocno ułomna w porównaniu ze Scalą - więc jak ogarniesz scalę to możesz cierpieć. Nie polecam.

0

Java/Scala lub Python to na tyle wielkie ekosystemy, że lepiej na początku wybrać jeden język. Wbrew pozorom Ruby i Python się od siebie sporo różnią. Tak samo Go i Rust od siebie jak i pozostałych języków. Scala to jest jezyk wieloparadygmatowy i możesz w nim zrobić naprawdę sporo. Jeżeli zaczniesz mieszać style tych wszystkich języków to możesz w konsekwencji niczego się nie nauczyć bo będą Cię rzucali między zadaniami. To czego potrzebuje Junior to spokojnego klepania kodu i masę komentarzy od seniorów, żeby wiedzieć jak projektować kod, jak go budować i jak to się odnosi do całego ekosystemu.

0

"Kultura pracy w danej firmie oraz ludzie z którymi będziesz pracował są o niebo ważniejsi niż języki programowania. Do tego warto pomyśleć o takich rzeczach jako dojazd do pracy, premie, ogólne wynagrodzenie i możliwości awansu." ale to jedna firma :P :P

"(swoją drogą ciekawe jak do tego doprowadzili)" każdy zespół miał kilkadziesiąt na prawdę mikro serwisów (tak mówią) i jeden zespół miał narzuconą Scalę przez leada a drugi nie, więc połowę pisali w Scali, a połowę w tym, na co był hype.

"Ja bym zapytał o to, czy skoro tych dodatkowych języków nie znasz," ja to bym nawet nie powiedział, że ten jeden główny znam xD

"We ty sie chłopie jednego języka naucz." tak robiłem, po prostu firma mi sama zaproponowała wybór zespołu (miałem rozmowę z managerem, który pod sobą ma 5 zespołów)

"Jeśli kasa jest (niemal) identyczna - bierz ten gdzie jest mniej języków." no jest identyczna siłą rzeczy, bo to jedna oferta :P Miałem dać znać, jakiego chce kompa i jaki chce zespół.

"Ale reszta tej paczki: Go, Python i Java* jest jednak mocno ułomna w porównaniu ze Scalą" dlaczego Go? I dlaczego Python ułomny a Ruby nie? Nie pisałem nigdy w Ruby (w wężu miałem na studiach jeden przedmiot), ale wyglądał jak Python z endami

W każdym razie - ** dziękuję za opinię**, czytałem już wczoraj i podjąłem decyzję o wyborze jednego języka, zawsze później można zmienić zespół jak będę znał domenę.

Można zamknąć chyba :P :P :P

0

Ja bym zapytał czym dokładnie jest produkt obu zespołów i wybrał to co by mnie bardziej interesowało/było mniej nudne

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