Einsteiger Programmiersprache, wie und womit anfangen?

4 Antworten

(...) weiß aber nicht genau wie und womit ich genau anfangen soll.

Mit dem Benutzen der Suchfunktion, würde ich vorschlagen - ob hier oder via Google ist egal. Diese Frage wird hier gefühlt jeden Tag mindestens einmal gestellt und jedesmal auch zufriedenstellend beantwortet.

(...) deswegen verwirrt es mich da es so viele Programmiersprachen gibt.

Jede Sprache hat ihre eigenen Einsatzbereiche und da gibt es viele (Webprogrammierung, mobile Apps, Desktopanwendungen, Spieleprogrammierung, usw.).

Mit welcher Programmiersprache sollte ich anfangen (...)

Ich empfehle Processing, denn diese Sprache ist explizit für Anfänger entwickelt worden. Alles Weitere kannst du in meiner Antwort hier lesen: https://www.gutefrage.net/frage/welche-programmiersprache-sollte-ich-fuer-den-einstieg-nehmen?foundIn=list-answers-by-user#answer-261096307

(...) und wie fang ich am besten damit an ?

Nutze die Dokumentation auf der Entwicklerseite und Literatur, die du bei Amazon/... oder in Bibliotheken zu Processing oder Java findest. Zum Beispiel:

https://www.amazon.de/Processing-Programming-Handbook-Designers-Artists/dp/026202828X/ref=sr_1_1?ie=UTF8&qid=1513392066&sr=8-1&keywords=processing

Hier ist für Java deine Bibel der nächsten Jahre: http://openbook.rheinwerk-verlag.de/javainsel/

Die Entwicklungsumgebung für Processing lässt sich auf der Entwicklerseite installieren. Sie ist klein und aufgeräumt, somit an sich selbsterklärend. Dein Ziel, Spiele zu entwickeln, lässt sich mit Processing auch schneller als mit anderen Sprachen realisieren, da eine Zeichenfläche zur Verfügung gestellt wird mit zahlreichen Funktionen, die das Zeichnen unterstützen.

Im Vordergrund steht dennoch das Lernen der Grundlagen der Sprache. Später kannst du einfach auf Java umsteigen und dich mit dem Konzept der objektorientierten Programmierung vertraut machen. Die Vision, sofort mit Spielen anzufangen, ist definitiv der falsche Weg und wird dich letzten Endes kaum/nicht weiterbringen. Trotz alledem werde ich im Folgenden bereits ein paar Spielebibliotheken benennen.

So bietet Java selbst einige Bibliotheken / Frameworks / Game Engines zur Entwicklung von Spielen (z.B. LWJGL, jMonkeyEngine, libGDX, ...), andernfalls kannst du nach Java auf C# umsteigen und mit der Unity-Engine arbeiten.

