WEBVTT

00:00:00.920 --> 00:00:05.380
Ja, hallo liebe Hörerinnen und Hörer, willkommen beim Python-Podcast in der vierten Episode.

00:00:06.340 --> 00:00:10.940
Heute geht es darum, wie man am besten Python lernen kann oder anderen Menschen Python beibringt.

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

00:00:18.080 --> 00:00:23.180
Ja, ich habe so ein bisschen was an meinem Equipment geupgradet und mal gucken, wie das jetzt so wird.

00:00:23.180 --> 00:00:37.180
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...

00:00:37.780 --> 00:00:40.040
Ich habe mich jetzt nicht zu sehr dodo, also ich habe auch nicht mitgebracht.

00:00:40.280 --> 00:00:40.520
Hallo.

00:00:40.940 --> 00:00:41.080
Hallo.

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

00:00:48.480 --> 00:00:49.620
Die sehr gute Einführungsmacht.

00:00:49.740 --> 00:00:49.860
Ja.

00:00:50.100 --> 00:00:50.240
Oh.

00:00:51.340 --> 00:00:52.340
Nicht zu viel Glauben.

00:00:52.520 --> 00:00:53.000
Ja.

00:00:53.180 --> 00:00:57.180
Ja, und genau, mal schauen, wie es so wird damit.

00:00:58.040 --> 00:01:01.280
Ja, Fragen, Anmerkungen, Kommentare und alles, was ja so loswerden müsste,

00:01:01.400 --> 00:01:04.160
bitte immer gerne in unsere E-Mail schreiben,

00:01:04.260 --> 00:01:05.940
hallo.peisen-podcast.de.

00:01:07.320 --> 00:01:08.560
Dabei auch direkt vielen Dank.

00:01:08.680 --> 00:01:11.340
Wir hatten Kommentare, schöne, bei der letzten Folge.

00:01:11.960 --> 00:01:15.700
Einmal Gruß nach Rostock an den Matthias und in die Schweiz an den Dirk.

00:01:16.180 --> 00:01:19.140
Genau, und das war sehr positiv.

00:01:19.140 --> 00:01:21.420
und das ist natürlich mal sehr schön,

00:01:21.880 --> 00:01:22.840
wenn man da auch irgendwie

00:01:22.840 --> 00:01:25.240
mitbekommt, dass das so ein bisschen

00:01:25.240 --> 00:01:27.380
wahrgenommen wird. Die Punkte, die da angesprochen

00:01:27.380 --> 00:01:29.180
wurden, waren einmal, dass es halt nett wäre,

00:01:29.780 --> 00:01:30.820
wenn wir jetzt irgendwie Kommentare

00:01:30.820 --> 00:01:33.300
doch auch dabei hätten

00:01:33.300 --> 00:01:35.440
und dazu haben wir uns natürlich auch

00:01:35.440 --> 00:01:37.440
schon irgendwie Gedanken gemacht und haben erstmal gesagt,

00:01:37.500 --> 00:01:38.960
wir lassen die bewusst weg, weil

00:01:38.960 --> 00:01:40.920
naja, das ist halt irgendwie

00:01:40.920 --> 00:01:43.220
alle Zeit, die wir da rein investieren müssen, einmal

00:01:43.220 --> 00:01:45.320
das Feature zu bauen, aber dann auch irgendwie

00:01:45.320 --> 00:01:47.320
den Kram zu maintainen, können wir

00:01:47.320 --> 00:01:48.740
halt nicht irgendwie zum

00:01:48.740 --> 00:01:51.160
Aufnehmen von Podcasts

00:01:51.160 --> 00:01:53.020
verwenden, aber ja, also

00:01:53.020 --> 00:01:55.000
Genau, falls unser AXE mal stumpf werden sollte,

00:01:55.260 --> 00:01:57.080
dann denken wir nochmal über die Kommentare nach.

00:01:57.260 --> 00:01:59.100
Ja, also ich meine, ich glaube, es ist auch

00:01:59.100 --> 00:02:00.720
nicht so schwierig, das zu implementieren und

00:02:00.720 --> 00:02:03.060
wenn man das auf User beschränkt, die sich irgendwie eingeloggt haben,

00:02:03.140 --> 00:02:05.020
aber das ist halt die Frage, wie sinnvoll das dann noch ist, wenn man das

00:02:05.020 --> 00:02:06.960
macht, dann ist das

00:02:06.960 --> 00:02:08.300
auch nicht allzu schlimm, aber

00:02:08.300 --> 00:02:10.980
ja, wir müssen mal gucken. Es gibt ja eine ganze

00:02:10.980 --> 00:02:12.860
Menge Dinge, die wir da eventuell noch einbauen

00:02:12.860 --> 00:02:14.100
wollen und ja.

00:02:14.600 --> 00:02:16.800
Ja, das kannst du vielleicht gleich nochmal bei der Modulvorstellung von deinem

00:02:16.800 --> 00:02:18.420
neuesten DjangoCast-Fortschritt

00:02:18.420 --> 00:02:20.820
erwähnen. Was die Leute

00:02:20.820 --> 00:02:22.680
sich auch gewünscht hatten, also unsere Hörer, war Struktur.

00:02:26.380 --> 00:02:26.780
Frechheit.

00:02:28.220 --> 00:02:28.640
Ja, stimmt.

00:02:28.740 --> 00:02:30.300
Das ist natürlich schon so ein gewisser Punkt.

00:02:30.300 --> 00:02:31.960
Ja, wir versuchen das aber trotzdem heute mal umzusetzen.

00:02:32.160 --> 00:02:34.240
Wir haben uns heute einfach auf ein Thema beschränkt, da ist die Struktur

00:02:34.240 --> 00:02:36.140
vielleicht nicht so wichtig. Wir fangen vielleicht

00:02:36.140 --> 00:02:38.080
erstmal nochmal damit an, was in letzter Zeit denn so los war

00:02:38.080 --> 00:02:40.240
und dann erzählen wir halt darüber, was man mit Python alles

00:02:40.240 --> 00:02:41.680
lernen kann und ja,

00:02:42.420 --> 00:02:43.220
vielleicht noch ein paar Module.

00:02:44.900 --> 00:02:45.600
Genau, aber

00:02:45.600 --> 00:02:48.020
vielleicht machen wir einfach erstmal eine Vorstellungsrunde.

00:02:48.220 --> 00:02:50.120
Ich meine, wir beide

00:02:50.120 --> 00:02:51.760
sind jetzt schon irgendwie bekannt, aber wer

00:02:51.760 --> 00:02:53.180
seid ihr denn?

00:02:55.600 --> 00:02:56.300
Ja, ich würde

00:02:56.300 --> 00:02:57.400
sagen, Alter vor Schönheit.

00:02:58.580 --> 00:02:59.960
Ich bin der Dodo oder

00:02:59.960 --> 00:03:01.120
der zweite Dominik.

00:03:02.000 --> 00:03:03.680
Ich mache zusammen mit dem Niklas das

00:03:03.680 --> 00:03:05.740
Python-Foo-Light im Chaosdorf.

00:03:05.740 --> 00:03:07.600
Das ist das

00:03:07.600 --> 00:03:09.740
Python-Foo für Anfänger

00:03:09.740 --> 00:03:11.520
in Python oder Anfänger in

00:03:11.520 --> 00:03:13.480
Programmierung im Allgemeinen.

00:03:13.920 --> 00:03:16.620
Das ist jeweils der 1. und 2. Donnerstag im Monat.

00:03:17.660 --> 00:03:23.060
Und ja, da versuchen wir Leuten Python als Programmiersprache beizubringen.

00:03:23.480 --> 00:03:25.840
Und das machen wir jetzt seit 3 Jahren.

00:03:25.860 --> 00:03:27.080
2015, oder?

00:03:27.180 --> 00:03:29.080
Ja, ich glaube, mittlerweile 3 Jahre.

00:03:29.400 --> 00:03:30.300
Irgendwann im Sommer, ja.

00:03:31.840 --> 00:03:33.860
Da kann man übrigens immer gerne vorbeikommen.

00:03:34.240 --> 00:03:34.720
Natürlich.

00:03:36.560 --> 00:03:37.880
Ich bin ja Niklas, hallo.

00:03:38.480 --> 00:03:43.140
Wir haben das damals angefangen, ich glaube, irgendwie ein halbes Jahr,

00:03:43.220 --> 00:03:44.600
nachdem es den Gamedev gab.

00:03:45.580 --> 00:03:48.280
Es gibt da gewisse personelle Überschneidungen mit Leuten,

00:03:48.860 --> 00:03:50.220
die dann halt nicht mehr die Zeit hatten,

00:03:50.280 --> 00:03:52.660
auch noch den Python-Fool viermal im Monat zu machen.

00:03:53.240 --> 00:03:55.520
Und dann sind wir halt eingesprungen in den ersten beiden Donnerstagen.

00:03:56.080 --> 00:03:59.040
Ja, vor allen Dingen hatten wir festgestellt,

00:03:59.040 --> 00:04:03.120
dass sich gerade Anfänger häufig erschlagen fühlen,

00:04:03.500 --> 00:04:04.780
wenn sie zum Python-Fool kommen

00:04:04.780 --> 00:04:07.400
und über viel komplexere Themen besprochen wird,

00:04:07.620 --> 00:04:10.700
als sie, die ihnen jetzt erstmal nichts sagen,

00:04:10.780 --> 00:04:12.440
weil sie gerade mit Python anfangen möchten.

00:04:13.020 --> 00:04:14.760
Und da dachten wir, dass eine Veranstaltung,

00:04:14.880 --> 00:04:17.000
die sich eben dediziert an die Anfänger wendet,

00:04:17.140 --> 00:04:20.720
wo man dann auch die blödesten Fragen stellen kann,

00:04:20.860 --> 00:04:22.200
doch eine ganz gute Sache wäre.

00:04:22.360 --> 00:04:24.480
Da dachten wir, wenn jemand die Anfänger erschlägt, dann wir.

00:04:24.740 --> 00:04:25.060
Genau.

00:04:26.840 --> 00:04:28.960
Und wenn jemand blöde Fragen beantwortet,

00:04:29.000 --> 00:04:30.120
sind wir ja immer noch wie das.

00:04:30.920 --> 00:04:31.960
Wir stellen die auch meistens.

00:04:31.960 --> 00:04:32.260
Ja.

00:04:33.500 --> 00:04:36.400
Ja, das klingt doch auf jeden Fall gut.

00:04:36.640 --> 00:04:38.700
Und ja, vielleicht können wir euch dann auch direkt mal

00:04:38.700 --> 00:04:42.240
auf dem Kalt- beziehungsweise auf dem falschen Fuß erwischen,

00:04:42.340 --> 00:04:44.180
euch fragen, was habt ihr denn in letzter Zeit so

00:04:44.180 --> 00:04:46.220
an Python-Neuigkeiten mitbekommen?

00:04:46.380 --> 00:04:48.340
Weil das ist ja vielleicht auch ganz interessant, was da so, wenn man

00:04:48.340 --> 00:04:49.740
sich jetzt nicht irgendwie da

00:04:49.740 --> 00:04:52.180
bewusst für entscheidet, irgendwie diese, den

00:04:52.180 --> 00:04:54.360
News da zu konsumieren, was dann da irgendwie hängenbleibt.

00:04:54.660 --> 00:04:55.900
Also ich lese ab und zu die

00:04:55.900 --> 00:04:57.880
Release-Notes zu neuen Python-Versionen,

00:04:58.220 --> 00:05:00.120
aber es gab jetzt schon ein halbes Jahr keine mehr.

00:05:02.380 --> 00:05:03.760
Eigentlich nicht so wirklich, nein.

00:05:04.280 --> 00:05:06.000
Ich glaube, das Letzte, was ich

00:05:06.000 --> 00:05:08.300
gelesen hatte, also hin und

00:05:08.300 --> 00:05:09.580
wieder bekomme ich halt

00:05:09.580 --> 00:05:12.120
von den neuen Releases

00:05:12.120 --> 00:05:14.080
was mit. Das letzte, was ich

00:05:14.080 --> 00:05:15.900
mir angeschaut hatte, waren die Data

00:05:15.900 --> 00:05:17.880
Classes, die jetzt in den neueren

00:05:17.880 --> 00:05:20.100
Python-Versionen vorkommen sollen.

00:05:20.840 --> 00:05:22.200
Die hatte ich mir einmal angeguckt.

00:05:22.960 --> 00:05:24.360
Ja, die Python-News

00:05:24.360 --> 00:05:26.020
lese ich meistens

00:05:26.020 --> 00:05:27.880
als RSS-Feed. Da habe ich mir

00:05:27.880 --> 00:05:30.200
von Planet Python den RSS-Feed

00:05:30.200 --> 00:05:31.980
gezogen und kriege da ganz unterschiedliche

00:05:31.980 --> 00:05:33.240
Nachrichten jeweils.

00:05:34.000 --> 00:05:35.920
Das ist auch relativ

00:05:35.920 --> 00:05:37.940
interessant. Ich setze mir dann

00:05:37.940 --> 00:05:39.640
meistens einfach nur eine Flagge im RSS

00:05:39.640 --> 00:05:40.880
wieder, weil

00:05:40.880 --> 00:05:43.900
meistens komme ich dann nicht dazu, die Nachrichten

00:05:43.900 --> 00:05:45.900
komplett zu lesen, sondern habe nur die

00:05:45.900 --> 00:05:47.460
Kurzbeschreibung.

00:05:48.080 --> 00:05:49.900
Aber ich finde, das ist ein sehr gutes

00:05:49.900 --> 00:05:51.880
Mittel, um News über Python zu

00:05:51.880 --> 00:05:53.700
bekommen. Ich habe mein

00:05:53.700 --> 00:05:55.700
RSS-Reader seit irgendwie drei Jahren

00:05:55.700 --> 00:05:56.480
nicht mehr aufgemacht.

00:05:58.220 --> 00:05:59.580
Eine 10.000 Nachrichten.

00:05:59.580 --> 00:06:01.680
Das letzte neue Feature von Python, das ich

00:06:01.680 --> 00:06:03.840
verwendet habe, war NameTouples, glaube ich.

00:06:04.860 --> 00:06:05.620
Das fand ich ganz cool,

00:06:05.660 --> 00:06:07.020
so als einfacher Klassenersatz.

00:06:07.940 --> 00:06:10.980
Es gibt noch einen coolen Newsletter für Python.

00:06:11.320 --> 00:06:12.720
Oh, Newsletter.

00:06:13.140 --> 00:06:14.540
Ja, da stellen wir auch die

00:06:14.540 --> 00:06:15.900
Shownotes dann vielleicht mal rein.

00:06:16.140 --> 00:06:18.700
Wir sollten die Newsletter vielleicht mal reinpacken.

00:06:18.780 --> 00:06:21.020
Also es gibt ein paar. Ich habe irgendwie einen Awesome Python,

00:06:21.340 --> 00:06:22.340
einen Python Weekly.

00:06:22.820 --> 00:06:25.020
Ich habe auf GitHub die Trending

00:06:25.020 --> 00:06:26.560
Repos abonniert. Das gibt es für

00:06:26.560 --> 00:06:28.920
familiäre Sprachen und unter anderem auch für Python.

00:06:29.400 --> 00:06:30.080
Oh, das ist ja super.

00:06:31.580 --> 00:06:32.160
Das ist halt

00:06:32.160 --> 00:06:34.840
teilweise Sachen, die halt irgendwie nur

00:06:34.840 --> 00:06:36.760
zufällig in Python sind und nicht wirklich

00:06:36.760 --> 00:06:38.360
dafür relevant sind, aber

00:06:38.360 --> 00:06:40.040
manchmal ist auch was Spannendes dabei.

00:06:40.980 --> 00:06:42.640
Ja, das klingt auf jeden Fall interessant, ja, da können wir

00:06:42.640 --> 00:06:44.720
vielleicht einfach einen Punkt machen, wo wir so ein bisschen sammeln, wie man sich

00:06:44.720 --> 00:06:46.840
eigentlich da aktuell halten

00:06:46.840 --> 00:06:48.580
kann. Ja, also ich bin auch ein großer Fan von

00:06:48.580 --> 00:06:50.640
RSS und ich habe eigentlich auch irgendwie, ich verwende schon

00:06:50.640 --> 00:06:52.260
ganz lange einen Feed-Reader,

00:06:54.360 --> 00:06:54.880
bin dann

00:06:54.880 --> 00:06:56.860
da, irgendwie gab es, ganz am Anfang

00:06:56.860 --> 00:06:58.620
habe ich irgendwie Aggregator verwendet

00:06:58.620 --> 00:07:00.120
unter KDE und

00:07:00.120 --> 00:07:02.600
dann gab es aber den Google Reader und

00:07:02.600 --> 00:07:04.520
der war so gut, den fand ich total toll und

00:07:04.520 --> 00:07:06.420
den habe ich ganz lange verwendet. Ich habe ganz lange dieses

00:07:06.420 --> 00:07:08.220
Sharing-Feature verwendet, was auch viele andere

00:07:08.220 --> 00:07:10.480
irgendwie gern benutzt haben und da

00:07:10.480 --> 00:07:12.460
gab es ganz tolle Sachen und

00:07:12.460 --> 00:07:14.340
das war irgendwie so ein, das war das

00:07:14.340 --> 00:07:16.280
einzige Mal, dass so Social Network für mich so ein bisschen

00:07:16.280 --> 00:07:17.640
funktioniert hat und

00:07:17.640 --> 00:07:20.380
dann hat Google den Reader eingestellt und das war

00:07:20.380 --> 00:07:21.840
ganz furchtbar und jetzt

00:07:21.840 --> 00:07:24.400
habe ich zwar immer noch einen Feed-Reader, aber es ist

00:07:24.400 --> 00:07:26.360
irgendwie alles nicht mehr so das Gleiche

00:07:26.360 --> 00:07:28.420
und genau, ich habe

00:07:28.420 --> 00:07:30.220
da auch Planet Python und da gibt es noch so ein paar

00:07:30.220 --> 00:07:31.580
Blogs von Leuten,

00:07:33.120 --> 00:07:34.160
die halt da an Python

00:07:34.160 --> 00:07:35.980
rum, äh, an, äh, an Python

00:07:35.980 --> 00:07:38.100
halt an Junkroom entwickeln, halt auch abonniert.

00:07:39.260 --> 00:07:39.420
Ja.

00:07:40.920 --> 00:07:42.320
Tja, ähm,

00:07:42.800 --> 00:07:44.300
äh, genau, ja, das, das mit dem,

00:07:44.380 --> 00:07:46.300
mit den Dataclasses ist Python 3.7

00:07:46.300 --> 00:07:48.500
oder es gibt ja jetzt, vorletzte Woche, glaube ich,

00:07:48.560 --> 00:07:49.940
3.8 nochmal ein paar Ankündigungen, genau.

00:07:50.020 --> 00:07:52.200
Genau, da gab's eine neue Alpha-Version und zwar

00:07:52.200 --> 00:07:54.260
gab, gibt's da auch eine Syntax-Änderung,

00:07:54.660 --> 00:07:55.880
ich weiß nicht, ob ihr von der schon gehört habt.

00:07:56.180 --> 00:07:58.220
Ähm, war das das mit dem Doppelpunkt

00:07:58.220 --> 00:07:59.880
gleich, dass man in, ach ja,

00:08:00.280 --> 00:08:02.280
das war doch, dass man in, wie war

00:08:02.280 --> 00:08:04.060
das, in Schleif, äh, in

00:08:04.060 --> 00:08:05.840
der Deklaration von einer

00:08:05.840 --> 00:08:08.280
Wildschleife kann ich mir die

00:08:08.280 --> 00:08:10.280
Variable setzen, oder?

00:08:10.280 --> 00:08:12.080
Das war eine Zuweisung, die dann auch

00:08:12.080 --> 00:08:14.140
wieder direkt den Wert hat. Genau, also man

00:08:14.140 --> 00:08:15.820
macht eine Zuweisung und gleichzeitig hat die

00:08:15.820 --> 00:08:17.940
entweder true oder false.

00:08:18.400 --> 00:08:20.240
Es gab da auch irgendwie einen witzigen Namen

00:08:20.240 --> 00:08:21.980
für den Operator, ne? Ja, da komme ich

00:08:21.980 --> 00:08:23.300
nochmal. Irgendwie nach dem Tier, ne?

00:08:24.620 --> 00:08:26.080
Walrus-Operator, weil

00:08:26.080 --> 00:08:26.940
das ein bisschen aussieht wie ein

00:08:26.940 --> 00:08:29.900
Augen und Zähne, ja.

00:08:30.040 --> 00:08:31.860
Das ist so ein bisschen wie dieser Turbo-Fisch,

00:08:31.940 --> 00:08:33.780
wenn du hast, ne? Turbo-Fisch.

00:08:33.800 --> 00:08:36.480
Das hatte ich auf Twitter, glaube ich,

00:08:36.480 --> 00:08:38.240
mitbekommen. Das hatte mir

00:08:38.240 --> 00:08:40.180
irgendwer retweetet. Das fand ich auch sehr

00:08:40.180 --> 00:08:40.700
interessant.

00:08:42.680 --> 00:08:44.300
Ja, und genau, man kann sich damit halt

00:08:44.300 --> 00:08:46.320
umgucken. Also man halt macht halt oft so was

00:08:46.320 --> 00:08:48.360
wie man holt irgendwas, einen Wert

00:08:48.360 --> 00:08:50.220
aus einem Dikt und dann muss man

00:08:50.220 --> 00:08:52.300
erstmal überprüfen, ob das nicht None ist, weil

00:08:52.300 --> 00:08:53.920
man weiß halt nicht, ob es...

00:08:53.920 --> 00:08:56.240
Die Zeile kann man sich jetzt immer sparen und man schreibt dann halt

00:08:56.240 --> 00:08:58.340
direkt, if irgendwie

00:08:58.340 --> 00:08:59.700
dann irgendwas

00:08:59.700 --> 00:09:01.740
Valros Operator

00:09:01.740 --> 00:09:03.300
Verdikt.getKey,

00:09:04.040 --> 00:09:06.080
dann macht man halt weiter, wenn es

00:09:06.080 --> 00:09:07.700
drin war und ansonsten...

00:09:07.700 --> 00:09:10.160
Ansonsten wäre für sowas ja auch so ein SafeNavigation

00:09:10.160 --> 00:09:12.300
Operator nett. Es gibt ja Sprachen,

00:09:12.380 --> 00:09:14.200
da kannst du irgendwie Fragezeichen Punkt machen

00:09:14.200 --> 00:09:16.200
und die machen dann in den Zugriff nur, wenn das Objekt selber

00:09:16.200 --> 00:09:18.040
nicht null ist. Ein SafeNavigator,

00:09:18.040 --> 00:09:19.000
das musst du bitte kurz erläutern.

00:09:19.440 --> 00:09:22.060
Also es ist ja auch praktisch so, dass du irgendwie ein Objekt hast

00:09:22.060 --> 00:09:23.740
und es hat ein Attribut. Dann machst du irgendwie

00:09:23.740 --> 00:09:25.920
Objekt.Attribut. Irgendwas.

00:09:26.500 --> 00:09:28.080
Und eigentlich musst du ja bei jedem

00:09:28.080 --> 00:09:29.860
dieser Schritte prüfen, ob das Attribut

00:09:29.860 --> 00:09:31.240
selber nicht null ist.

00:09:31.740 --> 00:09:33.540
kannst du ja nicht Punkt machen. Es gibt halt

00:09:33.540 --> 00:09:35.660
Sprachen, die haben so ein Syntax-

00:09:35.660 --> 00:09:37.660
Fragezeichenpunkt, die macht

00:09:37.660 --> 00:09:39.820
halt den Zugriff nur, wenn das Objekt selber nicht None ist

00:09:39.820 --> 00:09:41.620
und ansonsten ist der Wert halt auch direkt

00:09:41.620 --> 00:09:43.380
wieder None. Das fände ich cool,

00:09:43.540 --> 00:09:45.520
kenne ich über Python nicht. Ja, und da hatten wir

00:09:45.520 --> 00:09:47.340
tatsächlich, ich weiß nicht, kennt ihr das? Es gibt

00:09:47.340 --> 00:09:49.620
ein Telegram-Channel

00:09:49.620 --> 00:09:51.020
zur Python-User-Group

00:09:51.020 --> 00:09:53.340
Düsseldorf, PyDDF. Nee, kenne ich nicht.

00:09:53.860 --> 00:09:54.400
Ah, ja.

00:09:55.580 --> 00:09:57.380
Die User-Group, die kenne ich,

00:09:57.480 --> 00:09:59.740
da war ich ein paar Mal, aber den Telegram-Channel

00:09:59.740 --> 00:10:01.300
sagt mir nichts. Genau,

00:10:01.300 --> 00:10:03.980
Es gibt immer noch eine Mailing-Liste,

00:10:04.120 --> 00:10:05.360
aber der Telegram-Channel ist tatsächlich

00:10:05.360 --> 00:10:07.200
was, was jetzt auch stärker

00:10:07.200 --> 00:10:09.400
genutzt wird. Und da gab es eine Diskussion genau darüber

00:10:09.400 --> 00:10:11.560
und Chezy, den wir als Expertengast

00:10:11.560 --> 00:10:13.220
für unsere Django-Folge da

00:10:13.220 --> 00:10:15.240
hatten, hat da auch irgendwie quasi

00:10:15.240 --> 00:10:17.320
es gibt einen Python-Enhancement-Proposal, wo genau

00:10:17.320 --> 00:10:19.240
so eine Syntax mit einem Fragezeichen vorgeschlagen wird

00:10:19.240 --> 00:10:21.360
für, hat das dann halt auch irgendwie da mal

00:10:21.360 --> 00:10:23.080
vorgestellt und meinte so, das wäre doch eine tolle Idee.

00:10:23.860 --> 00:10:25.600
Und dann hat sich das aber relativ

00:10:25.600 --> 00:10:27.160
das war sehr kontrovers,

00:10:27.460 --> 00:10:29.260
das war ein sehr polarisierender

00:10:29.260 --> 00:10:32.120
Also ich habe es auch noch nie genutzt, ich weiß nur, dass es existiert

00:10:32.120 --> 00:10:32.720
in anderen Sprachen.

00:10:33.800 --> 00:10:36.260
Ich bin mal gespannt, kann ja sein, dass es auch in Python irgendwann kommt.

00:10:37.900 --> 00:10:38.220
Genau.

00:10:38.600 --> 00:10:39.660
Ja, es gibt noch mehr Neuigkeiten

00:10:39.660 --> 00:10:41.540
von dem Steering-Counter.

00:10:42.280 --> 00:10:43.380
Da wolltest du vielleicht noch was zu sagen.

00:10:45.000 --> 00:10:45.860
Genau, ich habe da jetzt

00:10:45.860 --> 00:10:47.540
auch nicht so einen Detail

00:10:47.540 --> 00:10:49.100
verfolgt, aber es ist halt so, dass

00:10:49.100 --> 00:10:51.560
Guido ja sozusagen

00:10:51.560 --> 00:10:54.240
so einen unbegrenzten

00:10:54.240 --> 00:10:55.460
Urlaub genommen hat von seiner

00:10:55.460 --> 00:10:58.180
BFDL-Rolle

00:10:58.180 --> 00:11:26.700
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.

00:11:26.700 --> 00:11:28.720
und da sind halt irgendwie fünf Mitglieder reingewählt

00:11:28.720 --> 00:11:29.640
worden, unter anderem auch Guido.

00:11:31.020 --> 00:11:32.740
Und genau, das werden wir auch verlinken,

00:11:32.820 --> 00:11:34.620
kann man sich ja mal angucken. Es sind alles nette Leute

00:11:34.620 --> 00:11:36.160
insofern. Ja, sieht gut aus.

00:11:36.560 --> 00:11:38.320
Und jetzt kommt noch eine nächste Neuerung, und zwar gibt es jetzt

00:11:38.320 --> 00:11:40.080
lokale Packages in Python.

00:11:41.780 --> 00:11:42.680
Ne, das gibt es auch erst

00:11:42.680 --> 00:11:44.320
mit Python 3.8. Genau.

00:11:45.540 --> 00:11:46.800
Stimmt, das war auch in der Alpha-Release

00:11:46.800 --> 00:11:48.180
drin. Python Local,

00:11:49.440 --> 00:11:50.320
ja, pip local

00:11:50.320 --> 00:11:52.800
gibt es so ein Verzeichnis dann.

00:11:53.220 --> 00:11:54.860
Ui, jetzt muss ich mich wieder versuchen, daran zu erinnern,

00:11:54.900 --> 00:11:55.860
was das eigentlich genau ist.

00:11:55.860 --> 00:11:58.040
Das ist quasi dann so ähnlich wie bei JavaScript

00:11:58.040 --> 00:12:00.000
und dass man halt die

00:12:00.000 --> 00:12:01.980
Pakete, die man installiert, halt in dem Verzeichnis,

