Transcript: PP04 - Python für Einsteiger

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo liebe Hörerinnen und Hörer, willkommen beim Python-Podcast in der vierten Episode.

Dominik

Heute geht es darum, wie man am besten Python lernen kann oder anderen Menschen Python beibringt.

Dominik

Was machen wir eigentlich? Ja, wir sind diesmal tatsächlich nicht mehr in der Raumschiff-Kommandozentrale, sondern wieder bei Jochen im Wintergarten.

Jochen

Ja, ich habe so ein bisschen was an meinem Equipment geupgradet und mal gucken, wie das jetzt so wird.

Jochen

Wir haben jetzt zwei Headset-Richtige und auch so ein bisschen mehr Mischpult ist jetzt heute als sonst, weil wir uns dann zu diesem Thema zwei Leute noch mit dazugeholt haben, die vielleicht da was...

Dominik

Ich habe mich jetzt nicht zu sehr dodo, also ich habe auch nicht mitgebracht.

Jochen

Hallo.

Dodo

Hallo.

Jochen

Die dort die Einsteiger-Veranstaltung für Python halt jetzt schon seit einiger Zeit betreuen und dann, genau.

Jochen

Die sehr gute Einführungsmacht.

Jochen

Ja.

Niklas

Oh.

Niklas

Nicht zu viel Glauben.

Jochen

Ja.

Jochen

Ja, und genau, mal schauen, wie es so wird damit.

Dominik

Ja, Fragen, Anmerkungen, Kommentare und alles, was ja so loswerden müsste,

Dominik

bitte immer gerne in unsere E-Mail schreiben,

Dominik

hallo.peisen-podcast.de.

Dominik

Dabei auch direkt vielen Dank.

Dominik

Wir hatten Kommentare, schöne, bei der letzten Folge.

Dominik

Einmal Gruß nach Rostock an den Matthias und in die Schweiz an den Dirk.

Jochen

Genau, und das war sehr positiv.

Jochen

und das ist natürlich mal sehr schön,

Jochen

wenn man da auch irgendwie

Jochen

mitbekommt, dass das so ein bisschen

Jochen

wahrgenommen wird. Die Punkte, die da angesprochen

Jochen

wurden, waren einmal, dass es halt nett wäre,

Jochen

wenn wir jetzt irgendwie Kommentare

Jochen

doch auch dabei hätten

Jochen

und dazu haben wir uns natürlich auch

Jochen

schon irgendwie Gedanken gemacht und haben erstmal gesagt,

Jochen

wir lassen die bewusst weg, weil

Jochen

naja, das ist halt irgendwie

Jochen

alle Zeit, die wir da rein investieren müssen, einmal

Jochen

das Feature zu bauen, aber dann auch irgendwie

Jochen

den Kram zu maintainen, können wir

Jochen

halt nicht irgendwie zum

Jochen

Aufnehmen von Podcasts

Jochen

verwenden, aber ja, also

Dominik

Genau, falls unser AXE mal stumpf werden sollte,

Dominik

dann denken wir nochmal über die Kommentare nach.

Jochen

Ja, also ich meine, ich glaube, es ist auch

Jochen

nicht so schwierig, das zu implementieren und

Jochen

wenn man das auf User beschränkt, die sich irgendwie eingeloggt haben,

Jochen

aber das ist halt die Frage, wie sinnvoll das dann noch ist, wenn man das

Jochen

macht, dann ist das

Jochen

auch nicht allzu schlimm, aber

Jochen

ja, wir müssen mal gucken. Es gibt ja eine ganze

Jochen

Menge Dinge, die wir da eventuell noch einbauen

Jochen

wollen und ja.

Dominik

Ja, das kannst du vielleicht gleich nochmal bei der Modulvorstellung von deinem

Dominik

neuesten DjangoCast-Fortschritt

Dominik

erwähnen. Was die Leute

Dominik

sich auch gewünscht hatten, also unsere Hörer, war Struktur.

Dominik

Frechheit.

Dominik

Ja, stimmt.

Jochen

Das ist natürlich schon so ein gewisser Punkt.

Dominik

Ja, wir versuchen das aber trotzdem heute mal umzusetzen.

Dominik

Wir haben uns heute einfach auf ein Thema beschränkt, da ist die Struktur

Dominik

vielleicht nicht so wichtig. Wir fangen vielleicht

Dominik

erstmal nochmal damit an, was in letzter Zeit denn so los war

Dominik

und dann erzählen wir halt darüber, was man mit Python alles

Dominik

lernen kann und ja,

Dominik

vielleicht noch ein paar Module.

Jochen

Genau, aber

Jochen

vielleicht machen wir einfach erstmal eine Vorstellungsrunde.

Jochen

Ich meine, wir beide

Jochen

sind jetzt schon irgendwie bekannt, aber wer

Jochen

seid ihr denn?

Dodo

Ja, ich würde

Dodo

sagen, Alter vor Schönheit.

Dodo

Ich bin der Dodo oder

Dodo

der zweite Dominik.

Dodo

Ich mache zusammen mit dem Niklas das

Dodo

Python-Foo-Light im Chaosdorf.

Dodo

Das ist das

Dodo

Python-Foo für Anfänger

Dodo

in Python oder Anfänger in

Dodo

Programmierung im Allgemeinen.

Dodo

Das ist jeweils der 1. und 2. Donnerstag im Monat.

Dodo

Und ja, da versuchen wir Leuten Python als Programmiersprache beizubringen.

Dodo

Und das machen wir jetzt seit 3 Jahren.

Dodo

2015, oder?

Dodo

Ja, ich glaube, mittlerweile 3 Jahre.

Dodo

Irgendwann im Sommer, ja.

Dominik

Da kann man übrigens immer gerne vorbeikommen.

Dodo

Natürlich.

Niklas

Ich bin ja Niklas, hallo.

Dodo

Wir haben das damals angefangen, ich glaube, irgendwie ein halbes Jahr,

Dodo

nachdem es den Gamedev gab.

Dodo

Es gibt da gewisse personelle Überschneidungen mit Leuten,

Niklas

die dann halt nicht mehr die Zeit hatten,

Niklas

auch noch den Python-Fool viermal im Monat zu machen.

Niklas

Und dann sind wir halt eingesprungen in den ersten beiden Donnerstagen.

Dodo

Ja, vor allen Dingen hatten wir festgestellt,

Dodo

dass sich gerade Anfänger häufig erschlagen fühlen,

Dodo

wenn sie zum Python-Fool kommen

Dodo

und über viel komplexere Themen besprochen wird,

Dodo

als sie, die ihnen jetzt erstmal nichts sagen,

Dodo

weil sie gerade mit Python anfangen möchten.

Dodo

Und da dachten wir, dass eine Veranstaltung,

Dodo

die sich eben dediziert an die Anfänger wendet,

Dodo

wo man dann auch die blödesten Fragen stellen kann,

Dodo

doch eine ganz gute Sache wäre.

Niklas

Da dachten wir, wenn jemand die Anfänger erschlägt, dann wir.

Niklas

Genau.

Dodo

Und wenn jemand blöde Fragen beantwortet,

Dodo

sind wir ja immer noch wie das.

Niklas

Wir stellen die auch meistens.

Dodo

Ja.

Jochen

Ja, das klingt doch auf jeden Fall gut.

Jochen

Und ja, vielleicht können wir euch dann auch direkt mal

Jochen

auf dem Kalt- beziehungsweise auf dem falschen Fuß erwischen,

Jochen

euch fragen, was habt ihr denn in letzter Zeit so

Jochen

an Python-Neuigkeiten mitbekommen?

Jochen

Weil das ist ja vielleicht auch ganz interessant, was da so, wenn man

Jochen

sich jetzt nicht irgendwie da

Jochen

bewusst für entscheidet, irgendwie diese, den

Jochen

News da zu konsumieren, was dann da irgendwie hängenbleibt.

Dodo

Also ich lese ab und zu die

Dodo

Release-Notes zu neuen Python-Versionen,

Dodo

aber es gab jetzt schon ein halbes Jahr keine mehr.

Dodo

Eigentlich nicht so wirklich, nein.

Dodo

Ich glaube, das Letzte, was ich

Dodo

gelesen hatte, also hin und

Dodo

wieder bekomme ich halt

Dodo

von den neuen Releases

Dodo

was mit. Das letzte, was ich

Dodo

mir angeschaut hatte, waren die Data

Dodo

Classes, die jetzt in den neueren

Dodo

Python-Versionen vorkommen sollen.

Dodo

Die hatte ich mir einmal angeguckt.

Dodo

Ja, die Python-News

Dodo

lese ich meistens

Dodo

als RSS-Feed. Da habe ich mir

Dodo

von Planet Python den RSS-Feed

Dodo

gezogen und kriege da ganz unterschiedliche

Dodo

Nachrichten jeweils.

Dodo

Das ist auch relativ

Dodo

interessant. Ich setze mir dann

Dodo

meistens einfach nur eine Flagge im RSS

Dodo

wieder, weil

Dodo

meistens komme ich dann nicht dazu, die Nachrichten

Dodo

komplett zu lesen, sondern habe nur die

Dodo

Kurzbeschreibung.

Dodo

Aber ich finde, das ist ein sehr gutes

Dodo

Mittel, um News über Python zu

Dodo

bekommen. Ich habe mein

Niklas

RSS-Reader seit irgendwie drei Jahren

Niklas

nicht mehr aufgemacht.

Niklas

Eine 10.000 Nachrichten.

Niklas

Das letzte neue Feature von Python, das ich

Niklas

verwendet habe, war NameTouples, glaube ich.

Niklas

Das fand ich ganz cool,

Niklas

so als einfacher Klassenersatz.

Dominik

Es gibt noch einen coolen Newsletter für Python.

Dodo

Oh, Newsletter.

Dominik

Ja, da stellen wir auch die

Dominik

Shownotes dann vielleicht mal rein.

Jochen

Wir sollten die Newsletter vielleicht mal reinpacken.

Jochen

Also es gibt ein paar. Ich habe irgendwie einen Awesome Python,

Jochen

einen Python Weekly.

Dodo

Ich habe auf GitHub die Trending

Dodo

Repos abonniert. Das gibt es für

Dodo

familiäre Sprachen und unter anderem auch für Python.

Dodo

Oh, das ist ja super.

Niklas

Das ist halt

Niklas

teilweise Sachen, die halt irgendwie nur

Niklas

zufällig in Python sind und nicht wirklich

Niklas

dafür relevant sind, aber

Niklas

manchmal ist auch was Spannendes dabei.

Jochen

Ja, das klingt auf jeden Fall interessant, ja, da können wir

Jochen

vielleicht einfach einen Punkt machen, wo wir so ein bisschen sammeln, wie man sich

Jochen

eigentlich da aktuell halten

Jochen

kann. Ja, also ich bin auch ein großer Fan von

Jochen

RSS und ich habe eigentlich auch irgendwie, ich verwende schon

Jochen

ganz lange einen Feed-Reader,

Jochen

bin dann

Jochen

da, irgendwie gab es, ganz am Anfang

Jochen

habe ich irgendwie Aggregator verwendet

Jochen

unter KDE und

Jochen

dann gab es aber den Google Reader und

Jochen

der war so gut, den fand ich total toll und

Jochen

den habe ich ganz lange verwendet. Ich habe ganz lange dieses

Jochen

Sharing-Feature verwendet, was auch viele andere

Jochen

irgendwie gern benutzt haben und da

Jochen

gab es ganz tolle Sachen und

Jochen

das war irgendwie so ein, das war das

Jochen

einzige Mal, dass so Social Network für mich so ein bisschen

Jochen

funktioniert hat und

Jochen

dann hat Google den Reader eingestellt und das war

Jochen

ganz furchtbar und jetzt

Jochen

habe ich zwar immer noch einen Feed-Reader, aber es ist

Jochen

irgendwie alles nicht mehr so das Gleiche

Jochen

und genau, ich habe

Jochen

da auch Planet Python und da gibt es noch so ein paar

Jochen

Blogs von Leuten,

Jochen

die halt da an Python

Jochen

rum, äh, an, äh, an Python

Jochen

halt an Junkroom entwickeln, halt auch abonniert.

Jochen

Ja.

Jochen

Tja, ähm,

Jochen

äh, genau, ja, das, das mit dem,

Jochen

mit den Dataclasses ist Python 3.7

Jochen

oder es gibt ja jetzt, vorletzte Woche, glaube ich,

Jochen

3.8 nochmal ein paar Ankündigungen, genau.

Jochen

Genau, da gab's eine neue Alpha-Version und zwar

Jochen

gab, gibt's da auch eine Syntax-Änderung,

Jochen

ich weiß nicht, ob ihr von der schon gehört habt.

Dodo

Ähm, war das das mit dem Doppelpunkt

Dodo

gleich, dass man in, ach ja,

Dodo

das war doch, dass man in, wie war

Dodo

das, in Schleif, äh, in

Dodo

der Deklaration von einer

Dodo

Wildschleife kann ich mir die

Dodo

Variable setzen, oder?

Dodo

Das war eine Zuweisung, die dann auch

Dodo

wieder direkt den Wert hat. Genau, also man

Jochen

macht eine Zuweisung und gleichzeitig hat die

Jochen

entweder true oder false.

Dodo

Es gab da auch irgendwie einen witzigen Namen

Dodo

für den Operator, ne? Ja, da komme ich

Jochen

nochmal. Irgendwie nach dem Tier, ne?

Jochen

Walrus-Operator, weil

Jochen

das ein bisschen aussieht wie ein

Dodo

Augen und Zähne, ja.

Niklas

Das ist so ein bisschen wie dieser Turbo-Fisch,

Dodo

wenn du hast, ne? Turbo-Fisch.

Dodo

Das hatte ich auf Twitter, glaube ich,

Dodo

mitbekommen. Das hatte mir

Dodo

irgendwer retweetet. Das fand ich auch sehr

Dodo

interessant.

Jochen

Ja, und genau, man kann sich damit halt

Jochen

umgucken. Also man halt macht halt oft so was

Jochen

wie man holt irgendwas, einen Wert

Jochen

aus einem Dikt und dann muss man

Jochen

erstmal überprüfen, ob das nicht None ist, weil

Jochen

man weiß halt nicht, ob es...

Jochen

Die Zeile kann man sich jetzt immer sparen und man schreibt dann halt

Jochen

direkt, if irgendwie

Jochen

dann irgendwas

Jochen

Valros Operator

Jochen

Verdikt.getKey,

Jochen

dann macht man halt weiter, wenn es

Jochen

drin war und ansonsten...

Dodo

Ansonsten wäre für sowas ja auch so ein SafeNavigation

Dodo

Operator nett. Es gibt ja Sprachen,

Dodo

da kannst du irgendwie Fragezeichen Punkt machen

Dodo

und die machen dann in den Zugriff nur, wenn das Objekt selber

Dominik

nicht null ist. Ein SafeNavigator,

Dominik

das musst du bitte kurz erläutern.

Dodo

Also es ist ja auch praktisch so, dass du irgendwie ein Objekt hast

Dodo

und es hat ein Attribut. Dann machst du irgendwie

Dodo

Objekt.Attribut. Irgendwas.

Niklas

Und eigentlich musst du ja bei jedem

Niklas

dieser Schritte prüfen, ob das Attribut

Niklas

selber nicht null ist.

Niklas

kannst du ja nicht Punkt machen. Es gibt halt

Niklas

Sprachen, die haben so ein Syntax-

Dodo

Fragezeichenpunkt, die macht

Dodo

halt den Zugriff nur, wenn das Objekt selber nicht None ist

Dodo

und ansonsten ist der Wert halt auch direkt

Dodo

wieder None. Das fände ich cool,

Dodo

kenne ich über Python nicht. Ja, und da hatten wir

Jochen

tatsächlich, ich weiß nicht, kennt ihr das? Es gibt

Jochen

ein Telegram-Channel

Jochen

zur Python-User-Group

Jochen

Düsseldorf, PyDDF. Nee, kenne ich nicht.

Jochen

Ah, ja.

Dodo

Die User-Group, die kenne ich,

Dodo

da war ich ein paar Mal, aber den Telegram-Channel

Jochen

sagt mir nichts. Genau,

Jochen

Es gibt immer noch eine Mailing-Liste,

Jochen

aber der Telegram-Channel ist tatsächlich

Jochen

was, was jetzt auch stärker

Jochen

genutzt wird. Und da gab es eine Diskussion genau darüber

Jochen

und Chezy, den wir als Expertengast

Jochen

für unsere Django-Folge da

Jochen

hatten, hat da auch irgendwie quasi

Jochen

es gibt einen Python-Enhancement-Proposal, wo genau

Jochen

so eine Syntax mit einem Fragezeichen vorgeschlagen wird

Jochen

für, hat das dann halt auch irgendwie da mal

Jochen

vorgestellt und meinte so, das wäre doch eine tolle Idee.

Jochen

Und dann hat sich das aber relativ

Jochen

das war sehr kontrovers,

Jochen

das war ein sehr polarisierender

Niklas

Also ich habe es auch noch nie genutzt, ich weiß nur, dass es existiert

Niklas

in anderen Sprachen.

Jochen

Ich bin mal gespannt, kann ja sein, dass es auch in Python irgendwann kommt.

Jochen

Genau.

Dominik

Ja, es gibt noch mehr Neuigkeiten

Dominik

von dem Steering-Counter.

Dominik

Da wolltest du vielleicht noch was zu sagen.

Jochen

Genau, ich habe da jetzt

Jochen

auch nicht so einen Detail

Jochen

verfolgt, aber es ist halt so, dass

Jochen

Guido ja sozusagen

Jochen

so einen unbegrenzten

Jochen

Urlaub genommen hat von seiner

Jochen

BFDL-Rolle

Jochen

Und jetzt gibt es halt einen Steering Council gewählt worden, der halt dann, wenn quasi eine Entscheidung benötigt wird und das sonst niemand tun will und so und man dann halt irgendwie ein letztes, jemand irgendwie das letzte Wort haben muss, dann gibt es halt diesen Rat, der das dann halt hat.

Jochen

und da sind halt irgendwie fünf Mitglieder reingewählt

Jochen

worden, unter anderem auch Guido.

Jochen

Und genau, das werden wir auch verlinken,

Jochen

kann man sich ja mal angucken. Es sind alles nette Leute

Jochen

insofern. Ja, sieht gut aus.

Dominik

Und jetzt kommt noch eine nächste Neuerung, und zwar gibt es jetzt

Dominik

lokale Packages in Python.

Dominik

Ne, das gibt es auch erst

Dominik

mit Python 3.8. Genau.

Jochen

Stimmt, das war auch in der Alpha-Release

