Python programmieren lernen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Thinilgandir
User
Beiträge: 4
Registriert: Samstag 18. Mai 2019, 12:57

Hallo Leute, ich bin neu hier, und möchte in die Programmierung einsteigen.

Jedoch sind mir viele Steine am Weg.

Über Python habe ich heuer viel gelesen. Da ich sowieso immer schon programmieren wollte, versuche ich es wieder einmal.

Zu mir:
Ich bin Maschinenbauingenieur und techn. Sachverständiger. Programmiert habe ich das erste mal mit 12 Jahren auf dem Amiga mit der Sprache AmigaC und Pascal.
Machen konnte ich jeden erdenklichen Blödsinn. Programme, Grafikdarstellung und Spiele. War damals ziemlich gut drauf, vorallem auf Amiga C und stückchenweise Assembler.

Ich wollte die HTL für Infomatik machen, aber auf Grund mangelnder Intelligenz liesen sie mich nicht zu, daher machte ich Maschinenbau. Natürlich wie es so kommen musste, habe ich das Programmieren komplett verlernt.
Was ich kann, sind eventuell HTML Seiten. Diese zu erstellen kann ja jeder. Javascript kann ich noch ein wenig. C oder Assembler kann ich vergessen, da ich das überhaupt nicht mehr kann.
Habe versucht mit ein paar Lektüren von damals ein wenig wieder in C zu arbeiten, keine Chance, bin wohl schon zum programmieren zu blöd. Selbst die IDE (Microsoft Visual Code oder Atom IDLE) stieß ich an meine Grenzen, das Werkzeug überhaupt zum Laufen zu bringen. Ich meine, damit bspw. Python Interpreter drauf lauft.

So dann habe ich mir gedacht, lerne zuerst programmieren mit einer einfacheren Sprache. Dann habe ich eben PYthon gelesen, mittlerweile Version 3.7. wenn ich richtig lese. Installation war kein Problem, jedoch die Packages (bspw. Opengl etc.) können nicht installiert werden, da die Python Version zu neu ist. Ok habe ich mir gedacht, irgendwie bekomme ich es später zum laufen wenn ich gscheiter bin.

Zu meinen Anliegen:
Gibt es gute Bücher hinsichtlich Spieleprogrammierung? Was mich interessiert ist, OpenGL und DirectX (gibt es überhaupt für python?)). Es muss ein Buch sein, für einen absoluten deppen wie mich.

Oder wie programmiert ihr? Googeln und paste? Habe ein Youtube Video gesehen, da gehts darum 80 % ist copy paste und 20 & ist programmieren.

Im Internet gibt es so viele Beispiele, ist schön und gut, helfen mir aber irgendwie nicht weiter.

Da ich leider in Österreich Graz wohne, schaut es mit solchen Python Kursen auch nicht rosig aus, oder wenn es einen Kurs gibt, dass dieser schweine teuer ist (3-4000 Euro für 10 Stunden Einführung).
Studium kommt für mich nicht in frage, ich will nur programmieren lernen.

Gibt es gute Bücher? Können auch mehrere sein, bspw. Anfänger, Armateur , Profi. Oder gibt es so Online Kurse so wie Anwender helfen Anwender ?

WEitere Frage ist, wie sieht die Zukunft mit Python aus? Der Erfinder von Python hat die Organisation verlassen, habe keine Lust mich da reinzulernen und später komme ich drauf, das es umsonst war, weil python tot ist.

Oder anders gefragt, angenommen ich steige zum Profi auf, d.h. ich kann eigenständig Programmieren so wie damals, und wechsle die Sprache bspw. Javascrip oder C++ oder ähnliches, wie gróß wäre der Lernaufwand? Wieder von 0 anfangen?

Danke für Eure Teilnahme.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bei einer so klaren Wunschvorstellung Richtung Spiele würde ich dir nicht zu Python raten. Und auch nicht zu OpenGL und DirectX. Natürlich geht das alles mit Python, und Python ist die am stärksten wachsende Sprache überhaupt - aber in dieser Richtung ist viel selbst zu machen und zu lernen, und der Erfolg kommt spät.

Schau dir lieber eine Game Engine wie Unity an. Programmieren kannst du da mit JS oder C#. Und viele Tutorials etc gibt’s auch.

Was die Transferleistung zu anderen sprachen angeht - kommt drauf an. JS und Python, ja. C++ ist ein anderes Biest. Da muss viel gelernt werden.
Thinilgandir
User
Beiträge: 4
Registriert: Samstag 18. Mai 2019, 12:57