00:12:02.040 --> 00:12:03.260
in einem speziellen Verzeichnis direkt hat

00:12:03.260 --> 00:12:06.120
und dann

00:12:06.120 --> 00:12:08.100
irgendwie drumherum kommt, sich mit diesem ganzen

00:12:08.100 --> 00:12:10.040
Virtual-Env-Kram rumschlagen zu müssen.

00:12:10.220 --> 00:12:11.500
Ah, also quasi

00:12:11.500 --> 00:12:14.000
man konnte doch bisher auch schon

00:12:14.000 --> 00:12:16.120
bei PIP-Install irgendwie ein Target angeben

00:12:16.120 --> 00:12:17.600
und das ist dann, ah, okay.

00:12:18.660 --> 00:12:19.900
Und das ist dann, glaube ich, einfach

00:12:19.900 --> 00:12:22.060
das heißt dann einfach PIP-Local

00:12:22.060 --> 00:12:24.140
und dann installiert es halt in das Verzeichnis rein

00:12:24.140 --> 00:12:25.700
und dann... Dann hast du alles in einem Ordner.

00:12:25.860 --> 00:12:27.740
Das ist cool.

00:12:29.100 --> 00:12:29.780
Auch gar nicht so schlecht.

00:12:30.980 --> 00:12:32.240
Also ich weiß nicht, ob es jetzt Virtual Env

00:12:32.240 --> 00:12:33.880
komplett ersetzen wird, aber

00:12:33.880 --> 00:12:36.120
auf jeden Fall. Also ich meine, gut, wir haben ja jetzt

00:12:36.120 --> 00:12:38.160
drei oder vier unterschiedliche Arten, wie man das machen kann.

00:12:38.400 --> 00:12:40.000
Viertel wird bestimmt das Problem lösen.

00:12:40.180 --> 00:12:41.460
Und die beste ist natürlich PIP-Env.

00:12:42.400 --> 00:12:43.420
Ja, PIP-Env ist auch toll.

00:12:43.920 --> 00:12:44.940
Das stimmt, das ist schon gut.

00:12:46.780 --> 00:12:47.680
Genau, zu sowas.

00:12:49.020 --> 00:12:49.380
Isolierung,

00:12:49.600 --> 00:12:51.800
Isolation, Virtual Envs, Docker,

00:12:52.360 --> 00:12:54.200
diesen ganzen Kram, wie kriege ich eigentlich

00:12:54.200 --> 00:12:55.600
unterschiedliche Projekte auf einer Maschine

00:12:55.600 --> 00:12:58.220
irgendwie so installiert,

00:12:58.300 --> 00:12:59.540
dass sie sich nicht gegenseitig kaputt machen.

00:12:59.660 --> 00:13:00.300
Dazu müssen wir auch mal...

00:13:00.300 --> 00:13:01.420
Ja, eine extra Folge, okay.

00:13:03.200 --> 00:13:07.120
Ja, dann fangen wir doch jetzt am besten

00:13:07.120 --> 00:13:08.000
mit unserem Thema an, oder?

00:13:08.320 --> 00:13:09.220
Ja, klar.

00:13:09.220 --> 00:13:10.920
Wie lernt man denn Python so am besten?

00:13:12.180 --> 00:13:12.560
Puh.

00:13:16.580 --> 00:13:17.460
Ja, ich glaube,

00:13:18.460 --> 00:13:21.600
das hängt viel von einem selber ab.

00:13:21.600 --> 00:13:24.100
Also, es gibt verschiedene Arten,

00:13:24.340 --> 00:13:25.500
wie man Python lernen kann.

00:13:25.600 --> 00:13:27.700
und ich würde sagen,

00:13:29.060 --> 00:13:29.700
da

00:13:29.700 --> 00:13:32.060
muss man so für sich die beste

00:13:32.060 --> 00:13:34.700
Art und Weise rausfinden.

00:13:34.940 --> 00:13:35.620
Die Frage ist ja auch,

00:13:36.280 --> 00:13:38.340
kann man schon programmieren? Kennt man vielleicht andere

00:13:38.340 --> 00:13:40.200
Programmiersprachen, die sich ähnlich verhalten,

00:13:40.300 --> 00:13:41.920
was Objektorientierung und sowas angeht?

00:13:42.020 --> 00:13:43.560
Oder muss man das auch noch erstmal lernen?

00:13:44.240 --> 00:13:45.360
Ja, und

00:13:45.360 --> 00:13:48.100
wenn man schon eine andere Programmiersprache hat,

00:13:48.100 --> 00:13:49.800
gibt es natürlich, sind

00:13:49.800 --> 00:13:51.900
gewisse Einstiegshürden einfach nicht mehr da.

00:13:52.220 --> 00:13:54.400
Also, wenn ich schon mal im Texteditor

00:13:54.400 --> 00:13:56.400
ein Programm geschrieben habe, dann

00:13:56.400 --> 00:13:58.520
muss mir nicht mehr erklärt werden, wie

00:13:58.520 --> 00:13:59.920
ich mit dem Texteditor arbeite.

00:14:00.360 --> 00:14:02.120
Wenn ich schon mal eine IDE bedient habe,

00:14:02.320 --> 00:14:04.520
weiß ich, was eine IDE ist. Oder Schleifen.

00:14:04.820 --> 00:14:05.100
Genau.

00:14:06.200 --> 00:14:08.420
Das geht natürlich weiter

00:14:08.420 --> 00:14:10.700
mit den Kommandostrukturen.

00:14:11.220 --> 00:14:12.460
Eine IF-Bedingung

00:14:12.460 --> 00:14:14.460
kenne ich dann, wenn ich schon mal programmiert

00:14:14.460 --> 00:14:16.120
habe, eine Schleife, etc.

00:14:16.520 --> 00:14:18.220
Wenn ich schon mal mit einer

00:14:18.220 --> 00:14:20.020
stark objektorientierten

00:14:20.020 --> 00:14:22.180
Programmiersprache gearbeitet habe, muss man mir

00:14:22.180 --> 00:14:23.860
Objektorientierung nicht mehr erklären.

00:14:24.280 --> 00:14:32.500
Also da gibt es dann Einstiegshürden, je nachdem, ob ich mich schon mal mit einer Programmiersprache beschäftigt habe,

00:14:32.840 --> 00:14:35.440
eventuell sogar mit einer, die Python sehr ähnlich ist.

00:14:35.680 --> 00:14:41.980
Ansonsten sind halt so Sachen wie Namespaces oder dynamische Topisierung vielleicht eventuell sogar einfacher zu lernen,

00:14:42.060 --> 00:14:43.620
wenn man das aus einer anderen Sprache noch nicht kennt.

00:14:44.260 --> 00:14:50.480
Ja, das heißt, wenn du nicht gewohnt bist, dass du deine Variable einen festen Typen hast,

00:14:51.180 --> 00:14:53.320
Ja, dann könnte es sogar einfacher

00:14:53.320 --> 00:14:55.200
sein. An der

00:14:55.200 --> 00:14:57.180
Stelle bietet Python natürlich einen

00:14:57.180 --> 00:14:58.740
einfachen Einstieg, weil

00:14:58.740 --> 00:15:01.020
es eben eine

00:15:01.020 --> 00:15:03.300
dynamische, strenge Typisierung bietet.

00:15:05.620 --> 00:15:06.560
Ja, ich hab so die

00:15:06.560 --> 00:15:09.120
Aufmerksamkeit auf Hackathons oder so, wo ich

00:15:09.120 --> 00:15:09.680
dann irgendwie

00:15:09.680 --> 00:15:12.360
Leute hatte, die dann halt

00:15:12.360 --> 00:15:15.160
aus sehr unterschiedlichen Bereichen kamen, aus sehr unterschiedlichem

00:15:15.160 --> 00:15:16.800
Wissensstand hatten und dann hat man versucht,

00:15:16.900 --> 00:15:18.240
so ein Projekt zu machen mit denen

00:15:18.240 --> 00:15:19.660
und dann

00:15:21.180 --> 00:15:23.540
ja genau, versucht man halt einfach nur

00:15:23.540 --> 00:15:25.600
irgendwie das Projekt zu bootstrappen,

00:15:25.680 --> 00:15:27.580
das heißt irgendwie, die müssen irgendwie Python installieren,

00:15:27.700 --> 00:15:29.820
dann irgendwie irgendwas aus Git ziehen,

00:15:29.940 --> 00:15:31.360
dann Virtual Env erzeugen,

00:15:31.700 --> 00:15:33.080
dann irgendwie die Abhängigkeiten installieren.

00:15:33.180 --> 00:15:35.440
Und dann sind zwei Tage rum. Genau, und das

00:15:35.440 --> 00:15:37.680
ist teilweise, weil was mir dann immer

00:15:37.680 --> 00:15:39.400
passiert, oder die schlimmsten Fälle sind immer so,

00:15:39.540 --> 00:15:41.340
ja okay, Python installieren, ja aber das ist mein

00:15:41.340 --> 00:15:43.260
Firmenrechner, da ist ein Windows drauf und ich

00:15:43.260 --> 00:15:45.500
kann da auch eigentlich nichts installieren, so dann

00:15:45.500 --> 00:15:47.460
ist schon mal so, okay, dann ist man halt

00:15:47.460 --> 00:15:49.520
vielleicht nach einer Stunde irgendwie so, dass man eine Python-Shell hat,

00:15:49.660 --> 00:15:52.400
aber wie geht ihr damit um?

00:15:52.600 --> 00:15:54.920
Oder macht ihr irgendwie Ansagen,

00:15:55.060 --> 00:15:56.380
was schon vorausgesetzt wird,

00:15:56.420 --> 00:15:57.240
wenn man überhaupt da hinkommt?

00:15:57.340 --> 00:15:59.660
Also um den ganzen Kram drücken wir uns ein bisschen.

00:16:00.420 --> 00:16:03.460
Andererseits, wir verwenden zumindest am Anfang nichts,

00:16:03.560 --> 00:16:05.020
was irgendwie extra Module braucht.

00:16:05.320 --> 00:16:07.100
Also man braucht einfach nur einen Python-Interpreter.

00:16:07.900 --> 00:16:08.800
Und viele Systeme,

00:16:09.040 --> 00:16:11.000
irgendwie OSX oder die meisten Linux-Distros,

00:16:11.080 --> 00:16:11.920
haben ja einen schon dabei.

00:16:13.760 --> 00:16:16.120
Und wenn jemand einen Windows-Rechner mitbringt,

00:16:16.120 --> 00:16:17.080
haben wir so die Hoffnung,

00:16:17.200 --> 00:16:19.220
dass die Person weiß, wie man da Programme installiert.

00:16:20.460 --> 00:16:21.120
Weiß ich nicht.

00:16:21.520 --> 00:16:23.440
Bei den meisten Leuten, die ins Chaos aufkommen, hat das dann

00:16:23.440 --> 00:16:25.680
vielleicht auch funktioniert? Ansonsten kann man sowas

00:16:25.680 --> 00:16:27.400
ja im Notfall auch irgendwie online machen.

00:16:27.540 --> 00:16:29.320
Es gibt ja irgendwie Python Anywhere oder sowas.

00:16:30.460 --> 00:16:31.460
Das geht ja irgendwie.

00:16:32.600 --> 00:16:33.660
Außerdem haben wir, glaube ich,

00:16:33.660 --> 00:16:35.860
in Wiki die Ansage stehen, dass man,

00:16:36.620 --> 00:16:37.680
wenn man zum Python-Fuhr kommt,

00:16:37.760 --> 00:16:39.320
einen Rechner mitbringt und

00:16:39.320 --> 00:16:41.240
auf diesem Rechner...

00:16:41.240 --> 00:16:43.260
Ja, okay.

00:16:43.980 --> 00:16:45.380
Sonst können wir vielleicht ein Recipe ausleihen

00:16:45.380 --> 00:16:47.140
oder sowas. Ja, oder

00:16:47.140 --> 00:16:49.360
auch auf vielen Android-Smartphones.

00:16:49.660 --> 00:16:51.820
Wenn du ein Handy neuer als Android 5 hast,

00:16:51.880 --> 00:16:53.500
kannst du da Python drauf installieren, problemlos.

00:16:53.860 --> 00:16:56.120
Gut, das Tippen ist ein bisschen ekelhaft auf dem Smartphone.

00:16:56.780 --> 00:16:58.060
Sehr gut, Bluetooth-Tastatur.

00:16:58.340 --> 00:16:58.980
Oder sowas, ja.

00:16:58.980 --> 00:17:03.940
Ja, meistens haben wir ja sogar Linux-User.

00:17:06.040 --> 00:17:07.520
Windows-User sind natürlich,

00:17:07.580 --> 00:17:09.840
wenn es um die Installation von Paketen geht,

00:17:09.940 --> 00:17:11.000
immer ein bisschen fummelig.

00:17:11.180 --> 00:17:12.880
Aber im Allgemeinen kriegen wir das auch hin.

00:17:14.060 --> 00:17:18.220
Also gerade so Sachen wie installier das mal von Pip oder so,

00:17:18.300 --> 00:17:20.160
das machen wir nicht am ersten Abend. Genau.

00:17:21.140 --> 00:17:22.680
Das ist einerseits

00:17:22.680 --> 00:17:24.620
natürlich da, um die Einstiegshürden

00:17:24.620 --> 00:17:25.920
zu nehmen, denn

00:17:25.920 --> 00:17:28.100
so können wir das auf Windows,

00:17:28.360 --> 00:17:30.000
MacOS oder Linux machen,

00:17:30.420 --> 00:17:32.700
weil wir dann eben nur die Standardbibliothek

00:17:32.700 --> 00:17:34.680
nehmen und einfach nur einen Texteditor

00:17:34.680 --> 00:17:36.480
und einen passenden Interpreter

00:17:36.480 --> 00:17:38.020
brauchen. Wir hatten witzigerweise

00:17:38.020 --> 00:17:40.080
noch niemanden, der dann irgendwie mit React

00:17:40.080 --> 00:17:41.920
oder BSD oder sowas aufgetaucht ist.

00:17:43.540 --> 00:17:44.220
Ich glaube,

00:17:44.300 --> 00:17:45.500
das brauchen wir auch nicht.

00:17:47.540 --> 00:17:48.100
Ja, okay, aber

00:17:48.100 --> 00:17:49.560
Das ist ja schon mal interessant.

00:17:49.720 --> 00:17:51.220
Ihr verwendet doch einfach die ganz normale

00:17:51.220 --> 00:17:52.700
Python

00:17:52.700 --> 00:17:55.800
Python-Reppel oder was kann ich mir

00:17:55.800 --> 00:17:57.280
das...

00:17:57.280 --> 00:18:00.200
Wir zeigen die Beispiele meistens entweder im Texteditor

00:18:00.200 --> 00:18:02.260
oder irgendwie in I-Python, B-Python.

00:18:02.620 --> 00:18:03.980
Aber das braucht man ja nicht,

00:18:04.060 --> 00:18:06.240
um das nachzuprogrammieren. Das sieht dann halt nicht so schön aus.

00:18:06.680 --> 00:18:07.080
Aber

00:18:07.080 --> 00:18:10.740
ja, und ansonsten

00:18:10.740 --> 00:18:12.260
wir haben halt auch nicht so viele Anforderungen.

00:18:12.400 --> 00:18:14.040
Also Beispiele laufen auf allen Versionen, die

00:18:14.040 --> 00:18:15.540
neuer sind als 3.4 oder so.

00:18:16.780 --> 00:18:19.020
und das hat ja sogar Debian Old Stable

00:18:19.020 --> 00:18:21.040
oder sowas. Das ist ja kein Problem.

00:18:21.760 --> 00:18:22.960
Das ist ja auch ein

00:18:22.960 --> 00:18:25.300
Vorteil der Python Standard Library,

00:18:25.480 --> 00:18:27.120
dass die eben so umfangreich ist,

00:18:27.200 --> 00:18:29.260
dass man die meisten Sachen gar nicht nachinstallieren

00:18:29.260 --> 00:18:30.980
muss, sondern so viel schon

00:18:30.980 --> 00:18:32.820
dabei ist, dass man für

00:18:32.820 --> 00:18:35.180
ein grundlegendes Verständnis

00:18:35.180 --> 00:18:37.080
der Sprache brauchst du eben nur

00:18:37.080 --> 00:18:39.000
die Standard Library. Wenn das

00:18:39.000 --> 00:18:40.940
dann ins komplexere

00:18:40.940 --> 00:18:42.960
Sachen geht, also wo du wirklich konkret was

00:18:42.960 --> 00:18:45.000
machen willst, da installierst du dir

00:18:45.000 --> 00:18:46.920
dann eine Library,

00:18:47.180 --> 00:18:48.960
aber Request ist, glaube ich, so die erste,

00:18:49.120 --> 00:18:50.340
die wir dann immer zeigen.

00:18:51.660 --> 00:18:52.800
Stimmt, ja. Und

00:18:52.800 --> 00:18:54.500
HuPy. Stimmt.

00:18:54.880 --> 00:18:56.900
Ja, aber das ist eine Datei

00:18:56.900 --> 00:18:58.640
mit 56 Teilen, also ich glaube,

00:18:58.840 --> 00:19:00.840
die muss man nicht installieren, die kann man notfalls runterladen.

00:19:01.020 --> 00:19:02.700
Genau. Die könnte man wahrscheinlich

00:19:02.700 --> 00:19:04.220
sogar abtippen.

00:19:04.820 --> 00:19:06.900
Was war das nochmal genau? Ich habe das, glaube ich, gerade nicht so richtig verstanden.

00:19:07.480 --> 00:19:08.800
HuPy. Kenne ich gar nicht.

00:19:08.800 --> 00:19:10.440
Es ist ganz schön, um einfache

00:19:10.440 --> 00:19:12.780
Statusmeldungen auszugeben. Das macht dann halt irgendwie,

00:19:12.960 --> 00:19:14.760
es gibt HuPy.info und dann bekommst

00:19:14.760 --> 00:19:16.940
so einen blauen Kasten, links so eine Welle

00:19:16.940 --> 00:19:18.000
und dann rechts ein Text.

00:19:18.760 --> 00:19:20.720
Farben im Terminal.

00:19:21.680 --> 00:19:22.820
Es funktioniert auf allen Systemen.

00:19:23.000 --> 00:19:24.840
Also Windows ist nur neuer als 10, aber

00:19:24.840 --> 00:19:27.180
ansonsten...

00:19:27.180 --> 00:19:28.940
Und es ist halt eine wirklich kleine Datei.

00:19:29.520 --> 00:19:30.920
Wer fängt denn mal die Texte an?

00:19:31.200 --> 00:19:32.560
Die machen ekelhafte Sachen mit

00:19:32.560 --> 00:19:34.440
Dictionaries und Lambdas und sowas, aber

00:19:34.440 --> 00:19:36.100
das muss man ja nicht wissen.

00:19:37.400 --> 00:19:37.640
Also

00:19:37.640 --> 00:19:41.000
das Gitter-Prepo da ist

00:19:41.000 --> 00:19:42.880
sehr erhellend, weil dann auch...

00:19:42.880 --> 00:19:43.740
Das Readme ist sehr gut.

00:19:43.820 --> 00:19:48.180
Ja, das Readme ist sehr gut, weil der Entwickler da vergleicht,

00:19:48.460 --> 00:19:54.780
wie schwierig es ist, mit anderen Bibliotheken Farbe ins Terminal zu bringen

00:19:54.780 --> 00:19:56.200
und wie einfach das mit UPy ist.

00:19:56.220 --> 00:19:59.380
Diese Tabelle, wo nur UPy die höchste Punktzahl erreicht.

00:19:59.900 --> 00:20:03.880
Ja, ein bisschen Eigenwerbung soll ihm ja auch gegönnt sein.

00:20:04.740 --> 00:20:07.940
Ich verwechsel das nur leider immer mit Python Hui.

00:20:10.400 --> 00:20:12.940
U-Pi und Python Hui sind zwei verschiedene Dinge,

00:20:13.380 --> 00:20:14.140
wichtig zu wissen.

00:20:14.860 --> 00:20:16.560
Wir inszenieren immer die falschen am Anfang, ne?

00:20:17.840 --> 00:20:18.800
Wie habt ihr beide denn

00:20:18.800 --> 00:20:19.460
Python gelernt?

00:20:20.720 --> 00:20:22.640
Ich weiß es ehrlich gesagt nicht mehr. Ich glaube,

00:20:23.360 --> 00:20:24.600
ich habe früher mit einem

00:20:24.600 --> 00:20:26.380
Freund zusammen

00:20:26.380 --> 00:20:28.700
PHP angefangen, irgendwann an der Grundschule

00:20:28.700 --> 00:20:30.760
und dann fanden wir irgendwann PHP nicht mehr

00:20:30.760 --> 00:20:33.000
cool und dann ist er

00:20:33.000 --> 00:20:34.620
zu Perl gewechselt und ich fand

00:20:34.620 --> 00:20:36.680
Perl auch nicht cool. Dann habe ich mir angeguckt, was gibt es noch

00:20:36.680 --> 00:20:38.500
zum Ansprachen? Dann habe ich mit Python angefangen.

00:20:38.560 --> 00:20:40.620
hat er festgestellt, Python fängt auch mit P an.

00:20:40.620 --> 00:20:41.160
Ja, genau.

00:20:41.500 --> 00:20:48.260
Ja, bei mir war das deutlich später als die Grundschule.

00:20:48.480 --> 00:20:55.760
Ich weiß noch, ich hatte in der 8. Klasse oder 9. Klasse Wahlpflichtfach Informatik.

00:20:56.760 --> 00:21:00.960
Und in der Schule hatten wir dann in der 8. Klasse Word und Excel

00:21:00.960 --> 00:21:04.420
und in der 9. Klasse haben wir dann auch richtig programmiert mit Turbo Pascal.

00:21:06.100 --> 00:21:07.840
Wir hatten damals schon PHP in der Schule.

00:21:08.300 --> 00:21:11.380
Eigentlich hat es mir Spaß gemacht

00:21:11.380 --> 00:21:12.840
mit Turbo Pascal zu programmieren.

00:21:13.160 --> 00:21:15.140
So viel Spaß man eben damit haben kann.

00:21:16.460 --> 00:21:17.800
Oh doch, das war toll.

00:21:18.260 --> 00:21:19.580
Ich weiß jetzt nicht, welche Version

00:21:19.580 --> 00:21:20.220
ihr da verwendet habt.

00:21:20.420 --> 00:21:23.120
Ich hatte da mal...

00:21:23.120 --> 00:21:24.340
Naja, alles gut.

00:21:25.120 --> 00:21:27.380
Ach ja, das ist in Ordnung, das macht ja nichts.

00:21:28.780 --> 00:21:29.520
Der Tee war lecker.

00:21:32.000 --> 00:21:32.680
Danke, Tja.

00:21:32.680 --> 00:21:34.340
Also genau, damals

00:21:34.340 --> 00:21:36.820
war das irgendwie Turbo Pascal 5.5

00:21:36.820 --> 00:21:37.680
und das lief alles

00:21:37.680 --> 00:21:39.580
sozusagen auch irgendwie

00:21:39.580 --> 00:21:41.920
in einer Shell oder sozusagen

00:21:41.920 --> 00:21:43.940
auf der MS-DOS-Kommandozeile

00:21:43.940 --> 00:21:46.020
und das war als IDE eigentlich

00:21:46.020 --> 00:21:47.660
tatsächlich ziemlich klasse, wenn man irgendwie

00:21:47.660 --> 00:21:49.760
F9 gedrückt hat, dann hat das irgendwie sofort kompiliert

00:21:49.760 --> 00:21:51.840
und es ausgeführt und man konnte so einen

00:21:51.840 --> 00:21:53.980
Debugger durchsteppen und so, das war

00:21:53.980 --> 00:21:55.980
ja, aber keine Ahnung

00:21:55.980 --> 00:21:57.720
wie das, bei euch war das dann wahrscheinlich schon Windows

00:21:57.720 --> 00:22:00.040
oder so oder? Ja, ich glaube wir hatten da eine

00:22:00.040 --> 00:22:01.760
Free Pascal,

00:22:02.080 --> 00:22:03.880
das war so ein bisschen wie die Python Idol,

00:22:04.620 --> 00:22:05.600
nur ich fand es halt

00:22:05.600 --> 00:22:07.340
sau anstrengend

00:22:07.340 --> 00:22:09.320
mit Turbo Pascal zu programmieren

00:22:09.320 --> 00:22:11.360
und irgendwann war die neunte Klasse

00:22:11.360 --> 00:22:13.360
dann fertig und ich glaube, so zu

00:22:13.360 --> 00:22:15.280
den Sommerferien fing ja im Chaosdorf

00:22:15.280 --> 00:22:16.940
das Python-Fu an, weil das

00:22:16.940 --> 00:22:19.460
Chaosdorf bekam halt neue Räume.

00:22:19.760 --> 00:22:21.100
Ach, du hast die alten Räume noch gesehen?

00:22:21.420 --> 00:22:23.280
Ja, ja. Oh. Und

00:22:23.280 --> 00:22:25.260
da fing das Python-Fu dann auch

00:22:25.260 --> 00:22:27.240
komplett im Renovierungsmodus

00:22:27.240 --> 00:22:29.400
mit... Umzug auf

00:22:29.400 --> 00:22:30.820
Python 3. Genau.

00:22:31.740 --> 00:22:33.280
Man könnte sagen, es lag

00:22:33.280 --> 00:22:35.220
am Umzug auf Python 3, aber nein, da

00:22:35.220 --> 00:22:37.040
Wurde gerade als Chaosdorf umgebaut.

00:22:37.540 --> 00:22:39.840
Und ja, da fing dann das Python-Fu an.

00:22:40.580 --> 00:22:43.900
Und da ich halt eine etwas modernere Programmiersprache lernen wollte,

00:22:44.580 --> 00:22:46.340
ja, habe ich dann da angefangen.

00:22:47.200 --> 00:22:52.080
Dann habe ich mich zwei Jahre relativ intensiv mit Python beschäftigt.

00:22:52.440 --> 00:22:55.100
Bin auch so ungefähr bis zur Objektorientierung gekommen.

00:22:55.680 --> 00:22:57.280
Die war mir dann aber zu kompliziert

00:22:57.280 --> 00:22:59.640
und bin bei funktionaler Programmierung geblieben.

00:23:00.340 --> 00:23:01.320
Ja, und dann...

00:23:01.320 --> 00:23:03.240
Ja, Objektorientierung habe ich auch nie wirklich verstanden,

00:23:03.240 --> 00:23:04.600
bis ich zum Python-Fu gekommen bin.

00:23:04.800 --> 00:23:06.520
ja, später habe ich dann

00:23:06.520 --> 00:23:08.660
wieder eingesetzt und ja, seitdem beschäftige

00:23:08.660 --> 00:23:10.020
ich mich damit hobbymäßig.

00:23:11.920 --> 00:23:12.540
Und das

00:23:12.540 --> 00:23:14.120
voran. Naja, weil

00:23:14.120 --> 00:23:15.840
ihr Geld bekommt man dafür nicht.

00:23:17.720 --> 00:23:18.120
Ja.

00:23:19.720 --> 00:23:20.480
Naja, aber

00:23:20.480 --> 00:23:22.200
ich meine,

00:23:22.620 --> 00:23:24.500
ihr habt ja dann wahrscheinlich auch schon eine Menge

00:23:24.500 --> 00:23:26.580
Leute sozusagen kommen und

00:23:26.580 --> 00:23:28.500
gehen sehen. Gibt es denn irgendwie welche, die dann

00:23:28.500 --> 00:23:30.400
irgendwann mal dazugestoßen sind

00:23:30.400 --> 00:23:32.420
und dann halt länger dabei geblieben sind? Ihr verfolgt ja

00:23:32.420 --> 00:23:34.460
wahrscheinlich auch, was dann so ein bisschen mit den Leuten

00:23:34.460 --> 00:23:36.480
passiert. Ist das eher eine Sache, die

00:23:36.480 --> 00:23:38.440
einen dann motiviert oder ist es deprimierend, dass

00:23:38.440 --> 00:23:40.240
alle Leute dann doch wieder irgendwann aufhören und

00:23:40.240 --> 00:23:42.580
verschwinden? Jetzt einer davon sitzt ja hier.

00:23:42.940 --> 00:23:43.280
Ach ja.

00:23:45.100 --> 00:23:46.540
Du darfst jetzt überlegen, wer.

00:23:48.740 --> 00:23:50.100
Wir sind meistens da.

00:23:50.600 --> 00:23:54.440
Ja, ich glaube, ein paar

00:23:54.440 --> 00:23:56.320
Leute sind tatsächlich

00:23:56.320 --> 00:23:57.880
zum Python

00:23:57.880 --> 00:23:59.420
hinzugekommen,

00:24:00.040 --> 00:24:02.320
aber meistens hatten die schon ein bisschen