Jochen

drin. Python Local,

Jochen

ja, pip local

Jochen

gibt es so ein Verzeichnis dann.

Jochen

Ui, jetzt muss ich mich wieder versuchen, daran zu erinnern,

Jochen

was das eigentlich genau ist.

Jochen

Das ist quasi dann so ähnlich wie bei JavaScript

Jochen

und dass man halt die

Jochen

Pakete, die man installiert, halt in dem Verzeichnis,

Jochen

in einem speziellen Verzeichnis direkt hat

Jochen

und dann

Jochen

irgendwie drumherum kommt, sich mit diesem ganzen

Jochen

Virtual-Env-Kram rumschlagen zu müssen.

Dodo

Ah, also quasi

Dodo

man konnte doch bisher auch schon

Dodo

bei PIP-Install irgendwie ein Target angeben

Dodo

und das ist dann, ah, okay.

Jochen

Und das ist dann, glaube ich, einfach

Jochen

das heißt dann einfach PIP-Local

Jochen

und dann installiert es halt in das Verzeichnis rein

Jochen

und dann... Dann hast du alles in einem Ordner.

Jochen

Das ist cool.

Jochen

Auch gar nicht so schlecht.

Jochen

Also ich weiß nicht, ob es jetzt Virtual Env

Jochen

komplett ersetzen wird, aber

Jochen

auf jeden Fall. Also ich meine, gut, wir haben ja jetzt

Jochen

drei oder vier unterschiedliche Arten, wie man das machen kann.

Jochen

Viertel wird bestimmt das Problem lösen.

Jochen

Und die beste ist natürlich PIP-Env.

Jochen

Ja, PIP-Env ist auch toll.

Jochen

Das stimmt, das ist schon gut.

Jochen

Genau, zu sowas.

Jochen

Isolierung,

Jochen

Isolation, Virtual Envs, Docker,

Jochen

diesen ganzen Kram, wie kriege ich eigentlich

Jochen

unterschiedliche Projekte auf einer Maschine

Jochen

irgendwie so installiert,

Jochen

dass sie sich nicht gegenseitig kaputt machen.

Jochen

Dazu müssen wir auch mal...

Jochen

Ja, eine extra Folge, okay.

Dominik

Ja, dann fangen wir doch jetzt am besten

Dominik

mit unserem Thema an, oder?

Dominik

Ja, klar.

Dominik

Wie lernt man denn Python so am besten?

Dodo

Puh.

Dodo

Ja, ich glaube,

Dodo

das hängt viel von einem selber ab.

Dodo

Also, es gibt verschiedene Arten,

Dodo

wie man Python lernen kann.

Dodo

und ich würde sagen,

Dodo

da

Dodo

muss man so für sich die beste

Dodo

Art und Weise rausfinden.

Dodo

Die Frage ist ja auch,

Dodo

kann man schon programmieren? Kennt man vielleicht andere

Dodo

Programmiersprachen, die sich ähnlich verhalten,

Dodo

was Objektorientierung und sowas angeht?

Dodo

Oder muss man das auch noch erstmal lernen?

Dodo

Ja, und

Dodo

wenn man schon eine andere Programmiersprache hat,

Dodo

gibt es natürlich, sind

Dodo

gewisse Einstiegshürden einfach nicht mehr da.

Dodo

Also, wenn ich schon mal im Texteditor

Dodo

ein Programm geschrieben habe, dann

Dodo

muss mir nicht mehr erklärt werden, wie

Dodo

ich mit dem Texteditor arbeite.

Dodo

Wenn ich schon mal eine IDE bedient habe,

Dodo

weiß ich, was eine IDE ist. Oder Schleifen.

Dodo

Genau.

Dodo

Das geht natürlich weiter

Dodo

mit den Kommandostrukturen.

Dodo

Eine IF-Bedingung

Dodo

kenne ich dann, wenn ich schon mal programmiert

Dodo

habe, eine Schleife, etc.

Dodo

Wenn ich schon mal mit einer

Dodo

stark objektorientierten

Dodo

Programmiersprache gearbeitet habe, muss man mir

Dodo

Objektorientierung nicht mehr erklären.

Dodo

Also da gibt es dann Einstiegshürden, je nachdem, ob ich mich schon mal mit einer Programmiersprache beschäftigt habe,

Dodo

eventuell sogar mit einer, die Python sehr ähnlich ist.

Dodo

Ansonsten sind halt so Sachen wie Namespaces oder dynamische Topisierung vielleicht eventuell sogar einfacher zu lernen,

Dodo

wenn man das aus einer anderen Sprache noch nicht kennt.

Dodo

Ja, das heißt, wenn du nicht gewohnt bist, dass du deine Variable einen festen Typen hast,

Dodo

Ja, dann könnte es sogar einfacher

Dodo

sein. An der

Dodo

Stelle bietet Python natürlich einen

Dodo

einfachen Einstieg, weil

Dodo

es eben eine

Dodo

dynamische, strenge Typisierung bietet.

Jochen

Ja, ich hab so die

Jochen

Aufmerksamkeit auf Hackathons oder so, wo ich

Jochen

dann irgendwie

Jochen

Leute hatte, die dann halt

Jochen

aus sehr unterschiedlichen Bereichen kamen, aus sehr unterschiedlichem

Jochen

Wissensstand hatten und dann hat man versucht,

Jochen

so ein Projekt zu machen mit denen

Jochen

und dann

Jochen

ja genau, versucht man halt einfach nur

Jochen

irgendwie das Projekt zu bootstrappen,

Jochen

das heißt irgendwie, die müssen irgendwie Python installieren,

Jochen

dann irgendwie irgendwas aus Git ziehen,

Jochen

dann Virtual Env erzeugen,

Jochen

dann irgendwie die Abhängigkeiten installieren.

Dominik

Und dann sind zwei Tage rum. Genau, und das

Jochen

ist teilweise, weil was mir dann immer

Jochen

passiert, oder die schlimmsten Fälle sind immer so,

Jochen

ja okay, Python installieren, ja aber das ist mein

Jochen

Firmenrechner, da ist ein Windows drauf und ich

Jochen

kann da auch eigentlich nichts installieren, so dann

Jochen

ist schon mal so, okay, dann ist man halt

Jochen

vielleicht nach einer Stunde irgendwie so, dass man eine Python-Shell hat,

Jochen

aber wie geht ihr damit um?

Jochen

Oder macht ihr irgendwie Ansagen,

Jochen

was schon vorausgesetzt wird,

Jochen

wenn man überhaupt da hinkommt?

Niklas

Also um den ganzen Kram drücken wir uns ein bisschen.

Niklas

Andererseits, wir verwenden zumindest am Anfang nichts,

Niklas

was irgendwie extra Module braucht.

Niklas

Also man braucht einfach nur einen Python-Interpreter.

Niklas

Und viele Systeme,

Niklas

irgendwie OSX oder die meisten Linux-Distros,

Niklas

haben ja einen schon dabei.

Dodo

Und wenn jemand einen Windows-Rechner mitbringt,

Dodo

haben wir so die Hoffnung,

Dodo

dass die Person weiß, wie man da Programme installiert.

Dodo

Weiß ich nicht.

Dominik

Bei den meisten Leuten, die ins Chaos aufkommen, hat das dann

Dodo

vielleicht auch funktioniert? Ansonsten kann man sowas

Dodo

ja im Notfall auch irgendwie online machen.

Dodo

Es gibt ja irgendwie Python Anywhere oder sowas.

Dodo

Das geht ja irgendwie.

Dodo

Außerdem haben wir, glaube ich,

Dodo

in Wiki die Ansage stehen, dass man,

Dodo

wenn man zum Python-Fuhr kommt,

Dodo

einen Rechner mitbringt und

Dodo

auf diesem Rechner...

Dodo

Ja, okay.

Dominik

Sonst können wir vielleicht ein Recipe ausleihen

Dodo

oder sowas. Ja, oder

Niklas

auch auf vielen Android-Smartphones.

Niklas

Wenn du ein Handy neuer als Android 5 hast,

Niklas

kannst du da Python drauf installieren, problemlos.

Niklas

Gut, das Tippen ist ein bisschen ekelhaft auf dem Smartphone.

Niklas

Sehr gut, Bluetooth-Tastatur.

Dodo

Oder sowas, ja.

Dodo

Ja, meistens haben wir ja sogar Linux-User.

Dodo

Windows-User sind natürlich,

Dodo

wenn es um die Installation von Paketen geht,

Dodo

immer ein bisschen fummelig.

Dodo

Aber im Allgemeinen kriegen wir das auch hin.

Dodo

Also gerade so Sachen wie installier das mal von Pip oder so,

Dodo

das machen wir nicht am ersten Abend. Genau.

Dodo

Das ist einerseits

Dodo

natürlich da, um die Einstiegshürden

Dodo

zu nehmen, denn

Dodo

so können wir das auf Windows,

Dodo

MacOS oder Linux machen,

Dodo

weil wir dann eben nur die Standardbibliothek

Dodo

nehmen und einfach nur einen Texteditor

Dodo

und einen passenden Interpreter

Dodo

brauchen. Wir hatten witzigerweise

Dodo

noch niemanden, der dann irgendwie mit React

Dodo

oder BSD oder sowas aufgetaucht ist.

Dodo

Ich glaube,

Dodo

das brauchen wir auch nicht.

Jochen

Ja, okay, aber

Jochen

Das ist ja schon mal interessant.

Jochen

Ihr verwendet doch einfach die ganz normale

Jochen

Python

Jochen

Python-Reppel oder was kann ich mir

Jochen

das...

Niklas

Wir zeigen die Beispiele meistens entweder im Texteditor

Niklas

oder irgendwie in I-Python, B-Python.

Niklas

Aber das braucht man ja nicht,

Niklas

um das nachzuprogrammieren. Das sieht dann halt nicht so schön aus.

Niklas

Aber

Niklas

ja, und ansonsten

Niklas

wir haben halt auch nicht so viele Anforderungen.

Niklas

Also Beispiele laufen auf allen Versionen, die

Niklas

neuer sind als 3.4 oder so.

Niklas

und das hat ja sogar Debian Old Stable

Niklas

oder sowas. Das ist ja kein Problem.

Dodo

Das ist ja auch ein

Dodo

Vorteil der Python Standard Library,

Dodo

dass die eben so umfangreich ist,

Dodo

dass man die meisten Sachen gar nicht nachinstallieren

Dodo

muss, sondern so viel schon

Dodo

dabei ist, dass man für

Dodo

ein grundlegendes Verständnis

Dodo

der Sprache brauchst du eben nur

Dodo

die Standard Library. Wenn das

Dodo

dann ins komplexere

Dodo

Sachen geht, also wo du wirklich konkret was

Dodo

machen willst, da installierst du dir

Dodo

dann eine Library,

Dodo

aber Request ist, glaube ich, so die erste,

Dodo

die wir dann immer zeigen.

Dodo

Stimmt, ja. Und

Dodo

HuPy. Stimmt.

Dodo

Ja, aber das ist eine Datei

Dodo

mit 56 Teilen, also ich glaube,

Dodo

die muss man nicht installieren, die kann man notfalls runterladen.

Dodo

Genau. Die könnte man wahrscheinlich

Dodo

sogar abtippen.

Jochen

Was war das nochmal genau? Ich habe das, glaube ich, gerade nicht so richtig verstanden.

Niklas

HuPy. Kenne ich gar nicht.

Niklas

Es ist ganz schön, um einfache

Niklas

Statusmeldungen auszugeben. Das macht dann halt irgendwie,

Niklas

es gibt HuPy.info und dann bekommst

Niklas

so einen blauen Kasten, links so eine Welle

Niklas

und dann rechts ein Text.

Dodo

Farben im Terminal.

Niklas

Es funktioniert auf allen Systemen.

Niklas

Also Windows ist nur neuer als 10, aber

Niklas

ansonsten...

Niklas

Und es ist halt eine wirklich kleine Datei.

Niklas

Wer fängt denn mal die Texte an?

Niklas

Die machen ekelhafte Sachen mit

Niklas

Dictionaries und Lambdas und sowas, aber

Niklas

das muss man ja nicht wissen.

Dodo

Also

Dodo

das Gitter-Prepo da ist

Dodo

sehr erhellend, weil dann auch...

Dodo

Das Readme ist sehr gut.

Dodo

Ja, das Readme ist sehr gut, weil der Entwickler da vergleicht,

Dodo

wie schwierig es ist, mit anderen Bibliotheken Farbe ins Terminal zu bringen

Dodo

und wie einfach das mit UPy ist.

Dodo

Diese Tabelle, wo nur UPy die höchste Punktzahl erreicht.

Dodo

Ja, ein bisschen Eigenwerbung soll ihm ja auch gegönnt sein.

Dodo

Ich verwechsel das nur leider immer mit Python Hui.

Dodo

U-Pi und Python Hui sind zwei verschiedene Dinge,

Dodo

wichtig zu wissen.

Niklas

Wir inszenieren immer die falschen am Anfang, ne?

Dominik

Wie habt ihr beide denn

Dominik

Python gelernt?

Dodo

Ich weiß es ehrlich gesagt nicht mehr. Ich glaube,

Dodo

ich habe früher mit einem

Dodo

Freund zusammen

Dodo

PHP angefangen, irgendwann an der Grundschule

Dodo

und dann fanden wir irgendwann PHP nicht mehr

Dodo

cool und dann ist er

Niklas

zu Perl gewechselt und ich fand

Niklas

Perl auch nicht cool. Dann habe ich mir angeguckt, was gibt es noch

Dodo

zum Ansprachen? Dann habe ich mit Python angefangen.

Dodo

hat er festgestellt, Python fängt auch mit P an.

Dodo

Ja, genau.

Dodo

Ja, bei mir war das deutlich später als die Grundschule.

Dodo

Ich weiß noch, ich hatte in der 8. Klasse oder 9. Klasse Wahlpflichtfach Informatik.

Dodo

Und in der Schule hatten wir dann in der 8. Klasse Word und Excel

Dodo

und in der 9. Klasse haben wir dann auch richtig programmiert mit Turbo Pascal.

Dodo

Wir hatten damals schon PHP in der Schule.

Dodo

Eigentlich hat es mir Spaß gemacht

Dodo

mit Turbo Pascal zu programmieren.

Dodo

So viel Spaß man eben damit haben kann.

Jochen

Oh doch, das war toll.

Jochen

Ich weiß jetzt nicht, welche Version

Jochen

ihr da verwendet habt.

Jochen

Ich hatte da mal...

Dodo

Naja, alles gut.

Dodo

Ach ja, das ist in Ordnung, das macht ja nichts.

Dodo

Der Tee war lecker.

Jochen

Danke, Tja.

Jochen

Also genau, damals

Jochen

war das irgendwie Turbo Pascal 5.5

Jochen

und das lief alles

Jochen

sozusagen auch irgendwie

Jochen

in einer Shell oder sozusagen

Jochen

auf der MS-DOS-Kommandozeile

Jochen

und das war als IDE eigentlich

Jochen

tatsächlich ziemlich klasse, wenn man irgendwie

Jochen

F9 gedrückt hat, dann hat das irgendwie sofort kompiliert

Jochen

und es ausgeführt und man konnte so einen

Jochen

Debugger durchsteppen und so, das war

Jochen

ja, aber keine Ahnung

Jochen

wie das, bei euch war das dann wahrscheinlich schon Windows

Dodo

oder so oder? Ja, ich glaube wir hatten da eine

Dodo

Free Pascal,

Dodo

das war so ein bisschen wie die Python Idol,

Dodo

nur ich fand es halt

Dodo

sau anstrengend

Dodo

mit Turbo Pascal zu programmieren

Dodo

und irgendwann war die neunte Klasse

Dodo

dann fertig und ich glaube, so zu

Dodo

den Sommerferien fing ja im Chaosdorf

Dodo

das Python-Fu an, weil das

Dodo

Chaosdorf bekam halt neue Räume.

Niklas

Ach, du hast die alten Räume noch gesehen?

Dodo

Ja, ja. Oh. Und

Dodo

da fing das Python-Fu dann auch

Dodo

komplett im Renovierungsmodus

Dodo

mit... Umzug auf

Dodo

Python 3. Genau.

Dodo

Man könnte sagen, es lag

Dodo

am Umzug auf Python 3, aber nein, da

Dodo

Wurde gerade als Chaosdorf umgebaut.

Dodo

Und ja, da fing dann das Python-Fu an.

Dodo

Und da ich halt eine etwas modernere Programmiersprache lernen wollte,

Dodo

ja, habe ich dann da angefangen.

Dodo

Dann habe ich mich zwei Jahre relativ intensiv mit Python beschäftigt.

Dodo

Bin auch so ungefähr bis zur Objektorientierung gekommen.

Dodo

Die war mir dann aber zu kompliziert

Dodo

und bin bei funktionaler Programmierung geblieben.

Dodo

Ja, und dann...

Dodo

Ja, Objektorientierung habe ich auch nie wirklich verstanden,

Dodo

bis ich zum Python-Fu gekommen bin.

Dodo

ja, später habe ich dann

Dodo

wieder eingesetzt und ja, seitdem beschäftige

Dodo

ich mich damit hobbymäßig.

Niklas

Und das

Dodo

voran. Naja, weil

Niklas

ihr Geld bekommt man dafür nicht.

Niklas

Ja.

Jochen

Naja, aber

Jochen

ich meine,

Jochen

ihr habt ja dann wahrscheinlich auch schon eine Menge

Jochen

Leute sozusagen kommen und

Jochen

gehen sehen. Gibt es denn irgendwie welche, die dann

Jochen

irgendwann mal dazugestoßen sind

Jochen

und dann halt länger dabei geblieben sind? Ihr verfolgt ja

Jochen

wahrscheinlich auch, was dann so ein bisschen mit den Leuten

Jochen

passiert. Ist das eher eine Sache, die

Jochen

einen dann motiviert oder ist es deprimierend, dass

Jochen

alle Leute dann doch wieder irgendwann aufhören und

Jochen

verschwinden? Jetzt einer davon sitzt ja hier.

Jochen

Ach ja.

Dodo

Du darfst jetzt überlegen, wer.

Dodo

Wir sind meistens da.

Dodo

Ja, ich glaube, ein paar

Dodo

Leute sind tatsächlich

Dodo

zum Python

Dodo

hinzugekommen,

Dodo

aber meistens hatten die schon ein bisschen

Dodo

Background Python-Technik.

Dodo

Es gibt halt Leute, die kommen einmal,

Dodo

es gibt Leute, die kommen zweimal

Dodo

und es gibt Leute, die kommen immer wieder.

Dodo

Genau.

