Czy C ++ jest niezbędny, aby dowiedzieć się, czy kiedykolwiek chcę znaleźć pracę w branży gier?

17

Czy C ++ jest niezbędny, aby dowiedzieć się, czy kiedykolwiek chcę znaleźć pracę w branży gier? Bardzo dobrze znam C # i mam podstawową umiejętność tworzenia gier 2D w XNA 4.0. W tej chwili mam zaledwie 13 lat i uwielbiam tworzyć gry i mam nadzieję, że pewnego dnia dostanę pracę w programowaniu gier. Słyszałem, że wiele osób mówi, że C ++ jest „standardem branżowym” i że nie zaszkodzi twojej karierze. Staram się też kierować reklamy na więcej platform niż tylko na Windowsa i wiem o Monogameale z jakiegoś powodu mam dużo problemów z szablonami Visual Studio i znajduję wiele błędów w Monogame. Ponieważ technicznie nie mogę jeszcze znaleźć pracy i prawdopodobnie nie mogłem dostać pracy programistycznej, dopóki nie będę miał 22 lat lub czegoś takiego (chyba że jestem samozatrudniony). W ciągu ponad 9 lat branża gier najprawdopodobniej bardzo się zmieni. Oto kilka pytań

  • Czy nauka C ++ nie zaszkodzi moim szansom na znalezienie pracy programistycznej?
  • Zanim będę mógł znaleźć pracę, C ++ nadal będzie językiem programowania „standardowym w branży”
  • Jeśli jestem niezależnym programistą, czy to naprawdę ma znaczenie, czy uczę się C ++, czy nie i trzymam się tego, co wiem?
  • Czy powinienem zacząć uczyć się teraz, odkąd mam wiele lat, zanim będę mógł znaleźć pracę?

Martwię się również, że chociaż jestem zaznajomiony z programowaniem obiektowym, mogę spędzać dużo czasu na C ++, i jestem bardzo sfrustrowany i zdezorientowany, po prostu przestaję się go uczyć, a do tego czasu zapomniałem o wielu XNA i muszę się wszystkiego nauczyć. Krótko mówiąc: czy powinienem nauczyć się C ++, jeśli kiedykolwiek chcę pracować w programowaniu?

AKTUALIZACJA

Dziękujemy wszystkim za odpowiedzi i sugestie. Ostatnio wybrałem SFML i C ++ i idzie całkiem nieźle. Rozumiem język C ++ i zaczynam otwierać oczy, aby nie martwić się o naukę nowych rzeczy, ponieważ mogłem przenieść całą swoją znajomość języka C # na ułatwienie nauki języka C ++. Jeszcze raz dziękuję.

Battle_Pasture
źródło
4
Należy zauważyć, że w branży gier jest więcej zadań, które nie kodują, niż takich, które kodują. Artyści, kierownicy projektów, testerzy czarnej skrzynki, projektanci, sprzedaż itp. Poza tym w innych językach jest o wiele więcej miejsc pracy niż w samym C ++. Tak więc, statystycznie rzecz biorąc, nie, nie musisz uczyć się C ++, aby znaleźć pracę w branży.
MichaelHouse
1
Na pewno nie zaszkodzi twoim szansom. Firma, dla której obecnie pracuję, ściśle wykorzystuje C # i Unity do tworzenia gier i nie wymaga C ++. Jednak C ++ jest nadal uważany za plus, ponieważ uczy wielu użytecznych pojęć, które można zastosować gdzie indziej. Polecam skupić się na języku, który znasz dla swojego projektu niezależnego, ale poświęć trochę czasu na naukę C ++, kiedy tylko możesz (tylko dla doświadczenia).
Benjamin Danger Johnson
2
Jeśli jesteś profesjonalnym programistą, nie zawsze możesz wybrać narzędzia. Na przykład nienawidzę Java i MATLAB z pasją. Jednak od czasu do czasu muszę tylko wstrzymać oddech i skończyć z tym. Więc po prostu przestań marudzić i naucz się C ++. Naucz się także kilku innych języków, gdy jesteś w tym.
drxzcl
Naucz się C ++, póki możesz.
jcora,
Wydaje mi się, że ten post jest ważną lekturą tego pytania.
Andrew Russell

Odpowiedzi:

23

Chcę skupić się na twoim trzecim pytaniu, ponieważ leży ono w zakresie mojej wiedzy (niezależny programista):

Nie pisałem linii kodu C ++ przez wiele, wiele lat. I w rzeczywistości zapomniałem wielu drobiazgowych szczegółów (aw C ++ jest ich wiele ). Większość pracy wykonuję w języku C #. I absolutnie nie musisz uczyć się C ++.

