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 Ressourcen, 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) Lernressourcen. Dadurch sind die Ressourcen viel besser, als wir sie selbst schreiben könnten. Leider gibt es dadurch manchmal “rough edges”, d.h. vielleicht wird auf etwas Unbekanntes oder Unwichtiges verwiesen.

Gebt uns gerne Verbesserungsvorschläge und 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.

Das meiste Material ist aus dem Python Kurs von Software Carpentry, den wir geforked haben, um ein paar Data Science Besonderheiten rauszunehmen. Falls dich Data Science interessiert, bietet sich der gesamte Kurs als “Pflicht” an.

Alternativ gibt es auch How to Think Like a Computer Scientist, der nochmal deutlich umfangreicher ist. Schau dort mal rein, falls du z.B. eine alternative Erklärung suchst. Falls du etwas in Richtung AI bzw. Machine Learning machen möchtest, könnte fast.ai’s “Practical Deep Learning”-Kurs interessant sein.

Lernplan

  1. Einrichten der Arbeitsumgebung. Relevante Abschnitte: Installation, Code ausführen, Autocomplete, Linting, Debugging.
  2. Variablen / Typen
    • Tipp: f-strings. So kannst du Ausdrücke in einen String einbetten, z.B:

      x = 2
      print(f"x mal zwei ist: {x * 3}")
      
    • Für kleine Experimente bietet sich die REPL an, also wenn du Python interaktiv im Terminal benutzt. Dazu ein Terminal aufmachen, python3 (evtl. abhängig von Betriebssystem) eintippen, Enter und schon sollte dich der Python-Interpreter mit >>> begrüßen. Jetzt kannst du Ausdrücke eingeben und mit Enter auswerten.

  3. Lists
  4. Loops
  5. If
  6. Functions
  7. Fehler verstehen
  8. Dicts
  9. Dokumentation finden und lesen
  10. Debugging
  11. try, except

Grauzone

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

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

Was unterscheidet eine “gute” von einer “schlechten” Bibliothek?

  • Existierende Dokumentation
    • mindestens eine API Referenz, Guides und Tutorials aber wünschenswert
  • Aktivität
    • letzter Bugfix vor 10 Jahren?
    • benutzen es mehr als einer Handvoll von Leuten? (GitHub Stars ist eine Indiz)

Inhalt