Dodo

Das ist, glaube ich, auch so eine Schwierigkeit von

Dodo

dem Termin, dass wir eben die ersten beiden Donnerstage

Dodo

im Monat haben und dann ist nach dem zweiten Donnerstag

Dodo

wieder ein Monat dazwischen.

Dodo

Da kommen sie wieder vergessen.

Dodo

Da wäre glaube ich tatsächlich wöchentlich

Dodo

oder wie zweiwöchentlich

Dodo

oder sowas, alle zwei Wochen

Dodo

jedenfalls ein regelmäßigeres

Dodo

Treffen glaube ich sinnvoller.

Dominik

Wie oft habt ihr denn schon die erste

Dominik

Diktion Leuten geteilt?

Dodo

Die erste können wir am besten, weil wir es

Dodo

am häufigsten getan haben. Also das ist

Dodo

natürlich bei uns auch ein

Dodo

progressierender

Niklas

Progress sagen. Hat uns da mal eine sehr schöne

Niklas

E-Mail geschrieben, warum wir alles zu schnell

Dodo

machen. Auf die wir auch nicht geantwortet haben,

Dodo

weil wir sind super. Ich fand aber jetzt nicht

Dodo

so schnell. Ja, also die erste

Dodo

Lektion, ich glaube, 20

Dodo

Mal haben wir die bestimmt schon gemacht.

Dodo

Mehr.

Dodo

Ich habe jetzt grob im Kopf

Dodo

überschlagen, aber tatsächlich ist das bei

Dodo

uns natürlich auch ein steter

Dodo

Vorgang, dass wir uns immer wieder

Dodo

verbessern. Ich finde das ganz schön.

Dodo

Wir haben die Beispiele und auch die

Dodo

Hinweise ja auch so ins GIT-Report

Dodo

und da kann man sehen, was wir bei ihm geändert haben.

Dominik

In dem Repo, könnt ihr einmal kurz die Adresse

Niklas

nochmal... Wir diktieren es hier nicht.

Niklas

Nee, könnt ihr die nicht einfach in die Show Notes packen?

Jochen

Ja, ja, doch, doch, genau, die packen wir in die Show Notes.

Dodo

Python for Light. Ihr findet das Repo in den

Dodo

Show Notes.

Dominik

Ja. Ich glaube,

Dominik

das ist auch schon in der ersten

Jochen

Folge, oder? Aber das ist ja schon,

Jochen

wenn man das ein paar Mal gemacht hat,

Jochen

das wird ja dann immer polierter. Habt ihr mal drüber nachgedacht,

Jochen

das irgendwie, keine Ahnung, irgendwie davon

Jochen

einen Screencast zu machen oder das irgendwie mal

Jochen

mitzustellen und zu veröffentlichen oder so?

Niklas

Wir sind ja nicht Geld getrieben.

Dodo

Ja, wir sind nicht Geld getrieben.

Jochen

Nee, darum geht's ja gar nicht.

Jochen

Aber allein einfach, weil so viele Leute,

Jochen

die das so oft gemacht haben, gibt's ja wahrscheinlich

Jochen

gar nicht, ne, die in so einer Einführungsveranstaltung

Jochen

irgendwie tatsächlich sind.

Dodo

Wir haben uns halt überlegt, dass wir das Gitterprepo

Dodo

möglichst ausformulieren, dass halt auch Leute,

Dodo

die nicht zu der Veranstaltung kommen, sich das angucken können.

Dodo

Screencast haben wir bisher nicht gemacht.

Dodo

Nee.

Dodo

Da müssten wir uns ja auch hinsetzen und das schneiden und so.

Dodo

Ja, stimmt.

Dodo

Wir verbringen halt meistens wirklich nur Zeit, wenn wir da sind.

Dodo

Der Vorteil ist halt, wenn wir dann mal Abend haben,

Dodo

wo niemand kommt, können wir an den Beispielen

Dodo

arbeiten, was ja auch schon mal vorkommt.

Dodo

Ja, prinzipiell ist das

Dodo

natürlich auch eine schwierige Sache, weil,

Dodo

wie gesagt, es gibt

Dodo

verschiedene Arten davon, wie man das

Dodo

am besten lernt, so für einen selber.

Dodo

Und klar gibt es die

Dodo

Leute, die einfach nur Code

Dodo

lesen und den abarbeiten können, aber

Dodo

es gibt natürlich auch die Leute, die

Dodo

möchten, dass man denen das erklärt und

Dodo

mit denen macht. Und deshalb fände ich es

Dodo

schwierig,

Dodo

quasi den Code so zu halten, dass

Dodo

der für alle passt. Deshalb

Dodo

sind wir da ja auch relativ

Dodo

anpassungsfähig, je nachdem, wer

Dodo

zu uns kommt. Was mir jetzt auffällt, ist, dass Leute

Dodo

tatsächlich relativ selten Fragen stellen. Da sollten wir

Dodo

vielleicht auch noch häufiger gucken, dass das passiert.

Dodo

Ja, dass wir das interaktiver gestalten,

Dodo

meinst du? Ja.

Dodo

Da hatte ich aber letztens ein paar

Dodo

Ideen. Und diese E-Mail.

Jochen

Eine interessante Strategie, die ich schon ein paar Mal gesehen habe,

Jochen

die ganz gut funktioniert, ist, wenn die Leute

Jochen

halt sich nicht trauen, oder so, Fragen zu stellen,

Jochen

dass man dann einfach als derjenige,

Jochen

der irgendwie eine Schulung macht oder

Jochen

einen Vortrag hält oder so, dann einfach vor allen Dingen, wenn es nicht so

Jochen

viele Leute sind, geht das gut, dann die Leute fragt.

Jochen

Oh nein. Das ist ein bisschen

Jochen

übergriffig. Das habe ich früher in der Schule schon gehört.

Dodo

Ich meine, das Gute ist ja, dass wir

Dodo

ja meistens zu zweit uns dann auch selber

Dodo

an den Ball so ein bisschen zuspielen können.

Dodo

Unsere Überleitungen sind immer grandios.

Dodo

Oh ja.

Dominik

Sind berühmt.

Dodo

Ich glaube, so positiv.

Dodo

Ja, ich glaube,

Dodo

Wir haben da durchaus noch

Dodo

Verbesserungspotenzial, gerade was

Dodo

den Beispielcode angeht.

Dodo

Ulrich West hat gerne gesehen.

Dodo

Gerne, genau.

Dodo

Ja,

Dodo

ich glaube aber,

Dodo

dass wir das schon relativ gut hinkriegen.

Dominik

Bis zu welchem Level geht

Dominik

denn der Python-Fool light?

Dodo

So lange, bis Leute bleiben.

Dodo

Wir haben

Dodo

das ja in Level aufgeteilt,

Dodo

die er gerade schon erwähnt hat, damit man das quasi

Dodo

ja, damit jemand, der

Dodo

zu uns kommt, den können wir dann sagen,

Dodo

guck mal, wir haben hier 10 Level,

Dodo

lies die mal durch und sag mir, wo du

Dodo

dich einordnest. Nenne eine Zahl zwischen 1 und

Dodo

10. Nenne eine Zahl zwischen 1 und 10

Dodo

und dann machen wir von da an.

Dodo

Einerseits dient das

Dodo

natürlich der Strukturierung, weil dann kann man sagen

Dodo

so, okay, Level bla bla bla

Dodo

mach das und das, Level bla bla bla

Dodo

mach das und das, dann lese ich mir jetzt

Dodo

das Level durch und kann mich

Dodo

mit dem Thema beschäftigen. Das ist auch

Dodo

wichtig für Leute, die wiederkommen, weil wir uns dann

Niklas

nicht merken müssen, bis wohin haben wir gemacht,

Dodo

sondern in keinem Fall wissen die Leute das selber.

Dodo

Das ist natürlich unsere Bequemlichkeit.

Dodo

Also

Dodo

ich glaube, das Repo hat offiziell

Dodo

zehn Level. Angefangen bei

Dodo

wie führe ich

Dodo

Code in Python aus? Dann was ist

Dodo

eine Variable? Was ist eine Variable?

Dodo

Wie weise ich eine Variable zu?

Dodo

Was sind Zahlen? Was sind Zahlen?

Dodo

Ja, wobei das geht, glaube ich,

Dodo

in die Zahlentheorie rein. Das wollen wir, glaube ich,

Jochen

nicht. Das ist ganz einfach. Zahlen

Jochen

müssen die Äquivalenzklassen

Jochen

gleichmächtiger Mengen.

Dodo

Genau, bitte.

Dodo

Ja, das geht dann über

Dodo

If-Bedingungen,

Dodo

Schleifen, Funktionen,

Dodo

Rekursionen.

Dodo

Konsolenanwendungen.

Dodo

Das ist ein neues Kapitel, das wir eingeschoben haben,

Dodo

weil wir dachten, wenn wir direkt mit der

Dodo

Objektorientierung ankommen, dann sind die meisten Leute

Dodo

ein bisschen überrascht und uns wäre es

Dodo

lieber, wenn man Sachen dann zu dem Zeitpunkt mal praktisch

Dodo

anwenden könnte.

Dodo

Das ist ja auch eine Stärke von Python, dass die Objektorientierung zwar da ist und auch alles in Python ein Objekt ist, aber du musst sie eben nicht verwenden.

Dodo

Also du kannst in Python auch komplett ohne Klassen arbeiten und das hatte der Shizi tatsächlich einmal erzählt, dass er, wenn er mit Klassen arbeitet, eben nur objektorientiert, weil die anderen Arten von Klassen, die es da gibt, braucht man ja nicht.

Dodo

uns fragen halt mal Leute, wofür brauche

Dodo

ich denn jetzt diese Objektorientierung?

Dodo

Wir können das nicht beantworten, weil das geht

Dodo

meistens auch ohne. Ja.

Dodo

Ja gut, also nach Objektorientierung

Dodo

machen wir dann noch Generatoren und sowas.

Dodo

Assert, Yield.

Dodo

Wir haben

Dodo

dann ein Beispiel für eine grafische

Dodo

Anwendung mit QT, glaube ich. Ja.

Dodo

Und irgendwie so

Dodo

eine Whisky-Sache

Dodo

mit Werkzeug.

Dodo

Die haben wir noch niemandem gezeigt,

Dodo

weil Leute sind nicht lange noch gekommen.

Dominik

Die kennst du ja auch noch nicht, die Whisky mit Nergst und Gold.

Dodo

Ja, musst du mal wieder kommen.

Dominik

Ist geplant.

Dodo

Ich wundere übrigens auch, wie du die Markdown-Seite im Kopf ausländisch kannst.

Dodo

Naja, es sind jetzt drei Jahre, das hat sich nicht so groß an die Erinnerungszeit geändert.

Niklas

Aber du hast die Witze entfernt.

Niklas

Es gibt so eine Geschichte, wir saßen mal in einem Zug nach Hamburg und es war ein bisschen langweilig.

Niklas

Und dann haben wir zu Kapitel 5,5 einen Text geschrieben.

Niklas

den man nur noch in der Wikihistory

Niklas

findet. Ich glaube, das reicht jetzt.

Niklas

Also, war's okay.

Dodo

Ja, es ging,

Dodo

Level 5.5 ging damals um

Dodo

Themen, die in den bisherigen

Dodo

Leveln keinen Platz gefunden haben.

Jochen

Ist Kapitel 5.5 sowas wie Gleis 9.5

Jochen

oder so ein bisschen? Ja, ein bisschen.

Dodo

Wir wollten halt noch Themen unterbringen,

Dodo

über die wir bisher nicht gesprochen haben,

Dodo

weil entweder

Dodo

passten die nicht, die wären zu weit

Dodo

gegangen oder sie hätten

Dodo

den Fortschritt so ein bisschen... Wir gehen doch immer

Dodo

zu weit. Genau, sie hätten den Fortschritt

Dodo

so ein bisschen aufgehalten und das waren dann

Dodo

hauptsächlich

Dodo

Metathemen, die man, die jetzt

Dodo

nicht zwingend direkt was mit Python zu

Dodo

tun haben, sondern mehr

Dodo

da ging es dann darum, welchen Texteditor

Dodo

benutze ich, wie mache ich das mit

Dodo

Git, wie schreibe ich am besten

Dodo

Doku, wie schreibe ich Doku.

Dodo

Mir fällt übrigens ein, wir sollten

Dodo

noch ein Kapitel zu Tests einführen.

Niklas

Ja, wir

Niklas

sollten nicht nur erwähnen, dass sie wichtig

Niklas

sind, sondern uns trotzdem mal selber angucken, wie das

Niklas

überhaupt geht. Also ich habe

Niklas

das meiste,

Niklas

was ich über Python weiß, tatsächlich

Niklas

gelernt, dass ich es an den Leuten beibringe.

Dodo

Wenn man dann immer noch so Sachen

Dodo

merkt,

Dodo

sieht man, oh, das weiß ich doch eigentlich gar nicht

Dodo

so wirklich, wie das im Detail funktioniert.

Dodo

Das fällt mir immer wieder auf, dass wir dann

Dodo

auch, da wir gegenseitig uns

Dodo

den Ball zuspielen und doofe Fragen stellen

Dodo

und auch

Dodo

Grenzfälle austesten, dass

Dodo

ich jeden Abend, wo ich anderen was

Dodo

beibringe, auch selber sehr viel mitnehme.

Dodo

Du wirst dann halt das Problem haben, dass wir vielleicht dann auch ein bisschen zu tief einsteigen, dass den Leuten, die da sitzen, dann doch nicht so wichtig ist.

Dodo

Ja, das stimmt.

Dominik

Ja, weil es gibt halt auch Leute, die Interesse an diesen ganzen Details haben.

Dominik

Und ihr habt auf jeden Fall vollkommen recht, dass dieses Lernen einfach großartig ist, um tiefer einzusteigen in das Thema.

Dominik

Habe ich übrigens auch gemacht, also ganz am Anfang, obwohl ich noch nicht so viel selber konnte.

Dominik

Aber das, was ich konnte, konnte man schon kleinen Kindern beibringen und die haben sich sehr darüber gefreut.

Dominik

Und haben tatsächlich dann auch ihre ersten Programme schreiben können.

Dominik

Das ist echt super.

Dominik

Dadurch sind halt die Basics dann irgendwann wirklich

Dominik

feste. Das ist vielleicht nicht so unwichtig.

Dodo

Ich glaube auch, dass Python eine sehr gute

Dodo

Programmiersprache ist, um quasi

Dodo

als kompletter Anfänger

Dodo

als erste Programmiersprache

Dodo

Python zu lernen. Einerseits, weil es

Dodo

relativ wenig Einstiegshürden hat,

Dodo

die anderen Programmiersprachen bieten.

Dodo

Es gibt ja diesen schönen Spruch,

Dodo

Python ist wie Pseudocode, aber

Dodo

man kann ihn ausführen.

Dodo

Ja, das und

Dodo

ihr hattet das, glaube ich, in eurer

Dodo

ersten Folge erwähnt, dass

Dodo

Python einfach ist und

Dodo

dadurch sehr gut für Anfänger geeignet

Dodo

ist. Und

Dodo

ich finde, das ist auch soweit korrekt.

Dodo

Ja, Pseudocode, den man

Dodo

ausführen kann, passt schon sehr gut.

Jochen

Womit

Jochen

fangt ihr denn an, wenn

Jochen

ihr Leuten jetzt quasi

Jochen

sozusagen das

Jochen

Python nahe bringen wollt?

Jochen

Was wäre denn sozusagen euer erstes Beispiel

Jochen

oder sowas? Hello World natürlich.

Jochen

Hello World, natürlich, genau. Das ist natürlich viel einfacher.

Dodo

Ja, normalerweise fangen wir, zeigen wir einfach auf dem großen Fernseher einen Interpreter und fangen an, Code zu schreiben.

Niklas

Danke an Plant. Danke an Plant für den Fernseher.

Dodo

Ja, wir sitzen dann da am langen Tischreihe und einer sitzt meistens nah am Fernseher und zeigt dann auf B-Python meistens Code.

Dodo

Gerade für kürzere Sachen haben wir festgestellt, dass der Interpreter geeigneter ist, als wenn wir das in eine Datei schreiben würden und ausführen würden.

Dodo

Natürlich könnte man das auch als Jupyter-Notebook machen, das wäre vielleicht sogar noch ein Schritt weiter.

Niklas

Ich benutze manchmal in den höheren Leveln Hydrogen, das ist ein Atomplugin, das so wie Jupyter funktioniert, zahlenweise.

Dodo

Aber das macht halt erst ab größeren Dateien auch irgendwie Sinn, am Anfang kann man das halt einfach neu eintippen.

Dodo

Gerade auch, weil B-Python so

Dodo

einen Modus hat, wo du die gesamte

Dodo

Historie im Texteditor bearbeiten kannst

Dodo

und dann wieder ausführen kannst.

Dodo

Dann musst du es halt eigentlich nicht unbedingt speichern.

Dodo

Und

Dodo

B-Python kommt uns natürlich da

Dodo

sehr entgegen. So mit Autovervollständigung

Dodo

und Syntax-Verleitung, das ist schon echt cool.

Dodo

Also, ja.

Dodo

Es ist bunt.

Dodo

Das B für bunt?

Dodo

Ja, ja, das steht für Bunt-Python.

Dodo

Weil

Dodo

das ist auch deutsche Sprache.

Dodo

Ja, und meistens in, ich glaube, spät höheren Leveln zeigen wir dann auch einfach die Code-Beispiele, die wir geschrieben haben, aber gerade am Anfang, weil man im Interpreter auch deutlich besser auf Fragen eingehen kann, da kann ich dann einfach den, wenn ich gefragt werde, was ist denn, wenn ich das und das mache, kann ich das einfach direkt zeigen, als wenn ich das in eine Datei schreibe und dann das wieder committen muss.

Dodo

und so. Wir wechseln dann meistens

Dodo

so bei ifs und schleifen.

Dodo

Ja, weil da ist es dann

Dodo

irgendwann, dann hast du auch Verschachtelungen

Dodo

und sowas und dann wird es schwieriger, einfach

Dodo

nach oben zu drücken. Ja.

Dodo

Ja. Da wird es dann anstrengend

Dodo

irgendwie mit B-Python. Das könnte man tatsächlich

Dodo

wahrscheinlich eben

Dodo

Jupyter-No-Pub machen.

Jochen

Ja.

Jochen

Aber dann hat man halt tatsächlich auch wieder

Jochen

erstmal so einen Webbrowser dazwischen und dann muss man,

Jochen

wenn die Leute das machen,

Jochen

Wenn die Leute das nachvollziehen wollen,

Jochen

wird es wieder schwerer.

Dominik

Jupiter habe ich immer gerne mal

Dominik

versucht, so zwischendurch anzutesten. Das ist natürlich super nett,

Dominik

gerade wenn man so Graphen noch einbaut,

Dominik

weil man direkt die Auswirkungen von dem Datensatz

Dominik

in diesen Graphen sehen kann. Aber ansonsten

Dominik

fand ich es eher so ein bisschen anstrengend.

Dominik

Aber vielleicht bin ich jetzt auch nicht wirklich drüber

Dominik

gestolpert.

Jochen

Ich glaube, man hatte erst so richtig

Jochen

den, also für mich

Jochen

hat es halt dann richtig funktioniert, als

Jochen

ich

Jochen

gemerkt habe, dass ich mir damit eine Menge Zeit

Jochen

sparen kann, wenn man

Jochen

Schritte hat, also die irgendwie Daten laden

Jochen

oder Sachen, die lange laufen

Jochen

und wenn man dann irgendwie Fehler

Jochen

macht und dann nicht alles

Jochen

weg ist, sondern man den Fehler

Jochen

korrigieren kann und das dann nochmal die Zelle

Jochen

ausführt und es dann einfach weitergeht.

Jochen

Das war dann so, wo ich mir dachte, wow.

Dominik

Das ist der beste Debuggen dann quasi.

Jochen

Ja, das ist halt so das,

Jochen

wofür ich das dann brauche. Aber wenn

Jochen

ich jetzt zum Beispiel Webentwicklung mache, dann

Jochen

benutze ich das zwar auch, aber

Jochen

deutlich seltener. Also eigentlich eher nur dann,

Jochen

wenn ich halt so viel

Jochen

Jobs habe, die eine Menge Zeugs

Jochen

berechnen.

Jochen

Ja, aber

Jochen

nee, das ist schon, ja.

Dominik

Jetzt sind wir gerade wieder bei der

Dominik

Umgebung. Welche nutzt ihr denn so privat

Dominik

dann?

Dodo

Inwiefern Umgebung?

Dominik

Benutzt ihr überhaupt eine oder bleibt da alles in der

Dominik

Shell oder?

Niklas

Ich schreibe meinen Code PeterNadel auf der Platte.

Niklas

Ach so.

Niklas

Also ich persönlich

Dodo

ich bin ein großer Fan von Atom, weil ich halt

Dodo

nicht nur Python benutze,

Dodo

sondern auch irgendwie für die Software, die wir

Dodo

im Dorf haben, die existiert.

Dodo

Oder ob ich auch für die Uni diverse

Dodo

Programmiersprachen nutzen muss. In Atom kann

Dodo

ich halt Plugins für irgendwie alle Sprachen installieren

Dodo

und dann funktioniert das halt ähnlich.

Dodo

Ich muss mir das nicht immer einzeln anschauen.

Dodo

Ja.

Dodo

Ja, ich glaube, ich habe jetzt einmal alles

Dodo

ausprobiert.

Dodo

Am Anfang war es tatsächlich

Dodo

G-Edit, der

Dodo

vorinstallierte Texteditor von Gnome.

Dodo

Das hat auch gut funktioniert,

Dodo

weil es hat halt Syntax-Highlighting

Dodo

und mehr brauchte ich da nicht.

Dodo

Dann war so ein bisschen meine Sublime-Textzeit.

Dodo

Das hat jetzt auch nur ein bisschen mehr gemacht als G-Edit.

Dodo

Also ich konnte den Code auch im Editor direkt ausführen.

Dodo

Sublime hat dann eine Python-Konsole aufgemacht.

Dodo

Das hat auch gut funktioniert.

Dodo

Dann habe ich auch Atom benutzt,

Dodo

auch mit Plugins, die mir dann zum Beispiel

Dodo

den Linter gemacht haben

Dodo

oder eine Python-Kondole.

Dodo

Mittlerweile bin ich bei VS Code

Dodo

angelangt mit

Dodo

ich glaube, ich weiß nicht, ob es da Plugins oder

Dodo

Add-ons heißt. Jedenfalls

Dodo

ein Flake 8 Add-on, dass

Dodo

er mir direkt die

Dodo

Type Annotations

Dodo

Oh ja, MyPile. Ja, ich glaube,

Dodo

das ist, ich habe glaube ich nur

Dodo

das Flake 8

Dominik

oder auch MyPile. Das ist großartig, habe ich auch

Dominik

für mich entdeckt und da kann man ja auch die Kitverwaltung

Dominik

direkt eintrauen und man hat so eine tolle

Dominik

Live-Share-Funktion, da kann man kollaborativ

Dominik

direkt arbeiten, als hättest du mal vor dem gleichen

Dominik

Rechner.

Dodo

Also aktuell

Dodo

mein Workflow ist... Das gibt man im VI auch.

Jochen

Screen minus X

Jochen

und...

Jochen

Das ist schon so ein bisschen angestaubt.

Dodo

Letztendlich sind wahrscheinlich alle Texteditoren

Dodo

irgendwie, aber wir scheinen alle nicht

Dodo

wirklich so eine Idee zu nutzen, sondern eher

Dodo

Texteditoren mit irgendwie zig Plugins, ne?

Dodo

Ja, ich... Also PyCharm habe ich

Dodo

installiert, ich starte es irgendwie jedes halbe Jahr

Dodo

machen und machst dann direkt wieder zu?

Jochen

Ich verwende es tatsächlich auch

Jochen

manchmal länger.

Jochen

Wobei, ehrlich gesagt, eher

Jochen

WebStorm als PyCharm.

Jochen

Also die gleiche

Jochen

Idee, aber für JavaScript.

Jochen

Oder halt TypeScript in meinem Fall

Jochen

jetzt.

Jochen

Ja, aber ich finde PyCharm auch schwer

Jochen

zu bedienen. Also es ist halt,

Jochen

es kann schon auch coole Sachen, aber

Jochen

es ist halt irgendwie, es fühlt sich nicht

Jochen

so gut an wie ein richtiger Editor

Jochen

irgendwie. Und ich meine,

Jochen

Selbst Atom, das ja

Jochen

im Grunde auch mehr so ein

Jochen

Browser mit irgendwie

Jochen

JavaScript und dann im Editor in JavaScript

Jochen

in dem Browser ist, fühlt sich halt viel

Jochen

irgendwie

Jochen

so agiler an als PyCharm.

Niklas

Was man da sagen muss, ist, dass die bei Atom

Niklas

in den letzten zwei Jahren wirklich stark an der

Niklas

Performance gearbeitet haben. Also wahrscheinlich auch dadurch

Niklas

bedingt, dass viele Leute auf VSCode umgestiegen

Niklas

sind, weil es halt schneller war.

Niklas

Atom ist wesentlich schneller geworden tatsächlich.

Jochen

Ah, okay. Muss ich vielleicht auch nochmal ausprobieren.

Dodo

Ich finde, der Niklas hat auch eben

Dodo

einen guten Punkt gebracht, dass eben

Dodo

klar, wenn ich mit Python arbeite,

Dodo

gibt es wahrscheinlich nichts Besseres als PyCharm,

Dodo

also keine umfassendere

Dodo

Lösung, gerade weil

Dodo

die Professional-Version

Dodo

auch noch sehr gute

Dodo

Interaktionen

Dodo

mit anderen Sachen, zum Beispiel Git oder

Dodo

Django liefert, nur

Dodo

gerade wenn ich

Dodo

in mein Git-Repo nicht nur

Dodo

Python-Dateien, sondern eventuell noch eine

Dodo

Markdown-Datei oder ein Bild habe,

Dodo

oder ganz andere Sachen, dann hilft mir PyCharm nicht,

Dodo

weil dann habe ich VS-Code und dann kann ich da die Code-Dateien öffnen,

Dodo

dann kann ich die CSV-Datei ändern,

Dodo

da kann ich die readme.nd ändern,

Dodo

da kann ich mir das Bild angucken,

Dodo

alles in einem Programm,

Dodo

statt dass ich die Python-Datei in PyCharm bearbeite,

Dodo

die Markdown-Datei in meinen Markdown-Viewer,

Dodo

das Bild in meinen Bildbetrachter

Dodo

und die CSV-Datei in

Dodo

meine Tabellenkalkulation.

Dodo

Also so am krassesten

Dodo

habe ich mich gefühlt tatsächlich, als ich mit

Dodo

Plattwurm irgendwie so ein Diagramm gemacht habe

Niklas

und das dann halt in Atom auch

Niklas

direkt schreiben und dann live gerendert habe und das

Niklas

dann in Readme eingebunden und

Dodo

das war schon recht

Dodo

cool. Gerade für so Sachen, wo man

Dodo

eben nicht nur Codedateien

Dodo

im Repo

Dodo

hat, ist glaube ich so ein Texteditor

Dodo

mit Atoms

Dodo

ist die bessere

Dodo

Option, weil dann kann ich mir

Dodo

VS-Code und dann habe ich eben

Dodo

Autocompletion

Dodo

für Python und mein

Dodo

Linter und mein MyPy

Dodo

und vielleicht dann noch ein

Dodo

Preview für Markdown-Dateien

Dodo

und der Bildbetrachter ist

Dodo

eingebaut. Da habe ich dann

Dodo

alles in einem Programm, habe an der Seite

Dodo

die Ordner

Dodo

Übersicht

Dodo

und dann kann ich da durchgehen,

Dodo

habe das in einem Programm

Dodo

zweites Fenster noch das Terminal und bin damit

Niklas

voll zufrieden. Und die Einstiegshürde

Dodo

ist auch geringer. Ich kann mir irgendwie

Dodo

Subclime installieren, die Datei öffnen und da kann ich direkt

Dodo

anfangen zu programmieren. Ich muss mir

Dodo

nicht erst mal durch den Einstellungsdialog

Dodo

klicken, um herauszufinden, wie ich jetzt zoome oder so.

Dodo

Das funktioniert halt alles so,

Dodo

wie man es erwarten würde. Das finde ich schon praktisch.

Dodo

Das hatte ich,

Dodo

VS-Code habe ich jetzt erst seit neuerdings,

Dodo

also vielleicht drei

Dodo

Monate.

Dodo

Und da habe ich mich positiv

Dodo

überrascht, ich habe VS-Code geöffnet

Dodo

und wollte dann einfach meine Python-Datei

Dodo

ändern. Und da hat er

Dodo

direkt mir vorgeschlagen, hier möchtest

Dodo

du nicht dieses Add-on

Dodo

installieren, das dir die Autocompletion

Dodo

macht. Und ich so, ja, gerne.

Dodo

Hier, wähle dein Linter aus.

Dodo

Ja, gerne.

Niklas

Grace yourself, Linter is coming.

Dominik

Das ist ja sehr user-centric, ne?

Dodo

Natürlich. Und

Dodo

ja, in meinem

Dodo

RSS-Feed lese ich dann auch hin und wieder, welche

Dodo

Neuerungen in VS-Code jetzt

Dodo

bezüglich Python kommen und

Dodo

das sieht schon sehr gut aus.

Dodo

Ich hatte, also das einzige große

Dodo

Problem, was ich mal mit Atom hatte, ist

Dodo

Atom konnte sehr spät

Dodo

so Type Indications. Das hat bis

Dodo

irgendwie 1.25 oder so

Dodo

in feierlicher Methodensignatur

Dodo

war, ist das ganze Highlighting

Niklas

kaputt gegangen. Das war sehr

Niklas

witzig, weil das ja eigentlich schon seit Python 3

Niklas

im Sprachstandard enthalten ist und dann

Niklas

na, war gut, ja.

Dodo

Ich muss auch sagen, seitdem ich VS Code

Dodo

mit einem direkt eingebauten

Dodo

Linter benutze.

Dodo

Machst du weniger Fehler?

Dodo

Nicht nur, sondern da benutze

Dodo

ich auch richtig gut die Type

Dodo

Annotations und selbst wenn es irgendwie

Dodo

ein Skript von 50 Zeilen ist,

Dodo

dadurch, dass der mir

Dodo

darauf hinweist, wenn ich was

Dodo

falsch mache, benutze ich es häufiger

Dodo

und das finde ich, das ist schon

Dodo

ein positiver Nebeneffekt,

Dodo

dass ich schöneren, dokumentierten

Dodo

Codes schreibe. Ja, aber so Type Annotations machen wir

Dodo

uns am Anfang auch nicht sicher, wie wir das jetzt

Dodo

tatsächlich, sollen wir das zeigen?

Dodo

Soll das nicht zeigen? Ja.

Dodo

Wir haben es am Anfang so gemacht, dass wir

Dodo

die alte Syntax genommen haben,

Dodo

wo die Typen nicht bei den Variablen

Dodo

standen, sondern in Kommentaren dahinter.

Dodo

Weil wir uns überlegt haben, wir wollen eigentlich,

Dodo

dass unsere Beispiele mit allen Python-Versionen

Dodo

laufen. Zumindest mit allen Python 3

Niklas

Versionen. Also mit 3.4.

Dodo

Mit allen.

Niklas

3.1.

Niklas

Mit allen aktuell unterstützten Python 3 Versionen.

Niklas

Aber wenn dann jetzt 3.4 irgendwann stirbt,

Niklas

dann können wir uns überlegen, ob wir das nicht vielleicht

Dodo

auf die neue Syntax ändern.

Dodo

Ja, das ist natürlich auch so, gerade wenn man den Code für Einsteiger schreibt und nur sagt Python 3, dann muss man natürlich auch darauf achten, dass der Code kompatibel bleibt.

Dodo

Wir hatten zum Glück noch niemanden, der

Dodo

mit 3.2 oder 3.3 aufgetaucht ist.

Jochen

Das ist einfach zu schwer zu installieren,

Jochen

das schafft sowieso kein Anfänger.

Dominik

Gibt es wirklich noch zwei Sachen irgendwo?

Niklas

Docker, Python, Doppelpunkt, 3.2.

Jochen

Ja, also ich

Jochen

habe durchaus schon noch

Jochen

zum Beispiel, was mich irgendwie auch

Jochen

genervt hat beim Roster eines Kunden,

Jochen

der hatte, dessen aktuellste Version war

Jochen

Python 3.3, was halt

Jochen

und das war auch bei Debian halt

Jochen

irgendwie eine Zeit lang irgendwie so das, was halt

Jochen

dann dabei war und

Jochen

ja, das ist halt schon schlimm.

Jochen

Weil so 3.4 wäre echt gut gewesen.

Jochen

Ja.

Dodo

Also wir sagen uns halt, wenn die

Dodo

Version im Moment noch supported ist, dann

Niklas

versuchen wir auch die zu verwenden.

Niklas

Und es ist ja nur 3.4 im Moment noch

Niklas

als älteste.

Jochen

Also für mich war so 3.4

Jochen

die erste richtig gute 3er-Version,

Jochen

die man

Jochen

ja, woanders nicht mehr so dauernd

Jochen

Sachen auf dem Fuß gepreist hat.

Dominik

Waren da letztes Mal 2 über den Weg gelaufen, so im

Dominik

aktiven Betrieb?

Jochen

mir ehrlich gesagt schon ganz lange

Jochen

nicht mehr. Also ich

Jochen

würde sagen, das müsste dann schon so wahrscheinlich

Jochen

2000, na okay,

Jochen

so lange ist das jetzt auch nicht her,

Jochen

2014, 15

Jochen

gewesen.

Dominik

Letzte Woche hat er sich ein Startup getroffen, die so einen Sensor

Dominik

betrieben haben auf Python 2

Dominik

API-Base.

Dodo

Haben sie noch ein Jahr Zeit?

Dodo

Ich habe aber auch

Dodo

mittlerweile das Gefühl,

Dodo

dass Python 3 doch

Dodo

mittlerweile weit genug

Dodo

verbreitet ist. Also, dass Python

Dodo

2 doch langsam stirbt.

Dominik

Endlich das Problem gelöst.

Dominik

Keine zwei Sprachen mehr, sondern Progress.

Dominik

Ja. Sehr gut.

Dodo

Weil Python 3 ist dann irgendwann nicht mehr Zukunft,

Dodo

sondern Gegenwart. Wann kommt dann endlich

Dodo

Python 4?

Dominik

Soll es ja eigentlich gar nicht geben, wenn ich die Leute

Dominik

nicht verstanden habe. Ich habe einen Blogpost

Niklas

von 2015 gefunden, wo

Niklas

2020 drin stand.

Dominik

Aber da ist dann Python 3 42 oder so.

Dodo

Ich glaube es auch nicht.

Dodo

Da stellt sich

Dodo

dann natürlich die Frage, ob man bei

Dodo

Python überhaupt eine

Dodo

4 oder 3,141

Dodo

Wobei, es gab doch, ich meine

Niklas

in den Leasenodes 2.3.7 oder so

Niklas

gibt es irgendein Feature, dass

Niklas

Type Annotations als String betrachtet

Niklas

werden, wo steht, dass

Niklas

das Moment Opt-in ist, irgendwie mit From-Future-Import,

Niklas

aber Python 4 macht das dann als Standard.

Niklas

Und dann habe ich mir gedacht...

Niklas

Okay.

Jochen

Das mit dem Annähern an so eine

Jochen

Zahl, das ist ja, das ist leider

Jochen

schon ein bisschen vergeblich. Ich glaube, Latex macht E

Jochen

und Tech macht Pi oder so, ne?

Jochen

Oder? Die nähern sich mit ihren

Jochen

Versionen schon irgendwie.

Niklas

Wenn sie bei Sempfer bleiben würden, wäre ich

Jochen

davor. Ja, das wäre auch ganz gut.

Jochen

Das ist ein bisschen, also, ja.

Jochen

Ja, wenn man,

Jochen

wenn die Versionen nichts bedeuten, ist das auch

Jochen

ein bisschen schlecht.

Dominik

Ich kann auch jedes Jahr wieder hochzählen, dass wir irgendwann

Dominik

2020 angekommen sind.

Dodo

Wenn sich da nichts großartig ändert,

Dodo

warum nicht, ne? Das wird mich ja immer

Dodo

noch bei den Ubuntu-Versionen,

Dodo

die sich nach

Dodo

Buchstaben benennen und dann nach Z

Dodo

wieder bei A angefangen haben.

Niklas

Ja, was hättest du erwartet, dass die irgendwie

Niklas

auf dem Mobil springen oder was?

Dodo

Ich hätte 50 gefunden.

Niklas

Naja.

Dominik

Ja.

Dominik

Was mich jetzt noch interessieren würde,

Dominik

also auch aus Person.

Dominik

was wäre denn mit dem nächsten Level?

Dominik

Also wenn ich jetzt so die ganzen Basics