Okay, das man mit Unity oder Unreal auch spiele machen kann, das war mir schon klar mir geht es nicht darum maximale Geschwindigkeit jetzt herauszuholen, mir geht es zuerst einmal um programmieren.
HAbe vor mich da richtig reinzuknien, aber vorher mache ich mich schlau. Das ich kein Spiel ala DOOM 3 oder so programmieren kann, war mir schon klar, da stecken ganze Teams dahinter.

Für den Anfang habe ich mir gedacht so nen Würfel spiel (Minecraft). Aber bevor ich dort angelange muss ich mal wieder programmieren können. Gibs irgendwelche Buch Empfehlungen?
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Auch “son Würfelspiel” ist Sau viel Arbeit. Und trotz Unity muss man viel programmieren.

Aber mach wie du meinst. Bücher habe ich zuletzt selbst auf dem AMIGA benutzt. Da gabs kein Python. Darum kenne ich da keine.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Thinilgandir hat geschrieben: Samstag 18. Mai 2019, 13:24 Ich wollte die HTL für Infomatik machen, aber auf Grund mangelnder Intelligenz liesen sie mich nicht zu, daher machte ich Maschinenbau.
Das klingt etwas seltsam, denn Maschinenbau steht ja nun auch nicht gerade im Ruf, intellektuell wenig anspruchsvoll zu sein. Insofern maße ich mir mal an zu prognostizieren, dass das Python-Lernen daran vielleicht eher nicht scheitern wird. ;)

Python wurde ja als Lehrsprache konzipiert und ich glaube, dass es sich dafür auch sehr gut eignet. Wenn du also die Grundlagen des Programmierens (wieder) lernen möchtest, ist Python sicher nicht die schlechteste Wahl. Falls deine Zielsetzung und Hauptmotivation allerdings tatsächlich ist, ein einigermaßen "modernes" Spiel zu schreiben, gibt es Sprachen, die sich besser eignen. Wenn es dir auch reicht, kleinere "normale" Programme zu schreiben (für den Einstieg vorzugsweise auch GUI), schnapp die das Python-Tutorial aus der Python-Doku, starte den interaktiven Python Interpreter und leg los. Ein Buch ist m.M.n. nicht unbedingt nötig, gerade auch, wenn du schon Vorerfahrung hast (so lange sie auch zurückliegen mag).
Thinilgandir
User
Beiträge: 4
Registriert: Samstag 18. Mai 2019, 12:57

Naja, damals waren derart viele Bewerber, dass nur die besten der besten durchkamen. Leider.

ich danke Dir für die Info wegen den Tutorial, ich werde mir das mal durchgehen.

Eine Frage hätte ich noch, ist die Python Idle ausreichend? Oder gibt es da bessere IDE´s? Kenne nur die IDE von Microsoft Visual Studio.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ich habe zwar unzählige Bücher rund um Python aber nicht wirklich mal eines "durchgearbeitet".
Lernen geht heute per online Kurs auf Lernplatformen, kostenlose und kostenpflichtige.

Zuerst einmal: Kostenlose Bücher kann man täglich hier bekommen:
https://www.packtpub.com/packt/offers/free-learning
Dort werden auch unzählige Bücher dauerhaft kostenfrei angeboten, einfach weiter nach unten scrollen.

An Online Ressourcen kann ich dir folgende empfehlen:

https://realpython.com/tutorials/basics/
https://www.khanacademy.org
https://www.coursera.org
https://eu.udacity.com
https://cognitiveclass.ai/resources/get ... th-python/
https://pythonprogramming.net
https://www.codecademy.com/learn/learn-python

Viel Spass.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ach ja, ansonsten einfach auf Youtube nach Python Tutorial suchen:
Die guten sind alle auf Englisch, damit solltest du also kein Problem haben.

z.B:
https://www.youtube.com/watch?v=_uQrJ0TkZlc
https://www.youtube.com/watch?v=vaysJAMDaZw

Zusätzlich noch 2 Tipps:
1) Python 2.x ist tot
2) falls du es irgendwo sehen solltest: GLOBAL is ein no go, sofort wieder vergessen, dass es das gibt!
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
noisefloor
User
Beiträge: 3853
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ich würde sagen: zum Python lernen immer das offizielle Python-Tutorial auf docs.python.org verwenden. Entscheidender Vorteil gegenüber den allermeisten Einsteiger Büchern: das Tutorial ist fehlerfrei und zeigt idomatisches Python. Was die meisten Bücher (jedenfalls die ganzen, die ich gelesen habe) nicht hin bekommen.

Positiver Nebeneffekt: das Tutorial ist kostenlos im Netz.

