C++ czy C#

0

Ostatnio bardzo się dużo zastanawiałem nad wyborem języka programowania i doszedłem do wniosku że chcę wybrać z pośród 2 c++ i c#.
Który z nich jest bardziej przyszłościowy (np. za 10 lub 15 lat)

6

A co chesz robić?

0

Interesują mnie tematy sztucznej inteligencji, uczenia maszynowego, systemów wbudowanych czy coś w tym stylu

3

Za 10 czy 15 lat to mam nadzieję, że nie będziemy musieli programować ani w C++ ani w C#.

Edit:
Rozbudowując odpowiedź - w perspektywie 10 lat nie ma znaczenia jakiego języka zaczniesz się teraz uczyć. Zamiast spędzać czas na wyborami to pick random i jak Ci się nie spodoba to wybierz coś innego.

0

Java zostanie i PHP, najlepsze języki
PHP nie sądzę
Zamiast spędzać czas na wyborami to pick random i jak Ci się nie spodoba to wybierz coś innego.
Ale ja już mam takie podstawy c++ i c#, oba języki mi się podobają, teraz jest poważniejsza kwestia wyboru
Interesują mnie tematy sztucznej inteligencji, uczenia maszynowego, systemów wbudowanych czy coś w tym stylu
Do tych rzeczy lepszy c++ czy c# ?

3

Widze ze strasznie Ciezko Ci sie zdecydowac co bys chcial robic:

Wybór języka programowania

Jaka ścieżka kariery jest bardziej przyszłościowa

3

C++, tym bardziej, jeśli myslisz o AI, w końcu biblioteki, pytorch, trax i inne, "under the hood" śmigają na, C++.

4

Jak już pisałem Wszystko byle nie C# :P
BTW podobno za pytanie C# vs Java jest bak ban :P

A na poważnie, to tak jak @lion137 pisze biblioteki do AI są pisane w C++. Tylko że mało osób pisze biblioteki a więcej ich używa i to w Pythonie

1

IMO
C++ -> Ciekawsze -> Trudniejsze -> Mniej ofert + słaby próg wejścia
C# -> Łatwiejszy -> Więcej ofert -> Lepszy próg wejścia

0

@bakunet: Najbardziej chciałbym zająć się sztuczną inteligencją, uczeniem maszynowym lub systemami wbudowanymi.
Wiem że do AI/ML najpopularniejszy jest python, pisałem w nim malutkie rzeczy ale ten język nie pociągnął mnie jakoś bardzo.
Oprócz tych rzeczy chciałbym się też zając aplikacjami mobilnymi ale najbardziej mi zależy na tym powyżej

3
MARCELL0 napisał(a):

Wiem że do AI/ML najpopularniejszy jest python, pisałem w nim malutkie rzeczy ale ten język nie pociągnął mnie jakoś bardzo.

Ale rynek AI/ML jest dośc mały. Działa tam zasada kto wybrzydza ten nie .... Co innego jakbyś chciał byc programistą CRUDów, wtedy możesz wybierać co tylko chcesz (Scala, Kotlin, JS, a jak się uprzesz to nawet Haskell czy Rust). Więc raczej jesteś skazany na Pythona, chyba że wyhaczysz jakąś firmę która robi AI/ML w innym języku niż Python (np Joby Sparkowe w Scali)

BTW mobilki na androida to Kotlin, na iOS - Swift, na oba systemy JS albo Dart.

Podsumowując, raczej nie ogarniesz AI/ML, embedded i mobilków jednym językiem. Musisz się nauczyć z trzech lub czterech

2

Samo postawienie pytania C# vs C++ świadczy, jak mało o nich wiesz.

Literka 'C' w C# jest przypadkowa (np prawie), nie świadczy to najmniejszym stopniu o jakiejś bliskości tych języków czy podobieństwie.

C# i C++ to dalece, dalece różne języki, mają nieco syntaktycznego podobieństwa, ale różnią się wszystkim.

W rzeczywistości C# należy porównywać do Javy, a pra-przodek C# nazywał się ... J# . Tylko adwokaci nie pozwolili dalej (a marketingowcy wybrali tę literkę)

  1. Na etapie nauki wybij sobie z głowy, że pierwszy uczony język będzie tym, z którego będziesz doił kasę.
    Tzreba przejść, i to głęboko, kilka języków, aby w ogóle rozumieć o co chodzi w profesjonalnym programowaniu.
MARCELL0 napisał(a):

Interesują .. sztucznej inteligencji ... systemów wbudowanych

No tak, to "bardzo" podobne.

Oswój, ale naprawdę dobrze, programowanie jako takie (środkiem do tego będzie porządne przeprawienie przynajmniej 2-3 języków).
Wtedy w ogóle będzie można coś mówić o perspektywach zawodowych

UPDATE: programista z jednym językiem ... to jeszcze nie programista

0

Podsumowując, raczej nie ogarniesz AI/ML, embedded i mobilków jednym językiem. Musisz się nauczyć z trzech lub czterech

Ok a jakie mi te 3,4 języki polecasz ?

0

