Overview

Grundlagen der Programmierung bei inqbus

Dies ist ein Handbuch zur Ausbildung von Softwareentwicklerinnen und Softwareentwicklern bei inqbus. Das Tutorial ist auf Read the Docs zu finden. Folgende Themen werden behandelt:

  • Was ist Programmieren?

  • Einen Editor einrichten

  • Einführung in Python (Installation, Interaktiver Interpreter, Module, import)

  • Softwareentwicklung mit Python

    • Variablen
    • Datentypen (int, long, float, complex, str, unicode, list, tuple, set, dict)
    • Operatoren
    • Exceptions
    • Reguläre Ausdrücke (re)
    • Prozedurale Programmierung (if, for, while, break, continue, pass, def, Iteratoren, List Comprehensions, yield, lambda, global)
    • Objektorientierte Programmierung (class, super, Dekoratoren, type)
    • Statische Code-Analyse (PEP 8, pylint, flake8)
    • Debugging (logging, pdb)
    • Umgang mit Datum und Zeit (datetime)
    • Input/Output (input, raw_input, sys.stdin, sys.stdout, string.Template)
    • Zugriff auf das Dateisystem (open, os.path, shutil, tempfile)
    • Betriebssystemnahe Programmierung (os, argparse, subprocess)
    • Netzwerk-Programmierung (urllib, urllib2, socket)
    • Testing (doctest, unittest)
    • Dokumentation (pydoc, Sphinx)
    • Packaging und Deployment
  • Arbeiten mit der Unix Shell

  • Versionsverwaltung

  • SQL Grundlagen

  • Sicherheitslücken kennen und vermeiden

  • HTML & CSS Grundlagen

Wie soll die Dokumentation geschrieben werden?

Jedes Kapitel soll mit einer kurzen Einführung in das Thema beginnen. In jedem Abschnitt soll dann eine Datenstruktur oder Funktion erklärt werden. Nach einem oder mehreren praktischen Beispielen sollen eine oder mehrere Aufgaben gestellt werden, deren Lösung vorerst für den Schüler verborgen ist. Die Lösung kann aber bei Bedarf sichtbar gemacht werden.

Der Code in der Dokumentation sollte mit doctests getestet werden, damit sicher gestellt werden kann, dass dieser auch funktioniert. So wird der Code angezeigt und gleichzeitig getestet:

.. doctest::

    >>> a = 1
    >>> b = 2
    >>> a + b
    3

Grundsätzlich wird reStructuredText bzw. das Sphinx-spezifische Markup benutzt.

Nicht mehr als 72 Zeichen pro Zeile (PEP 8) nutzen. Ausnahmen sind Aufzählungen.

Überschriften mit der folgenden Hierarchie anlegen:

  • * mit Überstrich, für Kapitel
  • =, für Abschnitte
  • -, für Abschnitte zweiten Grades
  • ^, für Abschnitte dritten Grades
  • ", für Absätze

intersphinx benutzen, um Links zur Python- oder Sphinx-Dokumentation zu setzen:

Python Dokumentation für :py:class:`zipfile.ZipFile`

Python Dokumentation zu :ref:`Vergleichsoperatoren <python:comparisons>`

extlinks benutzen, um Links zur Wikipedia zu setzen:

Python ist :wikipedia:`Open Source <Open Source>`.

Mit Hilfe von :doc: Links auf andere Dokumente setzen:

Weiter zum Kapitel :doc:`python/index`.

Benutze index:, um Abschnitte für das Stichwortverzeichnis zu markieren:

.. index:: Installation Python

Python Installation
===================

Um mit Python arbeiten zu können muss dies zuerst installiert werden.

Auf PEPs kann mit :pep: verwiesen werden:

:pep:`8`

Wird ein RFC referenziert kann dafür :rfc: benutzt werden:

:rfc:`2616`

Umgebungsvariablen mir :envvar: auszeichnen:

Die Umgebungsvariable :envvar:`%PATH%` anpassen

Dateien und Verzeichnisse mit :file: auszeichnen:

:file:`C:\\Python27\\`

Namen von Programmen mit :program: auszeichnen:

:program:`pip`

Mit :option: werden Optionen von Programmen ausgezeichnet:

Starte das Programm :program:`python` mit der Option :option:`-V`.

Hinweise werden wie folgt erstellt:

..  note::

    Dies ist ein Hinweis.

:menuselection: und guilabel: benutzen, um Navigationspfade und -elemente zu beschreiben:

:menuselection:`Start --> Systemsteuerung --> System --> Erweitert`

Klicke auf :guilabel:`Umgebungsvariablen`, im neuen Fenster im Bereich :guilabel:`

Tastenkombinationen mit :kdb: auszeichnen:

:kbd:`STRG + C`

Weitere Rollen für das semantische Sphinx Markup finden sich in der Sphinx inline markup Dokumentation.

Verbesserungen und Fehler

Für Verbesserungsvorschläge und Fehlerberichte kann der BitBucket Issue Tracker genutzt werden. Wir freuen uns über Pull Requests!

Ideen zur Weiterentwicklung

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.