Mit welcher Programmiersprache anfangen und WIE erlernen?

...komplette Frage anzeigen

14 Antworten

Erstmal: .NET ist keine Programmiersprache, sondern eine Ausführungsumgebung.

Zweitens: Lass die Finger von Assembler, wenn Du Deine geistige Gesundheit erhalten willst!! Klar, wenn man ein Profi ist und handoptimierten Assemblercode schreiben kann, dann ist das toll, aber Du bist kein Profi und Du wirst mit Assembler nicht froh werden.

Zu Basic/C#/Java: Das ist alles derselbe Brei. Die Strukturen, die Mächtigkeit, die Komplexität ist identisch. Nur die "Ausdrucksweise" (Syntax) unterscheidet sich eben. Ich persönlich bin großer C# Freund, da ich es auch in meinem Job als Softwareentwickler fast ausschließlich verwende. Du kannst auch Java lernen. Syntaktisch unterscheiden sich beide nicht sonderlich. Der syntaktische Unterschied von Java/C# zu Basic ist aber relativ hoch.

Ich würde Dir zu Java oder C# raten und von Basic würde ich die Finger lassen. Früher war das ein guter Einstieg, weil es a) wenig anderes gab und es b) kostenlos verfügbar war. Das gilt mittlerweile nicht mehr. C#/Java und co: Alle frei verfügbar. Außerdem ist von Java oder C# der Umstieg auf C oder C++, was heute in der Spieleentwicklung immer noch Gang und Gäbe ist, syntaktisch quasi kein Aufwand, weil die drei sich alle sehr ähnlich sind.

Und wenn Du später Spiele entwickeln willst, dann brauchst Du das alles: Objektorientierung, Parameter, etc.

Antwort bewerten Vielen Dank für Deine Bewertung

Assembler braucht man heutzutage nur noch in irgendwelchen hardwarenahen Nischen, mit Basic versaut man sich mMn. den Programmierstil. Java oder C# sind schon gute Ideen.

Ob du durch Bücher oder Videos besser lernt, kommt meiner Meinung nach auf den Lerntyp an, ich sehe Videos meist eher als Berieselung und lerne eher aus Büchern, aber das ist Geschmackssache. Wenn es aber Videos sein sollen, dann investiere in ein Video eines ordentlichen Anbieters, z.B. video2brain oder codeschool. Und halte dich von youtube fern, dort ist die Wahrscheinlichkeit sehr hoch, dass der Programmierlehrer selbst noch ein Anfänger mit einem überhöhten Mitteilungsbedürfnis ist. 

Antwort bewerten Vielen Dank für Deine Bewertung

Von diesen Tutorials halte ich überhaupt nichts. Buch nehmen und selbst programmieren (siehe unten).

Java: Eigentlich eine sehr gute Wahl, durch diese Objektorientierung musst Du durch. Parameter sind einfach Werte, die von einem Abschnitt in einen anderen Abschnitt (in eine Funktion) überführt werden. Über Parameter sprechen die Funktionen miteinander. Objekte sind Strukturen, welche weitere Funktionen und Ziele verfolgen. Mache einfach weiter, irgendwann macht es click.

C#: Auch eine sehr gute Wahl, schöne Unterstützung. Gutes Buch von Kühnel. Das Buch von ihm ist ein didaktischer Traum, sehr gut, sehr verständlich. Wo es zu schwer ist (allenfalls ganz wenige Stellen), einfach weiter machen.

https://www.amazon.de/Visual-Studio-2015-Objektorientierung-Programmiertechniken/dp/3836237148

Basic: Dieser Sprache gehört wohl nicht die Zukunft, außer vielleicht im Macro-Bereich. Die Techniken von Basic .NET sind sehr ähnlich zu C#. Was hilft es also, Basic vorzuziehen? Wohl nichts. Nur QBasic wäre natürlich leichter, ist aber Geschichte. Vielleicht mit VBA (wenn Du Excel hast, kannst Du das als Macro progen) anfangen?

