Wybór technologii - Java czy C#?

0

Jestem na etapie szukania pierwszej pracy i zastanawiam się na jakie stanowisko aplikować. Javy uczyłem się około 2 lat i mam kilka projektów zrobionych w Spring Boot. Mój największy projekt w Springu to jednak monolit, bo użyłem do frontu Thymeleafa, a wiem że większość projektów robi się w REST API. Ostatnio zainteresowałem się C# i .NET core, bo na studiach był prowadzony. Zrobiłem kilka tutoriali i jeden rozbudowany własny swój projekt z frontendem w Angularze, autoryzacją tokenem. W sumie .NETa uczę się 8 miesięcy i od tego czasu nie ruszałem żadnego projektu z Javy, więc dużo rzeczy z pisania webówki w Springu pozapominałem. Zawsze nastawiałem się na Javę, bo dużo przedmiotów na studiach było prowadzone w Javie, ale w .NET wydaje mi się, że prościej pisze się aplikacje webowe, prostsza jest konfiguracja i łatwiej błędy się naprawia, dodatkowo LINQ mega ułatwia sprawę w porównaniu do pisania zapytań w Hibernate. Z resztą z .NETa łatwiej znaleźć dobre kursy internetowe i przyjaźniej jest opisany w książkach.

Teraz nie wiem, czy rozwijać się w kierunku .NET czy podszkolić się z Javy. Zależy mi na tym żeby dobrze wybrać technologię na start, żeby potem ponownie nie zmieniać i nie tracić cennych lata doświadczenia. Teraz jakbym poświęcił ok 3 tyg. na Javię, to myślę że bym nadrobił zaległości. Chciałbym pracować nad nowoczesnymi i przyszłościowymi projektami i żeby za kilka lat ta technologia nadal była pożądana i dobrze płata. Wydaje mi się, że .NET jest mniej popularny gdy przeglądam ogłoszenia, ofert z Javy jest więcej. Dodatkowo C# jest bardzo nisko w rankingu TIOBE, nie wiem czy to znak że za kilka lat całkowicie nikt go nie będzie używał, bo nawet Phyton, który jest dużo młodszy od C# jest wysoko w rankingu, a Java niezmiennie na szczycie.

3

A w czym ci się lepiej pisze? Bo rozważania na temat tego czy technologia zniknie z rynku za parę lat jest bez sensu. Nawet jak nie będą powstawały nowe projekty w danej technologii, to dalej masz utrzymaniówkę + przepisywanie projektu do innego, docelowego języka, i jak myślisz kto to będzie robił :P

Więc nie zastanawiaj się nad tym co ci się bardziej opłaca, co ma większą przyszłość albo czy może AI zacznie za nas programy pisać, tylko wybierz to, w czym ci się najprzyjemniej pisze. Po to studia są, żebyś zapoznał się z paroma językami i wybrał sobie taki, który ci najbardziej pasuje.

5

Java jak chcesz więcej zarabiać, C# jak chcesz patrzeć w lustro i nie chcesz być wyzywany od javowcow.

A tak na serio to może python, albo nodejs? Myślę, że nieco bardziej przyszłościowe języki a i przyjemne.

0

Ja bym wybrał C# ponieważ w Javie jest aktualnie bardzo wyśrubowana konkurencja, w dodatku jeżeli chcesz być dobry w ogólnym znaczeniu musisz poświęcać sporo wolnego czasu bo nigdy nie będzie to 1:1 co będziesz robić w innej firmie. W dodatku w Javie jakby nie patrzeć to jest wyścig szczurów czego chyba nie ma tak w C#.
Jak chcesz mieć spokój w miarę w pracy, bez takich szarpanek z życiem itd to pójdź w niszę jak platforma typu SAP lub IOS.

2

Ogolnie to JVM > .NET ale C# wydaje sie kapke lepszym jezykiem niz Java.
W Kotlinie i Scali anno domini 2021 sa oferty pracy wiec moze w tym kierunku? :)

3

Java bo tak!

A na poważnie to nie jest to pierwsze pytanie tego typu na tym forum. Średnio 1 pojawia się na miesiąc i średnio wywołuję 1 świętą wojnę. Trole się cieszą z takiej obfitości.

Założenie że się nauczę raz a potem będę tylko spijał benefity jest bez sensu. Ja pisałem w .NET + ASP.NET -> .NET + AngularJS -> Java Spring+JSF -> .NET Core tylko backend -> Scala. Nawet w samym .NET było przejście na async i .NET Core w tym czasie. Do tego frotend też się zmienił w pierwszej pracy pisałem w starym Razorze, teraz piszę się zazwyczaj w React+TS. O chmurze nie wspomnę. IT to ciągła nauka, jak nie chcesz się uczyć to szybko uciekaj w ścieżkę menadżerską/ScrumMaster.

