Java vs Python vs C#, a rynek pracy

0

Witam.
Mam ostatnimi czasy problem ze zdecydowaniem się w jakim kierunku w IT chcę podążać. Zacząłem od frontendu, ale po iluś godzinach nauki js natrafiłem na miliony frameworków, systemów kontroli wersji, webpacków, babelów, ES6, sassów i innych lasów to zwątpiłem. Dlatego też zastanawiam się czy backend nie będzie dla mnie lepszy. Nawet jeśli na 100% zdecyduje się na backend to pozostaje kwestia tego czy chcę robić w Web Dev czy Enterprise co powoduje, że muszę znać albo jeden albo drugi język(oczywiście na początku, nie mówie, że tylko jeden w całej karierze).
Wydaje mi się, że lepiej mi będzie w Web, ale wychodzi na jaw pewna kwestia. Otóż python w Polsce nie jest aż tak popularny jak Java czy C#(przynajmniej z moich obserwacji) i mam obawy, że o wiele trudniej będzie mi znaleźć staż jako python dev niż jako java dev. Oczywiście, nie mam nic przeciwko tworzenia Enterprise na teraz, ale nie wiem jak w przyszłości. Do tego dochodzi fakt, że najbliższe centrum IT dla mnie to Katowice, czyli nie tak wielkie jak Warszawa, Kraków czy Wrocław.
Tutaj pojawia się główne pytanie. Co według was w tej sytuacji jest po prostu bardziej przyszłościowe: Python czy Java/C#?

0

Java ma ponad 20 lat to nie jest jakaś najnowsza, Python podobnie. Nowoczesne to jest Rust, Swift, Go i Elixir. A jak chcesz coś nowego i przyszłościowego na maszynę JVM to Scala, Kotlin i Ceylon. Języki te są nowoczesne i mają poparcie nowoczesnych korporacji Apple, RedHat, Google, Mozilla, JetBrains...ot taka moja dygresja mała.

0

Zacząłem od frontendu, ale po iluś godzinach nauki js natrafiłem na miliony frameworków, systemów kontroli wersji, webpacków, babelów, ES6, sassów i innych lasów to zwątpiłem.
W backendzie nie będzie tego mniej ;)

Jeżeli interesują Cię tylko Katowice to zobacz jaki język tam jest najpopularniejszy i się go ucz.
Nie frameworków a samego języka (na początek). Bo inaczej się "zgubisz"

0

Proponuję C#. Ale to moja obserwacja jeśli zależy ci na pracy jako programista w jakiejś Corpo typowo na ich użytek piszesz programy to masz spokojną robotę. Większość firm stawia na rozwiązania Microsft'u oprogramowanie, serwery, IIS a co za tym idzie nie zrobisz nic innego w web niż asp.net że o rozwiązaniach desktop nie wspomnę. Także Visual Studio twoim przyjacielem C# ;) W dodatku bardzo mało jest specjalistów programujących w C# więc o prace nie będzie Ci trudno i zarobki są większe a niżeli w przypadku programistów bardziej popularnych języków. Pisze subiektywnie bo sam jestem ze Śląska i tutaj pracuję. Swego czasu kręciłem się po firmach więc na tym zbudowałem swoje zdanie. Ale tak jak mówię odnoszę się do bardzo małego wycinka rzeczywistości. Nie wiem jak koledzy którzy pracują typowych w firmach dev może oni mają inny punkt widzenia.

0

Jeszcze tylko dodam że bardziej uniwersalnym językiem na początek jest Java bo w Kato przyjmą Cię firmy nawet byś nabrał odpowiedniej ogłady z nim zanim zaczniesz mocno siedzieć w temacie...

1

Jeśli przeszkadza Ci liczba frameworków to proponuję w kolejności:

  • COBOL, PL/I, RPG: uczysz się raz i praca do końca życia zapewniona
  • C#: jedno środowisko od jednego producenta
  • PHP: liczba wiodących frameworków jest raczej mała: https://www.dunebook.com/5-best-php-frameworks-learn-2017/
  • serwisy REST-owe (tu w zasadzie można robić w dowolnej technologii przez najbliższe 20 lat)
  • ew. jeśli ścisły backend to Python: Django, Flask

Z ww względów beznadziejnym wyborem będzie:

  • Java: multum frameworków, multum języków pobocznych które trzeba znać (Jython, Groovy, Scala, Kotlin), multum narzędzi do nauczenia
  • JavaScript: jak nazwa wskazuje, jest to nadzbiór Javy: Angular rozmnaża się jak drożdże (1/2/4), React, node.js, MEAN, jQuery, itd.

(wkręty celowo nieoznaczone)

0

Scala zamiast Javy. Go zamiast C#, ponieważ Go nie potrzebuje dodatkowych frameworków do mini serwisów. A zamiast Pythona najnowszy Elixir.

1

ile można wałkować ten sam temat?

Krwawy Terrorysta napisał(a):