Jednak umiejętności, które nabyłem dzięki nauce języka C ++ - szczególnie rzeczy niskiego poziomu, szczególnie sposób działania pamięci i wskaźników - okazały się bezcenne.

Ponadto kilkakrotnie musiałem czytać kod C ++ innych osób. Jeśli wiesz, jak programować w języku C # lub Java, prawdopodobnie zgadniesz, co się dzieje - ale wiedza jest znacznie lepsza.


Szczególnie polecam ci teraz naukę C ++. W twoim wieku masz mnóstwo czasu na naukę. W ten sposób nie będziesz musiał martwić się o wybranie C ++ podczas próby opracowania gry lub znalezienia pracy.

Nie martw się o zapomnienie szczegółów, jeśli przestaniesz używać C ++ z jakiegoś powodu (XNA lub czegoś innego). Pojęcia są ważniejsze. W razie potrzeby będziesz mógł ponownie łatwo wybrać szczegóły.


Jak wskazano na inne pytania - nie wiemy, jak będzie wyglądać branża za dekadę. Chociaż domyślam się, że C ++ nadal będzie w dość powszechnym użyciu. Mówiąc teraz - znajomość C ++ znacznie zwiększy szanse na zatrudnienie - nawet w sklepie spoza C ++.

Andrew Russell
źródło
7

Jeśli chcesz zostać programistą gier, prawdopodobnie nie możesz uniknąć nauki języka C ++. Jeśli chcesz innej pracy w branży gier, takiej jak producent lub artysta, nie potrzebujesz C ++.

C ++ jest trudny. Wiele osób nie uczy się tego przed studiami. Masz dużo czasu. Pracuj z niektórymi innymi językami, aby poznać podstawowe koncepcje programowania. Zacznij od małego i zrób to krok po kroku.

M. Dudley
źródło
2
Kłóciłbym się na odwrót. C ++ jest obecnie językiem zbliżonym do sprzętu i koniecznie uczysz się kilku rzeczy o architekturze komputerowej, których nie nauczyłbyś się z językiem wyższego poziomu, takim jak C #, głównie o alokacji pamięci i adresowaniu. Jeśli najpierw nauczyłeś się języka C # i poczułeś się z nim swobodnie, zapewne poczułbyś się wyobcowany dzięki dodatkowym obręczom, z którymi musisz przejść przez C ++ w porównaniu.
Hackworth
6

Masz jeszcze dużo czasu na naukę, więc nie sądzę, że powinieneś się martwić, jakiego języka używasz, ale przedstawię kilka rzeczy, które mogą Ci się przydać:

  1. C ++ to język, a XNA to framework. XNA nie będzie już aktualizowany przez Microsoft, więc trudno mi sobie wyobrazić, że będzie używany za 9 lat w jakikolwiek poważny sposób. Z drugiej strony C ++ i istnieje już od zawsze, ma aktywny komitet normalizacyjny, który dąży do jego ulepszenia i zapewnia programistom tak dużą kontrolę nad sprzętem, że gigantyczny skok mocy sprzętowej spowodowałby, że kontrola ta nie byłaby potrzebna, a tym samym pozwoliłaby na zastąpienie go innym językiem jako standard defacto dla gier o wysokiej wydajności.

  2. Nauka pojęć jest ważną częścią, a nie językiem, w którym się je implementuje. Możesz „nauczyć się” nowego języka dość szybko, jeśli już rozumiesz jego podstawowe zasady.

  3. C ++ wymagałby, abyś uczył się o wskaźnikach i problemach z pamięcią na znacznie głębszym poziomie niż C #, więc zaleciłbym, abyś uczył się go w pewnym momencie, niezależnie od jego zastosowania w przemyśle.

  4. Twoja obawa przed zapomnieniem rzeczy jest prawdopodobnie bezpodstawna. To prawda, że ​​zapomnisz rzeczy, ale szczegóły nie są tak naprawdę ważną częścią. Nie zapomnisz, jak zaprojektować grę, zmieniając języki.

Wydaje się, że masz powody, by nie uczyć się C ++, myślę, że próbujesz zracjonalizować chęć nieuczenia się czegoś nowego.

Pomyśl o tym w ten sposób: jeśli nauczysz się C ++ i okaże się, że nie będziesz go używać w przyszłości, będziesz miał wiele lat, aby dowiedzieć się, co jest, a ja gwarantuję, że po nauce C ++ pomoże ci to zrobić. Jeśli zdarzy ci się zapomnieć o całym XNA i nie uda ci się nauczyć C ++, lepiej to odkryć i posunąć się naprzód, niż martwić się o możliwości. Nie sądzę, aby któryś z przypadków był bardzo prawdopodobny.