8

Im dluzej ucze sie Javy tym bardziej podoba mi się Kotlin!
KOTLIN

2

w .NET wydaje mi się, że prościej pisze się aplikacje webowe, prostsza jest konfiguracja i łatwiej błędy się naprawia, dodatkowo LINQ mega ułatwia sprawę w porównaniu do pisania zapytań w Hibernate. Z resztą z .NETa łatwiej znaleźć dobre kursy internetowe i przyjaźniej jest opisany w książkach.

Z perspektywy pracy gładkość technologii nie ma większego znaczenia, bo niezaleznie jak szybko robisz zadania to i tak będziesz musiał na etacie wysiedzieć 8-dupogodzin. Gładkie technologie mają znaczenie dopiero wtedy gdy krótszy czas nad projektem przekłada się bezpośrednio na większy zysk.

chciałbym pracować nad nowoczesnymi i przyszłościowymi projektami i żeby za kilka lat ta technologia nadal była pożądana i dobrze płata.

To co piszesz jest całkowicie sprzeczne. Tak naprawdę nie wiadomo co jest Twoim celem.

Twoje rozumowanie byłby OK, gdybyś powiedział: chce nauczyć się jednej technologii, chcę być w niej ekspert i z czasem utrzymywać coraz więsze projekt, w coraz gorszym stanie. Chcę jako ekspert w ten sposób kosić kasę.

Natomiat jeśli chcesz rozwiązywać przyszłościowe projekty to pierwszej kolejności zwróć uwagę na przyszłościowe problemy. Sama technologia nie jest wtedy taka ważna, bo warto z niej zrezygnować jeśli wybrany problem da się lepiej rozwiązać przy użyciu innej, także Twoja kariera się wtedy nie zatrzyma i raczej będziesz ciągle się czegoś douczał.

4

@p_agon:
Właśnie przegrałeś. Już raczej nie napiszesz z przyjemnością kodu w javie i będziesz chciał pisać przynajmniej w kotlinie. Słaba rzecz jest taka, że na początku prawdopodobnie łatwiej jest dostać pracę w javie. (Chociaż nie jestem zupełnie pewny, bo z drugiej strony podaż "juniorów" wieksza).
Ale tak czy siak - już przegrałeś. Witamy po szarej strony mocy. I pamiętaj, że Kotlin to tylko taki lekki narkotyk na początek. Skończysz na twardym haskellu - jak wszyscy.

0
Czitels napisał(a):

Java jak chcesz więcej zarabiać

A w RoR jeszcze więcej. A najwięcej jako kochanek prezesa NBP.
Zapomniałeś dodać, że według raportów Pracuj.pl. Bo tak poza tym, to zarobki są kwestią bardzo indywidualną.

pan_krewetek napisał(a):

Z perspektywy pracy gładkość technologii nie ma większego znaczenia, bo niezaleznie jak szybko robisz zadania to i tak będziesz musiał na etacie wysiedzieć 8-dupogodzin. Gładkie technologie mają znaczenie dopiero wtedy gdy krótszy czas nad projektem przekłada się bezpośrednio na większy zysk.

Tyle, że można te dupogodziny wysiadywać robiąc coś ciekawszego niż walka z technologią.

1
p_agon napisał(a):

Im dluzej ucze sie Javy tym bardziej podoba mi się Kotlin!

To zapoznaj się jeszcze bliżej z Angularem (jakiś tutorial krok po kroku).
Jak ci sie Angular też nie spodoba (bo taki 'springowaty') to może nie sięgaj po Kotlin tylko zadziałaj radykalnie i idź na całość w stronę Microsoft.

Javowa duża familia nie jest zła, ale na pewno jest przereklamowana.

2
michaelDW napisał(a):

żeby potem ponownie nie zmieniać i nie tracić cennych lata doświadczenia.

Źle patrzysz. Doświadczenie w programowaniu się kumuluje, a nie traci. Powinieneś nawet dążyć do zmiany co jakiś czas, bo tak się człowiek rozwija i utrzymuje zdolność uczenia się.

żeby za kilka lat ta technologia nadal była pożądana i dobrze płata.

Języki stają się modne i wychodzą z mody dość powoli, więc jeśli dany język zacznie wychodzić z mody, to stanie się to na tyle powoli, że będziesz miał czas na zmianę języka.

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