Scala zamiast Javy. Go zamiast C#, ponieważ Go nie potrzebuje dodatkowych frameworków do mini serwisów. A zamiast Pythona najnowszy Elixir.

Go to inna kategoria niż Java czy C#. I mało ofert pracy.
Scala na pierwszy język backendowy? Lepiej nie. I ofert więcej niż Go ale dalej niewiele.

Zanim wyruszysz w drogę (w niszowe technologie), należy zebrać doświadczenie.

0

Ale w Javie nic dla siebie nie napiszesz i jak to wolno chodzi na Desktopie. Popatrz takie IDE do Javy tworzy setki developerów a i tak niekiedy potrafią się rozjechać na Desktopie. A w takim Go jak w C++11 możesz sobie pisać programy dla siebie i na nich się uczyć + motywacja i Open Source projekty. Serwery VPS pod Jave też sporo droższe niż te pod PHP.

0
Krwawy Cyrk napisał(a):

Ale w Javie nic dla siebie nie napiszesz i jak to wolno chodzi na Desktopie. Popatrz takie IDE do Javy tworzy setki developerów a i tak niekiedy potrafią się rozjechać na Desktopie. A w takim Go jak w C++11 możesz sobie pisać programy dla siebie i na nich się uczyć + motywacja i Open Source projekty. Serwery VPS pod Jave też sporo droższe niż te pod PHP.

Tak czytam ten wpis i się zastanawiam, czy to nie zarzutka / wprowadzenie młodego na minę.
Na jakieś senswone Open Source jeszcze przyjdzie czas, jak nabierze expa. Sugerowanie, aby zaczynał PHP w 2017 roku jest raczej słabe. C++ to głównie do gier, jak nie chce robić gier albo IoT to po co ma się męczyć ze wskaźnikami?

Jak nie chce się za bardzo uczyć frameworków to niech idzie w SQL-a. Tam czas idzie znacznie wolniej niż w developmencie. Wprawdzie ostatnio z uwagi na Big Data i inne statystyki / kostki obliczeniowe itp. nieco przyśpieszył, ale nadal w bankach i innych korpo potrzeba sporo ludzi SQL i SAS

0

Dzięki wszystkim za rady i odpowiedzi!
Troszkę źle mnie zrozumieliście. Nie chodzi o to, że nie chce pchać się w frameworki tylko o to, że wg mnie w js jest tego za dużo i to mnie troszkę zniechęciło. Nie chce się też pchać w nowości bo może być ciężko aktualnie z pracą, a po to się uczę programowania. Czyli mam wybierać między C# a pythonem?

0

Python jest cztery razy łatwiejszy do nauczenia niż C#. Nie ma już chyba prostszego języka od Pythona.

1
Krwawy Cyrk napisał(a):

Ale w Javie nic dla siebie nie napiszesz i jak to wolno chodzi na Desktopie. Popatrz takie IDE do Javy tworzy setki developerów a i tak niekiedy potrafią się rozjechać na Desktopie. A w takim Go jak w C++11 możesz sobie pisać programy dla siebie i na nich się uczyć + motywacja i Open Source projekty. Serwery VPS pod Jave też sporo droższe niż te pod PHP.

Ale bzdury...

0

Jak bzdury to pokaż co napisałeś dla siebie, lub pokaż jakiś projekt z tych nowych który jest na Desktopa.

0
Pan Doktor napisał(a):

Jak bzdury to pokaż co napisałeś dla siebie, lub pokaż jakiś projekt z tych nowych który jest na Desktopa.

A zdajesz sobie sprawe ile to IDE robi? Chyba nie. A to potezna maszynka. Do Go tez uzywam Gogland. A ludzie od c++ uzywaja Cliona...

Jakbym potrzebowal by zrobic cos dla desktopa to rozwazylbym javefx. Ale nie chce mi sie robic nic dla desktopa.

A webowe to pewnie, ze napisze dla siebie backend w javie a front w js. Open source? W javie jest mnostwo...
I bez problemu osadzisz appke na jakims cloudzie.

A ze java wolna... To mit. Nie jest szybka jak c++ ale jest szybka.

0

Ja bym postawił raczej pytanie... Czemu sie uczyć pythona a nie Javy lub C# ?

0

"A ludzie od c++ uzywaja Cliona..."
Jakie bzdury, Clion dopiero niedawno powstało i nie jest w pełni stabilne. Zawodowi programiści C++ których znam programują w QT-Creatorze lub Code:Blocks, ewentualnie Vim.
Nawet Jerzy Grębosz koduje w KDevelop. Już prędzej bym uwierzył VS niż Clion.

0
Czarny Mleczarz napisał(a):

Ja bym postawił raczej pytanie... Czemu sie uczyć pythona a nie Javy lub C# ?

To jest właśnie najwazniejsze pytanie w tym temacie ;)

0

Być może dlatego, że Pythona dużo prościej się nauczyć od kobył w postaci Javy i C#? Robisz mini serwis, starter nie potrzebujesz tych dwóch ostatnich, zbędna nauka dużo trudniejszych zagadnień.