Assembler: Leider inzwischen fast zu schwer am Anfang, da die MS-DOS-Zeiten vorbei sind, wo man einfach real mode drauf los tippern konnte, sind wohl Geschichte, mit protected und long mode und wie das heißt war ich schon nicht mit dabei. Und dann für jedes System schaut es anders aus. Wenn Du einiges kannst, vielleicht irgendwann Dich mit C++ beschäftigst, kommt man irgendwann nicht daran vorbei, so ein bisschen Assembler verstanden zu haben (insbesondere wenn man komplex Zeiger einsetzt und/oder Hardware direkt anspricht).

Vorschlag: Probiere zuerst das Kühnel-Buch (gibt es auch online).

Antwort bewerten Vielen Dank für Deine Bewertung

Meine Empfehlung: Fang erstmal mit Java oder C# an.

Wichtig ist es die Konzepte der Softwareentwicklung kennenzulernen: Aufbau der Entwicklungsumgebung und Build, Objektorientierung verstehen, Design Pattern und deren Ideen. Probiere dich an Datenstrukturen und Algorithmen.

Die Programmiersprache ist dabei grundsätzlich unerheblich. Kauf dir dabei ein Buch vom Buchhändler deiner Wahl. Wenn Du als Ziel hast 3D Spiele zu entwickeln geht kein Weg daran vorbei die o.g. Konzepte sich zu erarbeiten. Bei der Entwicklung mit 3d Bibliotheken wie Direct x oder Open GL sind darüber hinaus auch Kenntnisse in Mathematik notwendig.

Antwort bewerten Vielen Dank für Deine Bewertung

Fang mit C# und Unity an. In Unity können sowohl 2D als auch 3D Games erstellt werden. Ich würde dir aber *dringend* raten, erstmal mit 2D anzufangen bzw. Erstmal "reines" C# zu lernen (Also Visual Studio > Konsolenanwendung) um die Grundlagen zu verstehen.

Bücher sind oft umfangreicher dafür hast du aber auch etwas davon, weil dort alles datallierter erklärt wird. Ich kann dir "Spiele entwickeln mit Unity 5" von Carsten Seifert empfehlen. Wenn du YouTube Tutorials suchst, kannst du dir "Michael Mark" Videos anschauen.

Antwort bewerten Vielen Dank für Deine Bewertung

Also ich würde dir Assambler empfehlen. Ehrlich. Wenn du das kannst, ist der Rest nicht mehr so schwer. Außerdem wird es da in Zukunft noch einen ordentlichen Mangel geben.

Ansonsten, Java, C#, VB .Net ist im Prinzip alles das Selbe. Unterscheidet sich nur in den "Vokabeln" und vorallem in den Frameworks.

Die Grundprinzipien sind aber überall gleich. Bis man Objekt Orientierung verstanden hat dauert es eben ein bisschen. Aber irgendwann macht es "klick".

Wenn du gut mit Büchern lernen kannst, dann kaufe dir ein Buch und arbeite das durch. Habe ich auch schon der öfteren gemacht. So bekommst du einen ordentlichen allgemeinen Überblick.

Ansonsten, üben, üben, üben. Einfach mal so "komplexe 3D Spiele" programmieren geht einfach nicht.


Was mir grade noch einfällt: Für C++ gibt es einen netten online Compiler. Da musst du noch nciht mal was auf deinem Rechner installieren.

http://cpp.sh/

Ansonsten kannst du dir Visual Studio Community runterladen, wenn du auf der .NET schiene bleiben willst.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ohwehohach
08.03.2017, 14:16

Ernsthaft? Du empfielst einem Anfänger Assembler? Hast Du denn den Verstand verloren? ;-) Jemand, der offensichtlich schon mit "Parametern" überfordert ist, soll sich jetzt mit Registern, Stack Pointern, Speicheradressen und dem ganzen Kram rumschlagen?

Kann ja nicht Dein Ernst sein...

1

Assembler und Basic würde ich von vorhinein ausschließen, die sind für große Projekte nicht gut. Basis ist von der Struktur veraltet, Assembler nur unnötig schwierig und nicht problembezogen.

