Języki typu enterprise, to jedyny słuszny wybór?

0

Cześć, ostatnio napada mnie taka obawa, że języki enterprise (c#, java albo inny popularny język jvm) to jedyna słuszna droga na przyszłość w karierze programisty. Sądzę tak po ilości ofert pracy (jak na razie patrzyłem głównie w Polsce), nie tylko jako programista, ale jako architekt, czy osoba bardziej biznesowa.

Na codzień nie programuję w tych językach, ale pisałem co nieco w jednym i drugim i nie jestem pewien, czy są to języki w których przyjemnie się piszę, bardzo częsty over engineering i inne tego typu rzeczy odpychają. Z drugiej jednak strony: ilość ofert, różnorodność biznesowa, możliwośći, są na dużą korzyść.

W swojej pierwszej pracy miałem zadania typowo biznesowo crudowe (może trochę bardziej skomplikowane ale crudowe), czyli jakiś panel dla klienta, z wyborem (x, y, z) i kalkulacją tego wszystkiego, pisane w DDD (przynajmniej staraliśmy się), W drugiej natomiast takich "typowych ficzerów biznesowych" mam znacznie mniej, a dochodzi do tego sporo takich kwestii jak api management, jak na zespól developerski to jesteśmy blisko devopsu i mamy jakąś swoją działkę w tym, sporo tokenizacji, autoryzacji i ogólnie komunikacji między systemami.

Zastanawiam się w który język pójść, jak na razie z backendowym znam tylko node.js, ale on nie wystarczy, musiałbym nauczyć się jeszcze nowego (python?) , ale patrząc to forum i oferty pracy mam wrażenie, że faworytami jest .net i java. Nie chciałbym jednak pracować nad kolejna kupą w "szpringu", ciekawią mnie takie techniczne aspekty programowania, rozwiązywania problemów komunikacji, autoryzacji itp. id.

0

Elixir, Go, Rust, Dart jest w czym wybierać, na JVM masz też Scala i jRuby.

0

Cześć, ostatnio napada mnie taka obawa, że języki enterprise (c#, java albo inny popularny język jvm)
to jedyna słuszna droga na przyszłość w karierze programisty

Jeśli "jedyną słuszną drogę" upatrujesz w pracy w korpo to może i tak...

Tylko, że nawet korpo jak robi apkę webową, to potrzebuje frontendu. A typowy programista C# / Java frontendu nie ogarnie, bo będzie to dla niego za trudne (i pewnie vice versa by było, "fullstack developer" to do pewnego stopnia mit). Więc myślę, że dalej przez jakiś czas JavaScript/TypeScript, React/Angular i tego typu rzeczy będą na topie...

0

Jeśli "jedyną słuszną drogę" upatrujesz w pracy w korpo to może i tak...

Co masz na myśli mówiąc korpo?

Jedyne miejsca, która zawsze mi się podobały i raczej mi się to nie zmieni, to firmy, które mają własne(ciekawe w miarę) produkty i w których działają procesy (czyli likwidujemy Januszy), więc wielkość firmy nie ma dla mnie znaczenia, byle spełniała te warunki

@LukeJL
Trochę chyba popłynąłeś, bo ten post nie dotyczy front-endu, choć pewnie masz rację i z Tobą się zgadzam.

Dlaczego w ogóle napisałem ten post? Dlatego, że nie mam dużego doświadczenia na backendzie, głównie pracowałem na froncie, odpowiadałem za logikę biznesową, ale wciąż mimo to, był to front-end. Na typowym stacku backendowym jestem od 3 miesięcy (komercyjnie, bo nie komercyjnie dłubie już długo długo) i piszę głównie serwisy na node.js, a teraz myślę nad dalszą swoją karierą.

Przez cały okres mojej kariery natknąłem na naprawdę sporo zagadnień, jedne które bardziej zgłebiłem to np. BDD, DDD i inne korpo sieczki, które postanowiłem wypróbować w praktyce, czyli bierzemy język "enterprajs" i jazda. O ile jest to fajne i warto wiedzieć z czym to się je, nie czuję takiej przyjemności, jak programowanie stricte techniczne, bycia blisko popularnego już "devopsu".

Wahania, które mi się rodzą powstają również z tego, że programista, to już nie jest osoba siedząca przed komputerem zamknięta w 4 ścianach, tylko osoba, która wychodzi do biznesu, taki java architect dużo bardziej pasuję do takiego rozwiązania.

1

Nie ma czegoś takiego w zawodzie programisty jak "jedyna słuszna droga" ;) Owszem, jest mainstream w postaci Javy, C# i paru jeszcze innych języków / technologii / frameworków, które są najbardziej popularne, ale uwierz mi - nauka Rusta, Elixira, Go czy jakiekolwiek innego mniej popularnego języka procentuje. W jakim stopniu? To zależy jak uda Ci się nowe umiejętności, nowe spojrzenie na problem etc. wykorzystać później w praktyce. Dla przykładu: Pisząc w Haskellu funkcje i funkcje wyższego rzędu uczysz się pisać czysty kod funkcyjny. Później możesz każdy swój kod, który mutuje obiekty i który trudno zrozumieć przepisać zgodnie z tym podejściem, bo Java, C#, Python czy PHP mają choć w pewnej mierze możliwości programowania funkcyjnego.

Zauważ, że różnica między jednym językiem backendowym a drugim często sprowadza się do składni, znajomości i dostępności frameworków oraz znajomości dodatkowych narzędzi np. Mavena, Gradle'a, Nugeta czy Pip-a (nie każcie mi pisać bez myślnika). W korpo o wyborze języka zwykle jest mowa tylko przy nowych projektach - "bierzemy ten, który ludzie już znają", a zatrudniani byli oczywiście do kodu legacy, gdzie króluje Java czy inne rozplenione złe (nie mówię, że Java to zło, ale kod legacy w niej czy czymkolwiek innym napisany :) ).

W skrócie: Nauka mało popularnego języka może dać Ci prędzej czy później możliwość popisania w nim komercyjnie albo pozwoli Ci spojrzeć na stare podejście pisania z innej perspektywy.

0

@Pipes: Java ma duże możliwości pod wzgledem FP.

0

Ale te języki to mają przedstawiać niewątpliwe walory edukacyjne czy szukasz w nich roboty dla programisty (nie matematyka) enterprise?

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