Wątek przeniesiony 2018-12-21 16:34 z Off-Topic przez Ktos.

C++ vs C#

Odpowiedz Nowy wątek
2018-12-21 17:07
0

Witam,
chciałbym się dowiedzieć co nie co o pracy jako programista c++ oraz programista c#. Którego języka warto się uczyć, aby za kilka lat móc znaleźć jakąkolwiek pracę. Jakie są plusy i minusy każdego z języków oraz jakie jest ich zastosowanie.
Jestem w klasie maturalnej, przygotowuję się do matury z informatyki. Dość sporo uczę się C++. Wcześniej uczyłem się C#. Zastanawiam się, czy jeżeli przygotowuję się do egzaminu (na którym wybrałem C++) to czy później przy nim nie zostać. Mam obawy co do tego języka, że za kilka lat, na studiach i po, nie będę mógł znaleźć pracy.
Nie mam pojęcia do jakich projektów każdy z tych języków się przyda. Ciekawi mnie wytwarzanie oprogramowania oraz pisanie gier. W wolnym czasie piszę strony internetowe i uczę się JavyScript.
Mam wielki dylemat z jakim językiem wiązać swoją przyszłość, mam nadzieję, że znajdzie się ktoś na forum, kto ma jakiekolwiek pojęcie o pracy lub był w podobnej sytuacji co ja.

Pozdrawiam

edytowany 2x, ostatnio: guuren, 2018-12-21 17:08
Pokaż pozostałe 2 komentarze
Gdzieś to przeczytał.. na widełkach? Zarobki takie same tu i tu, a pracy nie zmieniasz co rok. - Sylvester Salomon 2018-12-22 11:45
Wystarczy poszukać ogłoszenia Android czy Frontend. Androida dużo mniej, więc też mniej dobrze płatnych. A embedded to całkiem mało i słabo płatne, bo to nie jest tak outsorcowane jak serwisiy internetowe - Darck 2018-12-22 12:02
Zgadzam się. Ofert pracy jest najmniej na embedded, najwięcej na front. Pracy trzeba samemu szukać. Google się nie ogłasza, a na braki kadrowe nie narzeka. Z tymi zarobkami to jest różnie, ale generalnie są wyrównane. Wolałbyś byś pisać Frontend jakiś kolorowych aplikacji banku ING czy embedded w jakimś SpaceX albo ESA? O to mi chodzi, nie o pralki. Na samą myśl, że mógłbym się przyczynić do powodzenia/zawalenia misji kosmicznej mam ciary. Wiem też, że w fabrykach samochodów (np. Fiat Tychy) zarobki 20k+. - Sylvester Salomon 2018-12-22 12:49
Ale do SpaceX i ESA w Polsce się nie pisze - Darck 2018-12-22 15:56

Pozostało 580 znaków

2018-12-21 17:49
0

Którego języka warto się uczyć, aby za kilka lat móc znaleźć jakąkolwiek pracę.

Istnieje spora szansa, że umiejąc każdy z tych języków będziesz w stanie znaleźć pracę, ale jeżeli utrzymają się obecne trendy, to o wiele więcej pracy (i to znacznie więcej!) jest w C# albo Javie niż w C++. Czy tak będzie w przyszłości? Raczej tak, bo idziemy w stronę szybszego tworzenia aplikacji, a zbudowanie jej w C# jest zazwyczaj szybsze niż w C++.

Jakie są plusy i minusy każdego z języków oraz jakie jest ich zastosowanie.
Ciekawi mnie wytwarzanie oprogramowania oraz pisanie gier.

Oba te języki mają bardzo szerokie zastosowanie - aczkolwiek C++ rzadziej się używa do tworzenia aplikacji desktopowych ogólnego użytku, a mobilnych lub webowych praktycznie wcale się nie używa. Za to w grach się używa, np. w Unreal Engine 4. Również C# tutaj jest obecny, w Unity, ale produkcje AAA raczej nie korzystają z Unity. Z drugiej strony - zawsze tam, gdzie wymagana jest wydajność lub odpowiednio niski poziom pojawiają się zarówno C++, jak i C (choć w dzisiejszych czasach dochodzimy do JavaScriptu uruchamianego w urządzeniach wbudowanych). Innymi słowy: C++ będzie miał najczęściej węższe spektrum zastosowań, za to jego dobra znajomość może być bardziej ceniona.

FACEBOOKA kmać w C++ napisali ... - youmound 2018-12-21 18:03
Facebooka napisali w PHP. Co najwyżej HHVM napisali w C++. - Ktos 2018-12-21 23:38
produkcje AAA raczej nie korzystają z Unity - zdecydowana mniejszość wszystkich gier to „produkcje AAA”. - Azarien 2018-12-22 10:10