Chewy Gumball
źródło
4

Porady ogólne: nie koncentruj się na tym, czego musisz się nauczyć lub na tym, czego powinieneś się uczyć. Po prostu zrób coś.

Aby odpowiedzieć na konkretne pytanie, Microsoft nie będzie już aktualizować XNA, więc są szanse, że nie będzie już dłużej. C ++ jest dobrze ugruntowanym standardem branżowym i nie będzie wkrótce dostępny. Jeśli chcesz pracować nad grami AAA, to tak. Konieczne będzie doświadczenie w C ++.

Zach Latta
źródło
Świetna rada, +1. Chociaż szczerze uważam, że nauka nowych języków jest również bardzo ważna.
jcora,
Yannbane: Ale czy to nie jest drugorzędne? Gdy OP tworzy rzeczy, odkryje to, czego musi się nauczyć i nauczy się tego w trakcie procesu. Gdy znasz dobrze jeden język, nauka innych jest na ogół dość łatwa.
Zach Latta,
Err, nie, nie jest. Potrzebujesz trochę obu lub kursu, ale nauka języków jest ważniejsza niż posiadanie projektów. I nie, tylko dlatego, że znasz C #, nie oznacza, że ​​znasz C ++. A gdyby było łatwo, regularnie widywałbyś osoby znające ponad 6 języków.
jcora
1

Ponieważ na pytanie już udzielono odpowiedzi, pozwól mi tylko wypełnić kilka dziur tu i tam ...

Martwię się również, że chociaż jestem zaznajomiony z programowaniem obiektowym, mogę spędzać dużo czasu na C ++, i jestem bardzo sfrustrowany i zdezorientowany, po prostu przestaję się go uczyć, a do tego czasu zapomniałem o wielu XNA i muszę się wszystkiego nauczyć. Krótko mówiąc: czy powinienem nauczyć się C ++, jeśli kiedykolwiek chcę pracować w programowaniu?

Skąd pomysł na to, że C ++ jest okropnym językiem potworów? To nie jest! To jest naprawdę bardzo zabawne.

To prawda, że możesz zbliżyć się do sprzętu, który ma dwie zalety: dowiadujesz się znacznie więcej o tym, jak komputer faktycznie działa, a po drugie masz o wiele więcej mocy w rękach niż, powiedzmy, C #.

Ale z drugiej strony, C ++ oferuje świetne metody abstrakcji i ma bardzo przydatne biblioteki, więc nie jest tak, że faktycznie komunikujesz się bezpośrednio z kartą graficzną (na pewno możesz) - zostanie po prostu oderwana.

Znajomość dowolnego języka jest bardzo przydatna, ma duże szanse na zwiększenie prawdopodobieństwa zatrudnienia, a na pewno czyni cię lepszym programistą.

Kiedy będziesz miał czas, sprawdź JavaScript i / lub Python. Inni prawdopodobnie sugerowaliby również Lispa, ale nie mam wystarczającej wiedzy, jeśli chodzi o to, więc nic nie powiem. Ale i tak może się przydać, myślę, że to całkiem fajne, nawet z moim ograniczonym rozumieniem jego koncepcji. Jest też Haskell, ale bezcielesny.

W ciągu ponad 9 lat branża gier najprawdopodobniej bardzo się zmieni.

Prawdziwe. Ale zgadnij, co: za ponad 9 lat będziemy nadal używać asemblera, C ++ i C. Wątpię, aby twórcy gier nagle stwierdzili, że mają wystarczające zasoby i przestali przekraczać granice maszyn. Oczywiście to tylko przypuszczenie, ale wszystkie te języki są znacznie starsze ode mnie, więc myślę, że mam rację.

Poza tym, ucząc się C ++, ułatwisz sobie przejście do potencjalnego nowego języka średniego poziomu.

Ponieważ technicznie nie mogę jeszcze znaleźć pracy i prawdopodobnie nie mogłem dostać pracy programistycznej, dopóki nie będę miał 22 lat lub czegoś takiego (chyba że jestem samozatrudniony).

Jestem prawie pewien, że się tutaj mylisz. Będziesz w stanie znaleźć pracę za kilka lat. Myślę, że niewiele znaczy 2 według prawa mojego kraju. Ale nie praca na pełny etat.

Nadal istnieją opcje pracy, gdy szkoła jest nieobecna, a jeśli jesteś dobry, a prawdopodobnie jesteś, to na pewno będzie firma deweloperów, która chciałaby cię zatrudnić. Firma Gamedev? Prawdopodobnie nie. Ale nie ma powodu, dla którego naprawdę chciałbyś pracować jako jeden, AFAIK, możesz lepiej zarabiać w zwykłej firmie i pracować nad grą w wolnym czasie.