Im folgenden Schritt finde ich dann die Webseite "Python 3 Module of the Week" gut, weil man einen sehr guten Überblick über die ganzen Module bekommt, die Python an Bord hat.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13068
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Thinilgandir: IDLE ist nicht so besonders toll, aber reicht für den Anfang. Man braucht auf jeden Fall nicht zwingend eine fette IDE. Es gibt viele Python-Programmierer die einen ”einfachen” Editor verwenden. Einfach in Anführungstrichen weil zum programmieren geeignete Editoren ja eine Menge können. Editoren gibt es mindestens so viele wie Geschmäcker was Editoren angeht. Ich persönlich verwende Sublime Text und Vim. Wenn IDE, dann PyCharm. Aber wie gesagt, ist Geschmackssache.

Dazu ist es nützlich eine Python-Shell offen zu haben um Dinge ausprobieren zu können und ”live” mit Objekten spielen zu können. Neben der Python-Shell die man bekommt wenn man einfach Python aufruft, gibt es auch erweiterte Varianten wie IPython, mit mehr Funktionalität/Komfort.

Mit Büchern halte ich es wie bei Vorrednern schon angeklungen ist: Die meisten lohnen sich nicht weil solches Wissen heutzutage zu schnell veraltet und es viel Information Online gibt. Die meisten Projekte, also zum Beispiel Python, oder Bibliotheken haben ihre eigene Dokumentation am Start. Man kann Objekte wie Module, Klassen, und Funktionen/Methoden auch im Quelltext so dokumentieren, dass man die Infos im Programm oder in einer Python-Shell live abfragen kann. Und das auch in die generierte Dokumentation für ein Projekt übernehmen kann. Da steht also bei Bibliotheken oft das selbe wie in der Referenzdokumentation der Bibliothek. Die hat dann, wenn sie etwas komplizierter ist, und wenn die Dokumentation was taugt, auch ein Tutorial.

Für Spieleprogrammierung mit Python gibt's für 2D den Klassiker Pygame. Und es gibt ein paar 3D-Engines mit Python-Anbindung. Aber da sollte man wahrscheinlich wirklich eher danach gehen was die 3D-Engine so alles bietet und was drumherum an Werkzeugen und Community gibt, und erst in zweiter Linie auf die Programmiersprache achten.

Copy und Paste mache ich gar nicht und ich denke auch nicht, dass das zu qualitätiv guter Software führt. Natürlich schmeisse ich auch die Suchmaschine an, wenn ich irgend wo nicht weiter komme, aber so gefundenen Code nehme ich nur als Vorlage um meinen eigenen zu schreiben. Gefundene Code-Teile lassen sich ja üblicherweise auch gar nicht 1:1 übernehmen.

Die Zukunft von Python sieht IMHO nicht schlecht aus. Die Sprache wird nicht in nächster Zeit so einfach verschwinden, sie ist immer noch ”trendy”, und selbst wenn sie ”stirbt”, wird es dauern bis sie wirklich weg ist, sofern das überhaupt passiert.

Guido van Rossum hat die Organisation nicht verlassen, er ist nur als Kopf und ”Diktator” des Ganzen zurückgetreten. Wenn ihm nichts mehr an Python liegen würde, wäre er hier ganz aktuell sicher cooler geblieben: http://pyfound.blogspot.com/2019/05/amb ... d-but.html :-)

Wie hoch der Aufwand beim Wechseln der Programmiersprache ist, kommt nicht unwesentlich darauf an wie unterschiedlich die Sprachen sind. Wenn man JavaScript nach Python lernt, kommt einem einiges bekannt vor – JavaScript ist an einigen Stellen von Python beeinflusst. Anderes ist neu. Das es mehrere Arten gibt das Gleiche auszudrücken. Beispielsweise OOP mit Funktionen und Closures, oder Prototypbasiert, oder neuerdings auch mit dem ``class``-Schlüsselwort. Oder wie es nach asynchronen Aufrufen weitergeht: Callbacks, oder Promises, oder ``async``/``await``.

C++ wird immer komplexer je mehr Aktualisierungen der Standard bekommt. Ich benutze das eigentlich nur als ”C+” also wie C mit ein paar Zusätzen wie Namensräume und ganz einfache Grundlagen bei Klassen und eigentlich auch nur zur Arduino-Programmierung oder aus Spass für DOS – wo dann auch nicht der aktuelle C++-Standard zur Verfügung steht. :-)

Falls Du so etwas wie Minecraft nicht selbst programmieren, sondern *in* Minecraft etwas programmieren willst – dafür lassen sich Mods auch in Python schreiben. Da gäbe es wohl auch ein Buch, von dem ich aber nicht weiss, ob es was taugt: https://nostarch.com/programwithminecraft
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten