Anfängerfrage

Registriert
Dez. 2010
Beiträge
709
Hallo liebe Baser,

die Sommerfereien rücken ja langsam immer näher und irgendwie ist das für mich ein Anlass endlich mal mit den Dingen zu beginnen, die ich mir eigentlich schon lange vorgenommen hatte. Dazu gehört neben einem neuen System auch das Erlernen einer neuen Programmiersprache. Dazu mal der untere Abschnitt:

Also, wie gesagt: Ich möchte eine Programmiersprache lernen. Erfahrungen habe ich bereits in der Schule mit NXC (Not eXactly C) und Logo (:D) gesammelt, wo ich mich auch nicht gerade schlecht angestellt habe (bzw. war meine Gruppe in Logo die beste und in NXC teilweise).

Mir ist wichtig, dass die Sprache für einen Gymnasiasten mit solider Erfahrung (9te Klasse) schaffbar ist, wobei ich in diesem Punkt eigentlich ziemlich zuverlässig bin. Außerdem ist mir die Verbindung zu Spielen sehr wichtig, da ich mir über meine Zukunft immer noch unsicher bin und auch die Programmierung als Möglichkeit einbeziehe.

Gedacht hatte ich an C++ oder C#, wobei mir der Unterschied bzw. was besser ist nicht klar ist. Und außerdem suche ich dazu noch sehr gute Bücher zum Einsteig oder eine andere Möglichkeit die Sprache zu lernen.

MfG MTC

PS: Meine neue mechanische Tastatur veranlässt mich einfach dazu, viel zu schreiben :D
 
Wir haben in meiner Schulzeit Python gelernt. Auch kleine Spiele haben wir damit programmiert. Python ist auch recht beliebt, keinesfalls veraltet oder in Vergessenheit geraten.
Um in Eigenregie C++ zu lernen, musst du schon ganz schön hartnäckig sein. Da ich selbst Freund von Java bin, biete ich das einfach auch mal an. ;)
 
Java ist von Hause aus sehr portabel, C# nur über Mono. Java ist vor allem auch für den Mobile-Bereich sehr interessant (Android). Sagen wir es mal so - es spricht nichts dagegen, dass du dich für C# entscheidest. Rein optisch unterscheiden sie sich nicht so sehr, inhaltlich schon mehr, als meistens behauptet wird.
P.S.: "Neu" ist übrigens nicht sonderlich relevant.
 
Mono? Wtf?

Aber ganz ehrlich, was empfiehlt ihr mehr? Ich hab gehört bezüglich der Programmierung von Spielen ist C++ die beste Wahl. Und C# soll komplett anders sein? Was ist denn jetzt für die Spieleprogrammierung besser?
 
Zuletzt bearbeitet:
Hi MTC1,
Ich stand vor 3 Jahren vor genau der selben Frage wie du.

Die gründsätzlichen Kontrollstrukturen unterscheiden sich wenig zwischen den einzelnen Programmiersprachen.
Damit ist sowas gemeint wie if, for, while, switch etc.

Zurzeit der große Renner sind Objektorientierte Sprachen wie Java oder c++.

Wenn du generell Programmieren lernen willst, hast du es mit Java sicherlich erstmal einfacher als mit C++.
Java macht viele Dinge von selbst, die man in C++ von Hand machen muss.
z.b Speicherverwaltung (Garbage collector) und Referenzen.
In c++ ist das eine große Fehlerquelle, in java brauchst du es nicht beachten.
Fehlermeldungen beim Programmieren sind bei Java sehr viel Hilfreicher durch die virtuelle maschine die mitläuft, im gegensatz zu C++, da gibts das nicht.

Wenn du dich zuerst für C++ entscheidest ist es sicherlich schwerer, dir fällt Java danach jedoch einfacher.

Andersrum ist dann der Einstieg leichter und der Umstieg schwerer.

Meine empfehlung ist, fang mit Java an.
Das ist nich so abschreckend.
Als Lektüre empfehle ich das online Buch.
http://www.javabuch.de/
damit du nicht ständig hin und her tabben musst, besorg dir n 2. Monitor oder leih dir das Buch in Druckform aus der Bibliothek deiner Wahl aus.

Damit hab ich Programmieren gelernt und fand es ziemlich gut.
mittlerweile hab ich als Informatik Student noch einige andere Sprachen gelernt und der Einstieg mit Java war keinesfall schädlich.

MFG
Yogi

edit:
Fragen über Portabilität finde ich absolut irrelevant.
Warum?
Er möchte Programmieren lernen und keine konkrete SOftware entwickeln.
75% des damit erworbenen Wissens lassen sich auf ähnliche Sprachen anwenden.
 
Zuletzt bearbeitet: (port)
Weil du so auf die Spieleprogrammierung pochst - ein großer Teil der Spieleentwicklung läuft mit Skriptsprachen ab. Die Engines werden meistens in C++ geschrieben, diese Engines werden dann von Entwicklerstudios eingekauft (wenn sie die Engine nicht selbst entwickelt haben, aber das machen die wenigsten), das eigentliche Spiel entsteht dann aber in der Regel per Skript (z.B. UnrealScript in der Unreal Engine, JavaScript/C#/Boo in Unity usw.).
Das heißt aber nicht, dass man nicht "from scratch" ein Spiel in C++ oder Java schreiben könnte. Für kleine Spiele geht das, siehst du vor allem im Mobile-Bereich. Dafür brauchst du aber kein C++, denn in der Regel ist da Java angesagt.
Vor allem wenn man von einem Spiel ausgeht, was einen Server braucht, wird spätestens auf Server-Seite mit hoher Wahrscheinlichkeit wieder zu Java gegriffen.
 
Eigentlich ist es egal. Erfahrung sammeln ist wichtig, da ist die Sprache egal.
Jede Sprache hat stärken und schwächen.

C# - Windowsprogrammierung. Spiele möglich, auch für XBox.
C++ - kann alles, ermöglicht feinere Kontrolle über das was passiert aber kann manchmal auch anspruchsvoller sein.
Java - Plattformunabhängig, Syntax C# sehr ähnlich.

Am besten einfach würfeln.
 
Ich persönlich hätte C# oder Java vorgeschlagen. Da ich MS-Freund bin natürlich C# - denn .NET ist auf dem Markt immer stärker im Kommen. Viele Firmen setzen mittlerweile auf .NET (DHL, Daimler, Banken & Versicherungen).

Kurz um: ich würde C# empfehlen.
 
@MTC1: Von dem Gedanken, das du in naher Zukunft fähig sein wirst Spiele zu entwickeln, wie sie aktuell raus kommen, solltest du dich lieber erstmal verabschieden.
Viel wichtiger ist es, das du die gnazen Grundprinzipien verstehst. Schleifen, If-Abfragen, Objektorientierung, Kapselung, wie du sauberen Code schreibst, kommentierung, Design Pattern...
Ich würd dir für den Anfang entweder zu C# oder Java raten. Beides sind objektorientierte Sprachen, wo du recht schnell zu ersten ergebnissen kommst. Beides sind auch sprachen die im geschäftlichen Umfeld verbreitet sind.
Und wieso ist es dir so wichtig, das man damit Spiele programmieren kann? Und welche Art von Spiel überhaupt?
Auf http://www.galileocomputing.de/katalog/openbook/?GalileoSession=98931706A5-RE.MVy4o findest du eBooks zu Java, C# sowie der Objektorientieren Programmierung. (Und noch vieles mehr).
 
Es ist langsam ein leidiges Thema, dass immer wieder Leute neu fragen, welche Sprache sie erlernen sollen. Es gibt dazu schon zahlreiche Threads.

Geh in eine Bibliothek und besorge dir vernünftige Lektüre (bei C++ wäre das "Die C++ Programmiersprache" oder "C++ Primer"). Damit bist du wohl, wenn du es ernsthaft durcharbeitest, schonmal für die Sommerferien reichlich eingedeckt ;) Wenn du dann eine Programmiersprache soweit mehr oder minder beherrscht, kannst du dir überlegen, womit du weitermachen willst. Der Sprung hin etwa zur Spieleprogrammierung ist aus reiner Programmierersicht imho nicht mehr allzu groß, du musst dich halt nur mit der Engine etc. vertraut machen. Daneben erfordert die Spieleprogrammierung nat. auch Kenntnisse in vielen anderen Bereichen, etwa AI oder GLSL/HLSL etc.


Das sollte nur ein Ausblick sein, erlerne ersteinmal eine Programmiersprache richtig, dann kannst du weitersehen. Ob das nun C++, C# oder Java ist, halte ich erstmal nicht für zu relevant, es gibt auch Lektüre, die die Programmierung soweit abstrahiert, dass sie gar nicht mehr sprachenspezifisch ist, was ich aber einem Anfänger nicht empfehlen würde.