00:24:02.320 --> 00:24:04.640
Background Python-Technik.

00:24:04.860 --> 00:24:06.280
Es gibt halt Leute, die kommen einmal,

00:24:06.580 --> 00:24:07.580
es gibt Leute, die kommen zweimal

00:24:07.580 --> 00:24:09.920
und es gibt Leute, die kommen immer wieder.

00:24:10.100 --> 00:24:10.320
Genau.

00:24:12.480 --> 00:24:14.540
Das ist, glaube ich, auch so eine Schwierigkeit von

00:24:14.540 --> 00:24:16.900
dem Termin, dass wir eben die ersten beiden Donnerstage

00:24:16.900 --> 00:24:19.150
im Monat haben und dann ist nach dem zweiten Donnerstag

00:24:19.150 --> 00:24:20.030
wieder ein Monat dazwischen.

00:24:20.030 --> 00:24:22.710
Da kommen sie wieder vergessen.

00:24:22.950 --> 00:24:25.230
Da wäre glaube ich tatsächlich wöchentlich

00:24:25.230 --> 00:24:27.010
oder wie zweiwöchentlich

00:24:27.010 --> 00:24:28.570
oder sowas, alle zwei Wochen

00:24:28.570 --> 00:24:30.890
jedenfalls ein regelmäßigeres

00:24:30.890 --> 00:24:32.870
Treffen glaube ich sinnvoller.

00:24:33.070 --> 00:24:34.450
Wie oft habt ihr denn schon die erste

00:24:34.450 --> 00:24:36.610
Diktion Leuten geteilt?

00:24:37.170 --> 00:24:38.830
Die erste können wir am besten, weil wir es

00:24:38.830 --> 00:24:40.810
am häufigsten getan haben. Also das ist

00:24:40.810 --> 00:24:42.230
natürlich bei uns auch ein

00:24:42.230 --> 00:24:44.890
progressierender

00:24:44.890 --> 00:24:46.750
Progress sagen. Hat uns da mal eine sehr schöne

00:24:46.750 --> 00:24:48.810
E-Mail geschrieben, warum wir alles zu schnell

00:24:48.810 --> 00:24:50.850
machen. Auf die wir auch nicht geantwortet haben,

00:24:50.930 --> 00:24:52.730
weil wir sind super. Ich fand aber jetzt nicht

00:24:52.730 --> 00:24:54.870
so schnell. Ja, also die erste

00:24:54.870 --> 00:24:56.830
Lektion, ich glaube, 20

00:24:56.830 --> 00:24:58.270
Mal haben wir die bestimmt schon gemacht.

00:24:59.010 --> 00:24:59.370
Mehr.

00:25:01.370 --> 00:25:02.590
Ich habe jetzt grob im Kopf

00:25:02.590 --> 00:25:04.690
überschlagen, aber tatsächlich ist das bei

00:25:04.690 --> 00:25:06.410
uns natürlich auch ein steter

00:25:06.410 --> 00:25:08.650
Vorgang, dass wir uns immer wieder

00:25:08.650 --> 00:25:10.450
verbessern. Ich finde das ganz schön.

00:25:10.830 --> 00:25:12.270
Wir haben die Beispiele und auch die

00:25:12.270 --> 00:25:14.630
Hinweise ja auch so ins GIT-Report

00:25:14.630 --> 00:25:16.470
und da kann man sehen, was wir bei ihm geändert haben.

00:25:16.710 --> 00:25:18.410
In dem Repo, könnt ihr einmal kurz die Adresse

00:25:18.410 --> 00:25:20.470
nochmal... Wir diktieren es hier nicht.

00:25:20.810 --> 00:25:22.470
Nee, könnt ihr die nicht einfach in die Show Notes packen?

00:25:22.470 --> 00:25:24.070
Ja, ja, doch, doch, genau, die packen wir in die Show Notes.

00:25:24.410 --> 00:25:26.550
Python for Light. Ihr findet das Repo in den

00:25:26.550 --> 00:25:27.050
Show Notes.

00:25:29.250 --> 00:25:30.310
Ja. Ich glaube,

00:25:30.370 --> 00:25:32.330
das ist auch schon in der ersten

00:25:32.330 --> 00:25:34.070
Folge, oder? Aber das ist ja schon,

00:25:34.170 --> 00:25:36.330
wenn man das ein paar Mal gemacht hat,

00:25:36.370 --> 00:25:38.450
das wird ja dann immer polierter. Habt ihr mal drüber nachgedacht,

00:25:38.530 --> 00:25:40.170
das irgendwie, keine Ahnung, irgendwie davon

00:25:40.170 --> 00:25:42.250
einen Screencast zu machen oder das irgendwie mal

00:25:42.250 --> 00:25:43.890
mitzustellen und zu veröffentlichen oder so?

00:25:44.630 --> 00:25:45.910
Wir sind ja nicht Geld getrieben.

00:25:46.290 --> 00:25:46.870
Ja, wir sind nicht Geld getrieben.

00:25:46.870 --> 00:25:49.030
Nee, darum geht's ja gar nicht.

00:25:49.270 --> 00:25:51.970
Aber allein einfach, weil so viele Leute,

00:25:52.090 --> 00:25:54.010
die das so oft gemacht haben, gibt's ja wahrscheinlich

00:25:54.010 --> 00:25:55.990
gar nicht, ne, die in so einer Einführungsveranstaltung

00:25:55.990 --> 00:25:56.630
irgendwie tatsächlich sind.

00:25:56.650 --> 00:25:59.290
Wir haben uns halt überlegt, dass wir das Gitterprepo

00:25:59.290 --> 00:26:01.250
möglichst ausformulieren, dass halt auch Leute,

00:26:01.410 --> 00:26:03.370
die nicht zu der Veranstaltung kommen, sich das angucken können.

00:26:05.190 --> 00:26:06.550
Screencast haben wir bisher nicht gemacht.

00:26:06.730 --> 00:26:06.930
Nee.

00:26:06.930 --> 00:26:08.910
Da müssten wir uns ja auch hinsetzen und das schneiden und so.

00:26:09.070 --> 00:26:09.510
Ja, stimmt.

00:26:09.890 --> 00:26:12.350
Wir verbringen halt meistens wirklich nur Zeit, wenn wir da sind.

00:26:12.670 --> 00:26:14.150
Der Vorteil ist halt, wenn wir dann mal Abend haben,

00:26:14.350 --> 00:26:16.110
wo niemand kommt, können wir an den Beispielen

00:26:16.110 --> 00:26:18.150
arbeiten, was ja auch schon mal vorkommt.

00:26:20.210 --> 00:26:22.150
Ja, prinzipiell ist das

00:26:22.150 --> 00:26:23.810
natürlich auch eine schwierige Sache, weil,

00:26:24.050 --> 00:26:25.910
wie gesagt, es gibt

00:26:25.910 --> 00:26:28.010
verschiedene Arten davon, wie man das

00:26:28.010 --> 00:26:29.630
am besten lernt, so für einen selber.

00:26:30.530 --> 00:26:32.090
Und klar gibt es die

00:26:32.090 --> 00:26:33.970
Leute, die einfach nur Code

00:26:33.970 --> 00:26:36.010
lesen und den abarbeiten können, aber

00:26:36.010 --> 00:26:38.050
es gibt natürlich auch die Leute, die

00:26:38.050 --> 00:26:39.630
möchten, dass man denen das erklärt und

00:26:39.630 --> 00:26:42.090
mit denen macht. Und deshalb fände ich es

00:26:42.090 --> 00:26:42.630
schwierig,

00:26:44.110 --> 00:26:45.890
quasi den Code so zu halten, dass

00:26:45.890 --> 00:26:47.930
der für alle passt. Deshalb

00:26:47.930 --> 00:26:49.570
sind wir da ja auch relativ

00:26:49.570 --> 00:26:51.990
anpassungsfähig, je nachdem, wer

00:26:51.990 --> 00:26:53.870
zu uns kommt. Was mir jetzt auffällt, ist, dass Leute

00:26:53.870 --> 00:26:55.930
tatsächlich relativ selten Fragen stellen. Da sollten wir

00:26:55.930 --> 00:26:57.690
vielleicht auch noch häufiger gucken, dass das passiert.

00:26:58.030 --> 00:26:59.990
Ja, dass wir das interaktiver gestalten,

00:27:00.230 --> 00:27:01.050
meinst du? Ja.

00:27:02.670 --> 00:27:04.050
Da hatte ich aber letztens ein paar

00:27:04.050 --> 00:27:05.270
Ideen. Und diese E-Mail.

00:27:05.890 --> 00:27:07.970
Eine interessante Strategie, die ich schon ein paar Mal gesehen habe,

00:27:08.030 --> 00:27:09.930
die ganz gut funktioniert, ist, wenn die Leute

00:27:09.930 --> 00:27:11.810
halt sich nicht trauen, oder so, Fragen zu stellen,

00:27:12.090 --> 00:27:13.850
dass man dann einfach als derjenige,

00:27:13.850 --> 00:27:15.490
der irgendwie eine Schulung macht oder

00:27:15.490 --> 00:27:17.730
einen Vortrag hält oder so, dann einfach vor allen Dingen, wenn es nicht so

00:27:17.730 --> 00:27:20.090
viele Leute sind, geht das gut, dann die Leute fragt.

00:27:20.390 --> 00:27:21.650
Oh nein. Das ist ein bisschen

00:27:21.650 --> 00:27:23.870
übergriffig. Das habe ich früher in der Schule schon gehört.

00:27:25.730 --> 00:27:27.670
Ich meine, das Gute ist ja, dass wir

00:27:27.670 --> 00:27:29.490
ja meistens zu zweit uns dann auch selber

00:27:29.490 --> 00:27:30.770
an den Ball so ein bisschen zuspielen können.

00:27:31.410 --> 00:27:33.230
Unsere Überleitungen sind immer grandios.

00:27:33.570 --> 00:27:34.030
Oh ja.

00:27:35.550 --> 00:27:36.370
Sind berühmt.

00:27:38.050 --> 00:27:38.970
Ich glaube, so positiv.

00:27:41.590 --> 00:27:43.390
Ja, ich glaube,

00:27:43.490 --> 00:27:45.270
Wir haben da durchaus noch

00:27:45.270 --> 00:27:47.050
Verbesserungspotenzial, gerade was

00:27:47.050 --> 00:27:48.950
den Beispielcode angeht.

00:27:50.130 --> 00:27:51.510
Ulrich West hat gerne gesehen.

00:27:52.310 --> 00:27:53.150
Gerne, genau.

00:27:55.110 --> 00:27:55.370
Ja,

00:27:56.550 --> 00:27:57.350
ich glaube aber,

00:27:57.430 --> 00:27:59.530
dass wir das schon relativ gut hinkriegen.

00:28:00.410 --> 00:28:01.330
Bis zu welchem Level geht

00:28:01.330 --> 00:28:02.650
denn der Python-Fool light?

00:28:03.350 --> 00:28:04.790
So lange, bis Leute bleiben.

00:28:06.670 --> 00:28:07.330
Wir haben

00:28:07.330 --> 00:28:08.790
das ja in Level aufgeteilt,

00:28:08.890 --> 00:28:11.270
die er gerade schon erwähnt hat, damit man das quasi

00:28:11.270 --> 00:28:14.110
ja, damit jemand, der

00:28:14.110 --> 00:28:16.050
zu uns kommt, den können wir dann sagen,

00:28:16.130 --> 00:28:17.610
guck mal, wir haben hier 10 Level,

00:28:18.110 --> 00:28:20.070
lies die mal durch und sag mir, wo du

00:28:20.070 --> 00:28:22.110
dich einordnest. Nenne eine Zahl zwischen 1 und

00:28:22.110 --> 00:28:24.010
10. Nenne eine Zahl zwischen 1 und 10

00:28:24.010 --> 00:28:25.690
und dann machen wir von da an.

00:28:27.290 --> 00:28:28.070
Einerseits dient das

00:28:28.070 --> 00:28:30.110
natürlich der Strukturierung, weil dann kann man sagen

00:28:30.110 --> 00:28:32.270
so, okay, Level bla bla bla

00:28:32.270 --> 00:28:33.890
mach das und das, Level bla bla bla

00:28:33.890 --> 00:28:36.050
mach das und das, dann lese ich mir jetzt

00:28:36.050 --> 00:28:38.070
das Level durch und kann mich

00:28:38.070 --> 00:28:40.010
mit dem Thema beschäftigen. Das ist auch

00:28:40.010 --> 00:28:41.950
wichtig für Leute, die wiederkommen, weil wir uns dann

00:28:41.950 --> 00:28:43.850
nicht merken müssen, bis wohin haben wir gemacht,

00:28:44.010 --> 00:28:45.870
sondern in keinem Fall wissen die Leute das selber.

00:28:46.090 --> 00:28:47.750
Das ist natürlich unsere Bequemlichkeit.

00:28:49.810 --> 00:28:50.210
Also

00:28:50.210 --> 00:28:52.070
ich glaube, das Repo hat offiziell

00:28:52.070 --> 00:28:54.210
zehn Level. Angefangen bei

00:28:54.210 --> 00:28:56.010
wie führe ich

00:28:56.010 --> 00:28:57.990
Code in Python aus? Dann was ist

00:28:57.990 --> 00:29:00.190
eine Variable? Was ist eine Variable?

00:29:00.390 --> 00:29:01.910
Wie weise ich eine Variable zu?

00:29:02.050 --> 00:29:03.670
Was sind Zahlen? Was sind Zahlen?

00:29:04.970 --> 00:29:06.050
Ja, wobei das geht, glaube ich,

00:29:06.050 --> 00:29:08.310
in die Zahlentheorie rein. Das wollen wir, glaube ich,

00:29:08.310 --> 00:29:10.150
nicht. Das ist ganz einfach. Zahlen

00:29:10.150 --> 00:29:12.630
müssen die Äquivalenzklassen

00:29:12.630 --> 00:29:13.410
gleichmächtiger Mengen.

00:29:13.950 --> 00:29:14.710
Genau, bitte.

00:29:16.490 --> 00:29:18.250
Ja, das geht dann über

00:29:18.250 --> 00:29:19.770
If-Bedingungen,

00:29:20.010 --> 00:29:22.230
Schleifen, Funktionen,

00:29:22.330 --> 00:29:23.390
Rekursionen.

00:29:24.550 --> 00:29:25.030
Konsolenanwendungen.

00:29:25.150 --> 00:29:27.810
Das ist ein neues Kapitel, das wir eingeschoben haben,

00:29:27.910 --> 00:29:29.950
weil wir dachten, wenn wir direkt mit der

00:29:29.950 --> 00:29:31.910
Objektorientierung ankommen, dann sind die meisten Leute

00:29:31.910 --> 00:29:33.910
ein bisschen überrascht und uns wäre es

00:29:33.910 --> 00:29:36.010
lieber, wenn man Sachen dann zu dem Zeitpunkt mal praktisch

00:29:36.010 --> 00:29:36.730
anwenden könnte.

00:29:37.610 --> 00:29:48.370
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.

00:29:48.370 --> 00:30:06.210
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.

00:30:06.210 --> 00:30:07.930
uns fragen halt mal Leute, wofür brauche

00:30:07.930 --> 00:30:10.070
ich denn jetzt diese Objektorientierung?

00:30:10.190 --> 00:30:11.730
Wir können das nicht beantworten, weil das geht

00:30:11.730 --> 00:30:13.630
meistens auch ohne. Ja.

00:30:14.510 --> 00:30:16.070
Ja gut, also nach Objektorientierung

00:30:16.070 --> 00:30:17.990
machen wir dann noch Generatoren und sowas.

00:30:19.090 --> 00:30:20.190
Assert, Yield.

00:30:21.610 --> 00:30:21.850
Wir haben

00:30:21.850 --> 00:30:23.750
dann ein Beispiel für eine grafische

00:30:23.750 --> 00:30:25.670
Anwendung mit QT, glaube ich. Ja.

00:30:26.630 --> 00:30:27.870
Und irgendwie so

00:30:27.870 --> 00:30:29.870
eine Whisky-Sache

00:30:29.870 --> 00:30:31.710
mit Werkzeug.

00:30:32.370 --> 00:30:33.970
Die haben wir noch niemandem gezeigt,

00:30:34.130 --> 00:30:35.990
weil Leute sind nicht lange noch gekommen.

00:30:36.210 --> 00:30:39.910
Die kennst du ja auch noch nicht, die Whisky mit Nergst und Gold.

00:30:40.090 --> 00:30:40.990
Ja, musst du mal wieder kommen.

00:30:41.750 --> 00:30:42.530
Ist geplant.

00:30:42.830 --> 00:30:47.090
Ich wundere übrigens auch, wie du die Markdown-Seite im Kopf ausländisch kannst.

00:30:47.910 --> 00:30:51.510
Naja, es sind jetzt drei Jahre, das hat sich nicht so groß an die Erinnerungszeit geändert.

00:30:52.410 --> 00:30:53.970
Aber du hast die Witze entfernt.

00:30:53.970 --> 00:31:00.710
Es gibt so eine Geschichte, wir saßen mal in einem Zug nach Hamburg und es war ein bisschen langweilig.

00:31:01.590 --> 00:31:05.770
Und dann haben wir zu Kapitel 5,5 einen Text geschrieben.

00:31:06.210 --> 00:31:08.510
den man nur noch in der Wikihistory

00:31:08.510 --> 00:31:10.270
findet. Ich glaube, das reicht jetzt.

00:31:10.410 --> 00:31:10.950
Also, war's okay.

00:31:13.030 --> 00:31:13.650
Ja, es ging,

00:31:14.050 --> 00:31:16.110
Level 5.5 ging damals um

00:31:16.110 --> 00:31:18.210
Themen, die in den bisherigen

00:31:18.210 --> 00:31:19.570
Leveln keinen Platz gefunden haben.

00:31:19.670 --> 00:31:22.310
Ist Kapitel 5.5 sowas wie Gleis 9.5

00:31:22.310 --> 00:31:23.850
oder so ein bisschen? Ja, ein bisschen.

00:31:24.530 --> 00:31:26.210
Wir wollten halt noch Themen unterbringen,

00:31:26.410 --> 00:31:28.110
über die wir bisher nicht gesprochen haben,

00:31:28.270 --> 00:31:29.710
weil entweder

00:31:29.710 --> 00:31:32.230
passten die nicht, die wären zu weit

00:31:32.230 --> 00:31:34.130
gegangen oder sie hätten

00:31:34.130 --> 00:31:35.990
den Fortschritt so ein bisschen... Wir gehen doch immer

00:31:35.990 --> 00:31:38.070
zu weit. Genau, sie hätten den Fortschritt

00:31:38.070 --> 00:31:39.930
so ein bisschen aufgehalten und das waren dann

00:31:39.930 --> 00:31:41.550
hauptsächlich

00:31:41.550 --> 00:31:43.910
Metathemen, die man, die jetzt

00:31:43.910 --> 00:31:45.990
nicht zwingend direkt was mit Python zu

00:31:45.990 --> 00:31:47.850
tun haben, sondern mehr

00:31:47.850 --> 00:31:50.330
da ging es dann darum, welchen Texteditor

00:31:50.330 --> 00:31:51.990
benutze ich, wie mache ich das mit

00:31:51.990 --> 00:31:53.850
Git, wie schreibe ich am besten

00:31:53.850 --> 00:31:55.430
Doku, wie schreibe ich Doku.

00:31:56.490 --> 00:31:57.930
Mir fällt übrigens ein, wir sollten

00:31:57.930 --> 00:31:59.790
noch ein Kapitel zu Tests einführen.

00:32:00.970 --> 00:32:02.390
Ja, wir

00:32:02.390 --> 00:32:03.890
sollten nicht nur erwähnen, dass sie wichtig

00:32:03.890 --> 00:32:05.830
sind, sondern uns trotzdem mal selber angucken, wie das

00:32:05.830 --> 00:32:07.770
überhaupt geht. Also ich habe

00:32:07.770 --> 00:32:10.190
das meiste,

00:32:10.290 --> 00:32:11.450
was ich über Python weiß, tatsächlich

00:32:11.450 --> 00:32:13.910
gelernt, dass ich es an den Leuten beibringe.

00:32:14.050 --> 00:32:15.490
Wenn man dann immer noch so Sachen

00:32:15.490 --> 00:32:16.330
merkt,

00:32:17.010 --> 00:32:19.630
sieht man, oh, das weiß ich doch eigentlich gar nicht

00:32:19.630 --> 00:32:21.130
so wirklich, wie das im Detail funktioniert.

00:32:21.530 --> 00:32:23.590
Das fällt mir immer wieder auf, dass wir dann

00:32:23.590 --> 00:32:25.850
auch, da wir gegenseitig uns

00:32:25.850 --> 00:32:27.830
den Ball zuspielen und doofe Fragen stellen

00:32:27.830 --> 00:32:29.530
und auch

00:32:29.530 --> 00:32:31.810
Grenzfälle austesten, dass

00:32:31.810 --> 00:32:33.910
ich jeden Abend, wo ich anderen was

00:32:33.910 --> 00:32:35.810
beibringe, auch selber sehr viel mitnehme.

00:32:35.830 --> 00:32:42.210
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.

00:32:42.870 --> 00:32:43.470
Ja, das stimmt.

00:32:44.110 --> 00:32:46.450
Ja, weil es gibt halt auch Leute, die Interesse an diesen ganzen Details haben.

00:32:46.690 --> 00:32:52.270
Und ihr habt auf jeden Fall vollkommen recht, dass dieses Lernen einfach großartig ist, um tiefer einzusteigen in das Thema.

00:32:52.550 --> 00:32:55.430
Habe ich übrigens auch gemacht, also ganz am Anfang, obwohl ich noch nicht so viel selber konnte.

00:32:55.610 --> 00:32:59.190
Aber das, was ich konnte, konnte man schon kleinen Kindern beibringen und die haben sich sehr darüber gefreut.

00:32:59.890 --> 00:33:02.410
Und haben tatsächlich dann auch ihre ersten Programme schreiben können.

00:33:02.410 --> 00:33:03.290
Das ist echt super.

00:33:03.430 --> 00:33:05.350
Dadurch sind halt die Basics dann irgendwann wirklich

00:33:05.350 --> 00:33:07.410
feste. Das ist vielleicht nicht so unwichtig.

00:33:07.850 --> 00:33:09.730
Ich glaube auch, dass Python eine sehr gute

00:33:09.730 --> 00:33:11.650
Programmiersprache ist, um quasi

00:33:11.650 --> 00:33:13.810
als kompletter Anfänger

00:33:13.810 --> 00:33:15.510
als erste Programmiersprache

00:33:15.510 --> 00:33:17.670
Python zu lernen. Einerseits, weil es

00:33:17.670 --> 00:33:19.490
relativ wenig Einstiegshürden hat,

00:33:19.550 --> 00:33:21.070
die anderen Programmiersprachen bieten.

00:33:21.410 --> 00:33:23.350
Es gibt ja diesen schönen Spruch,

00:33:23.510 --> 00:33:25.430
Python ist wie Pseudocode, aber

00:33:25.430 --> 00:33:26.530
man kann ihn ausführen.

00:33:27.230 --> 00:33:29.530
Ja, das und

00:33:29.530 --> 00:33:31.490
ihr hattet das, glaube ich, in eurer

00:33:31.490 --> 00:33:33.010
ersten Folge erwähnt, dass

00:33:33.010 --> 00:33:35.230
Python einfach ist und

00:33:35.230 --> 00:33:37.530
dadurch sehr gut für Anfänger geeignet

00:33:37.530 --> 00:33:39.050
ist. Und

00:33:39.050 --> 00:33:41.770
ich finde, das ist auch soweit korrekt.

00:33:42.450 --> 00:33:43.570
Ja, Pseudocode, den man

00:33:43.570 --> 00:33:45.170
ausführen kann, passt schon sehr gut.

00:33:47.110 --> 00:33:47.590
Womit

00:33:47.590 --> 00:33:49.450
fangt ihr denn an, wenn

00:33:49.450 --> 00:33:50.670
ihr Leuten jetzt quasi

00:33:50.670 --> 00:33:52.550
sozusagen das

00:33:52.550 --> 00:33:54.810
Python nahe bringen wollt?

00:33:55.610 --> 00:33:57.450
Was wäre denn sozusagen euer erstes Beispiel

00:33:57.450 --> 00:33:59.190
oder sowas? Hello World natürlich.

00:33:59.210 --> 00:34:01.210
Hello World, natürlich, genau. Das ist natürlich viel einfacher.

00:34:02.450 --> 00:34:12.030
Ja, normalerweise fangen wir, zeigen wir einfach auf dem großen Fernseher einen Interpreter und fangen an, Code zu schreiben.

00:34:12.530 --> 00:34:15.890
Danke an Plant. Danke an Plant für den Fernseher.

00:34:16.170 --> 00:34:27.010
Ja, wir sitzen dann da am langen Tischreihe und einer sitzt meistens nah am Fernseher und zeigt dann auf B-Python meistens Code.

00:34:28.370 --> 00:34:37.970
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.

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

00:34:42.790 --> 00:34:49.830
Ich benutze manchmal in den höheren Leveln Hydrogen, das ist ein Atomplugin, das so wie Jupyter funktioniert, zahlenweise.

00:34:50.650 --> 00:34:54.430
Aber das macht halt erst ab größeren Dateien auch irgendwie Sinn, am Anfang kann man das halt einfach neu eintippen.

00:34:54.870 --> 00:34:56.770
Gerade auch, weil B-Python so

00:34:56.770 --> 00:34:58.770
einen Modus hat, wo du die gesamte

00:34:58.770 --> 00:35:00.750
Historie im Texteditor bearbeiten kannst

00:35:00.750 --> 00:35:01.830
und dann wieder ausführen kannst.

00:35:02.130 --> 00:35:04.990
Dann musst du es halt eigentlich nicht unbedingt speichern.

00:35:06.210 --> 00:35:06.530
Und

00:35:06.530 --> 00:35:08.450
B-Python kommt uns natürlich da

00:35:08.450 --> 00:35:10.870
sehr entgegen. So mit Autovervollständigung

00:35:10.870 --> 00:35:12.510
und Syntax-Verleitung, das ist schon echt cool.

00:35:13.250 --> 00:35:14.830
Also, ja.

00:35:15.770 --> 00:35:16.590
Es ist bunt.

00:35:17.750 --> 00:35:18.690
Das B für bunt?

00:35:19.030 --> 00:35:20.650
Ja, ja, das steht für Bunt-Python.

00:35:21.650 --> 00:35:22.210
Weil

00:35:22.210 --> 00:35:23.850
das ist auch deutsche Sprache.

00:35:23.850 --> 00:35:50.570
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.

00:35:50.570 --> 00:35:52.830
und so. Wir wechseln dann meistens

00:35:52.830 --> 00:35:54.510
so bei ifs und schleifen.

00:35:55.270 --> 00:35:56.690
Ja, weil da ist es dann

00:35:56.690 --> 00:35:58.910
irgendwann, dann hast du auch Verschachtelungen

00:35:58.910 --> 00:36:00.530
und sowas und dann wird es schwieriger, einfach

00:36:00.530 --> 00:36:01.830
nach oben zu drücken. Ja.

00:36:02.730 --> 00:36:04.570
Ja. Da wird es dann anstrengend

00:36:04.570 --> 00:36:06.470
irgendwie mit B-Python. Das könnte man tatsächlich

00:36:06.470 --> 00:36:07.290
wahrscheinlich eben

00:36:07.290 --> 00:36:09.890
Jupyter-No-Pub machen.

00:36:12.410 --> 00:36:12.850
Ja.

00:36:14.130 --> 00:36:16.270
Aber dann hat man halt tatsächlich auch wieder

00:36:16.270 --> 00:36:18.090
erstmal so einen Webbrowser dazwischen und dann muss man,

00:36:18.090 --> 00:36:19.390
wenn die Leute das machen,

00:36:19.890 --> 00:36:22.210
Wenn die Leute das nachvollziehen wollen,

00:36:22.290 --> 00:36:23.090
wird es wieder schwerer.

00:36:25.190 --> 00:36:26.390
Jupiter habe ich immer gerne mal

00:36:26.390 --> 00:36:28.290
versucht, so zwischendurch anzutesten. Das ist natürlich super nett,

00:36:28.370 --> 00:36:29.950
gerade wenn man so Graphen noch einbaut,

00:36:30.370 --> 00:36:32.190
weil man direkt die Auswirkungen von dem Datensatz

00:36:32.190 --> 00:36:34.150
in diesen Graphen sehen kann. Aber ansonsten

00:36:34.150 --> 00:36:35.850
fand ich es eher so ein bisschen anstrengend.

00:36:36.130 --> 00:36:38.110
Aber vielleicht bin ich jetzt auch nicht wirklich drüber

00:36:38.110 --> 00:36:38.550
gestolpert.