Weitere Auswahl an Alternativen, die sich m.E. für einen Anfänger am ehesten eignen:

  • Python (hier bieten sich dann Bibliotheken wie Pygame oder kivy an)
  • Swift (für Anwendungen auf Apple OS, weiteres hier: https://developer.apple.com/games/)
  • C > C++, da viele Spielebibliotheken oder -Engines auf C/C++ basieren (Allegro, SFML, SDL, Unreal Engine, ...).
  • C > Objective-C / Swift (mit Cocos2D/3D) für Anwendungen auf Apple OS

Zu den C-Sprachen sei allerdings gesagt, dass sie den schwierigsten Weg darstellen. Die Reihenfolge der Sprachen, die ich bisher angegeben habe, stellt sinnvolle Stufenwechsel dar, zumal die Sprachen aufeinander aufbauen (C ist z.B. eine Teilmenge von C++).

Processing bietet, wie gesagt, den einfachsten Weg, der wohl auch mit am meisten Spaß von Anfang an und schnellem Lernerfolg verbunden ist.

Die Logik ist bei allen Sprachen gleich. Im wesentlichen unterscheiden Sie sich in Syntax und Fehlertoleranz, teilweise auch darin, wie die Programme zu kompilieren und auszuführen sind.

Wenn du noch gar nicht programmiert hast und erst mal nur ausprobieren willst, was alles möglich ist, empfehle ich dir die Skript-Sprache "JavaScript". Die ist nicht allzu restriktiv und du brauchst keine umfangreiche Entwicklungsumgebung einzurichten. Die Ergebnisse kannst du einfach in einem Webbrower betrachten. HTML5-Spiele sind dann relativ schnell "gebaut".

Vorteil: Du kannst dich ohne großes Frustrations-Risiko an die grundlegenden Programmier-Elemente, wie Funktionen, Schleifen, Variablen etc gewöhnen.

Nachteil: Der Leistungsumfang ist begrenzt. Es gibt mächtigere "Programmier"sprachen, die Dir deutlich mehr abverlangen werden dafür aber auch mehr Möglichkeiten bieten. Du solltest also im Hinterkopf behalten, dass wenn du umfangreichere Projekte planst, du auf eine komplexere Syntax wechseln werden musst.

TeeTier  16.12.2017, 10:13
Die Logik ist bei allen Sprachen gleich. Im wesentlichen unterscheiden Sie sich in Syntax und Fehlertoleranz, teilweise auch darin, wie die Programme zu kompilieren und auszuführen sind.
Das ist komplett falsch, ...

... aber diese Aussage liest man oft von Einsteigern. Zu dem Thema habe ich hier in der Vergangenheit auch schon genug geschrieben, deshalb jetzt nur so viel:

Unterschiedliche Programmiersprachen haben SEHR unterschiedliche Idiome, Paradigmen und Muster, die auf spezifischen Features basieren.

Du KANNST in C++ nicht so programmieren, wie in Java, Python, C# oder was auch immer, wenn du nur die Syntax und Bibliotheksfunktionen anpasst. Das, was dabei am Ende heraus kommt, wird zwar irgendwie (!) laufen, aber a) weder sicher, noch b) performant oder c) einfach nur "ordentlich" sein.

Allein der Umgang mit Strings unterscheidet sich GRUNDLEGEND, je nachdem, ob diese Veränderlich oder Immutable sind.

Fazit: Das, was du als "Logik" bezeichnest, ist NICHT bei allen Sprachen gleich, im Gegenteil. Das erkennt man aber erst, wenn man wirklich fortgeschritten ist.

Und selbst falls du mit "Logik" solche Dinge wie Bedingungen, Schleifen oder Funktionen meinen solltest, selbst DANN stimmt deine Aussage nicht, denn es erfordert wesentlich mehr als syntaktisches Wissen, um effektiv damit arbeiten zu können.

Allein das simple Deklarieren und / oder Definieren einer Variablen unterscheidet sich ENORM in den oben von mir genannten Sprachen, auch wenn das für einen Einsteiger erstmal lächerlich wirken mag.

Um sicher / effizient / ordentlich entwickeln zu können, MUSST du vor allem NEBEN der Syntax die Eigenheiten einer Sprache verinnerlicht haben. Es sei denn, du gibst dich mit Pfusch zufrieden.

Also quasi genau das Gegenteil von dem, was du geschrieben hast. :)

1
curuba555  16.12.2017, 18:02
@TeeTier

Naja, nicht wirklich. Ich habe ja eben das was ich mit "Logik" meine von den syntaktischen Eigenheiten der einzelnen Sprachen abgegrenzt. Dementsprechend kommt sowas wie das deklarieren von Variablen oder Einbinden von Bibliotheken gar nicht vor. Ebenso wenig wie die Performance.

Willst du mir vielleicht sagen, dass zB eine if-Schleife bei C++ logisch anders operiert als zB. bei Java? Es ist genau das gleiche.

Das was du hier erwähnst, habe ich mit der "Mächtigkeit" der einzelnen Programmiersprachen angedeutet und entsprechend darauf hingewiesen, dass bei anspruchsvollen Projekten, die über den Anfänger-Level hinausgehen, weitere Kenntnisse und Vorüberlegungen von Nöten sind.

0

Eigentlich erstmal recht egal. Persönlich würde ich C# empfehlen. Da gibt es kostenlose Open Books im Netz, es gibt massig Tutorials und du bekommst mit dem Visual Studio Express ne gute kostenlose Entwicklungsumgebung an die Hand. Außerdem sieht man schnell Ergebnisse, was für den Anfang motivierend sein kann. Alternativ könntest du dir auch Java anschauen.