Poza tym, spójrz tylko na swoje imię, to prawie tak, jakbyś już zapoznał się z radością programowania w C ++!

jcora
źródło
1

Nie jestem jeszcze w biznesie (mam 17 lat), ale myślę, że naprawdę trzeba odkryć nowe języki i technologie. Póki masz czas, naucz się C ++, OpenGL i Java. Opanowanie ich zajmuje trochę czasu (zajęło mi to 5 lat, więc zacząłem w tym samym wieku co ty), ale zdobyte doświadczenie jest naprawdę niesamowite.

Warto spróbować zrobić klon Minecraft w Javie i OpenGL. To da ci wgląd w wiele technik gamedev i nauczy Cię WIELE technik optymalizacji. Tak właśnie zrobiłem w wieku 16 lat. Możesz zobaczyć wynik tego na: CraftMania . Dlatego polecam zacząć od Java, ponieważ jest łatwy do zaprogramowania. Istnieje moduł wyrzucania elementów bezużytecznych i porządna obsługa wyjątków. Pozwala to na bardzo efektywne nauczenie się OpenGL, bez kłopotania się wszystkimi trudnościami, jakie napotyka C ++ dla niedoświadczonego programisty.

Kiedy poczujesz, że opanowałeś Javę w połączeniu z OpenGL, spójrz na C ++ i spróbuj zrobić kilka łatwych rzeczy (jeszcze żadnych gier). Gdy pomyślisz, że rozumiesz, jak C ++ jest kompilowany i działa w środowisku uruchomieniowym, i wiesz, jak zorganizowana jest pamięć w C ++, NASTĘPNIE rzuć okiem na SDL, aby stworzyć łatwą grę.

Dlaczego skupiam się na OpenGL? Ponieważ OpenGL działa na każdej platformie oprócz XBox360. Są to: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP itp. Gdy opanujesz tylko Xna i DirectX, jesteś związany z Windows i XBox360. Myślę, że to dobry powód do nauki OpenGL i C ++, jeśli chcesz dostać pracę programistyczną w branży gier.

Martijn Courteaux
źródło
0

Moja odpowiedź brzmi: to naprawdę zależy od tego, co chcesz robić w branży gier. W tej chwili, jeśli chcesz tworzyć gry konsolowe AAA, C ++ jest koniecznością. Żaden inny język nie pozwoli ci skorzystać z ograniczonych zasobów, które masz na konsoli.

Przez długi czas C ++ było lingua franca w branży gier, ale wraz z pojawieniem się iPhone'a i Unity można teraz tworzyć przyzwoite gry w językach takich jak C # i Objective-C. Nawet HTML 5 jest teraz w stanie tworzyć gry. Faktem jest, że istnieje wiele opcji.

W twoim wieku wciąż masz dużo czasu na naukę i obserwowanie rozwoju branży. Moja rada byłaby dla ciebie następująca: nie skupiaj się na języku. Skoncentruj się na nauce tworzenia gier i / lub modyfikacji dla gier, które się tam znajdują. Jednym z pomysłów może być zdobycie Minecraft i wymyślenie, jak tworzyć mody za pomocą Java. Nie ma nic lepszego niż przekonanie się, że możesz zmienić sposób, w jaki gra się zachowuje, nawet jeśli nie wydasz żadnych modów.

W twoim wieku tworzyłem gry przy użyciu Basic (na Commodore 64). RPG Maker, a później Java do modyfikowania gier. Nie dotknąłem nawet C ++, dopóki nie miałem około 18 lat, więc wciąż masz dużo czasu na rozwój.

Aby odpowiedzieć na rzeczywiste pytania:

  • Czy nauka C ++ nie zaszkodzi moim szansom na znalezienie pracy programistycznej?

Na tym etapie nie można powiedzieć. Może minąć nawet 10 lat, zanim zaczniesz szukać „prawdziwej” pracy, a technologia rozwija się niezwykle szybko.

  • Zanim będę mógł znaleźć pracę, C ++ nadal będzie językiem programowania „standardowym w branży”

Zobacz powyższą odpowiedź.

  • Jeśli jestem niezależnym programistą, czy to naprawdę ma znaczenie, czy uczę się C ++, czy nie i trzymam się tego, co wiem?

Nie. Liczy się to, ile gier ukończysz i wydasz.

  • Czy powinienem zacząć uczyć się teraz, odkąd mam wiele lat, zanim będę mógł znaleźć pracę?

Nigdy nie jest za wcześnie, aby rozpocząć naukę, ani też nie jest za późno.

Bok McDonagh
źródło