00:36:39.330 --> 00:36:42.190
Ich glaube, man hatte erst so richtig

00:36:42.190 --> 00:36:43.530
den, also für mich

00:36:43.530 --> 00:36:45.890
hat es halt dann richtig funktioniert, als

00:36:45.890 --> 00:36:46.930
ich

00:36:46.930 --> 00:36:49.770
gemerkt habe, dass ich mir damit eine Menge Zeit

00:36:49.770 --> 00:36:51.930
sparen kann, wenn man

00:36:51.930 --> 00:36:53.690
Schritte hat, also die irgendwie Daten laden

00:36:53.690 --> 00:36:55.530
oder Sachen, die lange laufen

00:36:55.530 --> 00:36:57.710
und wenn man dann irgendwie Fehler

00:36:57.710 --> 00:36:59.410
macht und dann nicht alles

00:36:59.410 --> 00:37:01.750
weg ist, sondern man den Fehler

00:37:01.750 --> 00:37:03.370
korrigieren kann und das dann nochmal die Zelle

00:37:03.370 --> 00:37:04.910
ausführt und es dann einfach weitergeht.

00:37:05.490 --> 00:37:06.690
Das war dann so, wo ich mir dachte, wow.

00:37:06.930 --> 00:37:08.670
Das ist der beste Debuggen dann quasi.

00:37:08.670 --> 00:37:10.450
Ja, das ist halt so das,

00:37:10.650 --> 00:37:12.650
wofür ich das dann brauche. Aber wenn

00:37:12.650 --> 00:37:14.630
ich jetzt zum Beispiel Webentwicklung mache, dann

00:37:14.630 --> 00:37:16.490
benutze ich das zwar auch, aber

00:37:16.490 --> 00:37:18.490
deutlich seltener. Also eigentlich eher nur dann,

00:37:18.570 --> 00:37:20.310
wenn ich halt so viel

00:37:20.310 --> 00:37:22.410
Jobs habe, die eine Menge Zeugs

00:37:22.410 --> 00:37:22.850
berechnen.

00:37:24.490 --> 00:37:26.250
Ja, aber

00:37:26.250 --> 00:37:28.230
nee, das ist schon, ja.

00:37:28.930 --> 00:37:30.570
Jetzt sind wir gerade wieder bei der

00:37:30.570 --> 00:37:32.690
Umgebung. Welche nutzt ihr denn so privat

00:37:32.690 --> 00:37:32.990
dann?

00:37:35.070 --> 00:37:36.110
Inwiefern Umgebung?

00:37:36.590 --> 00:37:38.430
Benutzt ihr überhaupt eine oder bleibt da alles in der

00:37:38.430 --> 00:37:39.030
Shell oder?

00:37:40.010 --> 00:37:42.290
Ich schreibe meinen Code PeterNadel auf der Platte.

00:37:42.850 --> 00:37:43.350
Ach so.

00:37:44.190 --> 00:37:45.350
Also ich persönlich

00:37:45.350 --> 00:37:47.350
ich bin ein großer Fan von Atom, weil ich halt

00:37:47.350 --> 00:37:49.470
nicht nur Python benutze,

00:37:49.590 --> 00:37:51.390
sondern auch irgendwie für die Software, die wir

00:37:51.390 --> 00:37:52.830
im Dorf haben, die existiert.

00:37:53.330 --> 00:37:55.230
Oder ob ich auch für die Uni diverse

00:37:55.230 --> 00:37:57.370
Programmiersprachen nutzen muss. In Atom kann

00:37:57.370 --> 00:37:59.470
ich halt Plugins für irgendwie alle Sprachen installieren

00:37:59.470 --> 00:38:00.850
und dann funktioniert das halt ähnlich.

00:38:01.350 --> 00:38:02.730
Ich muss mir das nicht immer einzeln anschauen.

00:38:04.410 --> 00:38:04.510
Ja.

00:38:04.950 --> 00:38:07.290
Ja, ich glaube, ich habe jetzt einmal alles

00:38:07.290 --> 00:38:07.910
ausprobiert.

00:38:09.350 --> 00:38:10.990
Am Anfang war es tatsächlich

00:38:10.990 --> 00:38:12.430
G-Edit, der

00:38:12.430 --> 00:38:14.910
vorinstallierte Texteditor von Gnome.

00:38:15.350 --> 00:38:17.370
Das hat auch gut funktioniert,

00:38:17.510 --> 00:38:18.970
weil es hat halt Syntax-Highlighting

00:38:18.970 --> 00:38:20.950
und mehr brauchte ich da nicht.

00:38:21.550 --> 00:38:23.970
Dann war so ein bisschen meine Sublime-Textzeit.

00:38:24.710 --> 00:38:28.150
Das hat jetzt auch nur ein bisschen mehr gemacht als G-Edit.

00:38:28.330 --> 00:38:32.670
Also ich konnte den Code auch im Editor direkt ausführen.

00:38:33.230 --> 00:38:35.550
Sublime hat dann eine Python-Konsole aufgemacht.

00:38:35.890 --> 00:38:37.190
Das hat auch gut funktioniert.

00:38:38.110 --> 00:38:39.810
Dann habe ich auch Atom benutzt,

00:38:39.810 --> 00:38:42.790
auch mit Plugins, die mir dann zum Beispiel

00:38:42.790 --> 00:38:45.630
den Linter gemacht haben

00:38:45.630 --> 00:38:46.890
oder eine Python-Kondole.

00:38:47.790 --> 00:38:49.530
Mittlerweile bin ich bei VS Code

00:38:49.530 --> 00:38:50.910
angelangt mit

00:38:50.910 --> 00:38:53.570
ich glaube, ich weiß nicht, ob es da Plugins oder

00:38:53.570 --> 00:38:55.350
Add-ons heißt. Jedenfalls

00:38:55.350 --> 00:38:57.470
ein Flake 8 Add-on, dass

00:38:57.470 --> 00:38:58.950
er mir direkt die

00:38:58.950 --> 00:39:01.130
Type Annotations

00:39:01.130 --> 00:39:03.310
Oh ja, MyPile. Ja, ich glaube,

00:39:03.470 --> 00:39:05.570
das ist, ich habe glaube ich nur

00:39:05.570 --> 00:39:07.090
das Flake 8

00:39:07.090 --> 00:39:09.330
oder auch MyPile. Das ist großartig, habe ich auch

00:39:09.330 --> 00:39:11.370
für mich entdeckt und da kann man ja auch die Kitverwaltung

00:39:11.370 --> 00:39:13.510
direkt eintrauen und man hat so eine tolle

00:39:13.510 --> 00:39:15.610
Live-Share-Funktion, da kann man kollaborativ

00:39:15.610 --> 00:39:17.410
direkt arbeiten, als hättest du mal vor dem gleichen

00:39:17.410 --> 00:39:17.930
Rechner.

00:39:19.930 --> 00:39:21.290
Also aktuell

00:39:21.290 --> 00:39:23.490
mein Workflow ist... Das gibt man im VI auch.

00:39:24.030 --> 00:39:25.150
Screen minus X

00:39:25.150 --> 00:39:26.430
und...

00:39:26.430 --> 00:39:29.550
Das ist schon so ein bisschen angestaubt.

00:39:29.630 --> 00:39:31.330
Letztendlich sind wahrscheinlich alle Texteditoren

00:39:31.330 --> 00:39:33.270
irgendwie, aber wir scheinen alle nicht

00:39:33.270 --> 00:39:35.210
wirklich so eine Idee zu nutzen, sondern eher

00:39:35.210 --> 00:39:36.790
Texteditoren mit irgendwie zig Plugins, ne?

00:39:37.250 --> 00:39:39.190
Ja, ich... Also PyCharm habe ich

00:39:39.190 --> 00:39:41.210
installiert, ich starte es irgendwie jedes halbe Jahr

00:39:41.210 --> 00:39:42.350
machen und machst dann direkt wieder zu?

00:39:43.310 --> 00:39:44.970
Ich verwende es tatsächlich auch

00:39:44.970 --> 00:39:46.490
manchmal länger.

00:39:47.630 --> 00:39:48.890
Wobei, ehrlich gesagt, eher

00:39:48.890 --> 00:39:50.370
WebStorm als PyCharm.

00:39:51.470 --> 00:39:53.010
Also die gleiche

00:39:53.010 --> 00:39:54.350
Idee, aber für JavaScript.

00:39:55.310 --> 00:39:57.050
Oder halt TypeScript in meinem Fall

00:39:57.050 --> 00:39:57.470
jetzt.

00:39:59.090 --> 00:40:00.830
Ja, aber ich finde PyCharm auch schwer

00:40:00.830 --> 00:40:01.970
zu bedienen. Also es ist halt,

00:40:03.070 --> 00:40:04.930
es kann schon auch coole Sachen, aber

00:40:04.930 --> 00:40:06.590
es ist halt irgendwie, es fühlt sich nicht

00:40:06.590 --> 00:40:08.630
so gut an wie ein richtiger Editor

00:40:08.630 --> 00:40:10.630
irgendwie. Und ich meine,

00:40:10.970 --> 00:40:13.330
Selbst Atom, das ja

00:40:13.330 --> 00:40:15.290
im Grunde auch mehr so ein

00:40:15.290 --> 00:40:17.410
Browser mit irgendwie

00:40:17.410 --> 00:40:19.130
JavaScript und dann im Editor in JavaScript

00:40:19.130 --> 00:40:21.130
in dem Browser ist, fühlt sich halt viel

00:40:21.130 --> 00:40:23.630
irgendwie

00:40:23.630 --> 00:40:25.270
so agiler an als PyCharm.

00:40:25.750 --> 00:40:27.290
Was man da sagen muss, ist, dass die bei Atom

00:40:27.290 --> 00:40:29.310
in den letzten zwei Jahren wirklich stark an der

00:40:29.310 --> 00:40:31.410
Performance gearbeitet haben. Also wahrscheinlich auch dadurch

00:40:31.410 --> 00:40:33.590
bedingt, dass viele Leute auf VSCode umgestiegen

00:40:33.590 --> 00:40:34.690
sind, weil es halt schneller war.

00:40:35.550 --> 00:40:37.190
Atom ist wesentlich schneller geworden tatsächlich.

00:40:37.530 --> 00:40:39.290
Ah, okay. Muss ich vielleicht auch nochmal ausprobieren.

00:40:39.890 --> 00:40:41.330
Ich finde, der Niklas hat auch eben

00:40:41.330 --> 00:40:43.830
einen guten Punkt gebracht, dass eben

00:40:43.830 --> 00:40:45.710
klar, wenn ich mit Python arbeite,

00:40:45.830 --> 00:40:48.070
gibt es wahrscheinlich nichts Besseres als PyCharm,

00:40:48.250 --> 00:40:49.870
also keine umfassendere

00:40:49.870 --> 00:40:51.890
Lösung, gerade weil

00:40:51.890 --> 00:40:54.190
die Professional-Version

00:40:54.190 --> 00:40:55.350
auch noch sehr gute

00:40:55.350 --> 00:40:58.310
Interaktionen

00:40:58.310 --> 00:40:59.890
mit anderen Sachen, zum Beispiel Git oder

00:40:59.890 --> 00:41:01.470
Django liefert, nur

00:41:01.470 --> 00:41:03.770
gerade wenn ich

00:41:03.770 --> 00:41:05.750
in mein Git-Repo nicht nur

00:41:05.750 --> 00:41:07.610
Python-Dateien, sondern eventuell noch eine

00:41:07.610 --> 00:41:09.710
Markdown-Datei oder ein Bild habe,

00:41:09.890 --> 00:41:14.490
oder ganz andere Sachen, dann hilft mir PyCharm nicht,

00:41:14.490 --> 00:41:19.230
weil dann habe ich VS-Code und dann kann ich da die Code-Dateien öffnen,

00:41:19.350 --> 00:41:22.170
dann kann ich die CSV-Datei ändern,

00:41:22.610 --> 00:41:25.250
da kann ich die readme.nd ändern,

00:41:25.430 --> 00:41:27.030
da kann ich mir das Bild angucken,

00:41:27.650 --> 00:41:28.650
alles in einem Programm,

00:41:28.850 --> 00:41:32.190
statt dass ich die Python-Datei in PyCharm bearbeite,

00:41:32.670 --> 00:41:35.150
die Markdown-Datei in meinen Markdown-Viewer,

00:41:35.590 --> 00:41:37.430
das Bild in meinen Bildbetrachter

00:41:37.430 --> 00:41:39.390
und die CSV-Datei in

00:41:39.390 --> 00:41:41.790
meine Tabellenkalkulation.

00:41:42.310 --> 00:41:43.330
Also so am krassesten

00:41:43.330 --> 00:41:45.210
habe ich mich gefühlt tatsächlich, als ich mit

00:41:45.210 --> 00:41:47.530
Plattwurm irgendwie so ein Diagramm gemacht habe

00:41:47.530 --> 00:41:49.310
und das dann halt in Atom auch

00:41:49.310 --> 00:41:51.210
direkt schreiben und dann live gerendert habe und das

00:41:51.210 --> 00:41:53.050
dann in Readme eingebunden und

00:41:53.050 --> 00:41:55.090
das war schon recht

00:41:55.090 --> 00:41:57.350
cool. Gerade für so Sachen, wo man

00:41:57.350 --> 00:41:59.550
eben nicht nur Codedateien

00:41:59.550 --> 00:42:01.530
im Repo

00:42:01.530 --> 00:42:03.550
hat, ist glaube ich so ein Texteditor

00:42:03.550 --> 00:42:04.250
mit Atoms

00:42:04.250 --> 00:42:06.210
ist die bessere

00:42:06.210 --> 00:42:07.510
Option, weil dann kann ich mir

00:42:07.510 --> 00:42:10.490
VS-Code und dann habe ich eben

00:42:10.490 --> 00:42:12.350
Autocompletion

00:42:12.350 --> 00:42:14.050
für Python und mein

00:42:14.050 --> 00:42:16.030
Linter und mein MyPy

00:42:16.030 --> 00:42:18.170
und vielleicht dann noch ein

00:42:18.170 --> 00:42:20.510
Preview für Markdown-Dateien

00:42:20.510 --> 00:42:22.110
und der Bildbetrachter ist

00:42:22.110 --> 00:42:24.150
eingebaut. Da habe ich dann

00:42:24.150 --> 00:42:25.950
alles in einem Programm, habe an der Seite

00:42:25.950 --> 00:42:28.150
die Ordner

00:42:28.150 --> 00:42:30.050
Übersicht

00:42:30.050 --> 00:42:31.270
und dann kann ich da durchgehen,

00:42:31.870 --> 00:42:33.250
habe das in einem Programm

00:42:33.250 --> 00:42:36.070
zweites Fenster noch das Terminal und bin damit

00:42:36.070 --> 00:42:37.910
voll zufrieden. Und die Einstiegshürde

00:42:37.910 --> 00:42:39.550
ist auch geringer. Ich kann mir irgendwie

00:42:39.550 --> 00:42:41.830
Subclime installieren, die Datei öffnen und da kann ich direkt

00:42:41.830 --> 00:42:43.950
anfangen zu programmieren. Ich muss mir

00:42:43.950 --> 00:42:46.070
nicht erst mal durch den Einstellungsdialog

00:42:46.070 --> 00:42:48.250
klicken, um herauszufinden, wie ich jetzt zoome oder so.

00:42:48.650 --> 00:42:49.970
Das funktioniert halt alles so,

00:42:50.030 --> 00:42:52.370
wie man es erwarten würde. Das finde ich schon praktisch.

00:42:52.590 --> 00:42:53.050
Das hatte ich,

00:42:53.810 --> 00:42:56.050
VS-Code habe ich jetzt erst seit neuerdings,

00:42:56.050 --> 00:42:57.950
also vielleicht drei

00:42:57.950 --> 00:42:58.550
Monate.

00:43:00.290 --> 00:43:02.150
Und da habe ich mich positiv

00:43:02.150 --> 00:43:04.130
überrascht, ich habe VS-Code geöffnet

00:43:04.130 --> 00:43:06.070
und wollte dann einfach meine Python-Datei

00:43:06.070 --> 00:43:07.970
ändern. Und da hat er

00:43:07.970 --> 00:43:10.050
direkt mir vorgeschlagen, hier möchtest

00:43:10.050 --> 00:43:11.010
du nicht dieses Add-on

00:43:11.010 --> 00:43:14.050
installieren, das dir die Autocompletion

00:43:14.050 --> 00:43:15.330
macht. Und ich so, ja, gerne.

00:43:16.190 --> 00:43:18.010
Hier, wähle dein Linter aus.

00:43:18.790 --> 00:43:19.310
Ja, gerne.

00:43:19.630 --> 00:43:20.850
Grace yourself, Linter is coming.

00:43:22.210 --> 00:43:23.510
Das ist ja sehr user-centric, ne?

00:43:23.790 --> 00:43:25.270
Natürlich. Und

00:43:25.270 --> 00:43:27.550
ja, in meinem

00:43:27.550 --> 00:43:29.750
RSS-Feed lese ich dann auch hin und wieder, welche

00:43:29.750 --> 00:43:31.750
Neuerungen in VS-Code jetzt

00:43:31.750 --> 00:43:33.410
bezüglich Python kommen und

00:43:33.410 --> 00:43:35.030
das sieht schon sehr gut aus.

00:43:35.870 --> 00:43:37.650
Ich hatte, also das einzige große

00:43:37.650 --> 00:43:39.290
Problem, was ich mal mit Atom hatte, ist

00:43:39.290 --> 00:43:41.490
Atom konnte sehr spät

00:43:41.490 --> 00:43:43.390
so Type Indications. Das hat bis

00:43:43.390 --> 00:43:45.310
irgendwie 1.25 oder so

00:43:45.310 --> 00:43:47.830
in feierlicher Methodensignatur

00:43:47.830 --> 00:43:49.510
war, ist das ganze Highlighting

00:43:49.510 --> 00:43:51.550
kaputt gegangen. Das war sehr

00:43:51.550 --> 00:43:53.390
witzig, weil das ja eigentlich schon seit Python 3

00:43:53.390 --> 00:43:55.110
im Sprachstandard enthalten ist und dann

00:43:55.110 --> 00:43:56.730
na, war gut, ja.

00:43:57.470 --> 00:43:59.570
Ich muss auch sagen, seitdem ich VS Code

00:43:59.570 --> 00:44:01.470
mit einem direkt eingebauten

00:44:01.470 --> 00:44:02.870
Linter benutze.

00:44:03.290 --> 00:44:04.070
Machst du weniger Fehler?

00:44:04.910 --> 00:44:07.450
Nicht nur, sondern da benutze

00:44:07.450 --> 00:44:09.330
ich auch richtig gut die Type

00:44:09.330 --> 00:44:11.190
Annotations und selbst wenn es irgendwie

00:44:11.190 --> 00:44:12.870
ein Skript von 50 Zeilen ist,

00:44:14.350 --> 00:44:15.510
dadurch, dass der mir

00:44:15.510 --> 00:44:17.310
darauf hinweist, wenn ich was

00:44:17.310 --> 00:44:19.250
falsch mache, benutze ich es häufiger

00:44:19.250 --> 00:44:21.430
und das finde ich, das ist schon

00:44:21.430 --> 00:44:22.810
ein positiver Nebeneffekt,

00:44:23.230 --> 00:44:25.330
dass ich schöneren, dokumentierten

00:44:25.330 --> 00:44:27.310
Codes schreibe. Ja, aber so Type Annotations machen wir

00:44:27.310 --> 00:44:29.070
uns am Anfang auch nicht sicher, wie wir das jetzt

00:44:29.070 --> 00:44:31.250
tatsächlich, sollen wir das zeigen?

00:44:31.470 --> 00:44:32.930
Soll das nicht zeigen? Ja.

00:44:33.110 --> 00:44:35.010
Wir haben es am Anfang so gemacht, dass wir

00:44:35.010 --> 00:44:37.130
die alte Syntax genommen haben,

00:44:37.270 --> 00:44:39.050
wo die Typen nicht bei den Variablen

00:44:39.050 --> 00:44:40.570
standen, sondern in Kommentaren dahinter.

00:44:41.050 --> 00:44:42.970
Weil wir uns überlegt haben, wir wollen eigentlich,

00:44:43.090 --> 00:44:44.950
dass unsere Beispiele mit allen Python-Versionen

00:44:44.950 --> 00:44:46.990
laufen. Zumindest mit allen Python 3

00:44:46.990 --> 00:44:49.170
Versionen. Also mit 3.4.

00:44:49.290 --> 00:44:49.550
Mit allen.

00:44:51.290 --> 00:44:52.170
3.1.

00:44:52.490 --> 00:44:54.590
Mit allen aktuell unterstützten Python 3 Versionen.

00:44:55.050 --> 00:44:57.090
Aber wenn dann jetzt 3.4 irgendwann stirbt,

00:44:57.210 --> 00:44:58.830
dann können wir uns überlegen, ob wir das nicht vielleicht

00:44:58.830 --> 00:45:00.290
auf die neue Syntax ändern.

00:45:01.470 --> 00:45:15.470
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.

00:45:15.530 --> 00:45:17.430
Wir hatten zum Glück noch niemanden, der

00:45:17.430 --> 00:45:19.350
mit 3.2 oder 3.3 aufgetaucht ist.

00:45:20.010 --> 00:45:21.150
Das ist einfach zu schwer zu installieren,

00:45:21.270 --> 00:45:23.310
das schafft sowieso kein Anfänger.

00:45:23.950 --> 00:45:25.730
Gibt es wirklich noch zwei Sachen irgendwo?

00:45:25.850 --> 00:45:27.770
Docker, Python, Doppelpunkt, 3.2.

00:45:28.670 --> 00:45:29.330
Ja, also ich

00:45:29.330 --> 00:45:31.110
habe durchaus schon noch

00:45:31.110 --> 00:45:33.350
zum Beispiel, was mich irgendwie auch

00:45:33.350 --> 00:45:35.550
genervt hat beim Roster eines Kunden,

00:45:35.770 --> 00:45:37.510
der hatte, dessen aktuellste Version war

00:45:37.510 --> 00:45:39.530
Python 3.3, was halt

00:45:39.530 --> 00:45:41.430
und das war auch bei Debian halt

00:45:41.430 --> 00:45:43.310
irgendwie eine Zeit lang irgendwie so das, was halt

00:45:43.310 --> 00:45:44.910
dann dabei war und

00:45:44.910 --> 00:45:46.570
ja, das ist halt schon schlimm.

00:45:47.170 --> 00:45:48.730
Weil so 3.4 wäre echt gut gewesen.

00:45:50.390 --> 00:45:50.790
Ja.

00:45:51.230 --> 00:45:53.090
Also wir sagen uns halt, wenn die

00:45:53.090 --> 00:45:54.970
Version im Moment noch supported ist, dann

00:45:54.970 --> 00:45:57.290
versuchen wir auch die zu verwenden.

00:45:57.450 --> 00:45:58.750
Und es ist ja nur 3.4 im Moment noch

00:45:58.750 --> 00:45:59.550
als älteste.

00:46:01.090 --> 00:46:02.990
Also für mich war so 3.4

00:46:02.990 --> 00:46:05.290
die erste richtig gute 3er-Version,

00:46:05.290 --> 00:46:06.490
die man

00:46:06.490 --> 00:46:09.090
ja, woanders nicht mehr so dauernd

00:46:09.090 --> 00:46:10.330
Sachen auf dem Fuß gepreist hat.

00:46:10.370 --> 00:46:12.990
Waren da letztes Mal 2 über den Weg gelaufen, so im

00:46:12.990 --> 00:46:14.490
aktiven Betrieb?

00:46:14.910 --> 00:46:17.790
mir ehrlich gesagt schon ganz lange

00:46:17.790 --> 00:46:19.230
nicht mehr. Also ich

00:46:19.230 --> 00:46:21.690
würde sagen, das müsste dann schon so wahrscheinlich

00:46:21.690 --> 00:46:23.530
2000, na okay,

00:46:23.710 --> 00:46:24.910
so lange ist das jetzt auch nicht her,

00:46:25.230 --> 00:46:27.770
2014, 15

00:46:27.770 --> 00:46:28.230
gewesen.

00:46:29.170 --> 00:46:31.510
Letzte Woche hat er sich ein Startup getroffen, die so einen Sensor

00:46:31.510 --> 00:46:33.590
betrieben haben auf Python 2

00:46:33.590 --> 00:46:34.550
API-Base.

00:46:36.330 --> 00:46:37.430
Haben sie noch ein Jahr Zeit?

00:46:38.770 --> 00:46:39.830
Ich habe aber auch

00:46:39.830 --> 00:46:41.610
mittlerweile das Gefühl,

00:46:41.610 --> 00:46:43.450
dass Python 3 doch

00:46:43.450 --> 00:46:45.330
mittlerweile weit genug

00:46:45.330 --> 00:46:47.470
verbreitet ist. Also, dass Python

00:46:47.470 --> 00:46:49.130
2 doch langsam stirbt.

00:46:50.090 --> 00:46:51.350
Endlich das Problem gelöst.

00:46:51.470 --> 00:46:53.450
Keine zwei Sprachen mehr, sondern Progress.

00:46:54.050 --> 00:46:54.870
Ja. Sehr gut.

00:46:55.330 --> 00:46:57.430
Weil Python 3 ist dann irgendwann nicht mehr Zukunft,

00:46:57.590 --> 00:46:59.310
sondern Gegenwart. Wann kommt dann endlich

00:46:59.310 --> 00:46:59.790
Python 4?

00:47:01.490 --> 00:47:03.390
Soll es ja eigentlich gar nicht geben, wenn ich die Leute

00:47:03.390 --> 00:47:05.510
nicht verstanden habe. Ich habe einen Blogpost

00:47:05.510 --> 00:47:07.110
von 2015 gefunden, wo

00:47:07.110 --> 00:47:08.410
2020 drin stand.

00:47:09.030 --> 00:47:10.790
Aber da ist dann Python 3 42 oder so.

00:47:11.210 --> 00:47:12.350
Ich glaube es auch nicht.

00:47:12.990 --> 00:47:13.790
Da stellt sich

00:47:13.790 --> 00:47:15.590
dann natürlich die Frage, ob man bei

00:47:15.590 --> 00:47:17.650
Python überhaupt eine

00:47:17.650 --> 00:47:19.730
4 oder 3,141

00:47:20.690 --> 00:47:23.470
Wobei, es gab doch, ich meine

00:47:23.470 --> 00:47:25.670
in den Leasenodes 2.3.7 oder so

00:47:25.670 --> 00:47:27.430
gibt es irgendein Feature, dass

00:47:27.430 --> 00:47:29.870
Type Annotations als String betrachtet

00:47:29.870 --> 00:47:31.630
werden, wo steht, dass

00:47:31.630 --> 00:47:33.930
das Moment Opt-in ist, irgendwie mit From-Future-Import,

00:47:34.050 --> 00:47:35.590
aber Python 4 macht das dann als Standard.

00:47:35.850 --> 00:47:37.730
Und dann habe ich mir gedacht...

00:47:37.730 --> 00:47:38.030
Okay.

00:47:39.190 --> 00:47:41.570
Das mit dem Annähern an so eine

00:47:41.570 --> 00:47:43.850
Zahl, das ist ja, das ist leider

00:47:43.850 --> 00:47:45.510
schon ein bisschen vergeblich. Ich glaube, Latex macht E

00:47:45.510 --> 00:47:47.550
und Tech macht Pi oder so, ne?

00:47:47.670 --> 00:47:49.590
Oder? Die nähern sich mit ihren

00:47:49.590 --> 00:47:51.050
Versionen schon irgendwie.

00:47:51.890 --> 00:47:53.790
Wenn sie bei Sempfer bleiben würden, wäre ich

00:47:53.790 --> 00:47:55.550
davor. Ja, das wäre auch ganz gut.

00:47:55.650 --> 00:47:57.150
Das ist ein bisschen, also, ja.

00:47:58.710 --> 00:47:59.550
Ja, wenn man,

00:47:59.730 --> 00:48:01.610
wenn die Versionen nichts bedeuten, ist das auch

00:48:01.610 --> 00:48:02.130
ein bisschen schlecht.

00:48:03.870 --> 00:48:05.550
Ich kann auch jedes Jahr wieder hochzählen, dass wir irgendwann

00:48:05.550 --> 00:48:07.330
2020 angekommen sind.

00:48:08.330 --> 00:48:09.530
Wenn sich da nichts großartig ändert,

00:48:09.610 --> 00:48:11.550
warum nicht, ne? Das wird mich ja immer

00:48:11.550 --> 00:48:13.850
noch bei den Ubuntu-Versionen,

00:48:13.970 --> 00:48:14.710
die sich nach

00:48:14.710 --> 00:48:17.490
Buchstaben benennen und dann nach Z

00:48:17.490 --> 00:48:19.290
wieder bei A angefangen haben.

00:48:19.550 --> 00:48:21.010
Ja, was hättest du erwartet, dass die irgendwie

00:48:21.010 --> 00:48:22.550
auf dem Mobil springen oder was?

00:48:23.190 --> 00:48:25.070
Ich hätte 50 gefunden.

00:48:27.550 --> 00:48:27.830
Naja.

00:48:29.890 --> 00:48:30.410
Ja.

00:48:31.590 --> 00:48:33.170
Was mich jetzt noch interessieren würde,

00:48:33.170 --> 00:48:33.770
also auch aus Person.

00:48:33.780 --> 00:48:35.740
was wäre denn mit dem nächsten Level?

00:48:35.860 --> 00:48:37.020
Also wenn ich jetzt so die ganzen Basics

00:48:37.020 --> 00:48:38.940
ein bisschen verstanden habe,

00:48:39.500 --> 00:48:41.460
was würde ich denn als nächstes machen?

00:48:42.000 --> 00:48:43.220
Also wir müssen uns ja nicht immer

00:48:43.220 --> 00:48:44.660
da sklavisch an

00:48:44.660 --> 00:48:47.300
unser Rahmenprogramm halten. Das haben wir ja nur

00:48:47.300 --> 00:48:49.820
vorbereitet, damit wir im Notfall was haben.

00:48:50.520 --> 00:48:51.360
Also wenn Leute

00:48:51.360 --> 00:48:53.440
Fragen zu Themen haben, dann gehen wir da auch

00:48:53.440 --> 00:48:55.420
drauf ein oder wenn die irgendwie Projekte haben

00:48:55.420 --> 00:48:57.500
oder sowas. Projekte ist vielleicht ein gutes Stichwort.

00:48:57.580 --> 00:48:59.180
Das heißt, wenn man bei euch durch ist mit Tutorial,

00:48:59.280 --> 00:49:01.300
dann sollte man mit Projekten anfangen oder

00:49:01.300 --> 00:49:03.240
was würdet ihr empfehlen, um die Sprache

00:49:03.240 --> 00:49:05.280
so ein bisschen besser zu verstehen oder irgendwie so Konzepte

00:49:05.280 --> 00:49:07.140
zu durchschauen? Ja, ich glaube, es ist

00:49:07.140 --> 00:49:09.260
tatsächlich ein sehr guter

00:49:09.260 --> 00:49:10.380
Ansatz, dass man,

00:49:11.680 --> 00:49:13.120
wenn man mit dem Programmieren anfängt

00:49:13.120 --> 00:49:15.180
und dann das Tutorial bei uns

00:49:15.180 --> 00:49:17.000
absolviert hat,

00:49:17.060 --> 00:49:18.980
das muss man nicht mal alle zehn Level sein, sondern

00:49:18.980 --> 00:49:20.220
das kann halt auch,

00:49:21.020 --> 00:49:22.980
ich glaube, mit Level 6 haben wir

00:49:22.980 --> 00:49:25.140
Funktionen abgearbeitet. Ich glaube, es sind mehr als

00:49:25.140 --> 00:49:25.620
zehn Level.

00:49:28.540 --> 00:49:28.980
Grob

00:49:28.980 --> 00:49:31.140
zehn Level. Ich glaube, mit Level

00:49:31.140 --> 00:49:33.480
6 haben wir Funktionen abgearbeitet

00:49:33.480 --> 00:49:35.280
und dann, wenn man dann quasi

00:49:35.280 --> 00:49:37.280
ein Projekt hat, wenn man

00:49:37.280 --> 00:49:38.800
sich überlegt, ich möchte

00:49:38.800 --> 00:49:40.720
irgendwas mit Bildern machen,

00:49:41.320 --> 00:49:43.300
ich möchte irgendwas mit Zufall

00:49:43.300 --> 00:49:45.160
machen, ich möchte... Oder mit Netzwerk.

00:49:45.440 --> 00:49:47.000
Oder mit Netzwerk. Das waren dann

00:49:47.000 --> 00:49:49.520
quasi anfängend,

00:49:49.940 --> 00:49:51.360
normalerweise fange

00:49:51.360 --> 00:49:52.340
ich immer so an, erstmal

00:49:52.340 --> 00:49:54.600
wie macht man den

00:49:54.600 --> 00:49:56.180
Brandham-Algorithmus

00:49:56.180 --> 00:49:59.080
in Python? Dann google ich das und dann

00:49:59.080 --> 00:50:01.000
gehe ich auf Stack Overflow und gucke ich mir an,

00:50:01.000 --> 00:50:01.920
Jetzt musst du ganz kurz

00:50:01.920 --> 00:50:03.740
für unsere Hörerinnen erklären, was der

00:50:03.740 --> 00:50:05.680
Bentham-Algorithmus ist. Das würde ich auch gerne

00:50:05.680 --> 00:50:07.940
wissen. Das war

00:50:07.940 --> 00:50:09.660
ein Beispiel. Damit habe ich mich

00:50:09.660 --> 00:50:11.820
irgendwann mal beschäftigt. Ich weiß es selber nicht

00:50:11.820 --> 00:50:13.820
mehr. In die Shownotes

00:50:13.820 --> 00:50:16.180
kommt das dann? Ich kann es rausrufen.

00:50:18.520 --> 00:50:19.720
Also wie gesagt, meistens

00:50:19.720 --> 00:50:21.820
hilft es, wenn man ein Projekt hat,

00:50:21.880 --> 00:50:23.900
das möchte man machen und

00:50:23.900 --> 00:50:25.880
dann beschäftigt man

00:50:25.880 --> 00:50:27.960
sich daher mit Python,

00:50:28.040 --> 00:50:29.300
weil dann hat man ein Ziel

00:50:29.300 --> 00:50:31.380
und dann kann man

00:50:31.380 --> 00:50:33.320
gezielter Fragen stellen.

00:50:33.480 --> 00:50:34.400
Ansonsten haben wir ja auch

00:50:34.400 --> 00:50:37.980
diese Situation,

00:50:38.180 --> 00:50:40.000
dass wenn Leute beim ersten

00:50:40.000 --> 00:50:41.700
Donnerstag im Monat zu uns kommen und beim

00:50:41.700 --> 00:50:42.980
zweiten Donnerstag im Monat zu uns kommen,

00:50:43.540 --> 00:50:45.600
dass die Personen da ja doch irgendwie

00:50:45.600 --> 00:50:46.940
was mitgenommen haben, hoffentlich.

00:50:47.620 --> 00:50:49.760
Und dann kann man auch zum dritten Donnerstag im Monat kommen

00:50:49.760 --> 00:50:51.240
und dann sind wir nicht mehr da und dann

00:50:51.240 --> 00:50:52.400
kümmert sich jemand anders um.

00:50:54.500 --> 00:50:55.440
Ja, aber genau,

00:50:55.560 --> 00:50:57.280
wenn ihr sagt, ihr macht eine Funktion,

00:50:57.340 --> 00:50:59.160
wie tief geht denn das eigentlich

00:50:59.160 --> 00:51:01.420
sozusagen...

00:51:01.420 --> 00:51:02.840
Jetzt haben wir ein Rekursionslimit.

00:51:04.440 --> 00:51:04.660
Okay.

00:51:06.000 --> 00:51:08.960
Aber macht ihr auch so Dekoratoren

00:51:08.960 --> 00:51:10.780
dann noch an Funktionen?

00:51:11.180 --> 00:51:13.220
Ja, aber nicht in dem Level. Das kommt später.

00:51:13.400 --> 00:51:15.440
Erklärt ihr sowas, was Clutures sind

00:51:15.440 --> 00:51:16.420
und solche? Nein.

00:51:17.000 --> 00:51:18.340
Also das machen wir irgendwann.

00:51:18.800 --> 00:51:21.140
Ich meine, dann haben wir Level 8, 9 oder so.

00:51:21.440 --> 00:51:22.020
Aber nicht dann.

00:51:22.020 --> 00:51:23.140
Ja, ich glaube 8.

00:51:24.440 --> 00:51:25.880
Ja, das ist immer

00:51:25.880 --> 00:51:27.440
eine schwierige Abwägung.

00:51:27.860 --> 00:51:30.780
Weil man kann in die Themen viel tiefer reingehen.

00:51:31.980 --> 00:51:35.800
Wir haben zum Beispiel am Anfang auch nur positionale Parameter gemacht

00:51:35.800 --> 00:51:38.340
und das wird später irgendwie erweitert auf Keyword und sowas.

00:51:40.500 --> 00:51:43.200
Weil man möchte natürlich auch nichts erwähnen,

00:51:43.280 --> 00:51:44.720
was man noch nicht erklärt hat.

00:51:45.280 --> 00:51:51.340
Also zum Beispiel, wenn ich ein Level 1 Strings durchgehe

00:51:51.340 --> 00:51:54.840
und dann sage, ja, ich kann feststellen,

00:51:54.980 --> 00:51:55.580
ob ein String

00:51:55.580 --> 00:51:58.720
Uppercase oder Lowercase ist,

00:51:58.800 --> 00:52:00.960
wenn ich String.isLower schreibe,

00:52:01.740 --> 00:52:02.900
dann müsste ich

00:52:02.900 --> 00:52:04.920
eigentlich erklären, ja, das ist jetzt eine Methode

00:52:04.920 --> 00:52:07.100
von String, die rufe ich auf den String auf.

00:52:07.180 --> 00:52:09.000
Und dann kommt es als ersten Parameter self.

00:52:09.420 --> 00:52:11.000
Ja, aber

00:52:11.000 --> 00:52:12.960
ich persönlich finde es auch irgendwie doof zu sagen,

00:52:13.220 --> 00:52:14.900
das müsst ihr jetzt wissen, aber das machen wir

00:52:14.900 --> 00:52:15.280
später.

00:52:16.820 --> 00:52:18.380
Was erwähnt ist einfach gar nicht.

00:52:19.560 --> 00:52:20.920
Ja, aber ganz witzig da auch, weil

00:52:20.920 --> 00:52:22.660
ihr beide habt so ein bisschen andere Artenweise,

00:52:22.780 --> 00:52:24.920
diese einfacheren Dinge zu erklären. Und weil

00:52:24.920 --> 00:52:26.840
auch neue Leute dabei waren. Hatte ich zum Beispiel so, dass ich

00:52:26.840 --> 00:52:28.700
einige Lektionen von jedem von euch einmal gehört habe.

00:52:29.060 --> 00:52:31.000
Und das war sehr cool, weil ich dann bestimmte Sachen noch neu

00:52:31.000 --> 00:52:32.920
gelernt habe, die ich vorher noch nicht kannte. Das erinnert sich auch

00:52:32.920 --> 00:52:34.360
bei der gleichen Person jeden Monat.

00:52:36.400 --> 00:52:37.000
Wir lernen

00:52:37.000 --> 00:52:38.540
ja auch dazu. Hoffentlich.

00:52:39.660 --> 00:52:40.800
Ich behaupte, wir haben

00:52:40.800 --> 00:52:42.300
beide schon sehr viel daraus mitgenommen.

00:52:42.980 --> 00:52:45.000
Ich finde es halt immer doof, wenn man

00:52:45.000 --> 00:52:47.000
Sachen nach hinten verschiebt und sagen muss,

00:52:47.520 --> 00:52:48.920
ja, also Print, das ist

00:52:48.920 --> 00:52:50.840
eine Funktion. Und was eine Funktion ist,

00:52:50.840 --> 00:52:52.740
das sagen wir später. Oder auch

00:52:52.740 --> 00:52:54.820
in Programmierungen der

00:52:54.820 --> 00:52:56.760
Uni in Java, ne? Erstmal, das

00:52:56.760 --> 00:52:58.720
ist eine Klasse, das ist eine Funktion, das erklären

00:52:58.720 --> 00:53:00.680
wir später. Ich finde das

00:53:00.680 --> 00:53:02.700
immer, wenn man was erwähnt, dann soll man es

00:53:02.700 --> 00:53:04.520
erklären. Und klar, man

00:53:04.520 --> 00:53:06.100
kann die Print-Funktion,

00:53:07.060 --> 00:53:08.420
man kann auch einfach hinnehmen,

00:53:08.720 --> 00:53:11.060
dass wenn ich da einen String reintue, dann wird er ausgedruckt.

00:53:11.080 --> 00:53:12.980
Wir können ja Funktionsaufrufe

00:53:12.980 --> 00:53:14.600
auch machen, bevor wir selber Funktionen

00:53:14.600 --> 00:53:16.620
definieren. Das ist ja kein Problem. Man kann

00:53:16.620 --> 00:53:18.200
sagen, so, das ist eine Funktion,

00:53:18.780 --> 00:53:19.100
die

00:53:19.100 --> 00:53:22.580
bietet die Möglichkeit, einen Code

00:53:22.580 --> 00:53:24.980
abzuspeichern und wieder auszuführen

00:53:24.980 --> 00:53:26.880
und wie man das selber definiert,

00:53:26.960 --> 00:53:27.460
machen wir später.

00:53:29.140 --> 00:53:30.860
Aber gerade bei diesem

00:53:30.860 --> 00:53:33.140
String-Beispiel, dass man eben Funktionen

00:53:33.140 --> 00:53:34.440
hatte, die auf einen String

00:53:34.440 --> 00:53:36.920
aufgerufen werden und nicht mit einem String,

00:53:37.640 --> 00:53:38.420
das...

00:53:38.420 --> 00:53:40.700
Es hat bisher auch zum Glück niemand gefragt, warum da

00:53:40.700 --> 00:53:41.420
ein Punkt steht.

00:53:44.980 --> 00:53:48.620
Das ist so eine

00:53:48.620 --> 00:53:50.660
Schwierigkeit, die es mit

00:53:50.660 --> 00:53:51.800
Sicht bringt, wenn man eben

00:53:51.800 --> 00:53:54.520
am Anfang Sachen erklären will, aber

00:53:54.520 --> 00:53:56.460
noch nicht zu sehr darauf eingehen möchte,

00:53:56.580 --> 00:53:57.520
warum das jetzt so ist.

00:53:59.480 --> 00:54:00.700
Und wenn man dann

00:54:00.700 --> 00:54:02.540
also weitergekommen ist, dass man halt viele

00:54:02.540 --> 00:54:04.600
von diesen Konzepten verstanden hat und sein eigenes Projekt

00:54:04.600 --> 00:54:06.780
angefangen hat, dann ist halt die Frage,

00:54:06.920 --> 00:54:08.460
möchte man jedes Projekt dann komplett abschließen

00:54:08.460 --> 00:54:10.560
oder hat man in dem Projekt so schnell was gelernt, dass man direkt

00:54:10.560 --> 00:54:12.620
nächstes Mal. Wie viele von euren Projekten habt ihr nicht

00:54:12.620 --> 00:54:14.640
fertig gemacht? Alle werde

00:54:14.640 --> 00:54:16.200
ich irgendwann nochmal fertig machen, glaube ich.

00:54:17.880 --> 00:54:18.280
Also

00:54:18.280 --> 00:54:20.600
das ist das erste Projekt, mit dem ich angefangen habe

00:54:20.600 --> 00:54:21.520
war

00:54:21.520 --> 00:54:24.640
das war irgendwie eine Verwaltung

00:54:24.640 --> 00:54:26.500
für einen Videorekorder. Ich habe zu Hause

00:54:26.500 --> 00:54:28.700
so einen Festplattenrekorder, mit dem

00:54:28.700 --> 00:54:30.440
konnte ich irgendwie Dinge aus dem Fernsehen aufnehmen

00:54:30.440 --> 00:54:32.620
und dann habe ich mir gedacht, das wäre ja

00:54:32.620 --> 00:54:34.300
total cool, wenn ich die dann irgendwie so

00:54:34.300 --> 00:54:36.460
sortieren könnte, irgendwie nach einer Staffel

00:54:36.460 --> 00:54:37.980
Episode und sowas.

00:54:38.380 --> 00:54:39.920
Es gibt da ja auch so Online-Datenbanken.

00:54:40.460 --> 00:54:42.200
Und das war mein erstes Projekt und

00:54:42.200 --> 00:54:44.400
ich mache da alle zwei Jahre nochmal

00:54:44.400 --> 00:54:46.400
so einen Commit und bitte guckt euch nicht

00:54:46.400 --> 00:54:47.680
auf GitHub an, das ist schrecklich.

00:54:49.220 --> 00:54:50.480
Ja, ich glaube, ich habe auch noch

00:54:50.480 --> 00:54:52.420
auf meinen GitHub-Repo, in

00:54:52.420 --> 00:54:53.380
meinen GitHub-Account

00:54:53.380 --> 00:54:56.180
Karteileichen von Projekten, die ich mal

00:54:56.180 --> 00:54:58.820
angefangen habe, halbherzig

00:54:58.820 --> 00:55:00.180
irgendwann dann

00:55:00.180 --> 00:55:02.380
liegen lassen. Da müsste ich, glaube ich, auch mal

00:55:02.380 --> 00:55:03.700
auskehren.

00:55:03.840 --> 00:55:06.180
Noch diesen einen YouTube-Client, der irgendwann

00:55:06.180 --> 00:55:08.440
einfach das Stack-Limit erreicht,

00:55:08.540 --> 00:55:09.840
weil jeder Menüpunkt ein neuer

00:55:09.840 --> 00:55:11.740
Regressions-Sys. Ja,

00:55:12.420 --> 00:55:14.280
das Programm gibt es noch. Ich glaube,

00:55:14.340 --> 00:55:16.320
das funktioniert sogar noch, aber

00:55:16.320 --> 00:55:18.260
da habe ich halt seit Jahren nichts

00:55:18.260 --> 00:55:19.660
mehr gemacht. Und ich

00:55:19.660 --> 00:55:22.040
nehme mir vor, das irgendwann zu tun, aber

00:55:22.040 --> 00:55:23.100
ja.

00:55:25.580 --> 00:55:26.060
Man kann

00:55:26.060 --> 00:55:28.260
Repos ja auf GitHub mittlerweile auch archivieren,

00:55:28.380 --> 00:55:29.400
aber ich hatte bisher noch nie

00:55:29.400 --> 00:55:32.040
diese harte Entscheidung getroffen,

00:55:32.040 --> 00:55:33.160
das dann doch nicht mehr zu machen.

00:55:34.640 --> 00:55:35.800
Nee, das, genau.

00:55:36.020 --> 00:55:37.520
Es gibt da mehrere, also bei mir

00:55:37.520 --> 00:55:39.660
auch, ich hab ganz, ich weiß nicht genau,

00:55:39.940 --> 00:55:40.720
ich hab vielleicht so

00:55:40.720 --> 00:55:43.840
60 GitHub

00:55:43.840 --> 00:55:45.640
Repos oder sowas.

00:55:46.300 --> 00:55:48.020
Ich sammle die nicht, aber

00:55:48.020 --> 00:55:51.180
im Verlauf der Zeit passiert das irgendwie

00:55:51.180 --> 00:55:52.560
und dann gibt es halt unterschiedliche Stadien

00:55:52.560 --> 00:55:55.420
in denen sich Projekte befinden können

00:55:55.420 --> 00:55:57.180
und die, also

00:55:57.180 --> 00:55:59.300
tatsächlich, ich habe auch noch nie ein GitHub-Repo gelöscht

00:55:59.300 --> 00:56:01.180
oder ein Projekt wirklich komplett wieder verschwinden

00:56:01.180 --> 00:56:02.940
lassen, aber es gibt dann halt welche

00:56:02.940 --> 00:56:04.980
dann, wenn ich dann schon mal eine Domain

00:56:04.980 --> 00:56:06.660
registriere, dann ist es schon ernster.

00:56:06.820 --> 00:56:07.720
Oh ja!

00:56:09.220 --> 00:56:11.140
Ich habe halt wohl Projekte, die

00:56:11.140 --> 00:56:13.020
ziemlich gut funktionieren, zu denen ich aber keine

00:56:13.020 --> 00:56:15.180
Doku habe und ich habe welche, wo ich

00:56:15.180 --> 00:56:17.160
eigentlich nur das Konzept habe und auch keine Software.

00:56:17.920 --> 00:56:19.280
Es gibt so eins, da habe ich ein Domain,

00:56:19.360 --> 00:56:20.700
da zahle ich jedes Jahr Geld für

00:56:20.700 --> 00:56:22.240
und da habe ich keine Software für.

00:56:23.080 --> 00:56:23.460
Sehr gut.

00:56:26.120 --> 00:56:27.200
Bei einem Projekt,

00:56:27.440 --> 00:56:31.140
das ist mittlerweile jetzt auch drei Jahre alt,

00:56:31.700 --> 00:56:33.120
da ging es um Gruppenoptimierung

00:56:33.120 --> 00:56:34.500
und ich hatte das angefangen

00:56:34.500 --> 00:56:38.980
und da hatte ich erst unglaublich viel Zeit investiert,

00:56:39.100 --> 00:56:41.840
mir viel zu viele Gedanken zu machen,

00:56:41.840 --> 00:56:42.960
okay, wie mache ich das jetzt?

00:56:42.980 --> 00:56:45.120
Das war doch dein erstes grafisches Programm, oder?

00:56:45.400 --> 00:56:47.200
Ja, das war

00:56:47.200 --> 00:56:49.080
für mich aus vielerlei Hinsicht

00:56:49.080 --> 00:56:51.060
interessant, weil ich da einerseits

00:56:51.060 --> 00:56:53.660
einmal so richtig mit Objektorientierung

00:56:53.660 --> 00:56:55.200
gearbeitet habe, also so

00:56:55.200 --> 00:56:57.740
einmal komplett Objektorientierung

00:56:57.740 --> 00:56:59.380
und Grafik und... Weil es geht.

00:56:59.700 --> 00:57:01.360
Weil es geht, weil ich quasi

00:57:01.360 --> 00:57:03.420
daran auch selber Dinge lernen wollte.

00:57:03.580 --> 00:57:05.080
Daran habe ich dann auch Git

00:57:05.080 --> 00:57:07.560
viel besser kennengelernt.

00:57:08.100 --> 00:57:09.500
Konflikte mit sich selbst ist auch

00:57:09.500 --> 00:57:11.480
etwas, was man vergabt haben sollte.

00:57:11.480 --> 00:57:13.200
Das muss man einfach mal gemacht haben.

00:57:14.280 --> 00:57:15.140
Und ich glaube, nach

00:57:15.140 --> 00:57:23.700
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.

00:57:23.800 --> 00:57:34.880
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.

00:57:34.880 --> 00:57:58.620
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.

00:58:00.020 --> 00:58:22.720
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.

00:58:23.180 --> 00:58:43.880
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.

00:58:43.960 --> 00:58:44.760
Hast du auch Tests?

00:58:46.200 --> 00:58:48.520
Tatsächlich habe ich teilweise Tests.

00:58:49.000 --> 00:58:49.980
100% Coverage?

00:58:50.420 --> 00:59:20.400
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.

00:59:20.420 --> 00:59:22.160
getestet oder wir hatten da Donnerstag

00:59:22.160 --> 00:59:24.140
darüber gesprochen und ich wollte da quasi

00:59:24.140 --> 00:59:26.020
noch weitergehen. Das hatte ich jetzt

00:59:26.020 --> 00:59:28.100
letztens, da habe ich was mit Bildern

00:59:28.100 --> 00:59:30.180
gemacht. Also aber du hast die Sachen

00:59:30.180 --> 00:59:31.920
auch vorher mal direkt bei GitHub direkt hochgeladen,

00:59:32.000 --> 00:59:33.940
das ist ja interessant. Also ich habe jetzt auch so ein paar Sachen

00:59:33.940 --> 00:59:35.880
entdeckt, Bitbucket kennt ihr ja bestimmt alle und

00:59:35.880 --> 00:59:37.980
Azure, da gibt es ja jetzt auch die Möglichkeit, private

00:59:37.980 --> 00:59:39.980
Repositories unbegrenzt anzulegen.

00:59:40.180 --> 00:59:41.920
Ja, dafür habe ich mir einen extra

00:59:41.920 --> 00:59:44.120
GitLab-Account gemacht, damit ich ein privates

00:59:44.120 --> 00:59:46.040
Repo anlegen kann. Ja, aber das

00:59:46.040 --> 00:59:46.920
gibt es jetzt bei GitHub auch.

00:59:46.920 --> 00:59:49.100
Ja, das war

00:59:49.100 --> 00:59:50.180
früher, war es kostenpflichtig.

00:59:50.420 --> 00:59:53.520
Also das ist jetzt neu, das ist nicht mehr kostenpflichtig?

00:59:53.700 --> 00:59:54.440
Nee. Ach so.

00:59:55.120 --> 00:59:57.080
Da wollte ich dann auch überlegen, ob ich

00:59:57.080 --> 00:59:59.160
mein Gruppenoptimierungs-Repo

00:59:59.160 --> 01:00:01.020
einmal auf GitHub hochlade

01:00:01.020 --> 01:00:02.260
und eventuell dann sogar ein

01:00:02.260 --> 01:00:04.820
öffentliches Repo, weil es

01:00:04.820 --> 01:00:06.940
mittlerweile doch ganz schön ansehnlich ist.

01:00:07.060 --> 01:00:09.420
Aber es gibt bei diesen kostenlosen

01:00:09.420 --> 01:00:10.960
privaten Repos

01:00:10.960 --> 01:00:12.760
auf GitHub irgendwie Einschränkungen.

01:00:12.900 --> 01:00:14.480
Du kannst, glaube ich, irgendwie dann keine Leute

01:00:14.480 --> 01:00:16.620
hinzufügen oder sowas, die damit arbeiten können.

01:00:16.820 --> 01:00:17.760
Das kostet weiterhin Geld.

01:00:18.660 --> 01:00:20.660
Ja gut, irgendwie soll GitHub ja auch

01:00:20.660 --> 01:00:22.480
Geld verdienen, also finde ich schon okay.

01:00:23.820 --> 01:00:24.260
Aber

01:00:24.260 --> 01:00:26.140
Gruppenoptimierung, das

01:00:26.140 --> 01:00:28.520
glaube ich, glaube ich nicht mathematisch, oder?

01:00:29.220 --> 01:00:30.680
Nein, nein, nicht mathematisch

01:00:30.680 --> 01:00:32.320
Gruppen. Ja, sowieso

01:00:32.320 --> 01:00:34.460
Teamzuteilung. Ja, Teamzuteilung.

01:00:36.120 --> 01:00:36.780
Hatte ich mir

01:00:36.780 --> 01:00:38.500
dann in der Mitte der Entwicklung

01:00:38.500 --> 01:00:39.340
dann auch überlegt,

01:00:39.600 --> 01:00:42.580
ich weise hier Menschenwerten zu,

01:00:42.580 --> 01:00:44.260
ob das noch moralisch vertretbar ist.

01:00:44.580 --> 01:00:46.500
Man muss wissen, Dodo macht

01:00:46.500 --> 01:00:48.580
Jugendarbeit. Ja, ich mache das mit der

01:00:48.580 --> 01:00:50.540
Jugendarbeit und da ist es immer

01:00:50.540 --> 01:00:52.120
schwierig, die Teams fair zu gestalten.

01:00:53.360 --> 01:00:54.300
Gibt es irgendwelche Sensoren,

01:00:54.800 --> 01:00:56.440
die Arbeit übernehmen lassen für die Bewertung?

01:00:58.280 --> 01:00:58.600
Ja,

01:00:59.180 --> 01:01:00.800
da musste ich mir dann auch

01:01:00.800 --> 01:01:02.700
zum Glück, funktioniert

01:01:02.700 --> 01:01:04.560
das Programm auch mit beliebigen

01:01:04.560 --> 01:01:06.560
Attributen, also die sind

01:01:06.560 --> 01:01:08.520
nicht so tief eingebaut, dass ich die nicht jederzeit

01:01:08.520 --> 01:01:10.600
ändern könnte. Da musste

01:01:10.600 --> 01:01:12.480
ich mir dann erstmal Gedanken machen, welche Attribute

01:01:12.480 --> 01:01:14.200
ich nehmen kann. Aber da

01:01:14.200 --> 01:01:16.460
habe ich dann auch gesehen, dass ich

01:01:16.460 --> 01:01:18.500
das gar nicht kann, dass

01:01:18.500 --> 01:01:20.360
ich quasi ein Projekt von vornherein

01:01:20.360 --> 01:01:22.280
aus plane und dann irgendwann anfange.

01:01:22.440 --> 01:01:24.200
Das war da am Anfang mein Fehler,

01:01:24.320 --> 01:01:26.180
dass ich mir viel zu viele Gedanken gemacht habe,

01:01:26.280 --> 01:01:28.140
wie ich das dokumentiere, wie ich das

01:01:28.140 --> 01:01:30.180
strukturiere. Und es hat

01:01:30.180 --> 01:01:32.000
deutlich besser geklappt, als ich dann irgendwann

01:01:32.000 --> 01:01:34.220
einmal die Codebasis komplett umgeworfen

01:01:34.220 --> 01:01:36.220
habe und direkt angefangen habe,

01:01:36.320 --> 01:01:38.260
Code zu schreiben und danach

01:01:38.260 --> 01:01:40.520
zu dokumentieren, was ich da gemacht habe,

01:01:41.240 --> 01:01:41.780
als

01:01:41.780 --> 01:01:44.060
erst zu schreiben, okay, ich habe hier ein

01:01:44.060 --> 01:01:45.840
Player-Objekt und dann habe ich ein

01:01:45.840 --> 01:01:48.240
Team-Objekt und

01:01:48.240 --> 01:01:50.300
dann müssen die so und so miteinander interagieren.

01:01:50.880 --> 01:01:52.580
Da hat es mir tatsächlich besser getan,

01:01:52.700 --> 01:01:55.280
einfach anzufangen, Code zu schreiben,

01:01:55.420 --> 01:01:57.740
dann ein bisschen zu dokumentieren, dann weiterzuschreiben.

01:01:58.120 --> 01:02:00.440
So ein bisschen Agile Hands-On, das kannst du auch bestätigen, Jürgen.

01:02:00.980 --> 01:02:03.820
Ja, mir fällt das auch deutlich leichter, wenn ich das so mache.

01:02:03.940 --> 01:02:08.700
Also ich meine, es gibt wahrscheinlich auch einfach unterschiedliche Arten von Leuten,

01:02:09.060 --> 01:02:11.480
denen unterschiedliche Dinge leicht oder schwer fallen.

01:02:11.580 --> 01:02:14.020
Aber das, was man ja sozusagen erzählt bekommt,

01:02:14.020 --> 01:02:17.800
ist, dass irgendwie der Weg, wie es eigentlich sein sollte,

01:02:17.980 --> 01:02:19.720
irgendwie top-down. Man macht irgendwie

01:02:19.720 --> 01:02:21.880
Architektur und überlegt sich, wie Dinge

01:02:21.880 --> 01:02:23.740
so funktionieren sollen. Das ist aber schon sehr klassisch.

01:02:24.120 --> 01:02:25.280
Man macht sich einen Plan und dann

01:02:25.280 --> 01:02:27.320
füllt man das sozusagen nur noch aus,

01:02:27.380 --> 01:02:29.660
bis zu, keine Ahnung, wenn ein Konzern,

01:02:29.800 --> 01:02:31.260
das habe ich mal irgendwann von Siemens gehört,

01:02:32.020 --> 01:02:33.820
dann gibt es dann irgendwie die

01:02:33.820 --> 01:02:35.700
Informatiker, die dann halt sich die Architektur

01:02:35.700 --> 01:02:37.560
überlegen oder die UML-Diagramme malen.

01:02:37.600 --> 01:02:39.200
Dann gibt es halt Programmierer, die dann halt die

01:02:39.200 --> 01:02:41.340
Funktionssignaturen ausfüllen.

01:02:42.700 --> 01:02:43.860
Es gibt ja auch so Tools,

01:02:43.860 --> 01:02:45.800
die dir aus UML-Diagrammen dann automatisch

01:02:45.800 --> 01:02:46.500
Code erzeugen.

01:02:47.020 --> 01:02:47.300
Ja.

01:02:47.880 --> 01:02:48.840
Ist ja auch ein bisschen eklig.

01:02:49.340 --> 01:02:56.380
Und ich, also aufgrund meiner eigenen Erfahrung kann ich mir sehr schwer vorstellen, dass das irgendwie zu einem guten Ergebnis führt.

01:02:56.780 --> 01:02:58.780
Das ist das Problem der Digitalisierung, oder?

01:02:58.840 --> 01:03:04.720
Dass halt alles völlig überplant ist und dann ändert sich die Umwelt viel schneller, als der Plan noch aktuell ist.

01:03:04.720 --> 01:03:10.100
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.

01:03:10.160 --> 01:03:13.500
Man hat noch keine Traction, wie man das so schön sagt, bekommen irgendwo.

01:03:13.860 --> 01:03:17.900
Aber andererseits sollte man durchaus schon so ein Konzept haben, was man eigentlich machen möchte.

01:03:18.380 --> 01:03:23.100
Ja, gut, das muss ja nicht komplett ausformuliert werden.

01:03:24.080 --> 01:03:38.420
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.

01:03:38.420 --> 01:04:08.320
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.

01:04:08.420 --> 01:04:29.500
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.

01:04:29.500 --> 01:04:31.380
das und dieses und dieses Ding, die

01:04:31.380 --> 01:04:33.340
vorher, wo ich vorher gedacht hätte, die wären gar nicht gleich, die sind

01:04:33.340 --> 01:04:35.240
aber eigentlich fast das Gleiche, dann kann ich die dann hier

01:04:35.240 --> 01:04:37.380
zusammenfassen und dann kann es sein,

01:04:37.460 --> 01:04:39.360
dass da irgendwie auch ein

01:04:39.360 --> 01:04:41.320
elegantes Konzept

01:04:41.320 --> 01:04:43.300
oder so draus entsteht, aber erst eher so im

01:04:43.300 --> 01:04:45.380
Nachhinein, wenn man das Problem wirklich verstanden

01:04:45.380 --> 01:04:47.240
hat, aber um das Problem wirklich zu verstehen,

01:04:47.320 --> 01:04:49.300
muss man irgendwie das schon programmiert haben,

01:04:49.420 --> 01:04:50.960
sonst, ja.

01:04:51.720 --> 01:04:53.160
Aber gerade so, wenn man

01:04:53.160 --> 01:04:55.260
mit großen zeitlichen Abständen

01:04:55.260 --> 01:04:57.220
an einem Projekt arbeitet, finde ich es persönlich wichtig,

01:04:57.400 --> 01:04:59.160
auch sich so Sachen aufzuschreiben, weil

01:04:59.160 --> 01:05:00.360
ich es ansonsten einfach vergesse.

01:05:01.840 --> 01:05:03.180
Und ansonsten, was ich nicht,

01:05:03.480 --> 01:05:05.240
also gerade auch bei Software, die ja noch tatsächlich

01:05:05.240 --> 01:05:07.260
Leute nutzen, also die ich nicht nur für mich

01:05:07.260 --> 01:05:09.320
selbst schreibe, finde ich das auch irgendwie

01:05:09.320 --> 01:05:11.560
wichtig, das ein bisschen zu dokumentieren.

01:05:11.880 --> 01:05:13.000
Weil so, auch wegen dem

01:05:13.000 --> 01:05:15.220
Busfaktor und sowas. Also es wäre halt

01:05:15.220 --> 01:05:17.300
gut, wenn ich das nicht nur in meinem Kopf habe,

01:05:17.400 --> 01:05:18.920
sondern es im Notfall auch andere Leute machen könnten.

01:05:19.320 --> 01:05:21.160
Kleine To-Do-Liste vielleicht? Ich weiß nicht, ob das

01:05:21.160 --> 01:05:22.740
dann schon viel sagen kann.

01:05:22.740 --> 01:05:23.280
GitHub-Beschuss.

01:05:25.320 --> 01:05:27.380
Wie macht ihr Dokumentation?

01:05:29.160 --> 01:05:30.220
sozusagen in euren Projekten?

01:05:31.820 --> 01:05:32.580
Zu wenig?

01:05:33.040 --> 01:05:34.020
Zu wenig, ja.

01:05:36.220 --> 01:05:38.380
Das Gruppenoptimierungsprojekt

01:05:38.380 --> 01:05:39.580
war jetzt das erste, wo ich

01:05:39.580 --> 01:05:41.720
wirklich Dokumentation

01:05:41.720 --> 01:05:43.560
gut

01:05:43.560 --> 01:05:45.360
angelegt habe. Da habe ich halt

01:05:45.360 --> 01:05:47.640
eine Readme-Datei, die so das Grobe

01:05:47.640 --> 01:05:49.520
umfasst und dann zu bestimmten

01:05:49.520 --> 01:05:51.200
Themen. Ich glaube, ich habe eine

01:05:51.200 --> 01:05:53.520
GUI.md, die eben beschreibt,

01:05:53.620 --> 01:05:55.460
wie man die GUI benutzen soll und

01:05:55.460 --> 01:05:57.060
wie die so aufgebaut ist mit

01:05:57.060 --> 01:05:59.460
Mockup-Bildern und so. Dann habe ich

01:05:59.460 --> 01:06:01.280
eine Klassen.md,

01:06:01.460 --> 01:06:03.420
die beschreibt, welche Klasse welches

01:06:03.420 --> 01:06:05.080
Objekt liefert und was

01:06:05.080 --> 01:06:07.600
die tun sollen, was die darstellen,

01:06:08.300 --> 01:06:09.100
wie die miteinander

01:06:09.100 --> 01:06:11.380
interagieren. Und ich glaube, ich habe

01:06:11.380 --> 01:06:13.300
noch eine Backend.md,

01:06:13.300 --> 01:06:15.320
die beschreibt, welche Funktionen in der

01:06:15.320 --> 01:06:16.440
Backend.py

01:06:16.440 --> 01:06:19.020
tatsächlich die Berechnung durchführen.

01:06:19.820 --> 01:06:21.320
Ja, und in der Main.py

01:06:21.320 --> 01:06:23.300
werden einfach GUI und Backend

01:06:23.300 --> 01:06:25.280
zusammengeführt. Ich habe gerade so ganz

01:06:25.280 --> 01:06:27.060
wichtig ist, irgendwie Sphinx oder sowas.

01:06:27.520 --> 01:06:28.720
Ja. Und dokumentiert.

01:06:30.140 --> 01:06:31.440
Also ich benutze

01:06:31.440 --> 01:06:32.540
ja auch tatsächlich Sphinx. Also

01:06:32.540 --> 01:06:35.520
Markdown, wird das dann irgendwie

01:06:35.520 --> 01:06:37.360
noch in was anderes verwandelt oder?

01:06:37.960 --> 01:06:40.100
Nö, ich nehme rohe Markdown-Dateien.

01:06:40.420 --> 01:06:41.140
Genau, weil

01:06:41.140 --> 01:06:43.320
ja, nee, was ich normalerweise mache, aber

01:06:43.320 --> 01:06:45.300
also ich habe auch schon überlegt, nicht vielleicht

01:06:45.300 --> 01:06:47.580
komplett Markdown verwenden das Richtige wäre,

01:06:47.700 --> 01:06:49.420
aber was ich momentan verwende ist halt

01:06:49.420 --> 01:06:51.400
Restructured Text als sozusagen

01:06:51.400 --> 01:06:53.860
Format für Dokumentation

01:06:53.860 --> 01:06:55.500
und dann Sphinx

01:06:55.500 --> 01:06:58.180
als sozusagen, ja, Renderer

01:06:58.180 --> 01:06:59.880
irgendwie, der dann halt hinterher entweder

01:06:59.880 --> 01:07:01.780
eine Webseite ausspuckt oder ein PDF

01:07:01.780 --> 01:07:04.020
oder sonst irgendwas. Und da nehme ich

01:07:04.020 --> 01:07:05.980
dann immer noch das, dieses

01:07:05.980 --> 01:07:09.480
Read the Docs

01:07:09.480 --> 01:07:10.860
Theme dazu.

01:07:11.640 --> 01:07:12.480
Es gibt so eine Seite,

01:07:14.000 --> 01:07:15.500
das ist eigentlich ganz hübsch und dann,

01:07:15.740 --> 01:07:18.020
wenn man dieses Theme mit installiert,

01:07:18.140 --> 01:07:20.100
dann sieht die generierte Dokumentation

01:07:20.100 --> 01:07:21.300
halt hinterher genauso aus und

01:07:21.300 --> 01:07:23.720
man kann sie auch automatisch irgendwie direkt

01:07:23.720 --> 01:07:25.800
auf Read the Docs irgendwie hochladen, wenn man

01:07:25.800 --> 01:07:28.020
jetzt da in GitHub

01:07:28.020 --> 01:07:29.540
so einen Hook aktiviert.

01:07:30.520 --> 01:07:31.940
Ich glaube, ich habe bei Sphinx aus

01:07:31.940 --> 01:07:34.180
seiner Dokumentation an den einzelnen Funktionen

01:07:34.180 --> 01:07:35.980
und Methoden dran, also aus den

01:07:35.980 --> 01:07:37.540
Docstrings, die erstellen lassen.

01:07:37.960 --> 01:07:39.300
Kann man auch, genau. Man kann dann halt

01:07:39.300 --> 01:07:41.900
Sachen, so API-Dokumentationen und

01:07:41.900 --> 01:07:44.020
ja, das kann man automatisch

01:07:44.020 --> 01:07:46.080
erstellen lassen. Ist aber die Frage, wie hilfreich

01:07:46.080 --> 01:07:47.960
das ist, weil, naja gut, das steht ja

01:07:47.960 --> 01:07:49.460
auch schon im Code irgendwie und

01:07:49.460 --> 01:07:51.200
ja,

01:07:51.460 --> 01:07:54.120
kann man machen, aber

01:07:54.120 --> 01:07:56.120
weiß ich jetzt nicht, fand ich jetzt bisher nie so

01:07:56.120 --> 01:07:58.120
wirklich hilfreich. Ich meine, wenn man jetzt

01:07:58.120 --> 01:08:00.120
natürlich wahnsinnig viel Dokumentation

01:08:00.120 --> 01:08:02.440
in Kommentare

01:08:02.440 --> 01:08:04.220
reingeschrieben hat, dann macht das vielleicht schon Sinn.

01:08:04.440 --> 01:08:06.020
Gerade auch bei so Live-Videos, wo sich dann

01:08:06.020 --> 01:08:07.940
Leute überlegen, wie rufe ich jetzt die Funktion

01:08:07.940 --> 01:08:08.800
tatsächlich auf?

01:08:10.280 --> 01:08:12.100
Das ist tatsächlich gerade so die Hürde, vor der ich

01:08:12.100 --> 01:08:14.060
jetzt so ein bisschen noch stehe, wenn ich jetzt an meine Projekte

01:08:14.060 --> 01:08:16.060
denke. Ich habe dann irgendwie eine fremde

01:08:16.060 --> 01:08:17.880
Bibliothek, die ich benutze, sei es jetzt irgendwie QT

01:08:17.880 --> 01:08:19.980
oder irgendwie sowas. Und ich

01:08:19.980 --> 01:08:21.920
verstehe jetzt nicht, wie ich was Neues da machen kann.

01:08:22.000 --> 01:08:24.060
Wenn ich eine Idee habe, die jetzt nicht direkt in den Klassen

01:08:24.060 --> 01:08:25.920
vorhanden ist und ich muss das irgendwie selber generieren,

01:08:26.480 --> 01:08:27.900
dann habe ich dann eine Dokumentation,

01:08:28.100 --> 01:08:30.180
einen C-Code mit den Funktionen

01:08:30.180 --> 01:08:31.300
zu aufrufen, die dann möglich sind.

01:08:31.780 --> 01:08:33.920
Und wenn ich mir jetzt irgendwie abstrakt überlegen

01:08:33.920 --> 01:08:35.820
soll, wie ich jetzt den Schritt weiterkomme, das fällt mir

01:08:35.820 --> 01:08:36.400
so ein bisschen schwer.

01:08:37.740 --> 01:08:39.860
Wie kann ich jetzt ein abstraktes Modell in meinem Kopf

01:08:39.860 --> 01:08:41.140
erzeugen, das ich noch nie kenne?

01:08:41.800 --> 01:08:43.740
Whiteboard. Ja, habe ich tatsächlich

01:08:43.740 --> 01:08:44.820
eines neben meinem Schreibtisch hängen.

01:08:45.700 --> 01:08:47.800
Also auch malen, sagst du. Und dann in kleine

01:08:47.800 --> 01:08:50.180
Teile liegen. Also malen

01:08:50.180 --> 01:08:52.000
hilft doch ziemlich stark, finde ich.

01:08:52.380 --> 01:08:54.040
Wenn man sich dann so Sachen auch besser vorstellen

01:08:54.040 --> 01:08:56.120
kann. Okay. Kann ich nur bestätigen,

01:08:56.220 --> 01:08:58.240
ich habe zwar auch ein Whiteboard, aber einerseits

01:08:58.240 --> 01:08:59.760
ich habe zu Hause leider keins, aber

01:08:59.760 --> 01:09:01.560
wir haben ja genug davon im Dorf. Ja.

01:09:01.760 --> 01:09:04.120
Mein Whiteboard hängt leider zu weit vom Schrank weg.

01:09:05.060 --> 01:09:06.060
Vom Schreibtisch weg.

01:09:06.660 --> 01:09:08.080
Was ich dann mache, ich nehme

01:09:08.080 --> 01:09:09.960
dann noch ganz altmodisch Zettel und

01:09:09.960 --> 01:09:11.320
Papier. Ihr habt leider auch nichts.

01:09:12.060 --> 01:09:13.720
Also nicht in ganz reichweite.

01:09:13.880 --> 01:09:15.960
Also Schmierzettel, meistens

01:09:15.960 --> 01:09:17.880
die Rückseite von irgendeinem Fehldruck

01:09:17.880 --> 01:09:19.600
und nehme dann einen Bleistift und male das

01:09:19.600 --> 01:09:21.940
auf, weil ich habe tatsächlich

01:09:21.940 --> 01:09:23.800
festgestellt, dass ich so deutlich

01:09:23.800 --> 01:09:25.680
besser mir Sachen visualisieren kann.

01:09:26.740 --> 01:09:27.920
Wahrscheinlich würde das

01:09:27.920 --> 01:09:29.460
auch mit einem Grafik-Tablet geben,

01:09:29.720 --> 01:09:31.280
aber dafür müsste man ja Geld aufnehmen.

01:09:31.300 --> 01:09:33.040
Grafik-Tablets fände ich cool, aber ich

01:09:33.040 --> 01:09:35.020
habe bisher noch keins gekauft.

01:09:35.360 --> 01:09:37.580
Tatsächlich für das Gruppenoptimierungsprogramm, wenn ich

01:09:37.580 --> 01:09:40.100
einmal, da ging es

01:09:40.100 --> 01:09:41.580
um den Algorithmus, der tatsächlich

01:09:41.580 --> 01:09:43.820
die Optimierung macht, der teilt

01:09:43.820 --> 01:09:45.640
die Teams nochmal auf und

01:09:45.640 --> 01:09:47.820
ist an einer Stelle

01:09:47.820 --> 01:09:49.520
ein bisschen rekursiv und so und dann

01:09:49.520 --> 01:09:51.400
habe ich tatsächlich

01:09:51.400 --> 01:09:53.540
ganz viel Papier genommen und

01:09:53.540 --> 01:09:55.220
Schnipsel erstellt, auf die ich

01:09:55.220 --> 01:09:57.540
die Sachen draufgeschrieben habe, so

01:09:57.540 --> 01:09:59.600
hier ist mein Player-Schnipsel

01:09:59.600 --> 01:10:01.700
und hier ist mein Team-Schnipsel und dann

01:10:01.700 --> 01:10:03.680
habe ich weitere Schnipsel genommen, die wie

01:10:03.680 --> 01:10:05.420
Pfeile aussahen, dann habe ich

01:10:05.420 --> 01:10:07.520
den Teppich zur Seite gerollt, das alles

01:10:07.520 --> 01:10:09.380
auf dem Boden aufgelegt, ein Foto von mir gemacht

01:10:09.380 --> 01:10:11.680
und seitdem habe ich im

01:10:11.680 --> 01:10:13.740
Repo ein Foto von

01:10:13.740 --> 01:10:14.940
Schnipseln auf dem Boden.

01:10:15.220 --> 01:10:16.800
Da bräuchte man halt auch Platz auf dem Boden.

01:10:17.600 --> 01:10:19.720
Ja, da

01:10:19.720 --> 01:10:21.820
der positive Nebeneffekt war,

01:10:21.920 --> 01:10:24.120
der Boden ist jetzt auch gesaugt.

01:10:24.860 --> 01:10:25.780
Aber seitdem

01:10:25.780 --> 01:10:27.540
habe ich im Repo ein Bild

01:10:27.540 --> 01:10:29.720
von Zetteln auf dem Boden

01:10:29.720 --> 01:10:31.820
und tatsächlich ist das gar

01:10:31.820 --> 01:10:33.820
nicht so doof. Ich hätte es natürlich auch

01:10:33.820 --> 01:10:35.880
mit einem Grafik-Tablet schneller hingekriegt.

01:10:37.100 --> 01:10:37.540
Aber

01:10:37.540 --> 01:10:38.780
ja.

01:10:39.540 --> 01:10:41.880
Ich mache auch oft dann tatsächlich Fotos

01:10:41.880 --> 01:10:43.760
von irgendwelchen Dingen, die ich auf dem Zettel gemalt habe,

01:10:44.180 --> 01:10:45.520
weil das halt irgendwie schneller geht,

01:10:46.020 --> 01:10:47.000
als wenn man das...

01:10:47.000 --> 01:10:49.620
Bei dir per Machine Learning automatisch getaggt und in den richtigen

01:10:49.620 --> 01:10:49.840
Ordner...

01:10:49.840 --> 01:10:53.560
Das ist alles Handarbeit, aber

01:10:53.560 --> 01:10:55.060
was ich auch faszinierend finde, ist,

01:10:55.440 --> 01:10:57.640
ich weiß nicht genau, warum, ich wollte

01:10:57.640 --> 01:10:59.280
eigentlich das Papier immer loswerden, aber

01:10:59.280 --> 01:11:00.980
irgendwie,

01:11:01.420 --> 01:11:03.520
das kann ja auch sein, dass das irgendwie so eine,

01:11:04.700 --> 01:11:05.800
ja, so

01:11:05.800 --> 01:11:07.520
historisch irgendwie noch so ist, dass

01:11:07.520 --> 01:11:09.760
irgendwie, wenn ich Sachen aufschreibe,

01:11:09.900 --> 01:11:11.440
es kommt, ich habe, also

01:11:11.440 --> 01:11:13.520
meiner Ansicht nach ist es gar nicht so wichtig, was man sich aufschreibt,

01:11:13.620 --> 01:11:15.620
sondern allein das vom Papier sitzen

01:11:15.620 --> 01:11:17.220
und mit dem Stift da irgendwie was drauf rum machen,

01:11:17.700 --> 01:11:19.360
das hilft einem schon irgendwie oder

01:11:19.360 --> 01:11:20.980
meinem Gehirn irgendwie offenbar dabei

01:11:20.980 --> 01:11:23.820
irgendwie im richtigen Modus zu operieren

01:11:23.820 --> 01:11:25.560
und wenn ich das

01:11:25.560 --> 01:11:27.480
auf einem Tablet mache, was ich halt

01:11:27.480 --> 01:11:29.460
auch habe, dann funktioniert das irgendwie nicht. Oder wenn ich

01:11:29.460 --> 01:11:31.340
auf einer Tastatur sitze. Also wenn ich irgendwie tippe,

01:11:31.480 --> 01:11:33.300
ist es was anderes, als wenn ich das auf einem Zettel

01:11:33.300 --> 01:11:35.420
irgendwie aufschreibe. Ich habe keine Ahnung, woran das liegt. Das ist irgendwie komisch.

01:11:35.500 --> 01:11:37.280
Also bei mir funktioniert das tatsächlich auch ganz gut

01:11:37.280 --> 01:11:39.300
mit Textdateien. Für mich ist es halt nur,

01:11:39.300 --> 01:11:41.220
dass ich dann sonst nichts habe. Also ich mache halt

01:11:41.220 --> 01:11:42.980
dann wirklich auch auf dem

01:11:42.980 --> 01:11:45.260
Bildschirm frei und gucke halt, dass ich wirklich nur

01:11:45.260 --> 01:11:47.420
das habe, was ich schreibe. Der Sehen-Modus.

01:11:47.580 --> 01:11:49.200
Und dann geht das eigentlich auch

01:11:49.200 --> 01:11:51.320
relativ gut, finde ich. Vielleicht ist es aber

01:11:51.320 --> 01:11:53.340
witzig mit den Zeichnen. Also ich habe auch

01:11:53.340 --> 01:11:55.320
ein bisschen das Gefühl, dass das wirklich hilft. Vielleicht benutzt man

01:11:55.320 --> 01:11:57.160
andere Gehirnteile oder sowas und wird dann

01:11:57.160 --> 01:11:58.960
neu kreativ? Oder auch

01:11:58.960 --> 01:12:01.340
wenn ich gerade nicht am Rechner bin, kann

01:12:01.340 --> 01:12:03.280
ich nicht Twitter aufmachen auf dem Whiteboard oder sowas.

01:12:04.260 --> 01:12:04.980
Ich kann mir

01:12:04.980 --> 01:12:07.160
vorstellen, dass es eine Kombination daraus ist,

01:12:07.220 --> 01:12:08.940
dass man einerseits weniger abgelenkt ist,

01:12:09.180 --> 01:12:11.420
dass andererseits, was weiß ich,

01:12:11.500 --> 01:12:13.020
vielleicht hängt es auch damit zusammen,

01:12:13.100 --> 01:12:15.000
dass wir aus der Schule, die wir noch

01:12:15.000 --> 01:12:17.000
gewohnt sind, wenn wir was

01:12:17.000 --> 01:12:18.840
auf Papier schreiben, dann konzentrieren wir uns

01:12:18.840 --> 01:12:21.040
darauf. Ich hasse Papier und Papier hasst mich.

01:12:21.840 --> 01:12:23.040
Und wenn wir vor dem Rechner sitzen,

01:12:23.240 --> 01:12:24.900
haben wir da ganz andere Reize, die

01:12:24.900 --> 01:12:26.860
auf uns zukommen. Also ich kann das auch vollkommen

01:12:26.860 --> 01:12:27.880
nachvollziehen, was ihr sagt.

01:12:29.060 --> 01:12:30.900
Also meistens brauche ich da auch

01:12:30.900 --> 01:12:32.980
Stift und Papier, weil

01:12:32.980 --> 01:12:34.840
Textdateien habe ich versucht,

01:12:35.720 --> 01:12:36.720
aber meistens

01:12:36.720 --> 01:12:39.000
kann ich in Textdateien

01:12:39.180 --> 01:12:41.100
das nicht so gut

01:12:41.100 --> 01:12:43.040
ausformulieren,

01:12:43.180 --> 01:12:45.300
wie wenn ich mir ein Schaubild aufs Papier male.

01:12:45.360 --> 01:12:46.880
Ja, gerade so Pfeile

01:12:46.880 --> 01:12:48.720
und so was in Kästen sind

01:12:48.720 --> 01:12:49.840
schwierig in Textdateien, ja.

01:12:50.670 --> 01:12:52.550
meistens brauche ich es dann ein bisschen

01:12:52.550 --> 01:12:54.070
grafisch, weil ich mir,

01:12:55.050 --> 01:12:56.290
was weiß ich, wenn ich mir,

01:12:58.170 --> 01:12:58.430
ja,

01:12:58.770 --> 01:12:59.750
jetzt fehlt mir ein Beispiel,

01:13:00.270 --> 01:13:02.590
meistens nehme ich dann kleine

01:13:02.590 --> 01:13:04.710
Grafiken, die ich mir dann aufs Papier zeichne,

01:13:04.750 --> 01:13:06.730
um mir das zu visualisieren und ich finde,

01:13:06.850 --> 01:13:08.510
das klappt deutlich besser, als wenn ich das

01:13:08.510 --> 01:13:09.850
versuche auszuformulieren.

01:13:11.030 --> 01:13:12.710
Was würdet ihr denn machen, wenn ihr gar nicht

01:13:12.710 --> 01:13:14.310
mehr weiterkommt? Also ich habe das auch schon ein paar Mal gehabt,

01:13:14.310 --> 01:13:16.210
dann, keine Ahnung, weiß nicht, wie es geht, also

01:13:16.210 --> 01:13:18.570
wenn dann doof ist, dann ist da so eine Wand,

01:13:18.770 --> 01:13:20.210
dann kommt man nicht einfach drüber und

01:13:20.210 --> 01:13:22.270
Was würdet ihr empfehlen? Wie sollte man da dann

01:13:22.270 --> 01:13:24.230
angehen? Schlafen oder irgendwas

01:13:24.230 --> 01:13:25.750
völlig anderes machen. Also teilweise

01:13:25.750 --> 01:13:28.030
kommen mir die Ideen dann irgendwie auf den Klo oder

01:13:28.030 --> 01:13:29.450
unter der Dusche, abends im Bett.

01:13:32.090 --> 01:13:32.530
Darüber

01:13:32.530 --> 01:13:33.090
schlafen,

01:13:33.850 --> 01:13:36.310
davon ablenken, was anderes

01:13:36.310 --> 01:13:38.390
machen. Generell häufig

01:13:38.390 --> 01:13:39.630
führt das zu was, weil

01:13:39.630 --> 01:13:42.430
ich weiß nicht wieso,

01:13:42.750 --> 01:13:44.450
aber wie gesagt, mir fielen Sachen