0

Patrząc teraz na oferty pracy na pracuj.pl, nofluffjobs i 4prgogamers dla Katowic i okolic wygląda to mniej więcej tak:

  • java - 45%
  • c#/.net - 40%
  • python - 15%

Ale jednocześnie na podstawie tego obszernego zestawienia: https://stackoverflow.com/insights/survey/2017 -
można wywnioskować, że Java i C# na przestrzenie ostatnich lat traci % rynku a Python zyskuje(wraz z innymi technologiami).
Mam jeszcze pytanie odnośnie rzeczywistego zastosowania pytonga. Używa się go głównie w web/big data/desktop/coś innego?

0

Teraz Python 3 zyskuję, też wybrałem Pythona zamiast Jave. Python wydaje się jednak prostszy w obsłudze dla żółtodzioba i w zasadzie nie wymaga skomplikowanej konfiguracji, aby rozpocząć z nim pracę. W przypadku Javy trzeba poświęcić nieco więcej czasu na konfigurację. Dodatkowo Javę trzeba kompilować. Do bardziej skomplikowanych aplikacji konieczne będzie użycie jednego z narzędzi do budowania (Ant, Maven, Gradle). Python jest językiem interpretowanym i w zasadzie jedynym problemem jest zarządzanie zależnościami. Python jest atrakcyjny dla początkującego programisty również dlatego, że jest bardzo zwięzły, nie trzeba w nim pisać tak wiele kodu, aby wykonać jedno zadanie, jak to jest w przypadku Javy. Być może na początku przygody z kodowaniem wyda się to nieistotne, ale gdy przyjdzie pracować nad bardziej rozbudowanymi projektami, zwięzłość Pythona staje się nieoceniona. Przy okazji warto zresztą od razu wyrobić w sobie nawyk pisania prostego i przejrzystego kodu. Co można tworzyć piszą w każdym z nich? Pierwszą kategorią są aplikacje webowe, gdzie do pewnego stopnia skomplikowania Python wydaje się rozsądniejszym wyborem - ze względu na większą ekspresyjność. Framework taki jak Django, Flask czy web2py na pewno ułatwi pracę. Wgranie na serwer z punktu widzenia żółtodzioba też jest łatwiejsze. W końcu wgrywasz kod, a nie WAR-a/JAR-a jak to jest w przypadku Javy. Innym obszarem jest data science i AI. Tutaj obydwa języki przez długi czas radziły sobie stosunkowo podobnie, jednak obecnie Python deklasuje Javę. Owszem - większość popularnych bibliotek oferuje API w Javie, jednak to Python jest tu dużo bardziej popularny. Jego skryptowa natura i zwięzła składnia bardziej wydaje się odpowiadać osobom, które zajmują się tymi działkami. Również wiele zagadnień około-naukowych jest rozwiązywanych z pomocą Pythona. Biblioteki takie jak SciPy, NumPy czy EarthPy są używane przez naukowców do obliczeń czy wizualizacji. Jeżeli chodzi o wizualizację danych to jest to kolejny mocny punkt Pythona.

0

W dodatku bardzo mało jest specjalistów programujących w C# więc o prace nie będzie Ci trudno i zarobki są większe a niżeli w przypadku programistów bardziej popularnych języków.

Dane za pracuj.pl (katerogie są dość dziwaczne):

Co według was w tej sytuacji jest po prostu bardziej przyszłościowe: Python czy Java/C#?

Zależy co rozumiesz przez przyszłościowe. Żaden z tych trzech języków szybko nie odejdzie w zapomnienie, więc o możliwość zatrudnienia nie ma się co martwić. Mam jednak wrażenie, że projekty w Javie stoją znacznie dłużej niż te w innych popularnych językach (COBOL nie jest dzisiaj popularny). Będąc programistą Javy można zabarykadować się w jakimś korpo i siedzieć tam spokojnie pół życia.

1

Niewiażne co wybierzesz. Jak zostaniesz w jakimkolwiek języku specjalistą to wszędzie warunki masz takie same i headhunterzy walcza o Ciebie. Na te najlepsze stanowiska nie rekrutujesz się przez ogłoszenia z internetu, tylko pocztą pantoflową z polecenia. musisz tylko wyrobić sobie markę.

0
Smutny Młot napisał(a):

Niewiażne co wybierzesz. Jak zostaniesz w jakimkolwiek języku specjalistą to wszędzie warunki masz takie same i headhunterzy walcza o Ciebie. Na te najlepsze stanowiska nie rekrutujesz się przez ogłoszenia z internetu, tylko pocztą pantoflową z polecenia. musisz tylko wyrobić sobie markę.

Musiałeś wybrać najniższa dla Pythona, ja widziałem po 12 tys zł.

0

Javascriptu nie lubie i nie polece ale tez warto brac pod uwage ;)

0

Nie bierz javascriptu/node. Bede jeszcze wiecej zarabial ;)

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