Dominik

ein bisschen verstanden habe,

Dominik

was würde ich denn als nächstes machen?

Dodo

Also wir müssen uns ja nicht immer

Dodo

da sklavisch an

Niklas

unser Rahmenprogramm halten. Das haben wir ja nur

Niklas

vorbereitet, damit wir im Notfall was haben.

Niklas

Also wenn Leute

Niklas

Fragen zu Themen haben, dann gehen wir da auch

Niklas

drauf ein oder wenn die irgendwie Projekte haben

Dominik

oder sowas. Projekte ist vielleicht ein gutes Stichwort.

Dominik

Das heißt, wenn man bei euch durch ist mit Tutorial,

Dominik

dann sollte man mit Projekten anfangen oder

Dominik

was würdet ihr empfehlen, um die Sprache

Dominik

so ein bisschen besser zu verstehen oder irgendwie so Konzepte

Dodo

zu durchschauen? Ja, ich glaube, es ist

Dodo

tatsächlich ein sehr guter

Dodo

Ansatz, dass man,

Dodo

wenn man mit dem Programmieren anfängt

Dodo

und dann das Tutorial bei uns

Dodo

absolviert hat,

Dodo

das muss man nicht mal alle zehn Level sein, sondern

Dodo

das kann halt auch,

Dodo

ich glaube, mit Level 6 haben wir

Dodo

Funktionen abgearbeitet. Ich glaube, es sind mehr als

Dodo

zehn Level.

Dodo

Grob

Dodo

zehn Level. Ich glaube, mit Level

Dodo

6 haben wir Funktionen abgearbeitet

Dodo

und dann, wenn man dann quasi

Dodo

ein Projekt hat, wenn man

Dodo

sich überlegt, ich möchte

Dodo

irgendwas mit Bildern machen,

Dodo

ich möchte irgendwas mit Zufall

Dodo

machen, ich möchte... Oder mit Netzwerk.

Dodo

Oder mit Netzwerk. Das waren dann

Dodo

quasi anfängend,

Dodo

normalerweise fange

Dodo

ich immer so an, erstmal

Dodo

wie macht man den

Dodo

Brandham-Algorithmus

Dodo

in Python? Dann google ich das und dann

Dodo

gehe ich auf Stack Overflow und gucke ich mir an,

Dominik

Jetzt musst du ganz kurz

Dominik

für unsere Hörerinnen erklären, was der

Dominik

Bentham-Algorithmus ist. Das würde ich auch gerne

Dodo

wissen. Das war

Dodo

ein Beispiel. Damit habe ich mich

Dodo

irgendwann mal beschäftigt. Ich weiß es selber nicht

Dominik

mehr. In die Shownotes

Dodo

kommt das dann? Ich kann es rausrufen.

Dodo

Also wie gesagt, meistens

Dodo

hilft es, wenn man ein Projekt hat,

Dodo

das möchte man machen und

Dodo

dann beschäftigt man

Dodo

sich daher mit Python,

Dodo

weil dann hat man ein Ziel

Dodo

und dann kann man

Dodo

gezielter Fragen stellen.

Niklas

Ansonsten haben wir ja auch

Niklas

diese Situation,

Niklas

dass wenn Leute beim ersten

Niklas

Donnerstag im Monat zu uns kommen und beim

Niklas

zweiten Donnerstag im Monat zu uns kommen,

Niklas

dass die Personen da ja doch irgendwie

Niklas

was mitgenommen haben, hoffentlich.

Niklas

Und dann kann man auch zum dritten Donnerstag im Monat kommen

Niklas

und dann sind wir nicht mehr da und dann

Niklas

kümmert sich jemand anders um.

Jochen

Ja, aber genau,

Jochen

wenn ihr sagt, ihr macht eine Funktion,

Jochen

wie tief geht denn das eigentlich

Jochen

sozusagen...

Dodo

Jetzt haben wir ein Rekursionslimit.

Niklas

Okay.

Jochen

Aber macht ihr auch so Dekoratoren

Jochen

dann noch an Funktionen?

Jochen

Ja, aber nicht in dem Level. Das kommt später.

Jochen

Erklärt ihr sowas, was Clutures sind

Jochen

und solche? Nein.

Dodo

Also das machen wir irgendwann.

Dodo

Ich meine, dann haben wir Level 8, 9 oder so.

Dodo

Aber nicht dann.

Dodo

Ja, ich glaube 8.

Dodo

Ja, das ist immer

Dodo

eine schwierige Abwägung.

Dodo

Weil man kann in die Themen viel tiefer reingehen.

Dodo

Wir haben zum Beispiel am Anfang auch nur positionale Parameter gemacht

Dodo

und das wird später irgendwie erweitert auf Keyword und sowas.

Dodo

Weil man möchte natürlich auch nichts erwähnen,

Dodo

was man noch nicht erklärt hat.

Dodo

Also zum Beispiel, wenn ich ein Level 1 Strings durchgehe

Dodo

und dann sage, ja, ich kann feststellen,

Dodo

ob ein String

Dodo

Uppercase oder Lowercase ist,

Dodo

wenn ich String.isLower schreibe,

Dodo

dann müsste ich

Dodo

eigentlich erklären, ja, das ist jetzt eine Methode

Dodo

von String, die rufe ich auf den String auf.

Dodo

Und dann kommt es als ersten Parameter self.

Dodo

Ja, aber

Dodo

ich persönlich finde es auch irgendwie doof zu sagen,

Dodo

das müsst ihr jetzt wissen, aber das machen wir

Dodo

später.

Dodo

Was erwähnt ist einfach gar nicht.

Dominik

Ja, aber ganz witzig da auch, weil

Dominik

ihr beide habt so ein bisschen andere Artenweise,

Dominik

diese einfacheren Dinge zu erklären. Und weil

Dominik

auch neue Leute dabei waren. Hatte ich zum Beispiel so, dass ich

Dominik

einige Lektionen von jedem von euch einmal gehört habe.

Dominik

Und das war sehr cool, weil ich dann bestimmte Sachen noch neu

Dominik

gelernt habe, die ich vorher noch nicht kannte. Das erinnert sich auch

Niklas

bei der gleichen Person jeden Monat.

Niklas

Wir lernen

Dodo

ja auch dazu. Hoffentlich.

Dodo

Ich behaupte, wir haben

Dodo

beide schon sehr viel daraus mitgenommen.

Dodo

Ich finde es halt immer doof, wenn man

Dodo

Sachen nach hinten verschiebt und sagen muss,

Dodo

ja, also Print, das ist

Dodo

eine Funktion. Und was eine Funktion ist,

Dodo

das sagen wir später. Oder auch

Dodo

in Programmierungen der

Dodo

Uni in Java, ne? Erstmal, das

Niklas

ist eine Klasse, das ist eine Funktion, das erklären

Dodo

wir später. Ich finde das

Dodo

immer, wenn man was erwähnt, dann soll man es

Dodo

erklären. Und klar, man

Dodo

kann die Print-Funktion,

Dodo

man kann auch einfach hinnehmen,

Dodo

dass wenn ich da einen String reintue, dann wird er ausgedruckt.

Dodo

Wir können ja Funktionsaufrufe

Dodo

auch machen, bevor wir selber Funktionen

Dodo

definieren. Das ist ja kein Problem. Man kann

Dodo

sagen, so, das ist eine Funktion,

Dodo

die

Dodo

bietet die Möglichkeit, einen Code

Dodo

abzuspeichern und wieder auszuführen

Dodo

und wie man das selber definiert,

Dodo

machen wir später.

Dodo

Aber gerade bei diesem

Dodo

String-Beispiel, dass man eben Funktionen

Dodo

hatte, die auf einen String

Dodo

aufgerufen werden und nicht mit einem String,

Dodo

das...

Dodo

Es hat bisher auch zum Glück niemand gefragt, warum da

Dodo

ein Punkt steht.

Dodo

Das ist so eine

Dodo

Schwierigkeit, die es mit

Dodo

Sicht bringt, wenn man eben

Dodo

am Anfang Sachen erklären will, aber

Dodo

noch nicht zu sehr darauf eingehen möchte,

Dodo

warum das jetzt so ist.

Dominik

Und wenn man dann

Dominik

also weitergekommen ist, dass man halt viele

Dominik

von diesen Konzepten verstanden hat und sein eigenes Projekt

Dominik

angefangen hat, dann ist halt die Frage,

Dominik

möchte man jedes Projekt dann komplett abschließen

Dominik

oder hat man in dem Projekt so schnell was gelernt, dass man direkt

Dominik

nächstes Mal. Wie viele von euren Projekten habt ihr nicht

Dominik

fertig gemacht? Alle werde

Niklas

ich irgendwann nochmal fertig machen, glaube ich.

Dodo

Also

Dodo

das ist das erste Projekt, mit dem ich angefangen habe

Dodo

war

Dodo

das war irgendwie eine Verwaltung

Dodo

für einen Videorekorder. Ich habe zu Hause

Dodo

so einen Festplattenrekorder, mit dem

Dodo

konnte ich irgendwie Dinge aus dem Fernsehen aufnehmen

Dodo

und dann habe ich mir gedacht, das wäre ja

Niklas

total cool, wenn ich die dann irgendwie so

Niklas

sortieren könnte, irgendwie nach einer Staffel

Niklas

Episode und sowas.

Niklas

Es gibt da ja auch so Online-Datenbanken.

Niklas

Und das war mein erstes Projekt und

Niklas

ich mache da alle zwei Jahre nochmal

Niklas

so einen Commit und bitte guckt euch nicht

Niklas

auf GitHub an, das ist schrecklich.

Dodo

Ja, ich glaube, ich habe auch noch

Dodo

auf meinen GitHub-Repo, in

Dodo

meinen GitHub-Account

Dodo

Karteileichen von Projekten, die ich mal

Dodo

angefangen habe, halbherzig

Dodo

irgendwann dann

Dodo

liegen lassen. Da müsste ich, glaube ich, auch mal

Dodo

auskehren.

Dodo

Noch diesen einen YouTube-Client, der irgendwann

Niklas

einfach das Stack-Limit erreicht,

Niklas

weil jeder Menüpunkt ein neuer

Niklas

Regressions-Sys. Ja,

Dodo

das Programm gibt es noch. Ich glaube,

Dodo

das funktioniert sogar noch, aber

Dodo

da habe ich halt seit Jahren nichts

Dodo

mehr gemacht. Und ich

Dodo

nehme mir vor, das irgendwann zu tun, aber

Niklas

ja.

Niklas

Man kann

Niklas

Repos ja auf GitHub mittlerweile auch archivieren,

Niklas

aber ich hatte bisher noch nie

Niklas

diese harte Entscheidung getroffen,

Niklas

das dann doch nicht mehr zu machen.

Jochen

Nee, das, genau.

Jochen

Es gibt da mehrere, also bei mir

Jochen

auch, ich hab ganz, ich weiß nicht genau,

Jochen

ich hab vielleicht so

Jochen

60 GitHub

Jochen

Repos oder sowas.

Jochen

Ich sammle die nicht, aber

Jochen

im Verlauf der Zeit passiert das irgendwie

Jochen

und dann gibt es halt unterschiedliche Stadien

Jochen

in denen sich Projekte befinden können

Jochen

und die, also

Jochen

tatsächlich, ich habe auch noch nie ein GitHub-Repo gelöscht

Jochen

oder ein Projekt wirklich komplett wieder verschwinden

Jochen

lassen, aber es gibt dann halt welche

Jochen

dann, wenn ich dann schon mal eine Domain

Jochen

registriere, dann ist es schon ernster.

Jochen

Oh ja!

Niklas

Ich habe halt wohl Projekte, die

Niklas

ziemlich gut funktionieren, zu denen ich aber keine

Niklas

Doku habe und ich habe welche, wo ich

Niklas

eigentlich nur das Konzept habe und auch keine Software.

Niklas

Es gibt so eins, da habe ich ein Domain,

Niklas

da zahle ich jedes Jahr Geld für

Niklas

und da habe ich keine Software für.

Niklas

Sehr gut.

Dodo

Bei einem Projekt,

Dodo

das ist mittlerweile jetzt auch drei Jahre alt,

Dodo

da ging es um Gruppenoptimierung

Dodo

und ich hatte das angefangen

Dodo

und da hatte ich erst unglaublich viel Zeit investiert,

Dodo

mir viel zu viele Gedanken zu machen,

Dodo

okay, wie mache ich das jetzt?

Dodo

Das war doch dein erstes grafisches Programm, oder?

Dodo

Ja, das war

Dodo

für mich aus vielerlei Hinsicht

Dodo

interessant, weil ich da einerseits

Dodo

einmal so richtig mit Objektorientierung

Dodo

gearbeitet habe, also so

Dodo

einmal komplett Objektorientierung

Dodo

und Grafik und... Weil es geht.

Dodo

Weil es geht, weil ich quasi

Dodo

daran auch selber Dinge lernen wollte.

Dodo

Daran habe ich dann auch Git

Dodo

viel besser kennengelernt.

Niklas

Konflikte mit sich selbst ist auch

Niklas

etwas, was man vergabt haben sollte.

Dodo

Das muss man einfach mal gemacht haben.

Dodo

Und ich glaube, nach

Dodo

Nach ein paar Monaten, wo ich da wirklich hochkonzentriert dabei geblieben bin, bin ich dann in so eine Sackgasse gelaufen, dass es einfach nicht mehr funktionierte.

Dodo

Dann habe ich das liegen gelassen, dann habe ich irgendwann wieder angefangen, die Codebasis überarbeitet und dann lief es wieder und dann habe ich das wieder ein bisschen liegen gelassen und dann habe ich da irgendwann mit weitergemacht.

Dodo

Und mittlerweile bin ich da sogar auf einem relativ guten Weg. Aber mittlerweile ist bei mir im Allgemeinen der Workflow auch so, dass ich zwar Projekte lokal anlege, auch als Git-Repo, aber dann erst auf meinen GitHub-Account hochlade, wenn das quasi so weit ist, dass ich es der Öffentlichkeit zeigen möchte.

Niklas

Ja, also ich habe das so, dass ich eigentlich nur ein Projekt habe, an dem ich aktuell arbeite und das halt irgendwie so mal entweder, weil mir das eine irgendwann langweilig wird oder durch so andere Faktoren, wie wenig Zeit oder sowas. Oder Leute sprechen mich mal an mit, hey, was ist denn eigentlich geworden aus? Dass ich das dann so einmal im Monat wechsle, was ich gerade aktuell mache.

Dodo

Ja, ich glaube, bei mir ist das relativ sprunghaft. Also ich habe dieses große Projekt mit der Gruppenoptimierung, wo ich halt immer, wenn ich mal wieder Zeit und Lust habe, dann dran habe, weiterarbeite. Da habe ich es jetzt mittlerweile auch ganz gut mit der Doku hinbekommen, dass ich auch vier Monate später noch weiß, wo ich war und was mein letzter Stand ist.

Dodo

Hast du auch Tests?

Dodo

Tatsächlich habe ich teilweise Tests.

Dominik

100% Coverage?

Dodo

Naja, die werde ich niemals erreichen, aber für die Objektorientierung, die da zur Grunde liegt, sind Tests sogar schon fertig. Die führe ich auch hin und wieder aus, aber meistens ist es bei meinen Projekten eher sprunghaft, dass ich halt kleinere Projekte habe, das sind dann meistens auch nur so ein paar hundert Zeilen Code, wo ich entweder spontan die Idee dazu hatte oder da hatte mich wer gefragt und ich habe das einfach mal ausgedacht.

Dodo

getestet oder wir hatten da Donnerstag

Dodo

darüber gesprochen und ich wollte da quasi

Dodo

noch weitergehen. Das hatte ich jetzt

Dodo

letztens, da habe ich was mit Bildern

Dominik

gemacht. Also aber du hast die Sachen

Dominik

auch vorher mal direkt bei GitHub direkt hochgeladen,

Dominik

das ist ja interessant. Also ich habe jetzt auch so ein paar Sachen

Dominik

entdeckt, Bitbucket kennt ihr ja bestimmt alle und

Dominik

Azure, da gibt es ja jetzt auch die Möglichkeit, private

Dominik

Repositories unbegrenzt anzulegen.

Dodo

Ja, dafür habe ich mir einen extra

Dodo

GitLab-Account gemacht, damit ich ein privates

Dodo

Repo anlegen kann. Ja, aber das

Jochen

gibt es jetzt bei GitHub auch.

Dominik

Ja, das war

Dominik

früher, war es kostenpflichtig.

Dominik

Also das ist jetzt neu, das ist nicht mehr kostenpflichtig?

Dodo

Nee. Ach so.

Dodo

Da wollte ich dann auch überlegen, ob ich

Dodo

mein Gruppenoptimierungs-Repo

Dodo

einmal auf GitHub hochlade

Dodo

und eventuell dann sogar ein

Dodo

öffentliches Repo, weil es

Dodo

mittlerweile doch ganz schön ansehnlich ist.

Dodo

Aber es gibt bei diesen kostenlosen

Dodo

privaten Repos

Dodo

auf GitHub irgendwie Einschränkungen.

Dodo

Du kannst, glaube ich, irgendwie dann keine Leute

Niklas

hinzufügen oder sowas, die damit arbeiten können.

Niklas

Das kostet weiterhin Geld.

Dodo

Ja gut, irgendwie soll GitHub ja auch

Dodo

Geld verdienen, also finde ich schon okay.

Jochen

Aber

Jochen

Gruppenoptimierung, das

Jochen

glaube ich, glaube ich nicht mathematisch, oder?

Dodo

Nein, nein, nicht mathematisch

Niklas

Gruppen. Ja, sowieso

Niklas

Teamzuteilung. Ja, Teamzuteilung.

Dodo

Hatte ich mir

Dodo

dann in der Mitte der Entwicklung

Dodo

dann auch überlegt,

Dodo

ich weise hier Menschenwerten zu,

Dodo

ob das noch moralisch vertretbar ist.

Niklas

Man muss wissen, Dodo macht

Dodo

Jugendarbeit. Ja, ich mache das mit der

Dodo

Jugendarbeit und da ist es immer

Dodo

schwierig, die Teams fair zu gestalten.

Dominik

Gibt es irgendwelche Sensoren,

Dominik

die Arbeit übernehmen lassen für die Bewertung?

Dodo

Ja,

Dodo

da musste ich mir dann auch

Dodo

zum Glück, funktioniert

Dodo

das Programm auch mit beliebigen

Dodo

Attributen, also die sind

Dodo

nicht so tief eingebaut, dass ich die nicht jederzeit

Dodo

ändern könnte. Da musste

Dodo

