Python

Dies soll eine Art Lernplan für selbstgesteuertes Python-lernen sein. Ziel ist, dass du etwas bauen kannst, was du cool findest.

  • Dazu bieten die Lektionen Lernmaterial und -Aufgaben, um dich zum “bauen” zu befähigen.
  • Die Bausteine sind Bibliotheken und Resourcen, aus denen sich unserer Einschätzung nach coole Dinge bauen lassen. Du kannst natürlich auch mit allen möglichen anderen Dingen bauen, die du cool findest.

Das meiste verlinkte Material hier ist nicht von uns. Dieses Dokument ist eine “Compilation” von verschiedenen (unserer Meinung nach sehr guten) Lernresourcen. Dadurch sind die Resourcen viel besser, als wir sie selbst schreiben könnten. Leider gibt es dadurch manchmal “rough edges”, d.h. vielleicht wird auf etwas unbekanntes/unwichtiges verwiesen o.ä.

Gebt uns gerne Verbesserungsvorschläge/Feedback.

Lektionen

Die Lektionen sind aufgeteilt in Pflicht, Grauzone und Kür.

  • Wir halten die Kenntnisse der Pflicht-Lektionen für grundlegend notwendig. Wenn ihr die Inhalte nicht kennt, fangt hier an. Ihr könnte natürlich Lektionen (oder den gesamten Teil) überfliegen bzw. überspringen, wenn ihr die Inhalte schon kennt.
  • Bei Grauzone sind wir uns uneinig, ob die konkrete Lektion Pflicht oder Kür sein sollte.
  • Die Kür-Lektionen sind nicht grundsätzliche notwendig, können aber durchaus hilfreich sein.

Pflicht

Die (meisten) Lektionen haben unten Aufgaben und eine kurze Zusammenfassung (“Key Points”). Falls du Vorkenntnisse hast, kannst du sie so überprüfen bzw. auffrischen.

Für Variablen, Lists, Dicts empfiehlt sich die REPL bzw IPython.

  1. TODO Arbeitsumgebung (IPython, VSCode+Python Extension [, Jupyter])
  2. Variablen / Typen
    • TODO F-Strings
    • TODO REPL
  3. Lists
  4. TODO Dicts
  5. Loops
  6. If
  7. Functions Vorerst die erste Hälte hiervon
    • TODO swc forken / andere resource
  8. Fehler verstehen
  9. Dokumentation finden und lesen (-> ROT13-Aufgabe)
  10. Debugging
    • Python Debugger

Grauzone

Hier sind wir uns uneinig, ob’s Pflicht oder Kür sein sollte.

  • try, except
  • OO Benutzen: Konzepte (State?), Objekt, Klasse, Methode; Objekt instanziieren; Methoden aufrufen
  • Asserts und kleine Tests

Kür

Bausteine

Hier ein paar Vorschläge, was wir so cool finden und/oder kennen.

Falls du dich für etwas bestimmtes interessierst, gibt es gute Chancen, dass es passende Python-Bibliotheken gibt. Frag’ gerne uns Mentor:innen, ob wir Vorschläge haben oder google einfach mal.

Bibliotheken

  • discord.py (erfordert OO Benutzen und async/await)
  • Game Engines TODO pyxel/pygame voneinander abgrenzen
  • HTTP-Client: requests (, Beautiful Soup)
  • HTTP-Server: Flask / Django
  • numpy / matplotlib
  • pytorch

Sonstiges


Table of contents