01:13:44.450 --> 01:13:45.910
auch unter der Dusche ein,

01:13:46.130 --> 01:13:48.030
auf dem Weg ins Bett und dann dachte ich, ah ne,

01:13:48.030 --> 01:13:49.230
jetzt nochmal aufstehen.

01:13:50.210 --> 01:13:52.690
was mir auch geholfen

01:13:52.690 --> 01:13:54.310
hat, dass ich mich

01:13:54.310 --> 01:13:56.290
von dem Gedanken gelöst habe, dass es jetzt

01:13:56.290 --> 01:13:58.190
schlecht ist, wenn ich was lösche. Also

01:13:58.190 --> 01:14:00.650
ich habe eine Versionsverwaltung,

01:14:00.790 --> 01:14:02.350
das heißt, ich kann auch einfach mal

01:14:02.350 --> 01:14:04.770
die letzten fünf Commits rückgängig

01:14:04.770 --> 01:14:06.670
machen und neu anfangen.

01:14:07.390 --> 01:14:08.270
Also darf man...

01:14:08.270 --> 01:14:10.330
Ich muss die Funktionen nicht schrittweise

01:14:10.330 --> 01:14:12.090
neu schreiben, ich kann jetzt löschen und neu schreiben.

01:14:12.210 --> 01:14:14.290
Ich habe die alte Version noch. Man darf

01:14:14.290 --> 01:14:16.310
auch ruhig mal 100-zeilen-Code

01:14:16.310 --> 01:14:17.910
auf einmal löschen und neu schreiben.

01:14:19.430 --> 01:14:20.070
Nicht jeden Tag.

01:14:20.210 --> 01:14:22.170
Nicht jeden Tag, weil irgendwo

01:14:22.170 --> 01:14:24.030
ein Fortschritt muss es auch geben, aber

01:14:24.030 --> 01:14:26.270
dann kann man beruhigt auch mal

01:14:26.270 --> 01:14:27.950
größere Mengen Code löschen und

01:14:27.950 --> 01:14:29.290
neu schreiben.

01:14:30.050 --> 01:14:32.250
Meistens hilft das einem schneller, als wenn man

01:14:32.250 --> 01:14:34.170
versucht, alte Strukturen

01:14:34.170 --> 01:14:36.130
noch irgendwie zu laufen

01:14:36.130 --> 01:14:38.130
zu kriegen, weil man dann

01:14:38.130 --> 01:14:40.270
viel eher noch Sachen hinterfragt, die man

01:14:40.270 --> 01:14:41.570
vorher einfach akzeptiert hat.

01:14:41.570 --> 01:14:43.050
Und nochmal das Konzept mit dem Gelernten.

01:14:43.850 --> 01:14:45.510
Der sozialkritische Kommentar des Tages.

01:14:46.310 --> 01:14:46.470
Ja.

01:14:48.170 --> 01:14:50.190
Ansonsten, Wabba Ducking ist natürlich auch

01:14:50.190 --> 01:14:51.810
sinnvoll, wenn ich

01:14:51.810 --> 01:14:54.050
nicht alleine vor

01:14:54.050 --> 01:14:56.110
meinen Code sitze und frage, warum der die ganze

01:14:56.110 --> 01:14:58.050
Zeit einen Fehler wirft oder warum er nicht das

01:14:58.050 --> 01:15:00.190
tut, was er machen soll. Gerade semantische

01:15:00.190 --> 01:15:01.770
Fehler sind halt da schwieriger,

01:15:02.270 --> 01:15:04.190
wenn ich dann einfach jemand anderen erkläre.

01:15:04.430 --> 01:15:06.150
Also das Programm macht das und das

01:15:06.150 --> 01:15:08.030
und dann stellt der mir Fragen und wenn

01:15:08.030 --> 01:15:10.130
ich die Fragen nicht beantworten kann, dann lerne ich daraus.

01:15:10.250 --> 01:15:10.930
Oder auch

01:15:10.930 --> 01:15:13.610
Doku schreiben. Das ist so ein bisschen quasi

01:15:13.610 --> 01:15:15.510
Faber-Ducking mit sich selbst.

01:15:15.910 --> 01:15:17.590
Da fällt mir das dann auch teilweise auf.

01:15:18.530 --> 01:15:18.670
So.

01:15:19.730 --> 01:15:21.410
Allein schon, weil man dadurch

01:15:21.410 --> 01:15:23.770
eine andere Blickweise auf das Problem

01:15:23.770 --> 01:15:25.390
bekommt. Und

01:15:25.390 --> 01:15:27.390
das hilft einem meistens.

01:15:27.690 --> 01:15:29.570
Rubberducking, Gummienten?

01:15:29.990 --> 01:15:31.610
Ja. Stell dir vor,

01:15:31.730 --> 01:15:33.290
du erzählst es einer Gummientin.

01:15:34.030 --> 01:15:35.290
Genau, ich kenne das

01:15:35.290 --> 01:15:37.290
als Rubberduck-Debugging.

01:15:37.770 --> 01:15:39.730
Sozusagen, ja genau. Man debugt

01:15:39.730 --> 01:15:41.370
dadurch, dass man einer Gummienten erzählt,

01:15:41.370 --> 01:15:42.830
was da eigentlich passieren sollte.

01:15:43.630 --> 01:15:45.030
Und dann, wenn man das 10 Minuten, also

01:15:45.030 --> 01:15:46.750
es kommt aus der Erfahrung, dass man

01:15:46.750 --> 01:15:49.630
normalerweise anfängt, das irgendwelchen Leuten zu erzählen

01:15:49.630 --> 01:15:51.690
und die dann irgendwie alle 30 Sekunden

01:15:51.690 --> 01:15:53.630
sagen so, ja, aber ich habe keine Ahnung und das muss man dann

01:15:53.630 --> 01:15:55.590
ignorieren und dann nach irgendwie 10 Minuten

01:15:55.590 --> 01:15:57.650
sagt man sich, ah, okay, ich weiß, warum es

01:15:57.650 --> 01:15:58.350
schief geht, ach Mist.

01:15:58.830 --> 01:16:01.450
Kommt halt immer auf die Leute an, also wenn du genug

01:16:01.450 --> 01:16:03.550
Leute hast, die sich für ähnliche Dinge

01:16:03.550 --> 01:16:05.610
interessieren und noch Zeit haben, das wird wirklich spannend

01:16:05.610 --> 01:16:07.550
finden, dann geht es auch mit echten Menschen

01:16:07.550 --> 01:16:08.810
und nicht nur mit Gummienten.

01:16:09.050 --> 01:16:11.490
Vielleicht geht es auch sogar schneller, aber es geht halt auch mit

01:16:11.490 --> 01:16:13.430
Gummienten und das ist halt das Faszinierende.

01:16:13.610 --> 01:16:15.490
Irgendeine Art von Gummienten, die ich irgendwo bei mir

01:16:15.490 --> 01:16:17.550
über die Jahre... Es gibt tatsächlich Firmen, die so

01:16:17.550 --> 01:16:19.610
Gummienten als Werbegeschenke genau dafür

01:16:19.610 --> 01:16:20.310
verteilen.

01:16:22.270 --> 01:16:23.430
Meistens ist es ja so, dass

01:16:23.430 --> 01:16:26.070
man tatsächlich nicht zu doof

01:16:26.070 --> 01:16:27.930
ist, sondern irgendein

01:16:27.930 --> 01:16:30.310
irgendetwas nicht bedacht hat.

01:16:30.350 --> 01:16:31.270
Gerade Verleitung oder sowas.

01:16:31.430 --> 01:16:33.470
Die Fehler sind meistens döver als man selber.

01:16:35.690 --> 01:16:37.610
Ja, was weiß ich, da hast du dann irgendwie

01:16:37.610 --> 01:16:39.790
eine Klammer vergessen und auf einmal ist das

01:16:39.790 --> 01:16:40.990
kein Tupel, sondern

01:16:40.990 --> 01:16:43.650
sonst noch was. Oh ja, ich

01:16:43.650 --> 01:16:45.050
habe mir ziemlich viel Zeit damit

01:16:45.050 --> 01:16:47.690
verständet, weil ich ein Tupel haben

01:16:47.690 --> 01:16:49.630
wollte mit einem Element, dann eine runde Klammer drum

01:16:49.630 --> 01:16:51.610
gemacht habe und es war dann kein Tuffel, sondern es

01:16:51.610 --> 01:16:52.350
fehlte ein Komma.

01:16:54.430 --> 01:16:55.650
Ja, wie gesagt, meistens

01:16:55.650 --> 01:16:57.550
sind es eben die doofen Fehler, die am längsten

01:16:57.550 --> 01:16:59.330
die man am längsten sucht.

01:16:59.530 --> 01:17:01.610
Weil es dann ja auch in Ordnung aussieht, wenn du drauf

01:17:01.610 --> 01:17:02.330
guckst. Genau.

01:17:03.590 --> 01:17:03.790
Ja.

01:17:06.050 --> 01:17:07.530
Aber das finde ich auch interessant.

01:17:07.670 --> 01:17:09.610
Das ist auch vielleicht etwas, das halt irgendwie so den

01:17:09.610 --> 01:17:10.630
wenn man

01:17:10.630 --> 01:17:13.570
die Tätigkeit beim Programmieren unterscheidet

01:17:13.570 --> 01:17:15.590
von anderen Geschichten. Man ist ja als, ich glaube

01:17:15.590 --> 01:17:17.550
das ist tatsächlich irgendwie ein bisschen was Besonderes, dass man

01:17:17.550 --> 01:17:30.890
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.

01:17:30.890 --> 01:17:44.110
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.

01:17:44.110 --> 01:17:46.150
zum Beispiel beim Kochen oder so, dann schnibbel ich irgendwas.

01:17:46.550 --> 01:17:47.730
Man hat nicht die ganze Zeit

01:17:47.730 --> 01:17:50.150
das Problem da wirklich von einem

01:17:50.150 --> 01:17:52.050
harten Ding, was man nicht versteht,

01:17:52.090 --> 01:17:54.030
zu stehen, sondern man hat immer wieder so,

01:17:54.130 --> 01:17:55.790
man hat natürlich oft diese Momente, aber

01:17:55.790 --> 01:17:58.270
oft weiß man eigentlich, was zu tun ist

01:17:58.270 --> 01:17:59.550
und muss das halt nur eine Zeit lang machen.

01:17:59.910 --> 01:18:01.990
Beim Programmieren ist es oft so, also ja, man muss

01:18:01.990 --> 01:18:03.310
sich erst daran gewöhnen, sozusagen

01:18:03.310 --> 01:18:06.070
überwiegenden Teil der Zeit halt

01:18:06.070 --> 01:18:07.670
irgendwie mit dem Kopf vor der Wand zu stehen.

01:18:07.710 --> 01:18:10.110
Aber das ist ja auch irgendwie so wie Wadding, ja, weil du halt da stehst

01:18:10.110 --> 01:18:12.090
und du hast ein Rätsel und du knackst es dann

01:18:12.090 --> 01:18:12.970
irgendwann halt hoffentlich.

01:18:13.450 --> 01:18:15.270
Ja, aber das kann auch ziemlich frustrierend sein.

01:18:15.370 --> 01:18:17.310
Ich finde es aber dann als Abwechslung auch ziemlich

01:18:17.310 --> 01:18:18.530
entspannend, irgendwie, weiß ich nicht,

01:18:20.270 --> 01:18:21.550
irgendwas einzurichten

01:18:21.550 --> 01:18:23.290
oder irgendwie Doku zu schreiben oder so, weil du

01:18:23.290 --> 01:18:25.390
weißt, du kannst dann halt irgendwie die Zeit

01:18:25.390 --> 01:18:27.510
einschalten und du machst das dann halt und hast dann ein Ergebnis

01:18:27.510 --> 01:18:29.390
nach der Zeit. Das ist halt schon

01:18:29.390 --> 01:18:31.610
auch nett. Ja, so zur Abwechslung

01:18:31.610 --> 01:18:33.270
die Kommentare zu dem Code zu schreiben,

01:18:33.370 --> 01:18:34.210
ist auch schon ganz gut.

01:18:35.110 --> 01:18:37.390
Aber ich verstehe dann, was du meinst, dass du quasi

01:18:37.390 --> 01:18:38.230
Programmieren keinen

01:18:38.230 --> 01:18:41.130
Anteil an Fleißarbeit hast, sondern

01:18:41.130 --> 01:18:42.950
du bist halt immer bei den

01:18:42.950 --> 01:18:45.470
80% machst du in 20% der Zeit

01:18:45.470 --> 01:18:47.290
und danach hängst du bei diesen

01:18:47.290 --> 01:18:49.390
20% fest. Du musst einfach wissen, wie

01:18:49.390 --> 01:18:49.750
es geht.

01:18:51.370 --> 01:18:51.650
Und

01:18:51.650 --> 01:18:55.150
wenn man tatsächlich

01:18:55.150 --> 01:18:57.510
messen würde, wie viel

01:18:57.510 --> 01:18:59.390
Zeit man so beim Programm braucht, ich meine

01:18:59.390 --> 01:19:01.370
der Großteil ist ja schnell runtergeschrieben,

01:19:01.910 --> 01:19:03.590
nur die Fehler, die brauchen dann viel mehr.

01:19:05.050 --> 01:19:07.410
im Grunde weiß man ja

01:19:07.410 --> 01:19:09.410
auch, man schreibt eine Zeile

01:19:09.410 --> 01:19:11.470
und weiß, in der nächsten Zeile muss das und das

01:19:11.470 --> 01:19:13.410
stehen und dann kommt die Vorschleife und

01:19:13.410 --> 01:19:15.650
dann packe ich da rein das und so weiter und so fort.

01:19:15.790 --> 01:19:17.290
Wenn ihr so einen Fehler habt, wie geht ihr denn

01:19:17.290 --> 01:19:19.150
daran? Also versucht ihr den zu debuggen,

01:19:19.270 --> 01:19:21.430
indem ihr guckt, was, also warum

01:19:21.430 --> 01:19:23.150
das ist, oder versucht ihr dann auszuprobieren, wie man den

01:19:23.150 --> 01:19:24.970
lösen kann? Ich habe noch nie wirklich

01:19:24.970 --> 01:19:26.870
einen Debugger verwendet, immer nur Print.

01:19:27.270 --> 01:19:28.370
Ja, ich auch nicht. Also

01:19:28.370 --> 01:19:31.310
wenn ich einen Syntaxfehler habe,

01:19:31.450 --> 01:19:33.250
gut, dann sehe ich im Traceback,

01:19:33.370 --> 01:19:35.230
aha, zahle das und das. Was sagt denn der

01:19:35.230 --> 01:19:36.170
Fehler? Aha, okay.

01:19:38.470 --> 01:19:39.430
Schwieriger ist es natürlich

01:19:39.430 --> 01:19:41.110
bei semantischen Fehlern, wo das Programm

01:19:41.110 --> 01:19:42.890
keinen Fehler wirft, sondern du mit der Ausgabe

01:19:42.890 --> 01:19:44.970
nicht zufrieden bist, da ist dann

01:19:44.970 --> 01:19:47.170
die Anwendung ja okay. Ich packe da jetzt

01:19:47.170 --> 01:19:48.470
ganz viele Prints rein

01:19:48.470 --> 01:19:51.050
und gucke, da ist es noch richtig,

01:19:51.250 --> 01:19:52.950
da auch, da auch, da falsch.

01:19:53.110 --> 01:19:54.970
Okay, der Fehler muss ungefähr da

01:19:54.970 --> 01:19:56.850
sein. Oh ja. Und dann,

01:19:57.110 --> 01:19:58.850
okay, das ist jetzt ein Ausdruck der

01:19:58.850 --> 01:20:00.990
drei ineinander verschachtelte

01:20:00.990 --> 01:20:02.290
Funktionsaufrufe, dann

01:20:02.290 --> 01:20:04.830
verschachtele ich die jetzt mal in drei

01:20:04.830 --> 01:20:06.770
Zeilen und dann jeweils Print vorher,

01:20:06.890 --> 01:20:08.810
Print nachher und

01:20:08.810 --> 01:20:10.810
meistens mache ich es dann so plump,

01:20:10.810 --> 01:20:12.690
also Debugger...

01:20:12.690 --> 01:20:14.690
Also VS Code soll auch einen sehr guten Debugger an der Stelle

01:20:14.690 --> 01:20:16.810
haben für so Zeugs.

01:20:17.270 --> 01:20:18.890
Dass man halt die Variablen testen kann

01:20:18.890 --> 01:20:20.610
immer genau da und diesen Print sich dann immer

01:20:20.610 --> 01:20:22.710
einem, den man nicht extra in den Code schreiben

01:20:22.710 --> 01:20:24.370
muss, sondern irgendwie einen Debugger und so.

01:20:24.930 --> 01:20:26.810
Ja, aber meistens

01:20:26.810 --> 01:20:28.290
nehme ich dafür dann auch einfach

01:20:28.290 --> 01:20:30.230
einen Print und gut. Und wenn euch nicht

01:20:30.230 --> 01:20:32.650
einfällt diese Lösung, guckt ihr dann in die Dokumentation

01:20:32.650 --> 01:20:34.730
oder werdet ihr dann einfach angezeigen

01:20:34.730 --> 01:20:36.830
in die Modulreihen

01:20:36.830 --> 01:20:37.330
oder sowas?

01:20:38.910 --> 01:20:40.250
Meistens hilft es auch, wenn man

01:20:40.250 --> 01:20:42.050
Traceback hat, den einfach mal zu googeln.

01:20:43.110 --> 01:20:44.450
Also, es mag

01:20:44.450 --> 01:20:46.170
unglaublich doof klingen, aber

01:20:46.170 --> 01:20:48.570
wenn mir ein Fehler angezeigt

01:20:48.570 --> 01:20:50.690
wird, eventuell aus einem Modul,

01:20:51.070 --> 01:20:52.530
das ich importiert

01:20:52.530 --> 01:20:54.430
habe, den ich nicht kenne, der mir nichts

01:20:54.430 --> 01:20:56.130
sagt, dann kann ich den googeln und

01:20:56.130 --> 01:20:58.190
da wird garantiert schon, wer anders auf

01:20:58.190 --> 01:21:00.590
Stack Overflow dieselbe Frage gehabt haben

01:21:00.590 --> 01:21:01.810
und

01:21:01.810 --> 01:21:04.170
da hilft es meistens auch,

01:21:04.670 --> 01:21:06.250
zumindestens, um schon mal zu verstehen,

01:21:06.250 --> 01:21:08.210
um was für einen Fehler es

01:21:08.210 --> 01:21:09.710
sich handelt. Klar, bei den

01:21:09.710 --> 01:21:12.050
normalen Facepacks ist das relativ

01:21:12.050 --> 01:21:14.250
simpel. Wenn da Zero Division

01:21:14.250 --> 01:21:16.130
Ever steht, dann habe ich durch Null geteilt

01:21:16.130 --> 01:21:16.730
irgendwo.

01:21:18.350 --> 01:21:18.750
Das

01:21:18.750 --> 01:21:22.210
kriegt man relativ gut gefixt, aber wenn man

01:21:22.210 --> 01:21:23.710
die Fehlermeldung nicht kennt, dann

01:21:23.710 --> 01:21:25.310
einfach mal googeln.

01:21:26.030 --> 01:21:27.970
Aber auch vielleicht nochmal, was

01:21:27.970 --> 01:21:29.630
interessant wäre, was seht ihr denn, wenn ihr

01:21:29.630 --> 01:21:31.570
jetzt da viel

01:21:31.570 --> 01:21:33.950
Anfänger dabei beobachtet, das zu lernen, was

01:21:33.950 --> 01:21:35.130
fällt denen denn besonders schwer?

01:21:35.370 --> 01:21:37.690
Ist das immer das Gleiche oder

01:21:37.690 --> 01:21:40.350
sind es ganz, je nachdem, wer das ist, ganz

01:21:40.350 --> 01:21:41.030
unterschiedliche Sachen.

01:21:44.550 --> 01:21:45.890
Bei Anfängern hat man

01:21:45.890 --> 01:21:48.030
teilweise noch

01:21:48.030 --> 01:21:50.270
tatsächlich Flüchtigkeitsfehler,

01:21:50.410 --> 01:21:52.090
so, was weiß ich, Klammer nicht zugemacht,

01:21:52.190 --> 01:21:53.390
Gänsefühlchen offengelassen.

01:21:54.530 --> 01:21:56.210
Das sind natürlich ja gut.

01:21:56.210 --> 01:21:56.710
Die

01:21:56.710 --> 01:22:00.250
ist eventuell noch nicht gewohnt.

01:22:00.770 --> 01:22:02.090
Ein klassischer

01:22:02.090 --> 01:22:03.770
Flüchtigkeitsfehler, einfach vergessen.

01:22:04.570 --> 01:22:06.250
Das kommt natürlich vor.

01:22:06.950 --> 01:22:08.670
Dann gibt es Fehler, die quasi

01:22:08.670 --> 01:22:10.670
wir schon wissen, dass die auftauchen

01:22:10.670 --> 01:22:11.790
werden, weil

01:22:11.790 --> 01:22:13.950
ja

01:22:13.950 --> 01:22:16.430
Welche zum Beispiel?

01:22:19.530 --> 01:22:20.790
Jetzt wäre ein Beispiel gut.

01:22:21.870 --> 01:22:22.890
Wenn man zum Beispiel

01:22:22.890 --> 01:22:24.550
die falsche Variable benutzt.

01:22:24.750 --> 01:22:26.570
Wenn du in der Vorschleife

01:22:26.570 --> 01:22:28.410
statt die Durchlaufvariable

01:22:28.410 --> 01:22:29.350
dein Interact

01:22:29.350 --> 01:22:32.670
statt die Variable,

01:22:32.890 --> 01:22:34.830
die du als Durchlaufvariable hast,

01:22:34.950 --> 01:22:36.930
die Variable nimmst, die du durchläufst,

01:22:36.950 --> 01:22:39.950
das passiert schon mal, aber das ist

01:22:39.950 --> 01:22:42.030
dann ja auch eher ein semantischer Fehler, weil

01:22:42.030 --> 01:22:44.070
es wirft nicht zwingend einen Fehler,

01:22:44.230 --> 01:22:46.030
aber es tut halt nicht das, was

01:22:46.030 --> 01:22:48.090
es soll. Und auch Leute, die eine Funktion

01:22:48.090 --> 01:22:49.990
nicht aufrufen, sondern nur die Funktion

01:22:49.990 --> 01:22:51.130
dahin schreiben. Ja.

01:22:52.390 --> 01:22:54.030
Vergessene Klammern beim Funktionsaufruf.

01:22:56.390 --> 01:22:56.830
Ja.

01:22:58.470 --> 01:23:00.090
Ich glaube, Anfänger

01:23:00.090 --> 01:23:01.810
machen jetzt nicht groß andere Fehler

01:23:01.810 --> 01:23:03.930
als Fortgeschrittene.

01:23:04.330 --> 01:23:06.050
Wenn du mehr weißt, kannst du auch mehr Fehler

01:23:06.050 --> 01:23:07.110
machen. Ja, das stimmt.

01:23:09.910 --> 01:23:10.350
Tatsächlich,

01:23:10.490 --> 01:23:12.010
ich glaube, Anfänge machen einfach nur mehr

01:23:12.010 --> 01:23:13.650
Flüchtigkeitsfehler.

01:23:15.470 --> 01:23:16.150
Die sind das

01:23:16.150 --> 01:23:17.930
ja auch nicht so gewohnt.

01:23:18.070 --> 01:23:20.130
Wie sieht ein String aus? Ich erkenne

01:23:20.130 --> 01:23:21.850
viele Fehler ja tatsächlich auch optisch.

01:23:22.610 --> 01:23:23.990
Wenn mir der Editor

01:23:23.990 --> 01:23:26.170
anzeigt, guck mal, da geht ein String nicht

01:23:26.170 --> 01:23:28.170
zu, ja gut, dann mache ich den zu, aber

01:23:28.170 --> 01:23:30.190
wenn ich gerade damit anfange

01:23:30.190 --> 01:23:31.410
und jede

01:23:31.410 --> 01:23:33.690
Buchstabe für mich quasi

01:23:33.690 --> 01:23:36.030
einen Einblick in eine neue Welt gibt,

01:23:36.150 --> 01:23:38.010
dann ist das eventuell

01:23:38.010 --> 01:23:39.910
schwieriger. Also auch so, dass das

01:23:39.910 --> 01:23:42.090
Syntax-Verleitung irgendwie in der falschen

01:23:42.090 --> 01:23:43.730
Farbe ist, das fällt mir ziemlich schnell auf.

01:23:43.930 --> 01:23:46.170
Ja, weil man da auch ein gewisses

01:23:46.170 --> 01:23:47.270
Gefühl

01:23:47.270 --> 01:23:48.070
hat.

01:23:51.650 --> 01:23:52.090
Irgendwann

01:23:52.090 --> 01:23:53.890
hat man dann auch so

01:23:53.890 --> 01:23:55.830
einen Modus operandi. Zum Beispiel, wenn ich

01:23:55.830 --> 01:23:59.470
Gänsefüßchen nehme,

01:24:00.070 --> 01:24:01.530
dann macht mir der Editor

01:24:01.530 --> 01:24:03.650
automatisch zwei, wenn ich eins tippe. Dann gehe

01:24:03.650 --> 01:24:05.670
einmal nach links, um in dem Gänsefüßchen

01:24:05.670 --> 01:24:07.130
zu sein und dann tippe ich da rein.

01:24:07.930 --> 01:24:09.570
Und was weiß ich,

01:24:09.610 --> 01:24:12.090
ein Anfänger würde dann wahrscheinlich Gänsefüßchen,

01:24:12.230 --> 01:24:14.090
den String und dann nochmal ein Gänsefüßchen

01:24:14.090 --> 01:24:15.470
und dann vergisst es dir einen zweiten.

01:24:15.850 --> 01:24:16.150
Oder

01:24:16.150 --> 01:24:19.890
der Textor fügt da nochmal zwei ein.

01:24:19.890 --> 01:24:22.090
Ja, dann hast du drei

01:24:22.090 --> 01:24:23.230
und dann klappt das auf einmal nicht mehr.

01:24:23.230 --> 01:24:25.670
Dann laufe ich da immer noch regelmäßig rein, tatsächlich.

01:24:26.810 --> 01:24:27.010
Ja.

01:24:28.230 --> 01:24:29.550
Also ich würde behaupten,

01:24:29.570 --> 01:24:32.090
Anfänger machen dieselben Fehler.

01:24:33.050 --> 01:24:34.070
Vielleicht nur häufiger.

01:24:35.370 --> 01:24:37.070
Aber ich glaube gar nicht so häufiger.

01:24:38.470 --> 01:24:38.650
Ja.

01:24:39.190 --> 01:24:40.530
Gibt es denn auch Dinge, die

01:24:40.530 --> 01:24:42.730
die Anfänger besonders toll finden?

01:24:42.870 --> 01:24:45.090
Etwas, wo man irgendwie zuverlässig

01:24:45.090 --> 01:24:47.110
so einen Wow-Effekt mit erzielen kann?

01:24:47.350 --> 01:24:48.510
Oder was sie

01:24:48.510 --> 01:24:50.310
überrascht, wie einfach das geht?

01:24:50.810 --> 01:24:52.810
Gerade so grafische Sachen sind immer

01:24:52.810 --> 01:24:54.450
ziemlich überraschend. Wir haben mal irgendwann

01:24:54.450 --> 01:24:55.410
ein Turtle gezeigt.

01:24:57.730 --> 01:24:58.210
Und

01:24:58.210 --> 01:25:00.970
dass man einfach so

01:25:00.970 --> 01:25:02.710
schnell irgendwie, also gerade

01:25:02.710 --> 01:25:04.030
so grafische Ergebnisse,

01:25:04.290 --> 01:25:06.250
Rechtecke oder so was oder

01:25:06.250 --> 01:25:08.490
Flächen überraschen Leute doch.

01:25:09.450 --> 01:25:10.750
Ja, es ist natürlich immer gut,

01:25:10.810 --> 01:25:12.770
wenn man direkt was zeigen

01:25:12.770 --> 01:25:14.410
kann, was auch so ein bisschen über

01:25:14.410 --> 01:25:16.730
eine Kommandozeile, also klar ist es

01:25:16.730 --> 01:25:18.330
noch eine Kommandozeilenanwendung, aber

01:25:18.330 --> 01:25:20.550
wenn dann plötzlich ein Fenster aufgeht

01:25:20.550 --> 01:25:22.510
und da ist ein Bild drin oder wenn

01:25:22.510 --> 01:25:24.530
ein Fenster aufgeht und auf einmal ist da

01:25:24.530 --> 01:25:26.670
ein Graph drin. Was ich persönlich finde,

01:25:26.670 --> 01:25:28.490
ich finde bunten Text im Terminal ja spannend,