ich mir dann erstmal Gedanken machen, welche Attribute

Dodo

ich nehmen kann. Aber da

Dodo

habe ich dann auch gesehen, dass ich

Dodo

das gar nicht kann, dass

Dodo

ich quasi ein Projekt von vornherein

Dodo

aus plane und dann irgendwann anfange.

Dodo

Das war da am Anfang mein Fehler,

Dodo

dass ich mir viel zu viele Gedanken gemacht habe,

Dodo

wie ich das dokumentiere, wie ich das

Dodo

strukturiere. Und es hat

Dodo

deutlich besser geklappt, als ich dann irgendwann

Dodo

einmal die Codebasis komplett umgeworfen

Dodo

habe und direkt angefangen habe,

Dodo

Code zu schreiben und danach

Dodo

zu dokumentieren, was ich da gemacht habe,

Dodo

als

Dodo

erst zu schreiben, okay, ich habe hier ein

Dodo

Player-Objekt und dann habe ich ein

Dodo

Team-Objekt und

Dodo

dann müssen die so und so miteinander interagieren.

Dodo

Da hat es mir tatsächlich besser getan,

Dodo

einfach anzufangen, Code zu schreiben,

Dodo

dann ein bisschen zu dokumentieren, dann weiterzuschreiben.

Dominik

So ein bisschen Agile Hands-On, das kannst du auch bestätigen, Jürgen.

Jochen

Ja, mir fällt das auch deutlich leichter, wenn ich das so mache.

Jochen

Also ich meine, es gibt wahrscheinlich auch einfach unterschiedliche Arten von Leuten,

Jochen

denen unterschiedliche Dinge leicht oder schwer fallen.

Jochen

Aber das, was man ja sozusagen erzählt bekommt,

Jochen

ist, dass irgendwie der Weg, wie es eigentlich sein sollte,

Jochen

irgendwie top-down. Man macht irgendwie

Jochen

Architektur und überlegt sich, wie Dinge

Jochen

so funktionieren sollen. Das ist aber schon sehr klassisch.

Jochen

Man macht sich einen Plan und dann

Jochen

füllt man das sozusagen nur noch aus,

Jochen

bis zu, keine Ahnung, wenn ein Konzern,

Jochen

das habe ich mal irgendwann von Siemens gehört,

Jochen

dann gibt es dann irgendwie die

Jochen

Informatiker, die dann halt sich die Architektur

Jochen

überlegen oder die UML-Diagramme malen.

Jochen

Dann gibt es halt Programmierer, die dann halt die

Jochen

Funktionssignaturen ausfüllen.

Niklas

Es gibt ja auch so Tools,

Niklas

die dir aus UML-Diagrammen dann automatisch

Niklas

Code erzeugen.

Jochen

Ja.

Jochen

Ist ja auch ein bisschen eklig.

Jochen

Und ich, also aufgrund meiner eigenen Erfahrung kann ich mir sehr schwer vorstellen, dass das irgendwie zu einem guten Ergebnis führt.

Dominik

Das ist das Problem der Digitalisierung, oder?

Dominik

Dass halt alles völlig überplant ist und dann ändert sich die Umwelt viel schneller, als der Plan noch aktuell ist.

Dominik

Und dann ist der ganze Aufwand, den man für das Plan betrieben hat, erstens dahin und man ist dem Projekt noch nicht so weit.

Dominik

Man hat noch keine Traction, wie man das so schön sagt, bekommen irgendwo.

Niklas

Aber andererseits sollte man durchaus schon so ein Konzept haben, was man eigentlich machen möchte.

Dominik

Ja, gut, das muss ja nicht komplett ausformuliert werden.

Dodo

Es reicht ja auch, wenn du weißt, was du vorhast, aber wenn du das da ausformulierst, ist der Wille, sich an genau dieses Konzept zu halten, größer, als wenn du einfach nur ein Konzept im Kopf hast.

Dodo

Und dann, oder das kann auch grob ausformuliert sein, aber ich hatte halt versucht, das relativ stark und streng auszuformulieren und dann habe ich festgestellt, dass ich beim tatsächlichen Schreiben des Codes an Probleme stoße, die ich vorher einfach nicht bedacht habe, die dann, wo ich mein Konzept ändern müsste und da habe ich dann nicht versucht, das Konzept zu ändern, sondern den Code und das hat halt nicht geklappt, bis ich dann irgendwann eben das mit dem Konzept gelassen habe und direkt angefangen habe, Code zu schreiben, das klappte dann deutlich besser.

Jochen

Ja, also mir geht das oft tatsächlich so, dass man die Abstraktionen, die man braucht, um das Ganze zu strukturieren, weil Struktur sollte es dann am Schluss ja vielleicht schon haben, erst einfallen, wenn man das implementiert, weil viele Dinge, die wichtig sind und man gar nicht weiß, bevor man es nicht gemacht hat und dann erst, wenn man es hinschreibt, merkt man also, oh, das ist mal ganz wichtig.

Jochen

das und dieses und dieses Ding, die

Jochen

vorher, wo ich vorher gedacht hätte, die wären gar nicht gleich, die sind

Jochen

aber eigentlich fast das Gleiche, dann kann ich die dann hier

Jochen

zusammenfassen und dann kann es sein,

Jochen

dass da irgendwie auch ein

Jochen

elegantes Konzept

Jochen

oder so draus entsteht, aber erst eher so im

Jochen

Nachhinein, wenn man das Problem wirklich verstanden

Jochen

hat, aber um das Problem wirklich zu verstehen,

Jochen

muss man irgendwie das schon programmiert haben,

Jochen

sonst, ja.

Dodo

Aber gerade so, wenn man

Dodo

mit großen zeitlichen Abständen

Dodo

an einem Projekt arbeitet, finde ich es persönlich wichtig,

Dodo

auch sich so Sachen aufzuschreiben, weil

Dodo

ich es ansonsten einfach vergesse.

Dodo

Und ansonsten, was ich nicht,

Dodo

also gerade auch bei Software, die ja noch tatsächlich

Dodo

Leute nutzen, also die ich nicht nur für mich

Dodo

selbst schreibe, finde ich das auch irgendwie

Dodo

wichtig, das ein bisschen zu dokumentieren.

Dodo

Weil so, auch wegen dem

Dodo

Busfaktor und sowas. Also es wäre halt

Niklas

gut, wenn ich das nicht nur in meinem Kopf habe,

Niklas

sondern es im Notfall auch andere Leute machen könnten.

Dominik

Kleine To-Do-Liste vielleicht? Ich weiß nicht, ob das

Dominik

dann schon viel sagen kann.

Jochen

GitHub-Beschuss.

Jochen

Wie macht ihr Dokumentation?

Jochen

sozusagen in euren Projekten?

Dodo

Zu wenig?

Dodo

Zu wenig, ja.

Dodo

Das Gruppenoptimierungsprojekt

Dodo

war jetzt das erste, wo ich

Dodo

wirklich Dokumentation

Dodo

gut

Dodo

angelegt habe. Da habe ich halt

Dodo

eine Readme-Datei, die so das Grobe

Dodo

umfasst und dann zu bestimmten

Dodo

Themen. Ich glaube, ich habe eine

Dodo

GUI.md, die eben beschreibt,

Dodo

wie man die GUI benutzen soll und

Dodo

wie die so aufgebaut ist mit

Dodo

Mockup-Bildern und so. Dann habe ich

Dodo

eine Klassen.md,

Dodo

die beschreibt, welche Klasse welches

Dodo

Objekt liefert und was

Dodo

die tun sollen, was die darstellen,

Dodo

wie die miteinander

Dodo

interagieren. Und ich glaube, ich habe

Dodo

noch eine Backend.md,

Dodo

die beschreibt, welche Funktionen in der

Dodo

Backend.py

Dodo

tatsächlich die Berechnung durchführen.

Dodo

Ja, und in der Main.py

Dodo

werden einfach GUI und Backend

Dodo

zusammengeführt. Ich habe gerade so ganz

Dominik

wichtig ist, irgendwie Sphinx oder sowas.

Dominik

Ja. Und dokumentiert.

Jochen

Also ich benutze

Jochen

ja auch tatsächlich Sphinx. Also

Jochen

Markdown, wird das dann irgendwie

Jochen

noch in was anderes verwandelt oder?

Dodo

Nö, ich nehme rohe Markdown-Dateien.

Jochen

Genau, weil

Jochen

ja, nee, was ich normalerweise mache, aber

Jochen

also ich habe auch schon überlegt, nicht vielleicht

Jochen

komplett Markdown verwenden das Richtige wäre,

Jochen

aber was ich momentan verwende ist halt

Jochen

Restructured Text als sozusagen

Jochen

Format für Dokumentation

Jochen

und dann Sphinx

Jochen

als sozusagen, ja, Renderer

Jochen

irgendwie, der dann halt hinterher entweder

Jochen

eine Webseite ausspuckt oder ein PDF

Jochen

oder sonst irgendwas. Und da nehme ich

Jochen

dann immer noch das, dieses

Jochen

Read the Docs

Jochen

Theme dazu.

Jochen

Es gibt so eine Seite,

Jochen

das ist eigentlich ganz hübsch und dann,

Jochen

wenn man dieses Theme mit installiert,

Jochen

dann sieht die generierte Dokumentation

Jochen

halt hinterher genauso aus und

Jochen

man kann sie auch automatisch irgendwie direkt

Jochen

auf Read the Docs irgendwie hochladen, wenn man

Jochen

jetzt da in GitHub

Jochen

so einen Hook aktiviert.

Dominik

Ich glaube, ich habe bei Sphinx aus

Dominik

seiner Dokumentation an den einzelnen Funktionen

Dominik

und Methoden dran, also aus den

Dominik

Docstrings, die erstellen lassen.

Jochen

Kann man auch, genau. Man kann dann halt

Jochen

Sachen, so API-Dokumentationen und

Jochen

ja, das kann man automatisch

Jochen

erstellen lassen. Ist aber die Frage, wie hilfreich

Jochen

das ist, weil, naja gut, das steht ja

Jochen

auch schon im Code irgendwie und

Jochen

ja,

Jochen

kann man machen, aber

Jochen

weiß ich jetzt nicht, fand ich jetzt bisher nie so

Jochen

wirklich hilfreich. Ich meine, wenn man jetzt

Jochen

natürlich wahnsinnig viel Dokumentation

Jochen

in Kommentare

Jochen

reingeschrieben hat, dann macht das vielleicht schon Sinn.

Niklas

Gerade auch bei so Live-Videos, wo sich dann

Niklas

Leute überlegen, wie rufe ich jetzt die Funktion

Niklas

tatsächlich auf?

Dominik

Das ist tatsächlich gerade so die Hürde, vor der ich

Dominik

jetzt so ein bisschen noch stehe, wenn ich jetzt an meine Projekte

Dominik

denke. Ich habe dann irgendwie eine fremde

Dominik

Bibliothek, die ich benutze, sei es jetzt irgendwie QT

Dominik

oder irgendwie sowas. Und ich

Dominik

verstehe jetzt nicht, wie ich was Neues da machen kann.

Dominik

Wenn ich eine Idee habe, die jetzt nicht direkt in den Klassen

Dominik

vorhanden ist und ich muss das irgendwie selber generieren,

Dominik

dann habe ich dann eine Dokumentation,

Dominik

einen C-Code mit den Funktionen

Dominik

zu aufrufen, die dann möglich sind.

Dominik

Und wenn ich mir jetzt irgendwie abstrakt überlegen

Dominik

soll, wie ich jetzt den Schritt weiterkomme, das fällt mir

Dominik

so ein bisschen schwer.

Dominik

Wie kann ich jetzt ein abstraktes Modell in meinem Kopf

Dominik

erzeugen, das ich noch nie kenne?

Dominik

Whiteboard. Ja, habe ich tatsächlich

Dominik

eines neben meinem Schreibtisch hängen.

Dominik

Also auch malen, sagst du. Und dann in kleine

Dodo

Teile liegen. Also malen

Dodo

hilft doch ziemlich stark, finde ich.

Dodo

Wenn man sich dann so Sachen auch besser vorstellen

Dodo

kann. Okay. Kann ich nur bestätigen,

Dodo

ich habe zwar auch ein Whiteboard, aber einerseits

Dodo

ich habe zu Hause leider keins, aber

Dodo

wir haben ja genug davon im Dorf. Ja.

Dodo

Mein Whiteboard hängt leider zu weit vom Schrank weg.

Dodo

Vom Schreibtisch weg.

Dodo

Was ich dann mache, ich nehme

Dodo

dann noch ganz altmodisch Zettel und

Dodo

Papier. Ihr habt leider auch nichts.

Dodo

Also nicht in ganz reichweite.

Dodo

Also Schmierzettel, meistens

Dodo

die Rückseite von irgendeinem Fehldruck

Dodo

und nehme dann einen Bleistift und male das

Dodo

auf, weil ich habe tatsächlich

Dodo

festgestellt, dass ich so deutlich

Dodo

besser mir Sachen visualisieren kann.

Dodo

Wahrscheinlich würde das

Dodo

auch mit einem Grafik-Tablet geben,

Dodo

aber dafür müsste man ja Geld aufnehmen.

Dodo

Grafik-Tablets fände ich cool, aber ich

Dodo

habe bisher noch keins gekauft.

Dodo

Tatsächlich für das Gruppenoptimierungsprogramm, wenn ich

Dodo

einmal, da ging es

Dodo

um den Algorithmus, der tatsächlich

Dodo

die Optimierung macht, der teilt

Dodo

die Teams nochmal auf und

Dodo

ist an einer Stelle

Dodo

ein bisschen rekursiv und so und dann

Dodo

habe ich tatsächlich

Dodo

ganz viel Papier genommen und

Dodo

Schnipsel erstellt, auf die ich

Dodo

die Sachen draufgeschrieben habe, so

Dodo

hier ist mein Player-Schnipsel

Dodo

und hier ist mein Team-Schnipsel und dann

Dodo

habe ich weitere Schnipsel genommen, die wie

Dodo

Pfeile aussahen, dann habe ich

Dodo

den Teppich zur Seite gerollt, das alles

Dodo

auf dem Boden aufgelegt, ein Foto von mir gemacht

Dodo

und seitdem habe ich im

Dodo

Repo ein Foto von

Dodo

Schnipseln auf dem Boden.

Dodo

Da bräuchte man halt auch Platz auf dem Boden.

Dodo

Ja, da

Dodo

der positive Nebeneffekt war,

Dodo

der Boden ist jetzt auch gesaugt.

Dodo

Aber seitdem

Dodo

habe ich im Repo ein Bild

Dodo

von Zetteln auf dem Boden

Dodo

und tatsächlich ist das gar

Dodo

nicht so doof. Ich hätte es natürlich auch

Dodo

mit einem Grafik-Tablet schneller hingekriegt.

Dodo

Aber

Niklas

ja.

Jochen

Ich mache auch oft dann tatsächlich Fotos

Jochen

von irgendwelchen Dingen, die ich auf dem Zettel gemalt habe,

Jochen

weil das halt irgendwie schneller geht,

Jochen

als wenn man das...

Dominik

Bei dir per Machine Learning automatisch getaggt und in den richtigen

Jochen

Ordner...

Jochen

Das ist alles Handarbeit, aber

Jochen

was ich auch faszinierend finde, ist,

Jochen

ich weiß nicht genau, warum, ich wollte

Jochen

eigentlich das Papier immer loswerden, aber

Jochen

irgendwie,

Jochen

das kann ja auch sein, dass das irgendwie so eine,

Jochen

ja, so

Jochen

historisch irgendwie noch so ist, dass

Jochen

irgendwie, wenn ich Sachen aufschreibe,

Jochen

es kommt, ich habe, also

Jochen

meiner Ansicht nach ist es gar nicht so wichtig, was man sich aufschreibt,

Jochen

sondern allein das vom Papier sitzen

Jochen

und mit dem Stift da irgendwie was drauf rum machen,

Jochen

das hilft einem schon irgendwie oder

Jochen

meinem Gehirn irgendwie offenbar dabei

Jochen

irgendwie im richtigen Modus zu operieren

Jochen

und wenn ich das

Jochen

auf einem Tablet mache, was ich halt

Jochen

auch habe, dann funktioniert das irgendwie nicht. Oder wenn ich

Jochen

auf einer Tastatur sitze. Also wenn ich irgendwie tippe,

Jochen

ist es was anderes, als wenn ich das auf einem Zettel

Jochen

irgendwie aufschreibe. Ich habe keine Ahnung, woran das liegt. Das ist irgendwie komisch.

Dodo

Also bei mir funktioniert das tatsächlich auch ganz gut

Dodo

mit Textdateien. Für mich ist es halt nur,

Dodo

dass ich dann sonst nichts habe. Also ich mache halt

Dodo

dann wirklich auch auf dem

Dodo

Bildschirm frei und gucke halt, dass ich wirklich nur

Dodo

das habe, was ich schreibe. Der Sehen-Modus.

Dodo

Und dann geht das eigentlich auch

Dodo

relativ gut, finde ich. Vielleicht ist es aber

Dominik

witzig mit den Zeichnen. Also ich habe auch

Dominik

ein bisschen das Gefühl, dass das wirklich hilft. Vielleicht benutzt man

Dominik

andere Gehirnteile oder sowas und wird dann

Dominik

neu kreativ? Oder auch

Niklas

wenn ich gerade nicht am Rechner bin, kann

Niklas

ich nicht Twitter aufmachen auf dem Whiteboard oder sowas.

Dodo

Ich kann mir

Dodo

vorstellen, dass es eine Kombination daraus ist,

Dodo

dass man einerseits weniger abgelenkt ist,

Dodo

dass andererseits, was weiß ich,

Dodo

vielleicht hängt es auch damit zusammen,

Dodo

dass wir aus der Schule, die wir noch

Dodo

gewohnt sind, wenn wir was

Dodo

auf Papier schreiben, dann konzentrieren wir uns

Niklas

darauf. Ich hasse Papier und Papier hasst mich.

Dodo

Und wenn wir vor dem Rechner sitzen,

Dodo

haben wir da ganz andere Reize, die

Dodo

auf uns zukommen. Also ich kann das auch vollkommen

Dodo

nachvollziehen, was ihr sagt.

Dodo

Also meistens brauche ich da auch

Dodo

Stift und Papier, weil

Dodo

Textdateien habe ich versucht,

Dodo

aber meistens

Dodo

kann ich in Textdateien

Dodo

das nicht so gut

Dodo

ausformulieren,

Dodo

wie wenn ich mir ein Schaubild aufs Papier male.

Niklas

Ja, gerade so Pfeile

Niklas

und so was in Kästen sind

Niklas