Pozostało 580 znaków

2018-12-22 09:57
2018-12-22 14:04
0

To zależy co chcesz robić. Jak chcesz robić w korpo i mieć spokojną pracę to pewnie C#. W C# jest na pewno więcej pracy w C++, ale czy jest więcej ambitnej pracy to wątpliwe (choć może się mylę, świat wokół M$ jest mi zupełnie obcy). C++ to obecnie typowe rozwiązanie dla dużych wymagań wydajnościowych, jak np.gier, obróbki video, itp.
C++ na pewno się przyda jeśli jara Cię programowanie. Jednak chyba dla obu są znacznie ciekawsze alternatywy. Jeśli bardzo lubisz rozwiązania Redmond, może F#? To chyba już fajniejsze, wspiera chociaż FP. Tylko po co się wiązać z .NETem? Nie lepiej JVM? Polecam Scalę. Z języków kompilowanych, jako pewnie przyszli zastępcy C i C++ (przynajmniej w wielu dziedzinach), ostatnio popularne się robią Go i Rust.

edytowany 2x, ostatnio: elwis, 2018-12-22 14:05
Pokaż pozostałe 2 komentarze
Dlatego, że JVM jest bardziej przenośne? Z dwojga złego JVM jest lepsze. Choć najlepiej po prostu otwarte źródło do skompilowania. ;) - elwis 2018-12-22 15:30
@BluzaWczolg: " "Nie ma takiego burdelu w projektach przynajmniej. " nie wiem jaki burdel masz na myśli, ale Microsoft też robi burdel. Jeszcze nie wiadomo, co Microsoft zrobi z core, bo już miał fazowanie na nowe technologie, a później je porzucał. Tak, wiem - java to drwno, ale są inne języki, zaś na net jest praktycznie tylko c#, a desktopowe tylko na windows. - tomasz-k 2019-01-06 21:05
@tomasz-k: z net core nic nie zrobią. Jeśli podjęli ostatnio decyzję, aby wrzucić tam full EF to na pewno tego nie porzucą. - Aryman1983 2019-01-06 21:39
Dokładnie, zbyt dużo kasy i czasu poświęcili aby to zrobić. Porzucenie byłoby kompletnie bez sensu bo byłoby to zmarnowaniem dobrego projektu, ogromnej ilości $$/pracy oraz krokiem w tył względem rywalizacji. - WeiXiao 2019-01-06 21:45
No a jak hindus powiedział, że idą w open source to idą i basta :-) Tam się prezesi nie zmieniają co roku więc jak długo będzie tam siedział tak będą trwali w budowaniu net cora. W końcu wyprze całkowicie classica i jak usiądzie sobie w korpo tak nikt go z stamtąd nie ruszy :-) - Aryman1983 2019-01-06 21:55

Pozostało 580 znaków

2018-12-22 14:37
1
elwis napisał(a):

To zależy co chcesz robić. Jak chcesz robić w korpo i mieć spokojną pracę to pewnie C#. W C# jest na pewno więcej pracy w C++, ale czy jest więcej ambitnej pracy to wątpliwe (choć może się mylę, świat wokół M$ jest mi zupełnie obcy).

W C# nie pisze się dla Microsoftu tylko dla klientów. A ci są różni, poza wszechobecnymi finansami i nudnymi crudami istnieją projekty z branży biotechnologicznej, lotniczej, motoryzacyjnej. No i oczywiście gry.

Jednak chyba dla obu są znacznie ciekawsze alternatywy. Jeśli bardzo lubisz rozwiązania Redmond, może F#? To chyba już fajniejsze, wspiera chociaż FP.

C# też "wspiera" FP. F# po prostu jest FP.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2018-12-22 14:49
1

