wie beginne ich mit programmieren?
ich hab vor programmieren zu lernen (spezifisch für Videospiel aber allgemein Software) und würde demnach gerne mit Python anfangen bevor ich zu C++ wechsle
und naja da ich ein kompletter Anfänger bin frag ich euch wie ich nun damit anfange? habt ihr irgendwelche Bücher, Kurse und sonst was zu empfehlen?
ich wäre sehr dankbar für brauchbare Informationen
4 Antworten
Bücher? Nein. YouTube-Videos, da gibt es eine Menge. Anzumerken ist aber definitiv, dass nur die wahre Praxis dich vorwärtsbringt.
Ich sehe Python für den Anfang für dich nicht und C++ wiederum auch nicht. Vom „Level“ C++ bist du ohnehin noch sehr weit entfernt. Ich werde dir das auch gerne mal begründen.
Ob Python einsteigerfreundlich ist oder nicht, ist die Streitfrage schlichtweg. Viele sagen ja, andere sagen nein. Es gibt aber einige Gründe, die dagegen sprechen. Ich möchte hier mal mit dem wirklich wichtigen Grund kommen: Python ist eine dynamisch typisierte Sprache. Du lernst nahezu nichts über Datentypen und kannst dich auch super schnell darin verheddern. JavaScript im übrigen genau so. Einerseits mag es manch einer dadurch besonders einfach finden, doch läuft ein Anfänger, was im übrigen schnell passieren kann, mal auf einen Fehler dort, muss dieser den Fehler, ohne Fachwissen finden. Das ist eine Sache der Unmöglichkeit. Das ist meiner Meinung nach der stärkste Grund, der dagegen spricht. Anstatt jetzt auf weitere Gründe im allgemeinen Bereich einzugehen, möchte ich lieber auf dich näher eingehen.
spezifisch für Videospiel aber allgemein Software
Python ist alles andere, als eine Sprache, die man in Spielen oder Software verwendet. Python verwendet man in der Regel in der Forschung oder schnellen Scriptentwicklung, ... . Letztlich liegt die Entscheidung bei dir, aber du tust dir damit keinen Gefallen, wenn dein Ziel die Softwareentwicklung oder Spieleentwicklung ist. Auch ein Wechsel zu C++ im späteren Raum ist nahezu unmöglich. Also ja, es ist möglich, du lernst aber nichts und fängst von vorn an. Python ist extrem anders als C++ und hat nahezu keine Ähnlichkeit.
Welche Alternative kann ich dir empfehlen, die besonders für dich Sinn macht?
Das ist recht einfach. C#! Aber warum? C# an sich ist eine sehr mächtige Sprache. Sie wird gestärkt von dem .NET Framework, ist sehr weit verbreitet und die Basics sind bereits sehr einfach zu erlernen und für einige Fälle ausreichend. Die Sprache ist vollständig Crossplatform und ermöglicht die direkte Entwicklung von CLI, Apps (Android, iOS, Windows, Mac), Software (Windows, Linux, Mac), Services, Websites (Frontend + Backend), und mehr ... C# ist eine sehr mächtige Sprache. Auch wenn sie nicht offiziell zur C Familie gehört, so wie C++, so findet man doch einige Konzepte, die C++ verwendet in C# wieder. Du hast also die Chance, mithilfe von C# (sofern du über die Basics hinaus gehst)die ganzen Grundlagen zu lernen, die du für C++ brauchst. Wenn du also später in C++ einsteigen willst, dann kannst du diese schon. Pointer? Klar, C# kann das. Heap, Stack Allocations? Klar, warum nicht? C# kann das. Und mehr. Auch sieht die Syntax recht ähnlich aus. Wenn du C# sehr gut kannst und so richtig tief drin bist, dann ist ein Wechsel überhaupt nicht schwer (falls du nicht Gefallen dran findest und dann nicht mehr wechseln willst).
Die Sache ist die, dass viele denken, dass C# die eine Sprache für Unity und Windows ist. Wenn du solche Sprüche hörst, dann bitte nicht glauben. Das sind alte Geschichten, die vor vielen Jahren wahr waren, aber C# hat sich in den vergangenen Jahren extrem gewandelt. Im Übrigen kann ich anschließend noch sagen, dass die IDE (Visual Studio) (nicht Code) sehr sehr gut für C# geeignet ist und mit Videos und Fleiß, wirst du dich super schnell einarbeiten können.
C# ist ursprünglich (viele Jahre her) für Windows Software gewesen. Später hat Unity C# adaptiert und seitdem war es auch in Spielen möglich. Heutzutage ist es ein Allrounder. Es kann wirklich alles (Naja, fast. Manche Dinge, wie hardwarenahe Programmierung können schwer werden, weil es eine Laufzeitsprache ist). Aber grundsätzlich kann man sagen: Es ist ein Allrounder, der alles kann, auf nahezu jedem System in nahezu jedem Bereich
PS. Habe das noch von dir gelesen:
Und ein eigenes Betriebssystem entwickeln
Und auch das ist in C# möglich. Es gibt dafür spezialisierte Projekte, die man sich herunterladen kann, die dann auch funktionieren. Ein Beispiel wäre COSMOS (C# Open Source Managed Operating System)
Python ist ideal für den Einstieg ins Programmieren. Diese Sprache ist leicht und schnell erlernbar. Man installiert sich einfach Thonny, das ist eine Entwicklungsumgebung für Python. Da ist ausserdem Python dabei so das man gleich loslegen kann. Ebenfalls ist ein Manager integriert um Erweiterungen zu installieren. Hier der Download: https://thonny.org/ Mehrsprachig.
Hier das deutsche Python-Forum. Es richtet sich an Anfänger, Fortgeschrittene und Profis: https://www.python-forum.de/ Man kann sich kostenlos anmelden.
Später kann man dann auf C++ umsteigen. Dazu installiert man sich einfach Visual Studio. Da ist alles dabei: Editor, Debugger, Formdesigner und die Compiler. Davon gibt es eine kostenlose Community-Version: https://visualstudio.microsoft.com/de/vs/community/
VS Code ist wie Visual Studio, jedoch nur der Editor und ohne die Compiler. Ich würde lieber Visual Studio nehmen.
Ich grätsch einfach mal von der Seite rein. VSCode eignet sich je nach dem, was du programmieren möchtest. Für Skriptsprachen wie JavaScript oder Python eignet sich VSCode durchaus, auch für Webentwicklung ist der Editor sehr gut geeignet. Für alles, was kompiliert werden muss, würde ich allerdings eine vollwertige IDE (Entwicklungsumgebung) empfehlen. Welche das ist, ist abhängig von der Sprache, die du dann verwendest.
dürfte ich fragen was genau da der unterschied dann ist?
Hi,
ich schließe mich mal an die Antwort von mnlwrnr an, möchte allerdings noch dazu etwas anmerken:
Ich empfehle dir vorab erstmal zu überlegen, was du erreichen möchtest. Welches Teilgebiet der Programmierung möchtest du erlernen? Möchtest du Webseiten, Spiele, Desktopanwendungen, APIs, Serversoftware, ... entwicklen?
Diese Frage ist wichtig für die Wahl deiner ersten Programmiersprache. Python ist durchaus eine sehr einfache und einsteigerfreundliche Sprache, keine Frage, nur bringt sie dir kaum was, wenn du dich mit Spiele- oder Frontend-Webentwicklung beschäftigen möchtest. Dafür ist Python aber gut für APIs oder Datenanalyse geeignet.
Wenn du wirklich für den Anfang erstmal überhaupt das logische Denken, bzw. das "Denken in Code" lernen möchtest und noch gar keine genaue Vorstellung hast, in welches Teilgebiet du später gehen möchtest, dann ist Python sicherlich keine schlechte Wahl.
Es gibt so 2 dinge die ich gerne machen würde
- Ein Spiel von Grund auf Entwickeln und Grafiken
- Und ein eigenes Betriebssystem entwickeln
2teres Klingt vlt etwas komisch und ich weiß auch das das recht schwer sein wird trotzdem würde ich gerne mein eigenes Betriebssystem entwickeln von grund auf
Wenn ich zu einer wahl gezwungen werde dann würd ich Spiele entwickeln wählen aber am liebsten würde ich ne kombi aus beidem bevorzugen
Also ersteres klingt für mich erstmal realistischer, ein eigenes Betriebssystem entwickelt man nicht mal eben so, erst Recht nicht als erstes Projekt. Bei einem Spiel kannst du da schon besser skalieren. Da würde ich dir empfehlen, wenn du trotzdem mit Python anfangen möchtest, in die Godot Engine zu schauen. Dort kannst du in deren eigenen Skriptsprache GDScript programmieren, die sehr sehr ähnlich zu Python ist (die Syntax ist quasi identisch). Ansonsten bietet sich C# sehr gut an, da es in der Spieleentwicklung weit verbreitet ist und relativ dankbar zu lernen ist.
Wenn du dennoch eher in die Betriebssystem Richtung gehen möchtest, wirst du um C, C++, Rust oder andere Low-Level-Sprachen nicht herum kommen. Diese sind allerdings alle nicht besonders einsteigerfreundlich, wobei ich dir Rust da noch am ehesten ans Herz legen kann, da Rust wirklich eine coole Sprache ist.
Schau zuerst in die offizielle Dokumentation. Dort findest du bereits Verweise auf Lernquellen (Tutorials, Bücher, u.ä.).
Weitere gute Quellen:
- A Byte of Python (Open Book)
- Real Python
- Tracks auf Hyperskill
Hinsichtlich deutscher Literatur würde ich auf Schrödinger programmiert Python von Stephan Elter verweisen.
Des Weiteren empfehle ich an dieser Stelle gern Processing.py. Processing liefert eine eigene kleine Entwicklungsumgebung, die gerade für Anfänger reduziert und übersichtlich gestaltet ist. Zudem stellt sie dir eine Palette an Funktionen zur Verfügung, mit denen du auf einer Zeichenfläche zeichnen kannst. Das dürfte zusätzlich motivieren, denn so kannst du schon mit wenig Grundlagenkenntnissen (Variablen, Operatoren, Kontrollstrukturen, Listen) anfangen, kleine Minispiele (wie Pong oder Conway's Game Of Life) zu erstellen.
Später (für die Entwicklung von Desktopanwendungen o.ä.) würde ich dir hingegen empfehlen, entweder auf eine IDE wie PyCharm oder Visual Studio zu wechseln oder dir eine Entwicklungsumgebung in einem Editor wie Visual Studio Code herzurichten.
Lege dir jedenfalls schon von Anfang an ein Umfeld an, in dem du programmieren kannst. Parallel neben dem Lernen der Theorie ist es wichtig, sich an all dem auch praktisch zu probieren. Wenn du dabei keine eigenen Übungsideen mehr für dich findest, schau auf Seiten wie CodingBat, Edabit, Exercism oder W3Resource.
(...) spezifisch für Videospiel (...)
Hinsichtlich Computerspielen lohnen sich für Python neben Processing.py, Tools wie cocos2d, PyGame, Ren'Py (für Visual Novels), ursina oder Panda3D. Die sind aber mehrheitlich auf kleine (2D-)Spiele ausgerichtet.
Ein späterer Umstieg auf GDScript (sehr Python-ähnlich) würde sich lohnen, um Spiele in der Godot Engine zu entwickeln.
Cool vielen dank
Ist C# nen allrounder oder speziell halt für Spiele & co?