Niedawno usłyszałem instruktora, że tworzenie gier było najlepszym sposobem na naukę programowania. Poza tym, że wszystko musiało zostać utworzone w kodzie, powiedział, że naprawdę możesz w pełni doświadczyć i zaimplementować OOP w swoich programach. Innymi słowy, wszystko, co tworzysz w grze, jest dosłownie przedmiotem zarówno technicznym, jak i koncepcyjnym. Czy takie założenie jest bezpieczne? Czy zawsze są wyjątki podczas nauki programowania?
zauważ, że był nastawiony na rozwój .net / xna / c #.
learning
object-oriented
Edward
źródło
źródło
Odpowiedzi:
Moim zdaniem rozwój gier jest jednym z najtrudniejszych. Spójrzmy na wszystkie koncepcje, które jedna osoba tworząca strzelankę FPS musi wiedzieć:
Widzisz, jedna gra może obejmować wiele obszarów jednocześnie. To sprawia, że jest to doskonałe narzędzie do nauki, jeśli chcesz spędzić czas i zrobić to dobrze.
Jeśli chodzi o OOP, jest to jeden wzór, który działa dobrze. Możesz użyć gry jako narzędzia edukacyjnego do ćwiczenia dobrych technik projektowania.
Jednak aby odpowiedzieć na twoje pytanie, nie jest to jedyny sposób na naukę programowania. Gdy zostaniesz pośrednim programistą, stworzenie gry pozwoli ci dotknąć wielu koncepcji i poziomów programowania. Poza tym jest fajnie!
źródło
Nie być tautologicznym, ale programowanie jest najlepszym sposobem na naukę programowania. Jeśli interesują Cię gry komputerowe, programowanie gier może być świetnym sposobem na naukę programowania.
Nie dbam o gry, ale uwielbiam matematykę, więc wiele moich projektów edukacyjnych miało charakter bardzo matematyczny.
Najważniejsze jest to, że musisz znaleźć sposoby rozwiązania problemów z kodem, a gry działają dla wielu osób.
źródło
Jest sposobem nauki programowania, między innymi sposobami. Kiedy piszesz kod, uczysz się różnych rzeczy. Teraz jest to najlepszy sposób? Nie tak pewny.
Przynajmniej dwa powody podane przez twojego nauczyciela są nieprawidłowe .
„wszystko musiało zostać utworzone w kodzie” : kiedy piszesz aplikację biznesową, tak naprawdę piszesz kod. Nie będzie napisane przez magię. Tak, są pomocniki, które pozwalają na użycie automatycznie wygenerowanego kodu. Nie, korzystanie z nich nie jest obowiązkowe. Nawiasem mówiąc, automatycznie generowane części są na ogół najbardziej denerwujące z programowania (to nie poprzez dodanie formantów do kontrolki Windows Forms dowiesz się czegoś ekscytującego i przydatnego).
„naprawdę możesz w pełni doświadczyć i wdrożyć OOP w swoich programach” : ktoś musi mi wyjaśnić, dlaczego jest to ważne tylko w przypadku gier, ale nie dotyczy niczego innego. Jeśli rozumiesz OOP i chcesz go używać, możesz go również używać w aplikacjach biznesowych. Jeśli go nie dostaniesz lub nie chcesz go używać (i wolisz na przykład funkcjonalne programowanie), rozwój gier nie zmusi cię do zmiany.
Ale:
Rozwijanie gier może być zabawne . Większość młodych ludzi lubi gry, więc woleliby rozwijać grę niż pisać aplikację biznesową, co dla większości z nich będzie nudne. Widząc to, nauczyciele mogą zacząć wierzyć, że gra jest najlepszym sposobem na naukę programowania, a następnie spróbują znaleźć logiczne wytłumaczenie tego.
To powiedziawszy, nauczyciele kończą, czyniąc tworzenie gier nudnymi dla młodych ludzi, jak tworzenie aplikacji biznesowych. Jeśli uważają, że granie musi odbywać się , aby nauczyć się OOP itp., Wówczas poprosą swoich uczniów o wykonanie takich projektów, które wcale nie są przyjemne. To był jeden z największych błędów moich nauczycieli, kiedy byłem na studiach. Bardzo często dawali nam projekty gier do pisania w Adzie w trybie konsoli. Brak grafiki. Nie ma zabawy. Brak doświadczenia użytkownika. Przez całe życie i karierę nigdy nie widziałem projektów tak nudnych.
źródło
BadGuy
,Weapon
,PowerUp
, oraz inne przedmioty w grze mogą łatwo być obiektem. Możesz zaprogramować interakcje między obiektami i zobaczyć je na ekranie. Myślę, że część wizualna sprawia, że jest tak atrakcyjna. Aplikacji biznesowych, które mają typ hierarchieServerTaskScheduler
,AbstractDataProcessor
,UserQueryAgent
, etc ... nie są tak ekscytujące , choć mogą one uczyć tych samych pojęć OOP jak w grach.Customer
lubProduct
czyTransaction
mogą być obiekty. Ale rozumiem, że znacznie przyjemniej jest radzić sobie zBadGuy
nudami niż z nudamiTransaction
.Transaction
oznacza.Programowanie gier to najlepszy sposób na naukę programowania gier. Jeśli chcesz nauczyć się programowania, zrób to, jeśli chcesz nauczyć się programowania systemów, zrób to i tak dalej.
Programowanie gier jest trudne i najprawdopodobniej nauczy Cię wielu rzeczy (Michael zauważył wiele w swojej odpowiedzi, a wiele z nich jest bardzo trudnych i przydatnych także poza grami). Tworzenie RPG lub potentata (lub podobnej gry) nauczy Cię wiele na temat projektowania OOP, ponieważ bardzo dobrze nadają się do tego paradygmatu. Będziesz także mógł dowiedzieć się wiele o zagadnieniach dotyczących wydajności, trudnej matematyce do gier itp., W zależności od złożoności grafiki i fizyki.
To dobry i najlepszy sposób na naukę niektórych rzeczy, ale nie jest to lepszy sposób na naukę programowania. Bez względu na to, ile gier zaprogramowałeś, nadal nie będziesz wiedział, jak stworzyć system operacyjny. Myślę, że większość programistów wciąż mogłaby coś zarobić, opracowując grę, nawet jeśli nie robią tego jako głównej dyscypliny programowania, o ile mają czas.
źródło
Pytanie: Jaka jest najlepsza metoda nauki programowania?
Odpowiedź: Metoda, którą faktycznie wykonujesz
Tzn., Kiedy się uczysz lub robisz coś, nie ma większego znaczenia, jaką metodę wybierzesz tak długo, jest to metoda, którą faktycznie stosujesz.
Jeśli granie jest dla Ciebie naprawdę zabawne, wybierz to. Jeśli uważasz, że rozwiązywanie problemów matematycznych jest bardziej satysfakcjonujące, zacznij od tego. Istnieje wiele różnych rodzajów programowania i każdy z nich wymaga innych umiejętności, więc dobrym pomysłem jest zacząć od tego, który uważasz za najbardziej interesujący, prawdopodobnie z tym, z którym będziesz pracować.
... Ale tak, gry to dobry sposób na naukę dość szerokiego zakresu programowania, ponieważ obejmuje matematykę, współbieżność, algorytmy, oop, grafikę itp.
źródło
Jeśli lubisz grać, pisanie gier byłoby dobrym sposobem na rozpoczęcie rozwoju, ale nie powiedziałbym, że to najlepszy sposób. Myślę, że najlepszym sposobem jest kurs CS, a następnie praca w domu oprogramowania, który zainwestuje w szkolenie i mentoring młodszego personelu.
Poza tą wprawdzie dość pompatyczną odpowiedzią, tak, rozwój gier nauczyłby cię wielu dobrych umiejętności i myślę, że jeśli lubisz gry komputerowe, zainteresuje cię to procesem rozwoju. To musi być bardziej interesujące niż wiele innych prostych aplikacji widocznych w książkach.
źródło
Powiedziałbym, że najlepszym sposobem na naukę kodowania jest sprawienie, że będziesz się dobrze bawić. To nie musi być prawdziwa gra, ale jakaś gra dla ciebie. Dla mnie jest to gra polegająca na rozwiązywaniu niektórych problemów matematycznych rozwijających algorytmy w taki sposób, że mogę rozwiązać złożony problem w najszybszy możliwy sposób. Rzuć sobie wyzwanie, staję się lepszym programistą przy każdej próbie rozwiązania problemu. Im trudniejszy problem, tym lepiej.
Jeśli chodzi o naukę kodowania (najlepsze praktyki), powiedziałbym, że musiałbyś stawić czoła większym wyzwaniom. Wyzwania wymagają znacznie więcej niż pojedynczego wejścia / wyjścia
źródło
Nigdy nie słyszałem o twierdzeniach, że granie w Halflife lub Call of Duty uczy umiejętności programowania.
Programowanie ich może, ale programowanie czegoś takiego nie jest niczym, co początkujący powinien nawet spróbować. Szczególnie początkujący często mają wrażenie, że mogą stworzyć kolejny przebój dzięki swojej nieistniejącej wiedzy programistycznej. Powiedz im, żeby najpierw spróbowali sklonować PacMan lub Tetris, a oni krzyczą, że nie tego chcą, i że powinieneś „dać mi zuh koduz”.
źródło
Nie, naprawdę nie. Nie ma najlepszy rodzaj projektu, aby dowiedzieć się na programowaniu. Najlepszy rodzaj projektu jest odpowiedni do twoich zainteresowań.
Na przykład próbowałem nauczyć się programowania na kilka różnych sposobów, w tym programowania gier. Po prostu nigdy się nie trzymał.
Więc kiedy musiałem nauczyć się programować na podstawie tego, co robiłem w swoich badaniach? W tej chwili czuję się wystarczająco dobrze, żeby powiedzieć, że znam 2 języki i pracuję nad trzecim. Czemu? Ponieważ miało to związek z moimi zainteresowaniami. Miałem powód, aby się tego trzymać, powód do nauki i więcej problemów do wypróbowania niż tylko „Ćwiczenie 8” w książce.
Nawiasem mówiąc, nie oznacza to, że programowanie modeli epidemicznych jest najlepszym sposobem na naukę programowania. Ale to był dla mnie najlepszy sposób. Znajdź swoje. Mogą to być gry, ale może nie.
źródło
Z mojego własnego doświadczenia, pisząc grę (zakładając, że robisz to we własnym / małym zespole programistów), jesteś zmuszony nie tylko myśleć o algorytmicznej / analitycznej części programowania, ale także o doświadczeniu użytkownika i projekcie.
Ponadto, jeśli jest to dość złożona gra, będziesz nad nią pracował przez kilka miesięcy i zrozumiesz, jak ważne jest dokumentowanie wszystkiego, co robisz - co później uczyni cię lepszym członkiem zespołu.
źródło
Myślę, że to doskonały artykuł, który daje wgląd w rozwój gier.
Mówi o kilku podstawowych obszarach, na których należy się skoncentrować
źródło
Zgodziłbym się, z wyjątkiem ...
Równie prawdopodobne jest, że pierwszym doświadczeniem programowania, jakie wielu kiedykolwiek miało, było zbudowanie i zaprogramowanie robota Lego (Mindstorms).
Chociaż ogólny termin „gra” może definiować kategorię tak ogromną, że obejmuje prawie wszystkie programy, w kontekście oryginalnego plakatu zawsze wydaje się, że oznacza „pisanie gier w stylu Doom”.
Jak już powiedziano tutaj wcześniej - najlepszym sposobem na naukę programowania jest posiadanie czegoś, czego naprawdę potrzebujesz, a który wymaga programu. To znaczy - naucz się programowania pisząc program, który chcesz.
Jednym z moich pierwszych programów Windows był program kontrolera MIDI, ponieważ naprawdę chciałem program kontrolera MIDI, a system Windows wydawał się idealnie dopasowany (suwaki, przyciski, obsługa SDK dla MIDI itp.). Nauczyłem się ton o programowaniu w systemie Windows (to było w Win 3.1 dni) od tego programu.
Nigdy nie brałem udziału w programowaniu gier również z powodów wymienionych tutaj - nie rysuję tak dobrze, więc każda gra, którą stworzę, będzie miała gorszą grafikę niż grafika. Chcę nauczyć się programować, a nie zarządzać „zespołem budującym gry” (chwalebne, ale zupełnie inne ćwiczenie).
Ostatecznie nie zgadzam się z oświadczeniem nauczyciela. Najlepszym sposobem na naukę programowania jest napisanie programu, który naprawdę chcesz.
-R
źródło