w cpp o wiele ciężej znaleźć pracę, próg wejścia wyższy niż np. w javie/pythonie, zarobki stosunkowo niższe od tych w innych językach. Też chciałbym pracować w cpp, ale patrząc na ogłoszenia o pracę, to bardzo wątpię :((( Smutne to trochę, ale no cóż.


(っ◔◡◔)っ ♥ Kto produkcji nie wy♥bie ten nie zazna szczęścia w niebie ♥

Pozostało 580 znaków

2018-12-22 15:41
0
somekind napisał(a):

W C# nie pisze się dla Microsoftu tylko dla klientów. A ci są różni, poza wszechobecnymi finansami i nudnymi crudami istnieją projekty z branży biotechnologicznej, lotniczej, motoryzacyjnej. No i oczywiście gry.

Wiem o tym. Chodziło mi o to, że te technologie wiążą w dużym stopniu ze środowiskiem Windowsa, a to przełknąć co raz ciężej. To znaczy dla kogoś, kto pracuje na Windowsie. JVM chociaż pójdzie na każdej platformie dla użytkownika końcowego, i na PC i na ARMie, Linux czy Windows. Tylko niestety wolne implementacje są wolne, dlatego mimo wszystko wolę źródła do skompilowania. No ale to moje prywatne potrzeby. Jak się robi $$$ to sprawy mają się trochę inaczej. A to, że i w tych technologiach też są ambitne projekty - pewnie, ale nie napisałem, że nie ma.

C# też "wspiera" FP. F# po prostu jest FP.

Java też "wspiera". Spróbowałem, rzuciłem parę bluzgów i przestałem. Nic nie poradzisz, jeśli język nie jest do tego przystosowany. Jestem zdania, że nie da się (albo bardzo trudno) zrozumieć urok tego paradygmatu jeśli nie programuje się w języku, który go dobrze wspiera.

edytowany 3x, ostatnio: elwis, 2018-12-22 15:45

Pozostało 580 znaków

2018-12-22 16:00
2
elwis napisał(a):

Wiem o tym. Chodziło mi o to, że te technologie wiążą w dużym stopniu ze środowiskiem Windowsa, a to przełknąć co raz ciężej. To znaczy dla kogoś, kto pracuje na Windowsie. JVM chociaż pójdzie na każdej platformie dla użytkownika końcowego, i na PC i na ARMie, Linux czy Windows. Tylko niestety wolne implementacje są wolne, dlatego mimo wszystko wolę źródła do skompilowania. No ale to moje prywatne potrzeby. Jak się robi $$$ to sprawy mają się trochę inaczej. A to, że i w tych technologiach też są ambitne projekty - pewnie, ale nie napisałem, że nie ma.

Ten argument jest nieaktualny od chyba 3 lat.

C# =/= Windows, a framework .NET Core działa pod Linux / Mac / Windows i również on jest otwarty.

edytowany 6x, ostatnio: WeiXiao, 2018-12-22 16:03

Pozostało 580 znaków

2018-12-22 16:32
Kot Oggy
1

Ja robię w c++ i praca z tego co widzę to głównie telco typu ericsson/nokia/motorola, ale może być tak że rekrutujesz się na c++ a trafisz w jakieś guano typu rsa/rte i powiem ci jeszcze że praca w korpo w c++ to żadne ciary - ja od dwóch miesięcy mam trzy zadania które są na 100 linijek logiki każde(i to nie jest porywający algorytm) reszta to testy, rozmowy na skype z systemowcami i jeszcze więcej testów, nie ma tam żadnej inwencji twórczej - robisz co ci każą we frameworku tej aplikacji i tyle. W c++ naprawdę musisz być dzikiem żeby robić ciekawe rzeczy, w ogóle w programowaniu trzeba być mocnym zawodnikiem żeby coś samodzielnie działać w dużym projekcie.

Pozostało 580 znaków

2018-12-22 16:53
0
elwis napisał(a):

Chodziło mi o to, że te technologie wiążą w dużym stopniu ze środowiskiem Windowsa, a to przełknąć co raz ciężej. To znaczy dla kogoś, kto pracuje na Windowsie. JVM chociaż pójdzie na każdej platformie dla użytkownika końcowego, i na PC i na ARMie, Linux czy Windows.

Szczerze, to nigdy nie rozumiałem tego podejścia. Programista spędza czas głównie w IDE, trochę mniej w przeglądarce, a jakiś 1% w systemie operacyjnym. Co za różnica jaki to system?Jeśli programista ma problem z obsługą systemu operacyjnego dla laików, to nie jestem w stanie zrozumieć, jakim cudem programuje.

Poza tym, to nie jest takie proste, pomijając już .NET Core, to jak projekt stoi na bazie Oracle, to masz pod nią Linuksa, podobnie np. z ELK i wieloma innymi narzędziami, i czasem trzeba to wszystko umieć skonfigurować/naprawić/obsłużyć. A w Javie też się zdarzają projekty na MSSQL i deployowane na Azure. Więc wybór JVM też nie gwarantuje braku Windowsa.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2018-12-23 09:47
Geraldinio
1

Na bazie własnego doświadczenia w pracy C++ embedded powiem tyle, że większy problem sprawia mi zrozumienie działania urządzenia niż jakas implementacja feature'a w kodzie dla niego. Trzeba się liczyć z tym, że w takiej pracy przeważnie więcej jest ogarniania sprzętu, który programujesz niż samego programowania.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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