01:25:28.650 --> 01:25:30.610
aber ich finde das

01:25:30.610 --> 01:25:31.730
auch schon sehr spannend.

01:25:32.290 --> 01:25:33.550
Irgendwie sehen das andere Leute nicht so.

01:25:33.650 --> 01:25:35.370
Die Leidenschaft scheint nicht so ausgeprägt zu sein.

01:25:36.690 --> 01:25:37.690
Wir haben, glaube ich, mal

01:25:37.690 --> 01:25:39.490
einen Abend, Leute, ziemlich stark

01:25:39.490 --> 01:25:41.510
gelangweilt, indem wir sehr viel zu Terminals

01:25:41.510 --> 01:25:42.210
erzählt haben.

01:25:43.790 --> 01:25:45.270
Ich glaube, du warst dabei.

01:25:45.530 --> 01:25:46.110
Ich fand's gut.

01:25:49.050 --> 01:25:49.790
Das hatten wir

01:25:49.790 --> 01:25:51.670
letzten Abend, da haben wir was mit Bildern

01:25:51.670 --> 01:25:53.870
gemacht. Das hat natürlich den Vorteil,

01:25:53.930 --> 01:25:55.590
dass man direkt was Buntes sieht und auch

01:25:55.590 --> 01:25:56.970
die Erinnerungen direkt sieht.

01:25:57.970 --> 01:25:59.910
Ja, ein bisschen was für die Augen.

01:26:00.090 --> 01:26:01.510
Voll die krassen Sachen gesehen, wenn man Blender

01:26:01.510 --> 01:26:02.930
machen kann. Man kann halt diese ganzen

01:26:02.930 --> 01:26:05.570
interaktiven Grafiken generieren

01:26:05.570 --> 01:26:07.650
lassen mit, weiß ich nicht, 20 Zeilen oder so.

01:26:07.990 --> 01:26:09.570
Klar, aber dafür müssten wir eine Ahnung von Blender

01:26:09.570 --> 01:26:11.070
haben. Tja.

01:26:11.890 --> 01:26:12.830
Es sah auf jeden Fall cool aus.

01:26:13.790 --> 01:26:15.610
Ich habe mir das tatsächlich, als wir

01:26:15.610 --> 01:26:17.190
am letzten Donnerstag

01:26:17.190 --> 01:26:19.210
was mit Pillow und

01:26:19.210 --> 01:26:21.470
Bildern gemacht haben, habe ich mir das direkt

01:26:21.470 --> 01:26:23.630
als... Hab ich da richtig was verpasst?

01:26:23.770 --> 01:26:25.430
Ja, habe ich das

01:26:25.430 --> 01:26:27.450
direkt als Anfang

01:26:27.450 --> 01:26:29.290
dafür genommen, mich ein bisschen mehr mit

01:26:29.290 --> 01:26:30.630
Pillow zu beschäftigen und

01:26:30.630 --> 01:26:32.930
ja, hab da jetzt ein kleines Projekt, das

01:26:32.930 --> 01:26:35.170
sich mit Steganografie beschäftigt.

01:26:35.270 --> 01:26:36.730
Oh. Ja, gerade so

01:26:36.730 --> 01:26:38.570
zu den höheren Leveln fehlen uns doch

01:26:38.570 --> 01:26:40.690
sinnvolle Beispiele. Ja, das stimmt.

01:26:41.510 --> 01:26:42.910
Ja. Aber da kommen wir gerade

01:26:42.910 --> 01:26:44.710
ja dazu. Pillo, was sind eure Lieblingsmodule?

01:26:45.190 --> 01:26:46.750
Oh. B-Python, ganz klar.

01:26:47.770 --> 01:26:48.710
Ja, B-Python ist ja

01:26:48.710 --> 01:26:50.630
ein Interpreter. Ja, gut. Aber ich

01:26:50.630 --> 01:26:52.570
stimme ja zu, B-Python ist schon ziemlich

01:26:52.570 --> 01:26:52.930
cool.

01:26:54.870 --> 01:26:56.270
Boah, mein Lieblingsmodul.

01:26:57.610 --> 01:26:58.530
Jetzt hat er B-Python

01:26:58.530 --> 01:27:00.630
Man sagt ja natürlich nicht einfach auch B-Python

01:27:00.630 --> 01:27:00.910
sagen.

01:27:03.230 --> 01:27:04.590
Du kannst ja C-Python sagen.

01:27:05.890 --> 01:27:06.650
B-Python.

01:27:09.090 --> 01:27:09.530
Ja,

01:27:09.950 --> 01:27:12.510
Weekfest finde ich ziemlich cool, weil man

01:27:12.510 --> 01:27:13.550
damit sehr einfach

01:27:13.550 --> 01:27:16.030
halt Netzwerk machen kann.

01:27:16.750 --> 01:27:18.390
Gerade auch so, wenn Leute irgendwie,

01:27:18.550 --> 01:27:20.230
es gab Leute, die hatten irgendwie so eine

01:27:20.230 --> 01:27:22.570
Comic-Seite oder so und da wollten die

01:27:22.570 --> 01:27:24.530
irgendwie eine Benachrichtigung haben, wenn es einen neuen gibt

01:27:24.530 --> 01:27:26.670
oder sowas. Das sind gerade so Projekte,

01:27:26.790 --> 01:27:28.290
die eigentlich einfach sind,

01:27:28.410 --> 01:27:29.810
aber dann doch irgendwie überraschend sind.

01:27:30.170 --> 01:27:31.050
Gehen glaube ich ziemlich schnell.

01:27:33.730 --> 01:27:36.070
Ich glaube, ich...

01:27:36.070 --> 01:27:38.050
Waypile, das wäre schon...

01:27:38.050 --> 01:27:39.990
Das finde ich cool, weil

01:27:39.990 --> 01:27:41.850
es bringt Farbe ins Terminal

01:27:41.850 --> 01:27:43.950
und besteht nur aus 56 Zeilen Code

01:27:43.950 --> 01:27:45.970
oder so. Also das ist

01:27:45.970 --> 01:27:47.690
für mich ein schönes Beispiel, wie man

01:27:47.690 --> 01:27:49.190
sehr einfach

01:27:49.190 --> 01:27:51.990
ein... Klar, das ist

01:27:51.990 --> 01:27:54.230
jetzt auch nicht so das große Werkzeug,

01:27:54.230 --> 01:27:56.250
aber es bringt doch

01:27:56.250 --> 01:27:57.110
einen großen

01:27:57.110 --> 01:27:59.210
ein großes Plus

01:27:59.210 --> 01:28:00.970
an Usability und

01:28:00.970 --> 01:28:03.150
dafür 56

01:28:03.150 --> 01:28:04.790
Zahlen finde ich echt gut, vor allem

01:28:04.790 --> 01:28:06.770
der Großteil davon ist einfach nur ein Dictionary.

01:28:08.090 --> 01:28:09.210
Dann, was ich noch

01:28:09.210 --> 01:28:11.070
gut finde, ist Parflip.

01:28:11.690 --> 01:28:13.090
Oh ja. Einfach, weil

01:28:13.090 --> 01:28:15.150
wenn ich sehe,

01:28:15.250 --> 01:28:17.470
wie man vorher mit OS.par

01:28:17.470 --> 01:28:18.470
Ja, da war es nicht.

01:28:19.770 --> 01:28:20.250
Dateien,

01:28:20.350 --> 01:28:22.790
mit Dateien gearbeitet hat und wie

01:28:22.790 --> 01:28:25.070
viel einfacher das jetzt mit

01:28:25.070 --> 01:28:25.810
Parflip geht.

01:28:26.890 --> 01:28:31.350
Das ist Standard-Bibliothek.

01:28:32.690 --> 01:28:35.170
Auch da gibt es ja viel zu viele Dinge, die eigentlich cool sind,

01:28:35.230 --> 01:28:36.010
die zu wenig bekannt sind.

01:28:38.810 --> 01:28:40.650
Jochen, was ist dein Lieblingsmodul?

01:28:41.110 --> 01:28:42.690
Mein Lieblingsmodul? Oh je.

01:28:43.610 --> 01:28:44.190
Ich weiß nicht.

01:28:46.930 --> 01:28:48.990
Ich glaube, Lieblingsmodul...

01:28:48.990 --> 01:28:54.070
Ich hätte jetzt auch gar nicht wirklich drüber nachgedacht.

01:28:55.610 --> 01:28:57.870
Was ich letztens gesehen habe, was ich ganz cool

01:28:57.870 --> 01:28:59.610
fand, was ich noch nicht kannte, war

01:28:59.610 --> 01:29:00.950
SQL-Paths.

01:29:01.730 --> 01:29:02.790
Womit man also

01:29:02.790 --> 01:29:05.770
SQL-Statements, die man ja

01:29:05.770 --> 01:29:07.530
also wenn man zum Beispiel so ORM

01:29:07.530 --> 01:29:09.850
verwendet und dann fällt da so ein Statement bei raus

01:29:09.850 --> 01:29:11.710
und man guckt sich ja dann

01:29:11.710 --> 01:29:13.690
manchmal an, weil irgendwie ein Statement ist langsam

01:29:13.690 --> 01:29:15.770
oder irgendwas, was man mit dem ORM macht, ist langsam

01:29:15.770 --> 01:29:17.770
und dann bei Django

01:29:17.770 --> 01:29:19.670
kann man halt einfach sagen, wenn man das Query-Set hat,

01:29:19.790 --> 01:29:21.850
Query-Set.Query und dann spuckt das Ding

01:29:21.850 --> 01:29:23.670
das SQL-Statement aus, allerdings dann halt so

01:29:23.670 --> 01:29:25.470
als langen String, was

01:29:25.470 --> 01:29:28.030
relativ unleserlich ist und mit

01:29:28.030 --> 01:29:29.370
SQL-Pars kann man halt einfach sagen,

01:29:30.730 --> 01:29:32.010
okay, formati mir das mal

01:29:32.010 --> 01:29:33.910
neu, indentiere das alles

01:29:33.910 --> 01:29:36.050
und dann sieht das halt nach einem hübsch formatierten

01:29:36.050 --> 01:29:37.850
SQL-Statement aus und dann sieht man halt auch, was passiert.

01:29:38.610 --> 01:29:39.570
Und genau, dafür

01:29:39.570 --> 01:29:41.910
habe ich das letztens

01:29:41.910 --> 01:29:43.710
verwendet und fand das sehr praktisch, dass es sowas gibt.

01:29:44.710 --> 01:29:44.790
Ja.

01:29:48.110 --> 01:29:48.510
Tja.

01:29:49.510 --> 01:29:50.230
Weiß nicht, was

01:29:50.230 --> 01:29:52.390
hättest du denn so an Python-Modulen?

01:29:52.830 --> 01:29:54.530
So viel habe ich jetzt doch gar nicht durch, aber ich finde

01:29:54.530 --> 01:29:56.650
Kiwi ganz witzig irgendwie, weil das auch

01:29:56.650 --> 01:29:58.770
direkt irgendwie so Touch bietet für so kleinen Unsinn.

01:29:59.410 --> 01:30:00.710
Wenn man jetzt nicht total die

01:30:00.710 --> 01:30:02.970
aufwendigen GUIs bauen will, dann relativ einfach

01:30:02.970 --> 01:30:04.710
ganz witzige Lösungen hinbekommen.

01:30:06.910 --> 01:30:08.690
Ja, was mir noch einfällt, genau.

01:30:09.510 --> 01:30:10.630
Ich weiß nicht, ob wir das schon mal hatten.

01:30:11.270 --> 01:30:12.970
Pythonista ist ziemlich cool.

01:30:14.230 --> 01:30:14.850
Das ist so eine,

01:30:15.470 --> 01:30:16.790
das ist tatsächlich

01:30:16.790 --> 01:30:18.630
ein Python-Interpreter auf iOS.

01:30:19.770 --> 01:30:20.690
Keine Ahnung, wie das Ding

01:30:20.690 --> 01:30:22.150
durch den App-Store gekommen ist.

01:30:23.830 --> 01:30:26.150
Das kann eigentlich nicht mit rechten Dingen zugegangen

01:30:26.150 --> 01:30:27.170
sein irgendwie, aber

01:30:27.170 --> 01:30:30.230
das ist tatsächlich irgendwie vollständiges Python 3.6

01:30:30.230 --> 01:30:32.090
und

01:30:32.090 --> 01:30:34.090
tatsächlich, wenn also jemand mit

01:30:34.090 --> 01:30:36.170
einem, gut, das kostet

01:30:36.170 --> 01:30:37.830
Geld, das kostet irgendwie ein paar Euro, aber

01:30:37.830 --> 01:30:40.110
das ist wirklich ganz toll,

01:30:40.230 --> 01:30:41.350
hat auch eine schöne IDE dabei.

01:30:42.090 --> 01:30:44.010
Also wenn man jetzt irgendwie ein iPhone hat oder ein

01:30:44.010 --> 01:30:46.050
iPad und eine Bluetooth-Tastatur, dann

01:30:46.050 --> 01:30:47.110
könnte man auch tatsächlich

01:30:47.110 --> 01:30:49.490
wahrscheinlich irgendwie Python 2

01:30:49.490 --> 01:30:52.030
damit teilnehmen, was man jetzt gar nicht so erwarten

01:30:52.030 --> 01:30:53.190
würde, weil eigentlich ja

01:30:53.190 --> 01:30:56.030
iOS irgendwie auf Objective-C,

01:30:57.270 --> 01:30:59.350
C++ und C und

01:30:59.350 --> 01:31:01.550
was gibt es denn noch, Swift, wie beschränkt ist.

01:31:02.130 --> 01:31:03.710
Aber genau, und was halt

01:31:03.710 --> 01:31:05.270
auch sehr schön ist, ist, dass man da

01:31:05.270 --> 01:31:06.850
viel Zugriff hat auf

01:31:06.850 --> 01:31:09.390
die APIs. Also man kann halt,

01:31:09.670 --> 01:31:11.290
man kann auf die Fotos zugreifen,

01:31:11.410 --> 01:31:13.350
Location, API, man kann

01:31:13.350 --> 01:31:15.210
grafische Geschichten machen und

01:31:15.210 --> 01:31:17.610
das Ding nutzt halt auch die nativen Widgets

01:31:17.610 --> 01:31:18.950
von

01:31:18.950 --> 01:31:21.550
iOS, sodass das halt auch alles

01:31:21.550 --> 01:31:24.330
jedenfalls von den Animationen her

01:31:24.330 --> 01:31:26.090
und so schnell ist. Und ich habe es

01:31:26.090 --> 01:31:28.210
halt mal benutzt, um so ein

01:31:28.210 --> 01:31:29.390
Sharing-Dings,

01:31:29.590 --> 01:31:32.070
so ein Dings in ein

01:31:32.070 --> 01:31:34.090
Share-Sheet reinzubauen, sodass man, wenn man im Browser

01:31:34.090 --> 01:31:34.430
sagt,

01:31:35.450 --> 01:31:37.990
URL teilen, dass ich das halt dann in

01:31:37.990 --> 01:31:39.790
meinen Bookmark-Service

01:31:39.790 --> 01:31:41.930
irgendwie reinpipen kann.

01:31:43.230 --> 01:31:44.190
Genau. Und dann

01:31:44.190 --> 01:31:46.070
die ganze Bearbeitung, also das Sprechen

01:31:46.070 --> 01:31:48.070
mit der REST-IP oder so, das macht dann halt alles irgendwie

01:31:48.070 --> 01:31:49.890
Pythonista oder ein Skript, das halt dann von

01:31:49.890 --> 01:31:50.950
Pythonista ausgeführt wird.

01:31:51.550 --> 01:31:54.010
ja, das ist auch ziemlich cool.

01:31:54.410 --> 01:31:55.950
Wenn man das nicht kennt und iOS irgendwie

01:31:55.950 --> 01:31:57.650
Python machen möchte, dann ist es, glaube ich, ganz hilfreich.

01:31:58.850 --> 01:32:00.170
Ja, sowas ähnliches gibt's

01:32:00.170 --> 01:32:01.270
auch für Android.

01:32:01.890 --> 01:32:03.990
Thermux, das ist... Das ist ein Terminal.

01:32:04.430 --> 01:32:06.070
Ja, genau, das ist ein Terminal-Emulator.

01:32:07.450 --> 01:32:08.290
Sogar mit Paketmanagement

01:32:08.290 --> 01:32:10.190
allem Drum und Dran. Genau, also es bietet halt

01:32:10.190 --> 01:32:11.950
sehr viele Möglichkeiten, auch mit Android selber zu

01:32:11.950 --> 01:32:13.110
interagieren. Also irgendwie,

01:32:13.250 --> 01:32:16.270
weiß ich nicht, Kontakte

01:32:16.270 --> 01:32:18.170
SMS senden oder

01:32:18.170 --> 01:32:20.190
sowas. Und es läuft

01:32:20.190 --> 01:32:22.090
halt auch Python drauf. Also es kommt halt mit

01:32:22.090 --> 01:32:24.270
einem Paket-Repo von sehr vieler

01:32:24.270 --> 01:32:26.330
Software und es ist halt

01:32:26.330 --> 01:32:28.290
eigentlich alles so an Sprachen dabei,

01:32:28.390 --> 01:32:30.130
die man haben wollen würde.

01:32:30.310 --> 01:32:32.090
Also wie ein C-Compiler, Go-Compiler,

01:32:32.570 --> 01:32:33.270
Rust-Compiler,

01:32:34.170 --> 01:32:36.170
was nicht so wirklich gut läuft, ist leider Java,

01:32:36.370 --> 01:32:38.250
was bei Android ein bisschen komisch ist

01:32:38.250 --> 01:32:40.650
eigentlich. Aber ansonsten

01:32:40.650 --> 01:32:41.730
ja, unter anderem auch Python.

01:32:43.310 --> 01:32:44.210
Also was ich auch noch natürlich

01:32:44.210 --> 01:32:45.990
cool finde, ist der GPIO. Also auch

01:32:45.990 --> 01:32:47.570
den Raspi oder sowas ist natürlich super.

01:32:47.710 --> 01:32:49.790
Ganz viele coole

01:32:49.790 --> 01:32:51.890
einfache Sachen machen kann, die man auch super schön

01:32:51.890 --> 01:32:53.490
zeigen kann. Also einfach jetzt

01:32:53.490 --> 01:32:56.030
ein paar Pinne ansteuern und so Lämpchen zum Bräuchten bringen,

01:32:56.110 --> 01:32:58.030
das kriegt auch jedes Kind hin und man hat

01:32:58.030 --> 01:32:59.870
da direkt was, was man sehen kann. Das ist irgendwie immer schön.

01:33:01.490 --> 01:33:02.230
Generell kann man

01:33:02.230 --> 01:33:04.090
auch sagen, dass die Python Standard

01:33:04.090 --> 01:33:05.990
Library sehr

01:33:05.990 --> 01:33:07.530
viele, sehr coole

01:33:07.530 --> 01:33:09.090
Module enthält.

01:33:09.390 --> 01:33:11.670
Das finde ich extrem cool, weil ich mich immer

01:33:11.670 --> 01:33:13.430
dafür interessiere, wie funktioniert

01:33:13.430 --> 01:33:15.650
sowas eigentlich? Und mit DISS kann ich

01:33:15.650 --> 01:33:17.570
mir halt den Python Bytecode für eine Funktion

01:33:17.570 --> 01:33:18.890
anzeigen lassen.

01:33:19.550 --> 01:33:21.110
Und es ist halt nicht nur einfach die Byte,

01:33:21.210 --> 01:33:23.150
sondern es hat auch wirklich die Namen,

01:33:23.250 --> 01:33:25.210
die Instruktionen und die Parameter daneben und so.

01:33:25.330 --> 01:33:26.190
Und das ist schon ziemlich cool.

01:33:27.510 --> 01:33:33.890
Also generell ist die Standard-Library ja so umfangreich,

01:33:34.430 --> 01:33:37.190
dass wir bei den Anfängern

01:33:37.190 --> 01:33:41.610
größtenteils nur die Standard-Library benutzen müssen.

01:33:42.230 --> 01:33:43.150
Im Quatsch ist es.

01:33:43.970 --> 01:33:45.310
Das sind halt auch so Sachen dabei,

01:33:45.310 --> 01:33:46.030
wo man sich denkt,

01:33:46.170 --> 01:33:48.010
warum ist das jetzt eigentlich in der Standard-Library?

01:33:48.250 --> 01:33:49.490
Und andere Sachen nicht.

01:33:49.590 --> 01:33:50.930
Ja, das ist manchmal ein bisschen komisch.

01:33:50.950 --> 01:33:54.270
Zum Beispiel img-hdr, das kann dir ja von einer Bilddatei

01:33:54.270 --> 01:33:55.890
sagen, welches Dateiformat das ist.

01:33:56.250 --> 01:33:58.050
Also quasi so ein Pfeil-ähnliches

01:33:58.050 --> 01:33:59.890
Dingsmus in der Pfeil-Standlage eingebaut.

01:33:59.970 --> 01:34:01.170
Da habe ich mir gedacht, warum?

01:34:01.870 --> 01:34:03.470
Aber naja, das ist ganz praktisch manchmal.

01:34:05.030 --> 01:34:05.590
Ja, ja.

01:34:05.710 --> 01:34:07.570
Oder wave ist es auch

01:34:07.570 --> 01:34:08.890
als Codec da drin.

01:34:09.930 --> 01:34:10.150
Ja.

01:34:12.930 --> 01:34:13.910
Ja, da gibt es

01:34:13.910 --> 01:34:15.730
andere Bereiche, in denen gibt es dann irgendwie

01:34:15.730 --> 01:34:17.310
drei Module, die irgendwie das gleiche

01:34:17.310 --> 01:34:19.090
nur auf unterschiedliche Art tun.

01:34:19.430 --> 01:34:20.890
Urlib, Urlib 2, Urlib 3.

01:34:21.350 --> 01:34:22.690
Einfach Request nehmen.

01:34:22.770 --> 01:34:25.150
Und Requests gibt es nicht in der Standardbibliothek und so.

01:34:25.630 --> 01:34:27.590
Und das ist schon so ein bisschen...

01:34:27.590 --> 01:34:29.410
Also Request ist auch

01:34:29.410 --> 01:34:31.170
so das eine Ding, wo ich mir wünschen würde, dass es

01:34:31.170 --> 01:34:32.790
eine Standardbibliothek wäre.

01:34:34.410 --> 01:34:35.230
Schreibt uns auf jeden Fall

01:34:35.230 --> 01:34:35.950
eure Lieblingsmodule.

01:34:37.010 --> 01:34:38.150
Ja, wobei, also bei

01:34:38.150 --> 01:34:41.330
was mich an Requests halt noch so ein bisschen...

01:34:41.330 --> 01:34:43.310
Also ich meine, das ist von der Benutzung her...

01:34:44.130 --> 01:34:45.130
Ich meine, das ist ja auch der Anspruch

01:34:45.130 --> 01:34:46.870
irgendwie, ist ja halt HTTP for

01:34:46.870 --> 01:34:49.070
Humans, ne, irgendwie, wenn man das jetzt als

01:34:49.070 --> 01:34:51.150
Anwender, also als Entwickler, Anwender benutzt,

01:34:51.230 --> 01:34:53.110
ist das halt sehr praktisch, aber

01:34:53.110 --> 01:34:55.370
wenn man jetzt zum Beispiel viele HTTP-Requests

01:34:55.370 --> 01:34:57.050
machen möchte oder so, dann ist das halt auch schon

01:34:57.050 --> 01:34:59.190
nicht mehr so toll, weil das ist halt nicht

01:34:59.190 --> 01:35:00.810
asynchron, also

01:35:00.810 --> 01:35:02.890
man hat Multiplex halt sozusagen

01:35:02.890 --> 01:35:03.770
I.O. nicht wirklich,

01:35:05.050 --> 01:35:07.030
kann das dann eventuell machen, indem man halt

01:35:07.030 --> 01:35:08.870
Threads verwendet oder so, aber so

01:35:08.870 --> 01:35:10.770
von sich aus kann das das halt nicht

01:35:10.770 --> 01:35:12.870
und dann gibt's halt vielleicht

01:35:12.870 --> 01:35:14.930
auch, wenn man das halt noch nicht kennt,

01:35:15.130 --> 01:35:17.930
AIO

01:35:17.930 --> 01:35:18.370
HTTP

01:35:18.370 --> 01:35:21.330
ist, glaube ich, die

01:35:21.330 --> 01:35:23.090
Bibliothek

01:35:23.090 --> 01:35:25.330
oder das Projekt, ich weiß nicht so genau, da gibt es einmal

01:35:25.330 --> 01:35:27.530
einen Server, AIO

01:35:27.530 --> 01:35:28.030
HTTP

01:35:28.030 --> 01:35:31.690
und da gibt es einen Server

01:35:31.690 --> 01:35:33.510
drin und es gibt halt auch einen Client und der

01:35:33.510 --> 01:35:35.610
ist basiert halt auf Async.io

01:35:35.610 --> 01:35:37.630
und das ist halt richtig schnell und da kann man halt auch

01:35:37.630 --> 01:35:39.370
mal, gibt es auch ein schönes Beispiel, das hat

01:35:39.370 --> 01:35:41.750
gibt es einen Artikel

01:35:41.750 --> 01:35:43.690
von, ich habe jetzt den einen Namen

01:35:43.690 --> 01:35:45.750
vergessen, aber Guido von Rassum ist der andere Autor

01:35:45.750 --> 01:35:47.810
und die beschreiben halt so, wie kann man

01:35:47.810 --> 01:35:49.350
mal so eine Million Webseiten, äh Millionen

01:35:49.350 --> 01:35:51.630
Requests machen irgendwie schnell

01:35:51.630 --> 01:35:53.330
und das, äh, ja,

01:35:54.170 --> 01:35:54.930
sehr nettes Ding.

01:35:56.710 --> 01:35:56.930
Jo.

01:35:58.070 --> 01:35:58.470
Ja.

01:35:59.550 --> 01:36:01.590
Also ich würde sagen, wir haben viel gehört dazu,

01:36:01.690 --> 01:36:03.510
was wir, ja, wie man

01:36:03.510 --> 01:36:05.430
anfangen kann, wie man vielleicht weitermachen kann, welche

01:36:05.430 --> 01:36:07.590
Probleme so am Anfang auftauchen,

01:36:07.650 --> 01:36:09.370
wie man die so ein bisschen umschifft. Also wenn ihr

01:36:09.370 --> 01:36:11.350
in Düsseldorf und der Regierung seid, dann kommt doch einfach

01:36:11.350 --> 01:36:12.310
vorbei, ne? Genau.

01:36:13.690 --> 01:36:15.090
Ja, einfach so. Ich glaube, nicht nur Donnerstags

01:36:15.090 --> 01:36:16.510
sind da ein paar Jungs immer da.

01:36:16.850 --> 01:36:16.990
Ja.

01:36:18.870 --> 01:36:20.270
Ist halt jede Woche.

01:36:20.850 --> 01:36:22.670
Ja. Also nicht unbedingt

01:36:22.670 --> 01:36:24.550
mit uns, aber ja.

01:36:25.570 --> 01:36:26.350
Da gibt es auch

01:36:26.350 --> 01:36:27.930
andere coole Menschen.

01:36:29.370 --> 01:36:30.830
Ja, kann ich bestätigen.

01:36:31.410 --> 01:36:32.830
Ja, wenn ihr irgendwas antragen

01:36:32.830 --> 01:36:34.590
wollt, nochmal Events, wieder euer Feedback,

01:36:34.710 --> 01:36:36.430
Kommentare an

01:36:36.430 --> 01:36:38.250
hallo.peisen-podcast.de

01:36:38.250 --> 01:36:40.470
Ja, schön, dass ihr wieder eingeschaltet habt.

01:36:41.090 --> 01:36:42.450
Genau, dann versuchen wir mal

01:36:42.450 --> 01:36:44.290
irgendwie die nächste Sendung etwas zeitnah

01:36:44.290 --> 01:36:46.250
hinzukriegen, aber das... Ja, wir hatten eigentlich schon

01:36:46.250 --> 01:36:48.410
etwas vorbereitet, aber das hat nicht so gut geklappt.

01:36:48.590 --> 01:36:49.630
Da müssen wir noch mal dran.

01:36:50.790 --> 01:36:52.250
Datenbanken, wir können ja schon mal das Thema verraten.

01:36:52.330 --> 01:36:53.770
Haben wir uns eigentlich auf die Fahne da geschrieben.

01:36:54.570 --> 01:36:56.230
Wer hat eigentlich Model-View-Controller erfunden?

01:36:57.550 --> 01:36:58.230
You have to.

01:37:02.090 --> 01:37:04.170
Okay. Bis zum nächsten Mal.

01:37:04.330 --> 01:37:05.770
Alles klar. Tschüss.

01:37:05.930 --> 01:37:06.290
Tschüss.