schwierig in Textdateien, ja.

Dodo

meistens brauche ich es dann ein bisschen

Dodo

grafisch, weil ich mir,

Dodo

was weiß ich, wenn ich mir,

Dodo

ja,

Dodo

jetzt fehlt mir ein Beispiel,

Dodo

meistens nehme ich dann kleine

Dodo

Grafiken, die ich mir dann aufs Papier zeichne,

Dodo

um mir das zu visualisieren und ich finde,

Dodo

das klappt deutlich besser, als wenn ich das

Dodo

versuche auszuformulieren.

Dominik

Was würdet ihr denn machen, wenn ihr gar nicht

Dominik

mehr weiterkommt? Also ich habe das auch schon ein paar Mal gehabt,

Dominik

dann, keine Ahnung, weiß nicht, wie es geht, also

Dominik

wenn dann doof ist, dann ist da so eine Wand,

Dominik

dann kommt man nicht einfach drüber und

Dominik

Was würdet ihr empfehlen? Wie sollte man da dann

Niklas

angehen? Schlafen oder irgendwas

Niklas

völlig anderes machen. Also teilweise

Niklas

kommen mir die Ideen dann irgendwie auf den Klo oder

Niklas

unter der Dusche, abends im Bett.

Dodo

Darüber

Dodo

schlafen,

Dodo

davon ablenken, was anderes

Dodo

machen. Generell häufig

Dodo

führt das zu was, weil

Dodo

ich weiß nicht wieso,

Dodo

aber wie gesagt, mir fielen Sachen

Dodo

auch unter der Dusche ein,

Dodo

auf dem Weg ins Bett und dann dachte ich, ah ne,

Dodo

jetzt nochmal aufstehen.

Dodo

was mir auch geholfen

Dodo

hat, dass ich mich

Dodo

von dem Gedanken gelöst habe, dass es jetzt

Dodo

schlecht ist, wenn ich was lösche. Also

Dodo

ich habe eine Versionsverwaltung,

Dodo

das heißt, ich kann auch einfach mal

Dodo

die letzten fünf Commits rückgängig

Dodo

machen und neu anfangen.

Dodo

Also darf man...

Dodo

Ich muss die Funktionen nicht schrittweise

Dodo

neu schreiben, ich kann jetzt löschen und neu schreiben.

Dodo

Ich habe die alte Version noch. Man darf

Dodo

auch ruhig mal 100-zeilen-Code

Dodo

auf einmal löschen und neu schreiben.

Dodo

Nicht jeden Tag.

Dodo

Nicht jeden Tag, weil irgendwo

Dodo

ein Fortschritt muss es auch geben, aber

Dodo

dann kann man beruhigt auch mal

Dodo

größere Mengen Code löschen und

Dodo

neu schreiben.

Dodo

Meistens hilft das einem schneller, als wenn man

Dodo

versucht, alte Strukturen

Dodo

noch irgendwie zu laufen

Dodo

zu kriegen, weil man dann

Dodo

viel eher noch Sachen hinterfragt, die man

Dodo

vorher einfach akzeptiert hat.

Dodo

Und nochmal das Konzept mit dem Gelernten.

Niklas

Der sozialkritische Kommentar des Tages.

Dodo

Ja.

Dodo

Ansonsten, Wabba Ducking ist natürlich auch

Dodo

sinnvoll, wenn ich

Dodo

nicht alleine vor

Dodo

meinen Code sitze und frage, warum der die ganze

Dodo

Zeit einen Fehler wirft oder warum er nicht das

Dodo

tut, was er machen soll. Gerade semantische

Dodo

Fehler sind halt da schwieriger,

Dodo

wenn ich dann einfach jemand anderen erkläre.

Dodo

Also das Programm macht das und das

Dodo

und dann stellt der mir Fragen und wenn

Dodo

ich die Fragen nicht beantworten kann, dann lerne ich daraus.

Dodo

Oder auch

Dodo

Doku schreiben. Das ist so ein bisschen quasi

Niklas

Faber-Ducking mit sich selbst.

Niklas

Da fällt mir das dann auch teilweise auf.

Dodo

So.

Dodo

Allein schon, weil man dadurch

Dodo

eine andere Blickweise auf das Problem

Dodo

bekommt. Und

Dodo

das hilft einem meistens.

Dominik

Rubberducking, Gummienten?

Jochen

Ja. Stell dir vor,

Dodo

du erzählst es einer Gummientin.

Jochen

Genau, ich kenne das

Jochen

als Rubberduck-Debugging.

Jochen

Sozusagen, ja genau. Man debugt

Jochen

dadurch, dass man einer Gummienten erzählt,

Jochen

was da eigentlich passieren sollte.

Jochen

Und dann, wenn man das 10 Minuten, also

Jochen

es kommt aus der Erfahrung, dass man

Jochen

normalerweise anfängt, das irgendwelchen Leuten zu erzählen

Jochen

und die dann irgendwie alle 30 Sekunden

Jochen

sagen so, ja, aber ich habe keine Ahnung und das muss man dann

Jochen

ignorieren und dann nach irgendwie 10 Minuten

Jochen

sagt man sich, ah, okay, ich weiß, warum es

Jochen

schief geht, ach Mist.

Jochen

Kommt halt immer auf die Leute an, also wenn du genug

Dodo

Leute hast, die sich für ähnliche Dinge

Dodo

interessieren und noch Zeit haben, das wird wirklich spannend

Dodo

finden, dann geht es auch mit echten Menschen

Dodo

und nicht nur mit Gummienten.

Jochen

Vielleicht geht es auch sogar schneller, aber es geht halt auch mit

Jochen

Gummienten und das ist halt das Faszinierende.

Dominik

Irgendeine Art von Gummienten, die ich irgendwo bei mir

Niklas

über die Jahre... Es gibt tatsächlich Firmen, die so

Niklas

Gummienten als Werbegeschenke genau dafür

Niklas

verteilen.

Dodo

Meistens ist es ja so, dass

Dodo

man tatsächlich nicht zu doof

Dodo

ist, sondern irgendein

Dodo

irgendetwas nicht bedacht hat.

Dodo

Gerade Verleitung oder sowas.

Dodo

Die Fehler sind meistens döver als man selber.

Dodo

Ja, was weiß ich, da hast du dann irgendwie

Dodo

eine Klammer vergessen und auf einmal ist das

Dodo

kein Tupel, sondern

Dodo

sonst noch was. Oh ja, ich

Niklas

habe mir ziemlich viel Zeit damit

Niklas

verständet, weil ich ein Tupel haben

Niklas

wollte mit einem Element, dann eine runde Klammer drum

Niklas

gemacht habe und es war dann kein Tuffel, sondern es

Niklas

fehlte ein Komma.

Dodo

Ja, wie gesagt, meistens

Dodo

sind es eben die doofen Fehler, die am längsten

Dodo

die man am längsten sucht.

Dodo

Weil es dann ja auch in Ordnung aussieht, wenn du drauf

Dodo

guckst. Genau.

Jochen

Ja.

Jochen

Aber das finde ich auch interessant.

Jochen

Das ist auch vielleicht etwas, das halt irgendwie so den

Jochen

wenn man

Jochen

die Tätigkeit beim Programmieren unterscheidet

Jochen

von anderen Geschichten. Man ist ja als, ich glaube

Jochen

das ist tatsächlich irgendwie ein bisschen was Besonderes, dass man

Jochen

Wenn man programmiert ist, ist man halt irgendwie die ganze Zeit frustriert darüber, dass irgendwie Dinge nicht gehen, weil alles, was geht, das geht ja super schnell und ist super schnell automatisiert und man ist immer eigentlich an dem Punkt, wo was nicht geht und das ist, glaube ich, bei anderen Leuten nicht so.

Jochen

Also ich meine, wenn ich jetzt irgendwie, keine Ahnung, den Garten umgrabe oder wenn ich irgendwie so Dinge, dann habe ich immer wieder Phasen, wo ich weiß, naja gut, das geht jetzt so eine halbe Stunde, weil ich muss das aber, ich weiß, wie das geht, ich mache das jetzt einfach mal eine halbe Stunde lang.

Jochen

zum Beispiel beim Kochen oder so, dann schnibbel ich irgendwas.

Jochen

Man hat nicht die ganze Zeit

Jochen

das Problem da wirklich von einem

Jochen

harten Ding, was man nicht versteht,

Jochen

zu stehen, sondern man hat immer wieder so,

Jochen

man hat natürlich oft diese Momente, aber

Jochen

oft weiß man eigentlich, was zu tun ist

Jochen

und muss das halt nur eine Zeit lang machen.

Jochen

Beim Programmieren ist es oft so, also ja, man muss

Jochen

sich erst daran gewöhnen, sozusagen

Jochen

überwiegenden Teil der Zeit halt

Jochen

irgendwie mit dem Kopf vor der Wand zu stehen.

Dominik

Aber das ist ja auch irgendwie so wie Wadding, ja, weil du halt da stehst

Dominik

und du hast ein Rätsel und du knackst es dann

Dominik

irgendwann halt hoffentlich.

Niklas

Ja, aber das kann auch ziemlich frustrierend sein.

Niklas

Ich finde es aber dann als Abwechslung auch ziemlich

Niklas

entspannend, irgendwie, weiß ich nicht,

Dodo

irgendwas einzurichten

Dodo

oder irgendwie Doku zu schreiben oder so, weil du

Dodo

weißt, du kannst dann halt irgendwie die Zeit

Dodo

einschalten und du machst das dann halt und hast dann ein Ergebnis

Dodo

nach der Zeit. Das ist halt schon

Dodo

auch nett. Ja, so zur Abwechslung

Dodo

die Kommentare zu dem Code zu schreiben,

Dodo

ist auch schon ganz gut.

Dodo

Aber ich verstehe dann, was du meinst, dass du quasi

Dodo

Programmieren keinen

Dodo

Anteil an Fleißarbeit hast, sondern

Dodo

du bist halt immer bei den

Dodo

80% machst du in 20% der Zeit

Dodo

und danach hängst du bei diesen

Dodo

20% fest. Du musst einfach wissen, wie

Dodo

es geht.

Dodo

Und

Dodo

wenn man tatsächlich

Dodo

messen würde, wie viel

Dodo

Zeit man so beim Programm braucht, ich meine

Dodo

der Großteil ist ja schnell runtergeschrieben,

Dodo

nur die Fehler, die brauchen dann viel mehr.

Dodo

im Grunde weiß man ja

Dodo

auch, man schreibt eine Zeile

Dodo

und weiß, in der nächsten Zeile muss das und das

Dodo

stehen und dann kommt die Vorschleife und

Dodo

dann packe ich da rein das und so weiter und so fort.

Dominik

Wenn ihr so einen Fehler habt, wie geht ihr denn

Dominik

daran? Also versucht ihr den zu debuggen,

Dominik

indem ihr guckt, was, also warum

Dominik

das ist, oder versucht ihr dann auszuprobieren, wie man den

Dominik

lösen kann? Ich habe noch nie wirklich

Niklas

einen Debugger verwendet, immer nur Print.

Dodo

Ja, ich auch nicht. Also

Dodo

wenn ich einen Syntaxfehler habe,

Dodo

gut, dann sehe ich im Traceback,

Dodo

aha, zahle das und das. Was sagt denn der

Dodo

Fehler? Aha, okay.

Dodo

Schwieriger ist es natürlich

Dodo

bei semantischen Fehlern, wo das Programm

Dodo

keinen Fehler wirft, sondern du mit der Ausgabe

Dodo

nicht zufrieden bist, da ist dann

Dodo

die Anwendung ja okay. Ich packe da jetzt

Dodo

ganz viele Prints rein

Dodo

und gucke, da ist es noch richtig,

Dodo

da auch, da auch, da falsch.

Dodo

Okay, der Fehler muss ungefähr da

Dodo

sein. Oh ja. Und dann,

Dodo

okay, das ist jetzt ein Ausdruck der

Dodo

drei ineinander verschachtelte

Dodo

Funktionsaufrufe, dann

Dodo

verschachtele ich die jetzt mal in drei

Dodo

Zeilen und dann jeweils Print vorher,

Dodo

Print nachher und

Dodo

meistens mache ich es dann so plump,

Dodo

also Debugger...

Dominik

Also VS Code soll auch einen sehr guten Debugger an der Stelle

Dominik

haben für so Zeugs.

Dominik

Dass man halt die Variablen testen kann

Dominik

immer genau da und diesen Print sich dann immer

Dominik

einem, den man nicht extra in den Code schreiben

Dominik

muss, sondern irgendwie einen Debugger und so.

Dodo

Ja, aber meistens

Dodo

nehme ich dafür dann auch einfach

Dodo

einen Print und gut. Und wenn euch nicht

Dominik

einfällt diese Lösung, guckt ihr dann in die Dokumentation

Dominik

oder werdet ihr dann einfach angezeigen

Dodo

in die Modulreihen

Dominik

oder sowas?

Dodo

Meistens hilft es auch, wenn man

Dodo

Traceback hat, den einfach mal zu googeln.

Dodo

Also, es mag

Dodo

unglaublich doof klingen, aber

Dodo

wenn mir ein Fehler angezeigt

Dodo

wird, eventuell aus einem Modul,

Dodo

das ich importiert

Dodo

habe, den ich nicht kenne, der mir nichts

Dodo

sagt, dann kann ich den googeln und

Dodo

da wird garantiert schon, wer anders auf

Dodo

Stack Overflow dieselbe Frage gehabt haben

Dodo

und

Dodo

da hilft es meistens auch,

Dodo

zumindestens, um schon mal zu verstehen,

Dodo

um was für einen Fehler es

Dodo

sich handelt. Klar, bei den

Dodo

normalen Facepacks ist das relativ

Dodo

simpel. Wenn da Zero Division

Dodo

Ever steht, dann habe ich durch Null geteilt

Dodo

irgendwo.

Dodo

Das

Dodo

kriegt man relativ gut gefixt, aber wenn man

Dodo

die Fehlermeldung nicht kennt, dann

Dodo

einfach mal googeln.

Jochen

Aber auch vielleicht nochmal, was

Jochen

interessant wäre, was seht ihr denn, wenn ihr

Jochen

jetzt da viel

Jochen

Anfänger dabei beobachtet, das zu lernen, was

Jochen

fällt denen denn besonders schwer?

Jochen

Ist das immer das Gleiche oder

Jochen

sind es ganz, je nachdem, wer das ist, ganz

Jochen

unterschiedliche Sachen.

Dodo

Bei Anfängern hat man

Dodo

teilweise noch

Dodo

tatsächlich Flüchtigkeitsfehler,

Dodo

so, was weiß ich, Klammer nicht zugemacht,

Dodo

Gänsefühlchen offengelassen.

Dodo

Das sind natürlich ja gut.

Dodo

Die

Dodo

ist eventuell noch nicht gewohnt.

Dodo

Ein klassischer

Dodo

Flüchtigkeitsfehler, einfach vergessen.

Dodo

Das kommt natürlich vor.

Dodo

Dann gibt es Fehler, die quasi

Dodo

wir schon wissen, dass die auftauchen

Dodo

werden, weil

Dodo

ja

Dodo

Welche zum Beispiel?

Dodo

Jetzt wäre ein Beispiel gut.

Dodo

Wenn man zum Beispiel

Dodo

die falsche Variable benutzt.

Dodo

Wenn du in der Vorschleife

Dodo

statt die Durchlaufvariable

Dodo

dein Interact

Dodo

statt die Variable,

Dodo

die du als Durchlaufvariable hast,

Dodo

die Variable nimmst, die du durchläufst,

Dodo

das passiert schon mal, aber das ist

Dodo

dann ja auch eher ein semantischer Fehler, weil

Dodo

es wirft nicht zwingend einen Fehler,

Dodo

aber es tut halt nicht das, was

Dodo

es soll. Und auch Leute, die eine Funktion

Dodo

nicht aufrufen, sondern nur die Funktion

Dodo

dahin schreiben. Ja.

Dodo

Vergessene Klammern beim Funktionsaufruf.

Dodo

Ja.

Dodo

Ich glaube, Anfänger

Dodo

machen jetzt nicht groß andere Fehler

Dodo

als Fortgeschrittene.

Niklas

Wenn du mehr weißt, kannst du auch mehr Fehler

Dodo

machen. Ja, das stimmt.

Dodo

Tatsächlich,

Dodo

ich glaube, Anfänge machen einfach nur mehr

Dodo

Flüchtigkeitsfehler.

Dodo

Die sind das

Dodo

ja auch nicht so gewohnt.

Dodo

Wie sieht ein String aus? Ich erkenne

Dodo

viele Fehler ja tatsächlich auch optisch.

Dodo

Wenn mir der Editor

Dodo

anzeigt, guck mal, da geht ein String nicht

Dodo

zu, ja gut, dann mache ich den zu, aber

Dodo

wenn ich gerade damit anfange

Dodo

und jede

Dodo

Buchstabe für mich quasi

Dodo

einen Einblick in eine neue Welt gibt,

Dodo

dann ist das eventuell

Dodo

schwieriger. Also auch so, dass das

Dodo

Syntax-Verleitung irgendwie in der falschen

Dodo

Farbe ist, das fällt mir ziemlich schnell auf.

Dodo

Ja, weil man da auch ein gewisses

Dodo

Gefühl

Dodo

hat.

Dodo

Irgendwann

Dodo

hat man dann auch so

Dodo

einen Modus operandi. Zum Beispiel, wenn ich

Dodo

Gänsefüßchen nehme,

Dodo

dann macht mir der Editor

Dodo

automatisch zwei, wenn ich eins tippe. Dann gehe

Dodo

einmal nach links, um in dem Gänsefüßchen

Dodo

zu sein und dann tippe ich da rein.

Dodo

Und was weiß ich,

Dodo

ein Anfänger würde dann wahrscheinlich Gänsefüßchen,

Dodo

den String und dann nochmal ein Gänsefüßchen

Dodo

und dann vergisst es dir einen zweiten.

Niklas

Oder

Niklas

der Textor fügt da nochmal zwei ein.

Dodo

Ja, dann hast du drei

Dodo

und dann klappt das auf einmal nicht mehr.

Dodo

Dann laufe ich da immer noch regelmäßig rein, tatsächlich.

Dodo

Ja.

Dodo

Also ich würde behaupten,

Dodo

Anfänger machen dieselben Fehler.

Dodo

Vielleicht nur häufiger.

Dodo

Aber ich glaube gar nicht so häufiger.

Jochen

Ja.

Jochen

Gibt es denn auch Dinge, die

Jochen

die Anfänger besonders toll finden?

Jochen

Etwas, wo man irgendwie zuverlässig