c# und java sind relativ ähnlich, ich bevorzuge java (u.a. läuft es auf jeden PC ohne Anpassung, ist relativ schnell,...)
Was du wissen musst : Objektorientierung musst du bei java und c# können, ohne das kannst du nicht mehr als eine kleine Anwendung vernünftig schreiben.

Rheimwerk hat ein gutes Buch zu java (gibt's auch online), da kannste mal reinschauen

Antwort bewerten Vielen Dank für Deine Bewertung

Frage 1: Welche Sprache

Python: Du lernst strukturiert programmieren. (Mein Favorit)

Java: Du kannst rasch andere Sprachen lernen (C/C#/JavaScript) und Du kannst bald mit Android-Apps loslegen. (Mein Geldgeber)

C: Du lernst Maschinennah zu programmieren. (Meine Muttersprache)

Assembler: Du lernst, wie die Maschine funktioniert; glaube jedoch nicht, dass Du danach Applikationen programmieren kannst. Dagegen lernst Du rasch andere Sprachen. (Mein Verständnis der Hardware)

Frage 2: Wie lernen

Antwort A) Die Konzepte verinnerlichen: https://www.freimann.eu/eliphi/phi/programmierung.php

Antwort B: Viel üben: z. B. hier: https://www.programmieraufgaben.ch/

Antwort bewerten Vielen Dank für Deine Bewertung

Basic ist zum Anfangen gut geeignet und es gibt sehr viele Tutorials.
Fachliteratur ist meist sehr teuer und lohnt sich nicht, wenn man mal eben etwas ausprobiert.

Du wirst früher oder später die selben Probleme wie mit Java auch haben.

Assembler würde ich mal außen vor lassen, der ist nicht dafür geeignet Spiele zu programmieren.
Der taugt mehr zu Maschinenprogrammierung.

Fang am besten mal an, Falls du fragen hast kannst du dann gerne Fragen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PWolff
08.03.2017, 14:14

Andererseits ist eine gewisse Erfahrung mit Assembler (und direkt mit Maschinencode) didaktisch sinnvoll - man bekommt ein Gefühl dafür, wie ein Computer "im Grunde seines Herzens" denkt.

2

Deine wirkt eher so, als wärst du ein Anfänger ohne Geduld. Da würde ich dann doch VisualBasic oder Flash empfehlen. Da du da nicht viel können musst um schon was ansehnliches zu bekommen.

Wenn du da dann an deine Grenzen stößt, kannst du mit den komplexeren Sprachen weitermachen.

Ich persönlich behersche ca. 20 Programmiersprachen und kann sagen, das wichtigste war mit viel Eigenantrieb (Nerd) an die Themen heranzugehen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von JayC71
08.03.2017, 14:35

Ich persönlich behersche ca. 20 Programmiersprachen

Selten so gelacht.....:D hast meinen Tag gerettet :D 

2

Mach mit Java weiter und lerne die Sachen, die dir schwer fallen - du wirst sie noch oft brauchen. Beim Programmieren lernen kommt es eben auch darauf an, sich durch schweren Stoff durchzukämpfen.

Antwort bewerten Vielen Dank für Deine Bewertung

fang erstmal mit C# an, (kauf dir am besten ein Einsteiger Buch)

dann wenn du die Grundlagen kannst kannst du bereits mit Unity deine ersten kleinen Spiele machen.

Antwort bewerten Vielen Dank für Deine Bewertung

hallo blackoutd8,

ich persönlich habe sehr gute Erfahrungen mit Scratch gemacht.

Wirklich komplexe Games kann man damit noch nicht machen aber als Anfang ist es sehr empfehlenswert.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von GelbeForelle
08.03.2017, 16:12

scratch ist für alles, was über pong hinaus geht ungeeignet und/oder sinnlos

0

Ich halte von den ganzen antworten hier, bücher, tutorial und so garnicht ;) kann dir gerne "privatunterricht" in skype oder discord geben kostenlos ^^ schreib einfach nur an

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?