Gruß,

badday
 
Zu sprachunabhängigen Lehrbüchern kann ich nur wieder mal SICP einwerfen. "Jaja der asdfman mit seinem SICP!
immer die alte Leier! Wird der vom MIT für Werbung bezahlt?"

Aber werft mal einen Blick rein. Obwohl es ein Buch für Anfänger ist. Es hat meinen Horizont enorm erweitert.
Und es ist gratis. Den kompletten Text findet man in meiner Sig und es gibt sogar Videos von der begleitenden
Vorledung (auch Sig).
 
Ich würde auch entweder C# oder Java empfehlen, aber zu Java raten, da ich damit bessere Erfahrungen gemacht habe und es subjektiv als einfacher zu lernen einschätze...

Bei der Wahl der Sprache darauf wert zu legen damit spiele programmieren zu können halte ich für keine gute Idee, die rudimänteren Dinge kannst du mit den allermeisten Sprachen schaffen, wenn du aber mal eine Sprache beherrschst, kannst du dir eine neue in sehr kurzer Zeit aneignen. Zumal die verwendete Sprache stark vom Spiel abhängt, die Engines sind oft in cpp geschrieben aber das eigetliche Spiel wird zB mit LUA oder so gemacht.

Ich habe Java anhand von Übungsaufgaben gelernt, wo ich mir das, was ich noch nicht kannte von Java ist auch eine Insel angeeignet habe, hat gut geklappt und finde es sehr viel entspannter so zu lernen als nach einem Lehrbuch...

gruß nemesis
 
MTC1 schrieb:
Ich hab gehört bezüglich der Programmierung von Spielen ist C++ die beste Wahl. [...] Was ist denn jetzt für die Spieleprogrammierung besser?

bis du Spiele einer gewissen Größe programmieren kannst, dass du C(++) benötigst, werden einige Jahre vergehen. Von daher sollte das aktuelle gar keine Relevanz haben. Es geht erstmal darum, dass du das Programmieren lernst. Wenn du erstmal in einer Sprache wirklich gut bist, ist es kaum noch ein Aufwand eine weitere Sprache zu lernen.



Meine Empfehlung würde ich auch für Java mit "Java von Kopf bis Fuß" abgeben, da es imho einfach der solideste Einstieg in die Programmierung ist. Das Thema gab es aber schon gefühlte 5000 mal, die Forensuche wird dir die größten Diskussionen zeigen aufzeigen.
 
Warum wird hier eigentlich immer das gleiche Thema diskutiert? Es gibt doch schon lange einen Thread hier im Forum ganz oben zu diesem Thema?
 
Vielleicht sollten die Moderatoren solche Threads einfach sofort schließen und einen Verweis auf den gepinnten Thread machen.
 
Java oder C# sind für den Anfang sicherlich eine gute Wahl. Beide Sprachen haben zu Beginn den Vorteil, der später zum Nachtteil wird, dass sie essentielle Funktionsweisen der Programmierung verbergen. Daher würde ich empfehlen danach sich auch C++ anzusehen und auch ein wenig in Assembler reinzuschnuppern. Dann wird oft vieles klarer ;)
 
Ihr meint das Ding da? Mal ehrlich, das hilft einem Anfänger überhaupt nicht, völlig unreflektiert mit Links bombardiert zu werden. Was soll sich denn ein Interessierter da herausnehmen? Einmal quer von CSS über Qt bis MySQL drüberlesen, um dann festzustellen, dass man keinen Schimmer hat was Programmieren bedeutet?
Zugegeben, ständig neu aufkeimende Threads zu den gleichen Fragen bringen es auch nicht. Was es bräuchte, wäre ein vernünftiges FAQ zu dem Thema, in dem zwischen Sprachen abgewägt wird, Empfehlungen gemacht werden und mal ein paar übergeordnete Konzepte wie Paradigmen, Design Patterns, managed vs. unmanaged usw. erklärt werden.

Man kann natürlich auch den Standpunkt vertreten, das solle sich der geneigte Anfänger selbst zusammensuchen, da Suchen ein Bestandteil des Programmierens ist. Aber da wir ja als Community irgendwie hilfreich sein wollen, wäre ein FAQ ein sinnvollerer Einstiegspunkt als der Wurf ins kalte Wasser mit irgendwelchen Kompendien bzw. mageren Tutorials, wo der Anfänger einfach nur hohl abtippt.
 
Zuletzt bearbeitet:
Zurück
Oben