Jochen

so einen Wow-Effekt mit erzielen kann?

Jochen

Oder was sie

Jochen

überrascht, wie einfach das geht?

Niklas

Gerade so grafische Sachen sind immer

Niklas

ziemlich überraschend. Wir haben mal irgendwann

Niklas

ein Turtle gezeigt.

Niklas

Und

Niklas

dass man einfach so

Dodo

schnell irgendwie, also gerade

Dodo

so grafische Ergebnisse,

Dodo

Rechtecke oder so was oder

Dodo

Flächen überraschen Leute doch.

Dodo

Ja, es ist natürlich immer gut,

Dodo

wenn man direkt was zeigen

Dodo

kann, was auch so ein bisschen über

Dodo

eine Kommandozeile, also klar ist es

Dodo

noch eine Kommandozeilenanwendung, aber

Dodo

wenn dann plötzlich ein Fenster aufgeht

Dodo

und da ist ein Bild drin oder wenn

Dodo

ein Fenster aufgeht und auf einmal ist da

Dodo

ein Graph drin. Was ich persönlich finde,

Niklas

ich finde bunten Text im Terminal ja spannend,

Dodo

aber ich finde das

Dodo

auch schon sehr spannend.

Dodo

Irgendwie sehen das andere Leute nicht so.

Dominik

Die Leidenschaft scheint nicht so ausgeprägt zu sein.

Niklas

Wir haben, glaube ich, mal

Niklas

einen Abend, Leute, ziemlich stark

Niklas

gelangweilt, indem wir sehr viel zu Terminals

Niklas

erzählt haben.

Dodo

Ich glaube, du warst dabei.

Dominik

Ich fand's gut.

Dodo

Das hatten wir

Dodo

letzten Abend, da haben wir was mit Bildern

Dodo

gemacht. Das hat natürlich den Vorteil,

Dodo

dass man direkt was Buntes sieht und auch

Dodo

die Erinnerungen direkt sieht.

Dodo

Ja, ein bisschen was für die Augen.

Dominik

Voll die krassen Sachen gesehen, wenn man Blender

Dominik

machen kann. Man kann halt diese ganzen

Dominik

interaktiven Grafiken generieren

Dominik

lassen mit, weiß ich nicht, 20 Zeilen oder so.

Niklas

Klar, aber dafür müssten wir eine Ahnung von Blender

Dodo

haben. Tja.

Dominik

Es sah auf jeden Fall cool aus.

Dodo

Ich habe mir das tatsächlich, als wir

Dodo

am letzten Donnerstag

Dodo

was mit Pillow und

Dodo

Bildern gemacht haben, habe ich mir das direkt

Dodo

als... Hab ich da richtig was verpasst?

Dodo

Ja, habe ich das

Dodo

direkt als Anfang

Dodo

dafür genommen, mich ein bisschen mehr mit

Dodo

Pillow zu beschäftigen und

Dodo

ja, hab da jetzt ein kleines Projekt, das

Dodo

sich mit Steganografie beschäftigt.

Niklas

Oh. Ja, gerade so

Niklas

zu den höheren Leveln fehlen uns doch

Dodo

sinnvolle Beispiele. Ja, das stimmt.

Dominik

Ja. Aber da kommen wir gerade

Dominik

ja dazu. Pillo, was sind eure Lieblingsmodule?

Dodo

Oh. B-Python, ganz klar.

Dodo

Ja, B-Python ist ja

Dodo

ein Interpreter. Ja, gut. Aber ich

Dodo

stimme ja zu, B-Python ist schon ziemlich

Dodo

cool.

Dodo

Boah, mein Lieblingsmodul.

Dodo

Jetzt hat er B-Python

Dodo

Man sagt ja natürlich nicht einfach auch B-Python

Dodo

sagen.

Jochen

Du kannst ja C-Python sagen.

Niklas

B-Python.

Niklas

Ja,

Niklas

Weekfest finde ich ziemlich cool, weil man

Dodo

damit sehr einfach

Dodo

halt Netzwerk machen kann.

Dodo

Gerade auch so, wenn Leute irgendwie,

Dodo

es gab Leute, die hatten irgendwie so eine

Dodo

Comic-Seite oder so und da wollten die

Dodo

irgendwie eine Benachrichtigung haben, wenn es einen neuen gibt

Dodo

oder sowas. Das sind gerade so Projekte,

Dodo

die eigentlich einfach sind,

Dodo

aber dann doch irgendwie überraschend sind.

Dodo

Gehen glaube ich ziemlich schnell.

Dodo

Ich glaube, ich...

Dodo

Waypile, das wäre schon...

Dodo

Das finde ich cool, weil

Dodo

es bringt Farbe ins Terminal

Dodo

und besteht nur aus 56 Zeilen Code

Dodo

oder so. Also das ist

Dodo

für mich ein schönes Beispiel, wie man

Dodo

sehr einfach

Dodo

ein... Klar, das ist

Dodo

jetzt auch nicht so das große Werkzeug,

Dodo

aber es bringt doch

Dodo

einen großen

Dodo

ein großes Plus

Dodo

an Usability und

Dodo

dafür 56

Dodo

Zahlen finde ich echt gut, vor allem

Dodo

der Großteil davon ist einfach nur ein Dictionary.

Dodo

Dann, was ich noch

Dodo

gut finde, ist Parflip.

Dodo

Oh ja. Einfach, weil

Dodo

wenn ich sehe,

Dodo

wie man vorher mit OS.par

Dodo

Ja, da war es nicht.

Dodo

Dateien,

Dodo

mit Dateien gearbeitet hat und wie

Dodo

viel einfacher das jetzt mit

Dodo

Parflip geht.

Dodo

Das ist Standard-Bibliothek.

Jochen

Auch da gibt es ja viel zu viele Dinge, die eigentlich cool sind,

Jochen

die zu wenig bekannt sind.

Dominik

Jochen, was ist dein Lieblingsmodul?

Jochen

Mein Lieblingsmodul? Oh je.

Jochen

Ich weiß nicht.

Jochen

Ich glaube, Lieblingsmodul...

Jochen

Ich hätte jetzt auch gar nicht wirklich drüber nachgedacht.

Jochen

Was ich letztens gesehen habe, was ich ganz cool

Jochen

fand, was ich noch nicht kannte, war

Jochen

SQL-Paths.

Jochen

Womit man also

Jochen

SQL-Statements, die man ja

Jochen

also wenn man zum Beispiel so ORM

Jochen

verwendet und dann fällt da so ein Statement bei raus

Jochen

und man guckt sich ja dann

Jochen

manchmal an, weil irgendwie ein Statement ist langsam

Jochen

oder irgendwas, was man mit dem ORM macht, ist langsam

Jochen

und dann bei Django

Jochen

kann man halt einfach sagen, wenn man das Query-Set hat,

Jochen

Query-Set.Query und dann spuckt das Ding

Jochen

das SQL-Statement aus, allerdings dann halt so

Jochen

als langen String, was

Jochen

relativ unleserlich ist und mit

Jochen

SQL-Pars kann man halt einfach sagen,

Jochen

okay, formati mir das mal

Jochen

neu, indentiere das alles

Jochen

und dann sieht das halt nach einem hübsch formatierten

Jochen

SQL-Statement aus und dann sieht man halt auch, was passiert.

Jochen

Und genau, dafür

Jochen

habe ich das letztens

Jochen

verwendet und fand das sehr praktisch, dass es sowas gibt.

Jochen

Ja.

Jochen

Tja.

Jochen

Weiß nicht, was

Jochen

hättest du denn so an Python-Modulen?

Dominik

So viel habe ich jetzt doch gar nicht durch, aber ich finde

Dominik

Kiwi ganz witzig irgendwie, weil das auch

Dominik

direkt irgendwie so Touch bietet für so kleinen Unsinn.

Dominik

Wenn man jetzt nicht total die

Dominik

aufwendigen GUIs bauen will, dann relativ einfach

Dominik

ganz witzige Lösungen hinbekommen.

Jochen

Ja, was mir noch einfällt, genau.

Jochen

Ich weiß nicht, ob wir das schon mal hatten.

Jochen

Pythonista ist ziemlich cool.

Jochen

Das ist so eine,

Jochen

das ist tatsächlich

Jochen

ein Python-Interpreter auf iOS.

Jochen

Keine Ahnung, wie das Ding

Jochen

durch den App-Store gekommen ist.

Jochen

Das kann eigentlich nicht mit rechten Dingen zugegangen

Jochen

sein irgendwie, aber

Jochen

das ist tatsächlich irgendwie vollständiges Python 3.6

Jochen

und

Jochen

tatsächlich, wenn also jemand mit

Jochen

einem, gut, das kostet

Jochen

Geld, das kostet irgendwie ein paar Euro, aber

Jochen

das ist wirklich ganz toll,

Jochen

hat auch eine schöne IDE dabei.

Jochen

Also wenn man jetzt irgendwie ein iPhone hat oder ein

Jochen

iPad und eine Bluetooth-Tastatur, dann

Jochen

könnte man auch tatsächlich

Jochen

wahrscheinlich irgendwie Python 2

Jochen

damit teilnehmen, was man jetzt gar nicht so erwarten

Jochen

würde, weil eigentlich ja

Jochen

iOS irgendwie auf Objective-C,

Jochen

C++ und C und

Jochen

was gibt es denn noch, Swift, wie beschränkt ist.

Jochen

Aber genau, und was halt

Jochen

auch sehr schön ist, ist, dass man da

Jochen

viel Zugriff hat auf

Jochen

die APIs. Also man kann halt,

Jochen

man kann auf die Fotos zugreifen,

Jochen

Location, API, man kann

Jochen

grafische Geschichten machen und

Jochen

das Ding nutzt halt auch die nativen Widgets

Jochen

von

Jochen

iOS, sodass das halt auch alles

Jochen

jedenfalls von den Animationen her

Jochen

und so schnell ist. Und ich habe es

Jochen

halt mal benutzt, um so ein

Jochen

Sharing-Dings,

Jochen

so ein Dings in ein

Jochen

Share-Sheet reinzubauen, sodass man, wenn man im Browser

Jochen

sagt,

Jochen

URL teilen, dass ich das halt dann in

Jochen

meinen Bookmark-Service

Jochen

irgendwie reinpipen kann.

Jochen

Genau. Und dann

Jochen

die ganze Bearbeitung, also das Sprechen

Jochen

mit der REST-IP oder so, das macht dann halt alles irgendwie

Jochen

Pythonista oder ein Skript, das halt dann von

Jochen

Pythonista ausgeführt wird.

Jochen

ja, das ist auch ziemlich cool.

Jochen

Wenn man das nicht kennt und iOS irgendwie

Jochen

Python machen möchte, dann ist es, glaube ich, ganz hilfreich.

Dodo

Ja, sowas ähnliches gibt's

Dodo

auch für Android.

Dodo

Thermux, das ist... Das ist ein Terminal.

Dodo

Ja, genau, das ist ein Terminal-Emulator.

Dominik

Sogar mit Paketmanagement

Dodo

allem Drum und Dran. Genau, also es bietet halt

Dodo

sehr viele Möglichkeiten, auch mit Android selber zu

Dodo

interagieren. Also irgendwie,

Dodo

weiß ich nicht, Kontakte

Dodo

SMS senden oder

Dodo

sowas. Und es läuft

Dodo

halt auch Python drauf. Also es kommt halt mit

Dodo

einem Paket-Repo von sehr vieler

Dodo

Software und es ist halt

Dodo

eigentlich alles so an Sprachen dabei,

Dodo

die man haben wollen würde.

Dodo

Also wie ein C-Compiler, Go-Compiler,

Dodo

Rust-Compiler,

Dodo

was nicht so wirklich gut läuft, ist leider Java,

Niklas

was bei Android ein bisschen komisch ist

Niklas

eigentlich. Aber ansonsten

Niklas

ja, unter anderem auch Python.

Dominik

Also was ich auch noch natürlich

Dominik

cool finde, ist der GPIO. Also auch

Dominik

den Raspi oder sowas ist natürlich super.

Niklas

Ganz viele coole

Dominik

einfache Sachen machen kann, die man auch super schön

Dominik

zeigen kann. Also einfach jetzt

Dominik

ein paar Pinne ansteuern und so Lämpchen zum Bräuchten bringen,

Dominik

das kriegt auch jedes Kind hin und man hat

Dominik

da direkt was, was man sehen kann. Das ist irgendwie immer schön.

Dodo

Generell kann man

Dodo

auch sagen, dass die Python Standard

Dodo

Library sehr

Dodo

viele, sehr coole

Dodo

Module enthält.

Dodo

Das finde ich extrem cool, weil ich mich immer

Dodo

dafür interessiere, wie funktioniert

Dodo

sowas eigentlich? Und mit DISS kann ich

Dodo

mir halt den Python Bytecode für eine Funktion

Dodo

anzeigen lassen.

Dodo

Und es ist halt nicht nur einfach die Byte,

Dodo

sondern es hat auch wirklich die Namen,

Dodo

die Instruktionen und die Parameter daneben und so.

Dodo

Und das ist schon ziemlich cool.

Dodo

Also generell ist die Standard-Library ja so umfangreich,

Dodo

dass wir bei den Anfängern

Dodo

größtenteils nur die Standard-Library benutzen müssen.

Dodo

Im Quatsch ist es.

Dodo

Das sind halt auch so Sachen dabei,

Dodo

wo man sich denkt,

Niklas

warum ist das jetzt eigentlich in der Standard-Library?

Niklas

Und andere Sachen nicht.

Jochen

Ja, das ist manchmal ein bisschen komisch.

Dodo

Zum Beispiel img-hdr, das kann dir ja von einer Bilddatei

Dodo

sagen, welches Dateiformat das ist.

Dodo

Also quasi so ein Pfeil-ähnliches

Dodo

Dingsmus in der Pfeil-Standlage eingebaut.

Dodo

Da habe ich mir gedacht, warum?

Dodo

Aber naja, das ist ganz praktisch manchmal.

Jochen

Ja, ja.

Niklas

Oder wave ist es auch

Niklas

als Codec da drin.

Niklas

Ja.

Jochen

Ja, da gibt es

Jochen

andere Bereiche, in denen gibt es dann irgendwie

Jochen

drei Module, die irgendwie das gleiche

Jochen

nur auf unterschiedliche Art tun.

Jochen

Urlib, Urlib 2, Urlib 3.

Jochen

Einfach Request nehmen.

Jochen

Und Requests gibt es nicht in der Standardbibliothek und so.

Jochen

Und das ist schon so ein bisschen...

Niklas

Also Request ist auch

Niklas

so das eine Ding, wo ich mir wünschen würde, dass es

Niklas

eine Standardbibliothek wäre.

Jochen

Schreibt uns auf jeden Fall

Jochen

eure Lieblingsmodule.

Jochen

Ja, wobei, also bei

Jochen

was mich an Requests halt noch so ein bisschen...

Jochen

Also ich meine, das ist von der Benutzung her...

Jochen

Ich meine, das ist ja auch der Anspruch

Jochen

irgendwie, ist ja halt HTTP for

Jochen

Humans, ne, irgendwie, wenn man das jetzt als

Jochen

Anwender, also als Entwickler, Anwender benutzt,

Jochen

ist das halt sehr praktisch, aber

Jochen

wenn man jetzt zum Beispiel viele HTTP-Requests

Jochen

machen möchte oder so, dann ist das halt auch schon

Jochen

nicht mehr so toll, weil das ist halt nicht

Jochen

asynchron, also

Jochen

man hat Multiplex halt sozusagen

Jochen

I.O. nicht wirklich,

Jochen

kann das dann eventuell machen, indem man halt

Jochen

Threads verwendet oder so, aber so

Jochen

von sich aus kann das das halt nicht

Jochen

und dann gibt's halt vielleicht

Jochen

auch, wenn man das halt noch nicht kennt,

Jochen

AIO

Jochen

HTTP

Jochen

ist, glaube ich, die

Jochen

Bibliothek

Jochen

oder das Projekt, ich weiß nicht so genau, da gibt es einmal

Jochen

einen Server, AIO

Jochen

HTTP

Jochen

und da gibt es einen Server

Jochen

drin und es gibt halt auch einen Client und der

Jochen

ist basiert halt auf Async.io

Jochen

und das ist halt richtig schnell und da kann man halt auch

Jochen

mal, gibt es auch ein schönes Beispiel, das hat

Jochen

gibt es einen Artikel

Jochen

von, ich habe jetzt den einen Namen

Jochen

vergessen, aber Guido von Rassum ist der andere Autor

Jochen

und die beschreiben halt so, wie kann man

Jochen

mal so eine Million Webseiten, äh Millionen

Jochen

Requests machen irgendwie schnell

Jochen

und das, äh, ja,

Jochen

sehr nettes Ding.

Jochen

Jo.

Jochen

Ja.

Dominik

Also ich würde sagen, wir haben viel gehört dazu,

Dominik

was wir, ja, wie man

Dominik

anfangen kann, wie man vielleicht weitermachen kann, welche

Dominik

Probleme so am Anfang auftauchen,

Dominik

wie man die so ein bisschen umschifft. Also wenn ihr

Niklas

in Düsseldorf und der Regierung seid, dann kommt doch einfach

Niklas

vorbei, ne? Genau.

Dominik

Ja, einfach so. Ich glaube, nicht nur Donnerstags

Dominik

sind da ein paar Jungs immer da.

Dominik

Ja.

Jochen

Ist halt jede Woche.

Niklas

Ja. Also nicht unbedingt

Dodo

mit uns, aber ja.

Dodo

Da gibt es auch

Dodo

andere coole Menschen.

Dominik

Ja, kann ich bestätigen.

Dominik

Ja, wenn ihr irgendwas antragen

Dominik

wollt, nochmal Events, wieder euer Feedback,

Dominik

Kommentare an

Dominik

hallo.peisen-podcast.de

Dominik

Ja, schön, dass ihr wieder eingeschaltet habt.

Dominik

Genau, dann versuchen wir mal

Jochen

irgendwie die nächste Sendung etwas zeitnah

Dominik

hinzukriegen, aber das... Ja, wir hatten eigentlich schon

Dominik

etwas vorbereitet, aber das hat nicht so gut geklappt.

Dominik

Da müssen wir noch mal dran.

Dominik

Datenbanken, wir können ja schon mal das Thema verraten.

Dominik

Haben wir uns eigentlich auf die Fahne da geschrieben.

Dominik

Wer hat eigentlich Model-View-Controller erfunden?

Dominik

You have to.

Jochen

Okay. Bis zum nächsten Mal.

Jochen

Alles klar. Tschüss.

Jochen

Tschüss.