Natrafiłem na taki ranking.
Co o nim myślicie?
Czy warto się nim sugerować czy do AI/ML wybór jest tylko jeden python?
screenshot-20220404193933.png

0

Dostałeś odpowiedź:
Gdzie się uczyć za darmo programowania ?

python do AI/ML, C++ do embedded, a do mobile to c# lub js tak ? PS.przy mobilkach zależy mi na cross platformowych aplikacjach więc chyba java lub kotlin się nie nada prawda ? I czy c# dobry jest do mobile używając xamarin ? — MARCELL0 8 minut temu

Nie napalaj się na siedem dziedzin, jak w jednej nie zrobiłeś wymagającego programu.
ps. o mobilkach to nasłuchałeś się za dużo bajek o czarnym wilku

6

Miotasz się i popadasz w paraliż decyzyjny. Chcesz szybko podjąć decyzję, ale masz za mało informacji, więc i tak jej nie podejmiesz. Zbierasz więc informacje, ale to ci niewiele da, ponieważ to jest sytuacja, gdzie lepiej byłoby podjąć jakąkolwiek decyzję i zacząć działać.

Chcesz się zajmować AI, a nie umiesz zastosować algorytmów AI we własnym życiu. Chodzi o to, że w życiu, karierze itp. nie zawsze się wybiera optymalnie, czasem trzeba wybrać najbardziej prawdopodobną opcję i iść w danym kierunku, nawet jeśli trzeba będzie zawrócić. Tak działa wiele algorytmów AI czy ML. Najpierw robisz przybliżenie (i czasem trafiasz jak kulą w płot), ale po iluś iteracjach zaczynasz się przybliżać do celu.

0

ponieważ to jest sytuacja, gdzie lepiej byłoby podjąć jakąkolwiek decyzję i zacząć działać.

Ale właśnie nie umiem tej decyzji podjąć więc się tutaj zwracam żeby ktoś mi z tym pomógł

1

@MARCELL0: Zobacz czy ci pasuje R, jak tak to zrób jakiś kurs na udemy ML w R i zobacz czy w ogóle to dla ciebie. Wiesz już, że python ci nie pasuje, ale wiesz czy ml ci pasuje? Sprawdź R, zacznij robić jakieś modele. Przez tyle czasu co zadajesz te pytania to byś już miał zrobione jakieś podstawy ML/AI.

I nie napalaj się, że przez 10 lat będziesz używać tego co się nauczysz, przeciętny programista zrobi spore aplikacje w 4 różnych językach przez 10 lat

1
MARCELL0 napisał(a):

Ale właśnie nie umiem tej decyzji podjąć więc się tutaj zwracam żeby ktoś mi z tym pomógł

No to zawsze możesz pouczyć się zaawansowanej matmy, przyda się do ML.

1

Najwieksza roznorodnosc projektowa osiagniesz w C++. C# mimo checi nadal w zasadzie to tylko web i czasami desktopy ograniczone do Windows. AI/ML to C++ i Python. Chociaz ostatnimi czasy sporo ludzi od ML probuje sil z Rust.

3

Jako programista c++ odradzam jeżeli nie jesteś tego pewien i nie kochasz tego języka ponad wszystko. Projekty faktycznie są różnorodne, ale na polskim rynku ciężko trafić w miejsce gdzie praca będzie czymś innym niż grzebanie w starym kotlecie żeby poprawić jednego ifa a źle napisany program w c++ to coś o wiele gorszego niż źle napisany program w c# czy Javie. Łatwo źle trafić, bo swego czasu c++ był bardzo popularny i dużo słabych kodów zostało naklepanych. Potem po roku okazuje się, że od początku nie napisałeś sam żadnej większej funkcjonalności i na rozmowach rekrutacyjnych możesz się pochwalić jedynie debuggowaniem.
No i nauki samego języka jest o wiele wiele więcej. Niby są najnowsze standardy, ale co z tego jak się z tego często nie da korzystać, bo dostaniesz bibliotekę z starym API i baw się dobrze. Do tego wiedza branżowa wchodzi w grę. Np grafika komputerowa, telecom itd.

O plusach powiem jak minusy Cię nie zniechęcą.

Jak interesuje się embbeded to rób własne zabawki i sam zobaczysz, elektronika tu też jest dość ważna. W PL słabiej opłacana branża niż gamedev, chyba najgorzej spośród programistów a męcząca. Kochasz grzebanie, albo nienawidzisz.

Jeśli chodzi o ML/AI to zależy co chcesz robić. Jak opracowywać modele sieci, algorytmy itd to bardziej w stronę analityki, tj nauka statystyki, matmy, AI, pytonga i bazy danych. C++ w sumie też, ale dodatkowo. No i dużo własnych projektów. Sprawa niesamowicie ciekawa, więc wiedza miło wchodzi, dobrze oplacana branża, ciekawe projekty, cutting edge itd ale nie ma aż tak dużo ofert pracy. W sumie polecam dodatkowo iść na dobre studia, które mogą być nakierunkowane na to. Łatwiej też, żeby się zakręcić przy jakichś ciekawych projektach.

0

@japanlofi:

Najwieksza roznorodnosc projektowa osiagniesz w C++. C# mimo checi nadal w zasadzie to tylko web i czasami desktopy ograniczone do Windows.

narzędzia bym dodał

0

Na liście do wyboru powinieneś mieć tylko
a) Python
b) Julia

C++ ma pewnie tyle z ML wspólnego że jak już opracujesz jakiś sensowny algorytm/metodę to idziesz od kogoś od C++ i Ci to przepisuje na ładny kod.

A bywa że nigdy do tego nie dochodzi bo:

  1. wiele rzeczy po prostu analizujesz i zapominasz o nich
  2. wydajność Julii lub Pythona-z-Tensorflow(itp) jest wystarczająca
2

Rozumiem że czasem trudno jest podjąć decyzję, boisz się że zmarnujesz czas ucząc się jakiegoś języka, albo będziesz żałował że nie wybrałeś innego.
Ale zakładanie kolejnych wątków i długie rozmyślania nad wybraniem języka nie przybliżają cię do nauki ML czy chociażby ogólniej programowania.

2

Jeżeli chcesz zawodowo zajmować się ML to tylko Python, jeżeli chcesz zajmować się tym
wyłącznie hobbistycznie to wybierz cokolwiek i zacznij się w końcu uczyć, bo patrząc na ciebie to przypominasz mi
mojego kolegę który od pół roku truje dupę o nauce programowania, a do dzisiaj przerobił 20 stron książki.
Irytujący jest niesamowicie w tym aspekcie.
Założyłeś trzy tematy o praktycznie tej samej treści, ludzie do ciebie piszą co masz robić, a ty zakładasz 4 temat, jakbyś miał kompletnie w dupie te rady
i liczył na prawdę objawioną, tak nie będzie.
Jeżeli nie dokonasz wyboru języka - który możesz zmienić w trakcie nauki,
ponieważ sposób myślenia który nabędziesz w trakcie nauki dowolnej technologii aplikuje się do dowolnej innej, jeżeli umiesz
programować w JS/Pythonie/C++ na jako takim poziomie, to nauka nowego języka to tylko kwestia formalności - obudzisz się za rok
z zerową wiedzą programistyczną, za to będziesz chodzącą encyklopedią plusów i minusów każdego języka programowania.

0

Wyrocznia od wróżki na 10-15 lat ...

15 lat temu (około) w swoim punkcie czasoprzestrzeni bardzo zdynamizowałem kontakt z Javą (bardzo pozytywne wrażenie po poprzednich doświadczeniach). Dziś jak otwieram IDE javowskie to dopomina się o aktualizacje, czyszczenie cache itd... cóż, nie było przeze mnie przeciążone (choć ostatnio ożywia się jeden projekt).
Hoho, kiedyś byłem względnie niezły w Pythonie, poszedł na margines.

To ogrom czasu

Za mało przesuwam przez palce języków (ktoś powiedział co dwa lata nowy), tym niemniej tyle lat to przynajmniej 3 języki "wytestowane w boju" tzn więcej niż hello world, a rzeczywiste (mniej czy bardziej udane) projekty na 10 lat to konieczność. Z wieloma z nich nie pozostaje się potem w kontakcie, ale rozszerzają myślenie.

obudzisz się za rok
z zerową wiedzą programistyczną,

I z zerowymi umiejętnościami podejmowania decyzji (choćby technicznych, że nie wspomnę o życiowych).

Czitels napisał(a):

Jako programista c++ odradzam jeżeli nie jesteś tego pewien i nie kochasz tego języka ponad wszystko. Projekty faktycznie są różnorodne

łącznie z różnorodnością taką jak suche, mało śmierdzące g.. vs po rozstroju żołądka.
Widziałem czasem syf w Javie (często zw z ciemnoskórymi nowatorami i EE2), ale najwiecej w C++. W sumie to nie wina C++ (w jakims sensie, he he), bo kupa tego brązowego to w ogóle nie jest C++

C# jest względnie nowszy i nowoczesny, lepiej zestandaryzowany (niż C++) mniej brązowego ??? Może ...

0

Co do ML, to Microsoft mocno promuje swoje ML.NET, z tego co wiem ludzie tego używają.
https://dotnet.microsoft.com/en-us/apps/machinelearning-ai/ml-dotnet

Czy to coś godnego uwagi, to nie wiem, sam w ML nie siedzę, bo to scam.

2

Jakos nie zauwazylem w calym watku co to AI,/ML mialoby oznaczac. Jesli budowanie modeli to jak juz zostalo napisane aktualnie to glownie, ale nie tylko, python. Ale AI nie sprowadza sie do budowania modeli. A nawet majac model trzeba go jakos uruchomic. I musi to byc paskudnie szybkie. Aktualnie w praktyce, co tez zostalo napisane to jest to glownie C++, ale duzo kodu pisze sie tez w assemblerze (w moim przypadku sa to intrinsics, ale w innych projektach zdarza sie widziec czysty assembler) i optymalizacje na.GPU. U nas to nie ma miejsca, ale zapewne sa tez firmy w ktorych pisze sie w VHDL.

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