WEBVTT

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

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

00:00:10.960 --> 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:17.840 --> 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:36.060
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,

00:00:36.060 --> 00:00:46.540
die dort die Einsteiger-Veranstaltung für Python jetzt schon seit einiger Zeit betreuen.

00:00:46.540 --> 00:00:49.700
Die sehr gute Einsteiger-Veranstaltung.

00:00:49.700 --> 00:00:52.280
Oh, das ist zu viel Lob.

00:00:52.280 --> 00:00:53.020
Ja.

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

00:00:57.160 --> 00:01:05.940
Ja, Fragen, Anmerkungen, Kommentare und alles, was ja so erlos werden müsste, bitte immer gerne in unsere E-Mail schreiben, hallo at python-podcast.de.

00:01:05.940 --> 00:01:11.340
Dabei auch jetzt direkt vielen Dank an die Kommentare, schöne, bei der letzten Folge.

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

00:01:15.700 --> 00:01:22.860
Genau, und das war sehr positiv und das ist natürlich immer sehr schön, wenn man da auch irgendwie

00:01:22.860 --> 00:01:22.860
und das ist natürlich immer sehr schön, wenn man da auch irgendwie

00:01:22.860 --> 00:01:26.020
mitbekommt, dass das so ein bisschen wahrgenommen wird.

00:01:26.020 --> 00:01:33.300
Die Punkte, die da angesprochen wurden, waren einmal, dass es halt nett wäre, wenn wir jetzt irgendwie Kommentare doch auch dabei hätten.

00:01:33.300 --> 00:01:38.560
Und dazu haben wir uns natürlich auch schon irgendwie Gedanken gemacht und haben erstmal gesagt, wir lassen die bewusst weg,

00:01:38.560 --> 00:01:44.200
weil, naja, das ist halt irgendwie, alle Zeit, die wir da rein investieren müssen, einmal das Feature zu bauen,

00:01:44.200 --> 00:01:51.400
aber dann auch irgendwie den Kram zu maintainen, können wir halt nicht irgendwie zum Aufnehmen von Podcasts verwenden.

00:01:51.400 --> 00:01:52.460
Aber, ja.

00:01:52.700 --> 00:01:57.060
Also, genau, falls unser AXE mal stumpf werden sollte, dann denken wir nochmal über die Kommentare nach.

00:01:57.060 --> 00:02:03.060
Ja, also, ich meine, ich glaube, es ist auch nicht so schwierig, das zu implementieren und wenn man das auf User beschränkt, die sich irgendwie eingeloggt haben,

00:02:03.060 --> 00:02:10.100
aber das ist halt die Frage, wie sinnvoll das dann noch ist, wenn man das macht, dann ist das auch nicht allzu schlimm, aber, ja, wir müssen mal gucken.

00:02:10.100 --> 00:02:14.100
Es gibt ja eine ganze Menge Dinge, die wir da eventuell noch einbauen wollen und, ja.

00:02:14.100 --> 00:02:19.720
Ja, das kannst du vielleicht gleich nochmal bei der Modulvorstellung von deinem neuesten DjangoCast-Fortschritt erwähnen.

00:02:19.720 --> 00:02:22.640
Was die Leute sich auch gewünscht hatten, also unsere Hörer, war Struktur.

00:02:22.700 --> 00:02:30.300
Ja, stimmt, das ist natürlich schon so ein gewisser Punkt.

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

00:02:31.940 --> 00:02:34.980
Wir haben uns heute einfach auf ein Thema beschränkt, da ist die Struktur vielleicht nicht so wichtig.

00:02:34.980 --> 00:02:43.240
Wir fangen vielleicht erstmal nochmal damit an, was in letzter Zeit denn so los war und dann erzählen wir halt darüber, was man mit Python alles lernen kann und, ja, vielleicht noch ein paar Module.

00:02:43.240 --> 00:02:48.000
Genau, vielleicht machen wir einfach erstmal eine Vorstellungsrunde.

00:02:48.000 --> 00:02:48.580
Genau.

00:02:48.580 --> 00:02:52.540
Genau, gut, wir beide sind jetzt schon irgendwie bekannt, aber wer ist denn...

00:02:52.540 --> 00:02:57.400
Ja, ich würde sagen, Alter vor Schönheit.

00:02:57.400 --> 00:03:01.120
Ich bin der Dodo oder der zweite Dominik.

00:03:01.120 --> 00:03:05.760
Ich mache zusammen mit dem Niklas das Python-Foo-Light im Chaosdorf.

00:03:05.760 --> 00:03:13.460
Das ist das Python-Foo für Anfänger in Python oder Anfänger in Programmierung im Allgemeinen.

00:03:13.460 --> 00:03:16.620
Das ist jeweils der erste und zweite Donnerstag im Monat.

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

00:03:22.540 --> 00:03:25.840
Und das machen wir jetzt seit drei Jahren.

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

00:03:27.080 --> 00:03:29.100
Ja, ich glaube, mittlerweile drei Jahre.

00:03:29.100 --> 00:03:30.280
Irgendwann im Sommer, ja.

00:03:30.280 --> 00:03:30.640
Ja.

00:03:30.640 --> 00:03:32.100
Ja.

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

00:03:33.860 --> 00:03:34.760
Ja, natürlich.

00:03:34.760 --> 00:03:35.360
Ja.

00:03:35.360 --> 00:03:37.880
Ich bin der Niklas, hallo.

00:03:37.880 --> 00:03:44.600
Wir haben das damals angefangen, ich glaube, irgendwie ein halbes Jahr, nachdem es den GameDev gab.

00:03:44.600 --> 00:03:52.380
Es gibt da gewisse personelle Überschreitungen mit Leuten, die dann halt nicht mehr die Zeit hatten, auch noch den Python-Foo viermal im Monat zu machen.

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

00:03:55.600 --> 00:04:12.520
Ja, vor allem hatten wir festgestellt, dass sich gerade Anfänger häufig erschlagen fühlen, wenn sie zum Python-Foo kommen und über viel komplexere Themen besprochen wird, als sie, die ihnen jetzt erstmal nichts sagen, weil sie gerade mit Python anfangen möchten.

00:04:12.520 --> 00:04:22.220
Und da dachten wir, dass eine Veranstaltung, die sich eben dediziert an die Anfänger wendet, wo man dann auch die blösesten Fragen stellen kann, doch eine ganz gute Sache wäre.

00:04:22.220 --> 00:04:24.480
Ja, da dachten wir, wenn jemand die Anfänger erschlägt, dann wir.

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

00:04:25.060 --> 00:04:30.120
Und wenn jemand blöde Fragen beantwortet, sind wir ja immer noch wie das.

00:04:30.120 --> 00:04:31.980
Wir stellen die auch meistens.

00:04:31.980 --> 00:04:32.280
Ja.

00:04:32.280 --> 00:04:33.880
Ja.

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

00:04:36.400 --> 00:04:46.200
Und ja, vielleicht können wir euch dann auch direkt mal auf dem Kalt- bzw. auf dem falschen Fuß erwischen, wenn wir euch fragen, was habt ihr denn in letzter Zeit so an Python-Neuigkeiten mitbekommen?

00:04:46.200 --> 00:04:52.060
Weil das wäre vielleicht auch ganz interessant, was da so, wenn man sich jetzt nicht irgendwie da bewusst für entscheidet, irgendwie diese...

00:04:52.060 --> 00:04:54.360
Den News da zu konsumieren, was dann da irgendwie hängen bleibt.

00:04:54.360 --> 00:05:00.120
Also ich lese ab und zu die Release-Notes zu neuen Python-Versionen, aber es gab jetzt schon ein halbes Jahr keine mehr.

00:05:00.120 --> 00:05:03.740
Eigentlich nicht so wirklich, nein.

00:05:03.740 --> 00:05:12.640
Ich glaube, das Letzte, was ich gelesen hatte, also hin und wieder bekomme ich halt von den neuen Releases was mit.

00:05:12.640 --> 00:05:20.120
Das Letzte, was ich mir angeschaut hatte, waren die Data-Classes, die jetzt in den neueren Python-Versionen vorkommen sollen.

00:05:20.120 --> 00:05:21.740
Die hatte ich mir einmal angepokert.

00:05:21.900 --> 00:05:27.040
Ja, die Python-News lese ich meistens als RSS-Feed.

00:05:27.040 --> 00:05:33.240
Da habe ich mir von Planet Python den RSS-Feed gezogen und kriege da ganz unterschiedliche Nachrichten jeweils.

00:05:33.240 --> 00:05:36.760
Das ist auch relativ interessant.

00:05:36.760 --> 00:05:44.740
Ich setze mir dann meistens einfach nur eine Flagge im RSS-Feed wieder, weil meistens komme ich dann nicht dazu, die Nachrichten komplett zu lesen.

00:05:44.740 --> 00:05:51.740
Ich habe nur die Kurzbeschreibung, aber ich finde, das ist ein sehr gutes Mittel, um News über Python zu bekommen.

00:05:51.740 --> 00:05:56.480
Ich habe meine RSS-Reader seit irgendwie drei Jahren nicht mehr aufgemacht.

00:05:56.480 --> 00:05:59.580
Eine Zehntausend Nachrichten.

00:05:59.580 --> 00:06:03.860
Das Letzte neue Feature von Python, das ich verwendet habe, war NameTupels, glaube ich.

00:06:03.860 --> 00:06:07.040
Das fand ich ganz cool, so als einfacher Klassenersatz.

00:06:07.040 --> 00:06:11.200
Es gibt noch einen coolen Newsletter für Python, ne?

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

00:06:12.720 --> 00:06:15.900
Ja, da stehen auch die Show-Notes dann vielleicht mal rein.

00:06:15.900 --> 00:06:17.300
Ja, der linkste finde ich auch interessant.

00:06:17.300 --> 00:06:18.700
Die Newsletter vielleicht mal reinfangen.

00:06:18.700 --> 00:06:19.640
Also es gibt ein paar.

00:06:19.640 --> 00:06:21.580
Ich habe irgendwie einen Awesome-Python, einen Python.

00:06:21.580 --> 00:06:22.460
Einen Python-Weekly.

00:06:22.460 --> 00:06:25.840
Ich habe auf GitHub die Trending-Repos abonniert.

00:06:25.840 --> 00:06:28.920
Das gibt es für familiäre Sprachen und unter anderem auch für Python.

00:06:28.920 --> 00:06:30.020
Oh, das ist ja super.

00:06:30.020 --> 00:06:30.520
Das kommt einmal die Woche.

00:06:30.520 --> 00:06:37.920
Das ist halt teilweise Sachen, die halt irgendwie nur zufällig in Python sind und nicht wirklich dafür relevant sind.

00:06:37.920 --> 00:06:40.020
Aber manchmal ist auch was Spannendes dabei.

00:06:40.020 --> 00:06:42.180
Ja, das klingt auf jeden Fall interessant.

00:06:42.180 --> 00:06:47.080
Ja, da können wir vielleicht einfach einen Punkt machen, wo wir so ein bisschen sammeln, wie man sich eigentlich da aktuell halten kann.

00:06:47.080 --> 00:06:50.960
Ja, also ich bin auch ein großer Fan von RSS und ich habe eigentlich auch irgendwie, ich verwende schon ganz lange,

00:06:51.420 --> 00:06:52.240
einen Feed-Reader.

00:06:52.240 --> 00:06:59.100
Bin dann, da irgendwie gab es, ganz am Anfang habe ich irgendwie Aggregator verwendet unter KDE.

00:06:59.100 --> 00:07:03.160
Und dann gab es aber den Google Reader und der war so gut.

00:07:03.160 --> 00:07:04.420
Den fand ich total toll.

00:07:04.420 --> 00:07:05.320
Den habe ich ganz lange verwendet.

00:07:05.320 --> 00:07:10.220
Ich habe ganz lange dieses Sharing-Feature verwendet, was auch viele andere irgendwie gerne benutzt haben.

00:07:10.220 --> 00:07:11.780
Und da gab es ganz tolle Sachen.

00:07:11.780 --> 00:07:16.880
Und das war irgendwie so ein, das war das einzige Mal, dass so Social Network für mich so ein bisschen funktioniert hat.

00:07:16.880 --> 00:07:20.020
Und dann hat Google den Reader eingestellt.

00:07:20.020 --> 00:07:20.980
Das war ganz furchtbar.

00:07:21.260 --> 00:07:25.740
Und jetzt habe ich zwar immer noch einen Feed-Reader, aber es ist irgendwie alles nicht mehr so das Gleiche.

00:07:25.740 --> 00:07:31.580
Und genau, ich habe da auch Planet Python und noch so ein paar Blogs von Leuten,

00:07:31.580 --> 00:07:38.100
die halt da an Python und Junkroom entwickeln, halt auch abonniert.

00:07:38.100 --> 00:07:43.260
Ja, genau.

00:07:43.260 --> 00:07:46.300
Ja, das mit den Dataclasses ist Python 3.7.

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

00:07:48.500 --> 00:07:49.680
Python 3.8 nochmal ein paar Ankündigungen.

00:07:49.680 --> 00:07:51.240
Genau, da gab es eine neue Alphabet.

00:07:51.240 --> 00:07:54.260
Und zwar gibt es da auch eine Syntaxänderung.

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

00:07:55.880 --> 00:08:10.280
War das das mit dem Doppelpunkt gleich, dass man in, wie war das, in der Deklaration von einer Weil-Schleife kann ich mir die Variable setzen, oder?

00:08:10.280 --> 00:08:13.080
Das war eine Zuweisung, die dann auch wieder direkt den Wert hat.

00:08:13.080 --> 00:08:17.940
Genau, also man macht eine Zuweisung und gleichzeitig hat die entweder true oder false.

00:08:17.940 --> 00:08:20.880
Es gab da auch irgendwie einen witzigen Namen für den Apparator.

00:08:21.080 --> 00:08:22.220
Ja, da kommen wir nochmal.

00:08:22.220 --> 00:08:23.280
Irgendwie nach einem Tier, ne?

00:08:23.280 --> 00:08:24.940
Walrus.

00:08:24.940 --> 00:08:25.800
Ja, genau.

00:08:25.800 --> 00:08:29.900
Ja, weil Augen und Zähne, ja.

00:08:29.900 --> 00:08:32.500
Das ist so ein bisschen wie dieser Turbo-Fisch, wenn du hast, ne?

00:08:32.500 --> 00:08:33.780
Turbo-Fisch.

00:08:33.780 --> 00:08:36.940
Das hatte ich auf Twitter, glaube ich, mitbekommen.

00:08:36.940 --> 00:08:39.080
Das hatte mir irgendwer retweetet.

00:08:39.080 --> 00:08:40.700
Das fand ich auch sehr interessant.

00:08:40.700 --> 00:08:42.060
Aber, ja.

00:08:42.060 --> 00:08:50.820
Ja, und genau, man kann sich damit halt, also man halt macht halt oft sowas, wie man holt irgendwas, einen Wert aus einem Dikt und dann muss man erstmal überprüfen.

00:08:51.060 --> 00:08:53.860
Ob das nicht ein Name ist, weil man weiß halt nicht, ob es...

00:08:53.860 --> 00:09:07.660
Und die Zeile kann man sich jetzt immer sparen und man schreibt dann halt direkt if irgendwie dann irgendwas Walrus Operator Dikt.getKey, dann macht man halt weiter, wenn es drin war und ansonsten...

00:09:07.660 --> 00:09:11.540
Ansonsten wäre sowas ja auch so ein Safe Navigation Operator nett.

00:09:11.540 --> 00:09:16.880
Es gibt ja Sprachen, da kannst du irgendwie Fragezeichen Punkt machen und die machen dann in den Zugriff nur, wenn das Objekt selber nicht null ist.

00:09:16.880 --> 00:09:19.000
Ein Safe Navigator, das musst du bitte kurz erläutern.

00:09:19.000 --> 00:09:20.960
Also es ist ja auch praktisch so,

00:09:21.020 --> 00:09:23.280
dass du irgendwie ein Objekt hast und es hat ein Attribut.

00:09:23.280 --> 00:09:24.740
Dann machst du irgendwie Objekt Punkt Attribut

00:09:24.740 --> 00:09:25.820
Punkt irgendwas.

00:09:25.820 --> 00:09:28.940
Und eigentlich musst du ja bei jedem dieser Schritte prüfen,

00:09:28.940 --> 00:09:31.240
ob das Attribut selber nicht null ist.

00:09:31.240 --> 00:09:32.660
Und dann kannst du ja nicht Punkt machen.

00:09:32.660 --> 00:09:35.160
Es gibt halt Sprachen, die haben so ein

00:09:35.160 --> 00:09:36.540
Syntax-Fragezeichen Punkt.

00:09:36.540 --> 00:09:38.840
Die macht halt den Zugriff nur, wenn das Objekt

00:09:38.840 --> 00:09:41.100
selber nicht null ist und ansonsten ist der Wert

00:09:41.100 --> 00:09:41.980
halt auch direkt wieder null.

00:09:41.980 --> 00:09:44.560
Das fände ich cool, kenne ich über Python nicht.

00:09:44.560 --> 00:09:46.840
Ja, und da hatten wir tatsächlich, ich weiß nicht, kennt ihr das?

00:09:46.840 --> 00:09:47.700
Es gibt eine

00:09:47.700 --> 00:09:50.980
Telegram-Channel zur Python User Group

00:09:50.980 --> 00:09:52.520
Düsseldorf, PyDDF.

00:09:52.520 --> 00:09:53.340
Nee, kenne ich nicht.

00:09:53.340 --> 00:09:54.380
Ah, ja.

00:09:54.380 --> 00:09:58.540
Die User Group, die kenne ich, da war ich ein paar Mal,

00:09:58.540 --> 00:10:00.600
aber den Telegram-Channel sagt mir nichts.

00:10:00.600 --> 00:10:02.460
Genau, es gab auch lange,

00:10:02.460 --> 00:10:04.880
oder es gibt immer noch eine Mailing-Liste, aber der Telegram-Channel

00:10:04.880 --> 00:10:06.920
ist tatsächlich was, was jetzt auch

00:10:06.920 --> 00:10:08.900
stärker genutzt wird. Und da gab es eine Diskussion

00:10:08.900 --> 00:10:10.500
genau darüber und Chesi, den wir

00:10:10.500 --> 00:10:13.020
als Expertengast von unserer Django-Folge

00:10:13.020 --> 00:10:14.840
da hatten, hat da auch irgendwie

00:10:14.840 --> 00:10:16.980
quasi, es gibt einen Python-Enhanced-Proposal,

00:10:16.980 --> 00:10:18.580
wo genau so eine Syntax mit einem Fragezeichen

00:10:18.580 --> 00:10:20.780
vorgeschlagen wird. Hat das dann halt auch

00:10:20.780 --> 00:10:22.220
irgendwie da mal vorgestellt und meinte so,

00:10:22.220 --> 00:10:24.680
das wäre doch eine tolle Idee. Und dann hat

00:10:24.680 --> 00:10:26.560
sich das aber relativ, also es war

00:10:26.560 --> 00:10:29.260
sehr kontrovers, sehr polarisierende

00:10:29.260 --> 00:10:31.060
Also ich habe es auch noch nie genutzt.

00:10:31.060 --> 00:10:32.720
Ich weiß nur, das existiert in anderen Sprachen.

00:10:32.720 --> 00:10:34.520
Ja. Ja, ich bin mal gespannt.

00:10:34.520 --> 00:10:36.260
Kann ja sein, dass es auch in Python irgendwann kommt.

00:10:36.260 --> 00:10:38.240
Äh, genau.

00:10:38.240 --> 00:10:39.960
Ja, es gibt noch mehr Neuigkeiten dann

00:10:39.960 --> 00:10:41.520
von dem Steering-Counter.

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

00:10:43.380 --> 00:10:46.400
Ja, genau. Ich habe das auch

00:10:46.400 --> 00:10:48.400
nicht so im Detail verfolgt,

00:10:48.400 --> 00:10:50.280
aber es ist halt so, dass Guido,

00:10:50.580 --> 00:10:51.560
ja sozusagen

00:10:51.560 --> 00:10:54.500
so einen unbegrenzten Urlaub

00:10:54.500 --> 00:10:55.440
genommen hat von seiner

00:10:55.440 --> 00:10:58.660
BFDL-Rolle und

00:10:58.660 --> 00:11:00.020
Guido das Hippo,

00:11:00.020 --> 00:11:02.260
also wo wir eben bei den Tieren waren, war ja auch das Hippo.

00:11:02.260 --> 00:11:03.880
Weitere Gehör, ob ich gar nicht so gut bezahlt ist,

00:11:03.880 --> 00:11:06.340
ehrlich gesagt, aber genau, der

00:11:06.340 --> 00:11:08.600
der, äh,

00:11:08.600 --> 00:11:09.800
ja, ähm,

00:11:09.800 --> 00:11:12.260
und jetzt gibt es halt ein, ein, ein,

00:11:12.260 --> 00:11:14.240
ist ein Steering-Council gewählt worden,

00:11:14.240 --> 00:11:16.160
der halt dann in, äh, wenn

00:11:16.160 --> 00:11:18.680
quasi eine Entscheidung benötigt wird

00:11:18.680 --> 00:11:20.460
und das sonst niemand tun will und so und man dann halt,

00:11:20.460 --> 00:11:20.560
äh,

00:11:20.560 --> 00:11:22.400
wie ein letztes, äh, jemand irgendwie

00:11:22.400 --> 00:11:24.600
das letzte Wort haben muss, dann gibt es halt

00:11:24.600 --> 00:11:26.700
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:29.640 --> 00:11:32.740
und, äh, genau, das werden wir auch verlinken,

00:11:32.740 --> 00:11:34.640
kann man sich ja mal angucken, ist alles nette Leute

00:11:34.640 --> 00:11:36.180
insofern, ja, sieht gut aus.

00:11:36.180 --> 00:11:38.320
Genau, und es gab noch eine nächste Neuerung, zwar gibt es jetzt

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

00:11:40.100 --> 00:11:42.680
Äh, nee, das gibt es auch erst

00:11:42.680 --> 00:11:44.580
mit, äh, Python 3.8, genau, ja,

00:11:44.580 --> 00:11:46.800
mhm, ja, ja, ja, stimmt, das war auch in der Alpha-Release

00:11:46.800 --> 00:11:48.560
drin, äh, Python Local, äh,

00:11:48.560 --> 00:11:50.300
ähm, ja, Pip Local,

00:11:50.540 --> 00:11:52.560
äh, gibt es so ein Verzeichnis

00:11:52.560 --> 00:11:54.300
dann, ui, jetzt muss ich mich wieder versuchen,

00:11:54.300 --> 00:11:55.780
daran zu erinnern, was das eigentlich genau war,

00:11:55.780 --> 00:11:58.040
das ist quasi dann so ähnlich wie bei, bei, bei JavaScript

00:11:58.040 --> 00:12:00.480
und, äh, dass man halt die Pakete,

00:12:00.480 --> 00:12:02.460
die man installiert, halt in dem Verzeichnis, in einem speziellen

00:12:02.460 --> 00:12:04.680
Verzeichnis direkt hat und,

00:12:04.680 --> 00:12:06.580
ähm, dann, äh,

00:12:06.580 --> 00:12:08.100
irgendwie drumrum kommt, sich mit diesem ganzen

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

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

00:12:11.500 --> 00:12:14.320
man, man konnte doch bisher auch schon bei Pip

00:12:14.320 --> 00:12:16.120
Install irgendwie ein Target angeben

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

00:12:17.780 --> 00:12:20.320
Und das ist dann, glaube ich, einfach ein,

00:12:20.520 --> 00:12:22.040
das dann, dann heißt dann einfach Pip Local

00:12:22.040 --> 00:12:24.120
und dann installiert es halt in das Verzeichnis rein

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

00:12:25.700 --> 00:12:27.740
Genau, das ist eigentlich... Das ist cool.

00:12:27.740 --> 00:12:29.800
Ja, auch gar nicht so schlecht.

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

00:12:32.240 --> 00:12:34.400
komplett ersetzen wird dann, aber, äh,

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

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

00:12:38.180 --> 00:12:40.000
Das würde bestimmt das Problem lösen.

00:12:40.000 --> 00:12:41.440
Das Beste ist natürlich Pip-Env.

00:12:41.440 --> 00:12:44.940
Ja, Pip-Env ist auch voll, das ist schon gut.

00:12:44.940 --> 00:12:47.680
Ja, aber, genau, zu sowas,

00:12:47.680 --> 00:12:50.500
Virtual, äh, Isolierung, äh, Isolation,

00:12:50.500 --> 00:12:53.080
Virtual-Envs, Docker, diesen ganzen Kram,

00:12:53.080 --> 00:12:54.680
wie kriege ich eigentlich unterschiedliche

00:12:54.680 --> 00:12:56.740
Projekte auf einer Maschine irgendwie, äh,

00:12:56.740 --> 00:12:58.720
so installiert, dass sie sich nicht

00:12:58.720 --> 00:13:00.300
gegenseitig kaputt machen, dazu müssen wir auch mal...

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

00:13:01.420 --> 00:13:03.560
Ja.

00:13:03.560 --> 00:13:06.480
Ja, dann fangen wir doch

00:13:06.480 --> 00:13:08.000
jetzt am besten mit unserem Thema an, oder?

00:13:08.000 --> 00:13:08.500
Ja.

00:13:08.500 --> 00:13:18.060
Ja, ich glaube, ähm,

00:13:18.060 --> 00:13:19.520
das hängt

00:13:20.480 --> 00:13:22.000
von einem selber ab. Also,

00:13:22.000 --> 00:13:24.580
es gibt verschiedene Arten, wie man

00:13:24.580 --> 00:13:26.760
Python lernen kann, und

00:13:26.760 --> 00:13:27.680
ich würde sagen,

00:13:27.680 --> 00:13:30.800
da muss man

00:13:30.800 --> 00:13:32.100
so für sich die beste

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

00:13:34.700 --> 00:13:36.760
Die Frage ist ja auch, ähm, kann man

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

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

00:13:40.200 --> 00:13:42.500
was Objektorientierung und sowas angeht? Oder muss man

00:13:42.500 --> 00:13:43.560
das auch noch erstmal lernen?

00:13:43.560 --> 00:13:46.540
Ja, und, ähm, wenn man

00:13:46.540 --> 00:13:48.520
schon eine andere Programmiersprache hat, gibt es

00:13:48.520 --> 00:13:50.320
natürlich, sind gewisse

00:13:50.320 --> 00:13:52.240
Einstiegshürden einfach nicht mehr da. Also,

00:13:52.240 --> 00:13:54.380
wenn ich schon mal im Texteditor

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

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

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

00:13:59.920 --> 00:14:02.120
Oder wenn ich schon mal eine IDE bedient habe,

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

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

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

00:14:08.420 --> 00:14:10.700
mit den, ähm, Kommandostrukturen.

00:14:10.700 --> 00:14:12.420
Wenn ich, äh, eine IF-Bedingung

00:14:12.420 --> 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.120 --> 00:14:18.700
Wenn ich schon mal mit einer, ähm,

00:14:18.700 --> 00:14:20.300
stark objektorientierten Programmierung

00:14:20.300 --> 00:14:22.180
in der Programmiersprache gearbeitet habe, muss man mir

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

00:14:23.880 --> 00:14:26.040
Also, da kommt es,

00:14:26.040 --> 00:14:28.620
gibt es dann Einstiegshürden, je nachdem,

00:14:28.620 --> 00:14:29.840
ob ich mich schon mal mit einer

00:14:29.840 --> 00:14:32.480
Programmiersprache beschäftigt habe,

00:14:32.480 --> 00:14:34.220
eventuell sogar mit einer, die

00:14:34.220 --> 00:14:35.440
Python sehr ähnlich ist.

00:14:35.440 --> 00:14:38.240
Ansonsten sind halt so Sachen wie, wie irgendwie, äh,

00:14:38.240 --> 00:14:39.820
Namespaces oder dynamische

00:14:39.820 --> 00:14:41.980
Typisierung vielleicht eventuell sogar einfacher zu lernen,

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

00:14:43.620 --> 00:14:46.200
Ja, das heißt, wenn du

00:14:46.200 --> 00:14:48.000
nicht gewohnt bist, dass du

00:14:48.000 --> 00:14:50.040
deine Variable in festen Typen

00:14:50.040 --> 00:14:51.800
hat, äh, ja, dann

00:14:51.800 --> 00:14:53.720
könnte es sogar einfacher sein.

00:14:53.720 --> 00:14:55.860
Ähm, an der Stelle bietet

00:14:55.860 --> 00:14:58.240
Python natürlich einen einfachen Einstieg,

00:14:58.240 --> 00:15:00.320
weil, ähm,

00:15:00.320 --> 00:15:02.220
es eben eine dynamische, strenge

00:15:02.220 --> 00:15:03.280
Typisierung bietet.

00:15:03.280 --> 00:15:05.120
Ähm, ja.

00:15:05.120 --> 00:15:07.740
Ja, ich hab so die, die hab ich gemacht, so auf, auf

00:15:07.740 --> 00:15:09.660
Hackathons oder so, wo ich dann irgendwie,

00:15:09.660 --> 00:15:12.120
äh, Leute hatte, die dann

00:15:12.120 --> 00:15:14.020
halt sehr, aus sehr unterschiedlichen Bereichen

00:15:14.020 --> 00:15:16.020
kamen, aus sehr unterschiedlichem Wissensstand hatten

00:15:16.020 --> 00:15:17.860
und dann hat man versucht, irgendwie so ein Projekt zu machen

00:15:17.860 --> 00:15:20.020
mit denen und dann, äh,

00:15:20.020 --> 00:15:22.320
ähm, äh, äh, ja, genau,

00:15:22.320 --> 00:15:24.040
versucht man halt einfach nur, irgendwie das

00:15:24.040 --> 00:15:25.920
Projekt zu bootstrappen, das heißt,

00:15:25.920 --> 00:15:27.840
irgendwie, die müssen irgendwie Python installieren, dann

00:15:27.840 --> 00:15:29.820
irgendwie, äh, irgendwas aus Git ziehen,

00:15:29.820 --> 00:15:32.040
dann Virtual Env erzeugen, dann irgendwie

00:15:32.040 --> 00:15:34.220
die Abhängigkeiten installieren. Und dann sind zwei Tage rum.

00:15:34.220 --> 00:15:35.660
Und, genau, und das, ja,

00:15:35.660 --> 00:15:37.920
das ist teilweise, weil, was mir dann immer passiert,

00:15:37.920 --> 00:15:39.840
oder die schlimmsten Fälle sind immer so, ja, okay,

00:15:39.840 --> 00:15:41.840
Python installiert, ja, aber das ist mein Firmenrechner,

00:15:41.840 --> 00:15:43.740
da, da ist ein Windows drauf und ich, äh,

00:15:43.740 --> 00:15:46.100
ich kann da auch eigentlich nichts installieren, so, dann ist schon mal so,

00:15:46.100 --> 00:15:48.200
okay, dann ist man halt vielleicht nach einer Stunde

00:15:48.200 --> 00:15:49.860
irgendwie so, dass man eine Python-Stelle hat, aber,

00:15:49.860 --> 00:15:50.000
äh,

00:15:50.020 --> 00:15:52.380
ähm, wie, wie geht ihr damit um?

00:15:52.380 --> 00:15:54.300
Oder macht ihr irgendwie, äh,

00:15:54.300 --> 00:15:56.180
Ansagen, was, was schon vorausgesetzt

00:15:56.180 --> 00:15:57.960
wird, wenn man überhaupt da hinkommt, oder? Also, um

00:15:57.960 --> 00:16:00.240
den ganzen Kram drücken wir uns ein bisschen, ähm,

00:16:00.240 --> 00:16:01.820
andererseits, wir verwenden

00:16:01.820 --> 00:16:03.980
zumindest am Anfang nichts, was irgendwie

00:16:03.980 --> 00:16:06.120
extra Module braucht, also man braucht einfach

00:16:06.120 --> 00:16:08.000
nur einen Python-Interpreter und

00:16:08.000 --> 00:16:09.980
viele Systeme, irgendwie, weil die OSX

00:16:09.980 --> 00:16:11.940
oder die meisten Linux-Distros haben ja einen schon dabei.

00:16:11.940 --> 00:16:13.740
Ja. Ähm,

00:16:13.740 --> 00:16:16.140
und wenn jemand einen Windows-Rechner mitbringt,

00:16:16.140 --> 00:16:17.900
haben wir so die Hoffnung, dass die Person weiß,

00:16:17.900 --> 00:16:19.260
wie man da auch Programme installiert.

00:16:20.020 --> 00:16:21.100
Weiß ich nicht.

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

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

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

00:16:27.400 --> 00:16:29.420
Es gibt ja irgendwie Zeiten Anywhere oder sowas.

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

00:16:31.460 --> 00:16:33.640
Außerdem haben wir, glaube ich,

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

00:16:35.860 --> 00:16:37.680
wenn man zum Python-Vo kommt,

00:16:37.680 --> 00:16:39.680
einen Rechner mitbringt und, äh,

00:16:39.680 --> 00:16:41.080
auf diesem Rechner, genau.

00:16:41.080 --> 00:16:43.140
Ja. Ähm.

00:16:43.140 --> 00:16:45.820
Können wir vielleicht ein Raspberry ausleihen oder sowas?

00:16:45.820 --> 00:16:47.600
Ja. Oder, ähm,

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

00:16:49.660 --> 00:16:50.980
Und wenn du ein Handy neuer als

00:16:50.980 --> 00:16:53.500
N105 hast, kannst du da Python drauf installieren. Problemlos.

00:16:53.500 --> 00:16:55.240
Gut, das Tippen ist ein bisschen ekelhaft,

00:16:55.240 --> 00:16:56.100
das Smartphone.

00:16:56.100 --> 00:16:58.980
Ja gut, Bluetooth-Tastatur. Oder sowas, ja.

00:16:58.980 --> 00:17:01.240
Ähm, ja.

00:17:01.240 --> 00:17:03.140
Meistens haben wir ja sogar, äh,

00:17:03.140 --> 00:17:05.300
Linux-User, da, äh,

00:17:05.300 --> 00:17:07.500
Windows-User sind natürlich,

00:17:07.500 --> 00:17:09.200
wenn's um die Installation von

00:17:09.200 --> 00:17:11.000
Paketen geht, immer ein bisschen fummelig.

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

00:17:12.880 --> 00:17:15.500
Ja. Also gerade so Sachen wie,

00:17:15.500 --> 00:17:17.340
irgendwie, installier das mal

00:17:17.340 --> 00:17:19.640
von Pip oder so, das machen wir nicht am ersten Abend.

00:17:19.660 --> 00:17:21.660
Genau. Das, ähm,

00:17:21.660 --> 00:17:23.660
das ist einerseits natürlich da, um

00:17:23.660 --> 00:17:25.660
die Einstiegshürden zu nehmen,

00:17:25.660 --> 00:17:27.660
denn so können wir das auch

00:17:27.660 --> 00:17:29.660
auf Windows, MacOS oder Linux

00:17:29.660 --> 00:17:31.660
machen, weil wir dann eben nur

00:17:31.660 --> 00:17:33.660
die Standard-Bibliothek nehmen und einfach nur

00:17:33.660 --> 00:17:35.660
einen Texteditor und einen

00:17:35.660 --> 00:17:37.660
Python-Interpreter brauchen.

00:17:37.660 --> 00:17:39.660
Wir hatten witzigerweise noch niemanden, der dann irgendwie mit

00:17:39.660 --> 00:17:41.660
React oder BSD oder sowas aufgetaucht ist.

00:17:41.660 --> 00:17:45.660
Ich glaube, das brauchen wir auch nicht.

00:17:45.660 --> 00:17:49.660
Ja, okay. Aber das ist ja schon mal, das ist ja schon mal interessant.

00:17:49.660 --> 00:17:51.660
Ihr verwendet doch einfach die ganz normale, äh,

00:17:51.660 --> 00:17:53.660
ja, Python, äh,

00:17:53.660 --> 00:17:55.660
Python-Reppel oder was kann ich

00:17:55.660 --> 00:17:57.660
mir das, äh, also, äh...

00:17:57.660 --> 00:17:59.660
Also wir zeigen die Beispiele meistens entweder im

00:17:59.660 --> 00:18:01.660
Texteditor oder irgendwie in I-Python,

00:18:01.660 --> 00:18:03.660
B-Python, aber das braucht man ja

00:18:03.660 --> 00:18:05.660
nicht, um das nachzuprogrammieren. Das sieht dann halt nicht so

00:18:05.660 --> 00:18:07.660
schön aus. Aber, ähm,

00:18:07.660 --> 00:18:09.660
ja, und

00:18:09.660 --> 00:18:11.660
ansonsten, wir haben halt auch nicht so

00:18:11.660 --> 00:18:13.660
viele Anforderungen. Also Beispiele laufen auf allen

00:18:13.660 --> 00:18:15.660
Versionen, die neuer sind als 3.4 oder so.

00:18:15.660 --> 00:18:17.660
Ja. Und das

00:18:17.660 --> 00:18:19.660
hat ja sogar der wie ein neues Table oder sowas.

00:18:19.660 --> 00:18:21.660
Ist ja kein Problem.

00:18:21.660 --> 00:18:23.660
Das ist ja auch ne, ähm, Vorteil

00:18:23.660 --> 00:18:25.660
der Python-Standard-Library, dass

00:18:25.660 --> 00:18:27.660
die eben so umfangreich ist, dass man

00:18:27.660 --> 00:18:29.660
die meisten Sachen gar nicht nachinstallieren muss, sondern

00:18:29.660 --> 00:18:31.660
so viel schon dabei ist,

00:18:31.660 --> 00:18:33.660
dass man für ein

00:18:33.660 --> 00:18:35.660
grundlegendes Verständnis der Sprache

00:18:35.660 --> 00:18:37.660
brauchst du eben nur die

00:18:37.660 --> 00:18:39.660
Standard-Library. Wenn das dann ins, äh,

00:18:39.660 --> 00:18:41.660
komplexere Sachen geht, also

00:18:41.660 --> 00:18:43.660
wo du wirklich konkret was machen willst, da

00:18:43.660 --> 00:18:45.660
installierst du dir dann ein, äh,

00:18:45.660 --> 00:18:47.660
eine Library, aber...

00:18:47.660 --> 00:18:49.660
Request ist, glaube ich, so die erste, die wir dann

00:18:49.660 --> 00:18:51.660
mehr zeigen. Ja, genau.

00:18:51.660 --> 00:18:53.660
Stimmt, ja. Und ein QPy.

00:18:53.660 --> 00:18:55.660
Stimmt. Ja, aber das ist, äh,

00:18:55.660 --> 00:18:57.660
eine Datei mit 56

00:18:57.660 --> 00:18:59.660
Teilen, also ich glaube, die muss man nicht installieren,

00:18:59.660 --> 00:19:01.660
die kann man in Notfall runterladen. Genau.

00:19:01.660 --> 00:19:03.660
Mhm. Die könnte man wahrscheinlich sogar

00:19:03.660 --> 00:19:05.660
abtippen. Äh, äh, was, was war das

00:19:05.660 --> 00:19:07.660
mal genau? Ich hab das, glaube ich, grad nicht so richtig verstanden. Ähm, QPy,

00:19:07.660 --> 00:19:09.660
ähm... Kenn ich gar nicht. Es ist ganz, äh,

00:19:09.660 --> 00:19:11.660
schön, um eine klare Statusmeldung auszugeben.

00:19:11.660 --> 00:19:13.660
Das macht dann halt irgendwie, äh, es gibt QPy

00:19:13.660 --> 00:19:15.660
.info und dann bekommst du irgendwie so einen, so einen

00:19:15.660 --> 00:19:17.660
blauen Kasten links und eine Welle und dann

00:19:17.660 --> 00:19:19.660
kriegst du den Text. Ah, wow, okay. Farben im, äh,

00:19:19.660 --> 00:19:21.660
Terminal. Mhm. Und, ähm,

00:19:21.660 --> 00:19:23.660
es funktioniert auf allen Systemen, also Windows

00:19:23.660 --> 00:19:25.660
ist nur neuer als 10, aber, äh,

00:19:25.660 --> 00:19:27.660
ansonsten... Und es ist halt

00:19:27.660 --> 00:19:29.660
eine wirklich kleine Datei. Ähm,

00:19:29.660 --> 00:19:31.660
verzeichnet dir mal die Fletchen, die machen

00:19:31.660 --> 00:19:33.660
ekelhafte Sachen mit, mit Dictionaries und Lambdas

00:19:33.660 --> 00:19:35.660
und sowas, aber, ähm, das muss man

00:19:35.660 --> 00:19:37.660
ja nicht wissen. Ja. Also,

00:19:37.660 --> 00:19:39.660
die...

00:19:39.660 --> 00:19:41.660
das Github-Repo da ist, äh, sehr

00:19:41.660 --> 00:19:43.660
erhellend, weil dann auch... Das Readme ist sehr gut.

00:19:43.660 --> 00:19:45.660
Ja, das Readme ist sehr gut, weil da,

00:19:45.660 --> 00:19:47.660
äh, der Entwickler da

00:19:47.660 --> 00:19:49.660
vergleicht, wie schwierig es ist,

00:19:49.660 --> 00:19:51.660
äh, mit anderen, äh,

00:19:51.660 --> 00:19:53.660
Bibliotheken Farbe

00:19:53.660 --> 00:19:55.660
ins Terminal zu bringen und wie einfach das mit

00:19:55.660 --> 00:19:57.660
UPy ist. Okay, diese Tabelle, wo nur

00:19:57.660 --> 00:19:59.660
ich UPy die höchste Punktzahl erreicht.

00:19:59.660 --> 00:20:01.660
Ja, ja. Ein bisschen

00:20:01.660 --> 00:20:03.660
Eigenwerbung soll ihm ja auch gegönnt

00:20:03.660 --> 00:20:05.660
sein. Ich verwechsel das nur

00:20:05.660 --> 00:20:07.660
leider immer mit, äh, Python

00:20:07.660 --> 00:20:09.660
Hui, ne? Genau.

00:20:09.660 --> 00:20:11.660
Ja, UPy und Python Hui

00:20:11.660 --> 00:20:13.660
sind zwei verschiedene Dinge wichtig

00:20:13.660 --> 00:20:15.660
zu wissen. Wir installieren immer

00:20:15.660 --> 00:20:17.660
die falschen am Anfang, ne?

00:20:17.660 --> 00:20:19.660
Wie habt ihr beide denn Python gelernt?

00:20:19.660 --> 00:20:21.660
Oh, ich weiß

00:20:21.660 --> 00:20:23.660
ehrlich gesagt nicht mehr. Ich glaube, ähm,

00:20:23.660 --> 00:20:25.660
ich hab früher mit nem Freund

00:20:25.660 --> 00:20:27.660
zusammen PHP angefangen.

00:20:27.660 --> 00:20:29.660
Irgendwann an Grundschule. Und dann fanden

00:20:29.660 --> 00:20:31.660
wir irgendwann PHP nicht mehr cool.

00:20:31.660 --> 00:20:33.660
Und dann ist er zu

00:20:33.660 --> 00:20:35.660
Perl gewechselt und ich fand Perl auch nicht cool.

00:20:35.660 --> 00:20:37.660
Dann hab ich mir angeschaut, was gibt's noch für Ansprachen.

00:20:37.660 --> 00:20:39.660
Dann hab ich mit Python angefangen. Hat er festgestellt,

00:20:39.660 --> 00:20:41.660
Python fängt auch mit P an. Ja, genau.

00:20:41.660 --> 00:20:43.660
PHP, Perl, Python ist eh fast das gleiche.

00:20:43.660 --> 00:20:45.660
Ja. Ähm,

00:20:45.660 --> 00:20:47.660
ja, bei mir war das deutlich später als

00:20:47.660 --> 00:20:49.660
die Grundschule. Ich weiß noch, ich hatte

00:20:49.660 --> 00:20:51.660
in der achten Klasse

00:20:51.660 --> 00:20:53.660
oder neunten Klasse, ähm,

00:20:53.660 --> 00:20:55.660
Wahlpflicht Fach Informatik.

00:20:55.660 --> 00:20:57.660
Ah, ja. Und, äh,

00:20:57.660 --> 00:20:59.660
in der Schule, äh, hatten wir dann in der

00:20:59.660 --> 00:21:01.660
achten Klasse Word und Excel und in der

00:21:01.660 --> 00:21:03.660
neunten Klasse haben wir dann auch richtig programmiert

00:21:03.660 --> 00:21:05.660
mit Turbo Pascal. Und, äh,

00:21:05.660 --> 00:21:07.660
Wir hatten damals schon PHP in der Schule.

00:21:07.660 --> 00:21:09.660
Pascal muss ich auch noch mal.

00:21:09.660 --> 00:21:11.660
Eigentlich hat es mir Spaß gemacht mit

00:21:11.660 --> 00:21:13.660
Turbo Pascal zu programmieren, so viel

00:21:13.660 --> 00:21:15.660
Spaß man eben damit haben kann.

00:21:15.660 --> 00:21:17.660
Oh, doch, das war, das war toll.

00:21:17.660 --> 00:21:19.660
Ich weiß jetzt nicht, welche Version

00:21:19.660 --> 00:21:21.660
ihr da verwendet habt, aber ich hatte, ich hatte

00:21:21.660 --> 00:21:23.660
da mal, oh, ähm, ja.

00:21:23.660 --> 00:21:25.660
Naja, alles gut. Dein Handy.

00:21:25.660 --> 00:21:27.660
Ach ja, das ist in Ordnung, das macht ja nix.

00:21:27.660 --> 00:21:29.660
Der P war lecker.

00:21:29.660 --> 00:21:31.660
Ja.

00:21:31.660 --> 00:21:33.660
Ähm, danke, Tja. Also, äh, genau.

00:21:33.660 --> 00:21:35.660
Damals, damals war das irgendwie

00:21:35.660 --> 00:21:37.660
Turbo Pascal 5.5 und das lief alles,

00:21:37.660 --> 00:21:39.660
äh, sozusagen auch irgendwie

00:21:39.660 --> 00:21:41.660
in einer Shell, äh, oder

00:21:41.660 --> 00:21:43.660
sozusagen auf der, auf der MS-DOS-Kommandozeile.

00:21:43.660 --> 00:21:45.660
Und das war als IDE,

00:21:45.660 --> 00:21:47.660
eigentlich tatsächlich ziemlich, ziemlich klasse.

00:21:47.660 --> 00:21:49.660
Wenn man irgendwie auf F9 gedrückt hat, dann hat das irgendwie sofort

00:21:49.660 --> 00:21:51.660
kompiliert und es ausgeführt und man konnte

00:21:51.660 --> 00:21:53.660
zum, zum Debugger durch, durchsteppen und so.

00:21:53.660 --> 00:21:55.660
Das war, ja, aber, äh,

00:21:55.660 --> 00:21:57.660
keine Ahnung, wie das, bei euch war das dann wahrscheinlich schon

00:21:57.660 --> 00:21:59.660
Windows oder so, oder? Ja, ich glaube, wir hatten da

00:21:59.660 --> 00:22:01.660
eine, ähm, Free Pascal.

00:22:01.660 --> 00:22:03.660
Das war so ein bisschen wie

00:22:03.660 --> 00:22:05.660
Python Idle, nur ich fand's halt

00:22:05.660 --> 00:22:07.660
sau anstrengend mit

00:22:07.660 --> 00:22:09.660
Turbo Pascal zu programmieren.

00:22:09.660 --> 00:22:11.660
Und irgendwann war die 9. Klasse dann

00:22:11.660 --> 00:22:13.660
fertig und ich glaube, so zu den

00:22:13.660 --> 00:22:15.660
Sommerferien fing ja im Chaosdorf das

00:22:15.660 --> 00:22:17.660
Python-Foo an, weil das bekam halt,

00:22:17.660 --> 00:22:19.660
das Chaosdorf bekam halt neue Räume.

00:22:19.660 --> 00:22:21.660
Ach, du hast die alten Räume noch gesehen? Äh,

00:22:21.660 --> 00:22:23.660
jaja. Oh. Und, äh, da

00:22:23.660 --> 00:22:25.660
fing das Python-Foo dann auch

00:22:25.660 --> 00:22:27.660
komplett im Renovierungsmodus mit, ähm,

00:22:27.660 --> 00:22:29.660
ähm, ja. Umzug auf Python 3.

00:22:29.660 --> 00:22:31.660
Genau.

00:22:31.660 --> 00:22:33.660
Man könnte sagen, es lag am Umzug

00:22:33.660 --> 00:22:35.660
auf Python 3, aber nein, da wurde

00:22:35.660 --> 00:22:37.660
grad das Chaosdorf umgebaut. Und

00:22:37.660 --> 00:22:39.660
ja, da fing dann das, äh, Python-Foo

00:22:39.660 --> 00:22:41.660
an. Und da ich halt eine

00:22:41.660 --> 00:22:43.660
etwas modernere Programmiersprache lernen

00:22:43.660 --> 00:22:45.660
wollte, äh, ja, hab ich dann da

00:22:45.660 --> 00:22:47.660
angefangen. Dann

00:22:47.660 --> 00:22:49.660
hab ich mich zwei Jahre

00:22:49.660 --> 00:22:51.660
relativ intensiv mit Python beschäftigt.

00:22:51.660 --> 00:22:53.660
Bin auch so ungefähr bis zur

00:22:53.660 --> 00:22:55.660
Objektorientierung bekommen.

00:22:55.660 --> 00:22:57.660
Die war mir dann aber zu kompliziert und, äh,

00:22:57.660 --> 00:22:59.660
bin bei funktionaler Programmierung geblieben.

00:22:59.660 --> 00:23:01.660
Ja, und dann... Ja, Objektorientierung

00:23:01.660 --> 00:23:03.660
hab ich auch nie wirklich verstanden, dass ich

00:23:03.660 --> 00:23:05.660
zum Python-Foo gekommen bin. Ja.

00:23:05.660 --> 00:23:07.660
Später hab ich dann wieder eingesetzt und, ja,

00:23:07.660 --> 00:23:09.660
seitdem beschäftige ich mich damit hobbymäßig.

00:23:09.660 --> 00:23:11.660
Hm.

00:23:11.660 --> 00:23:13.660
Und das wohl wann? Naja,

00:23:13.660 --> 00:23:15.660
weil... Ihr Geld bekommt man dafür nicht,

00:23:15.660 --> 00:23:17.660
hehehe.

00:23:17.660 --> 00:23:19.660
Ja.

00:23:19.660 --> 00:23:21.660
Naja, aber, äh,

00:23:21.660 --> 00:23:23.660
ich, ich mein, habt, ihr habt ja dann wahrscheinlich

00:23:23.660 --> 00:23:25.660
auch schon ne, ne Menge Leute, äh,

00:23:25.660 --> 00:23:27.660
sozusagen kommen und gehen sehen. Gibt's denn irgendwie

00:23:27.660 --> 00:23:29.660
welche, die dann irgendwann mal, äh,

00:23:29.660 --> 00:23:31.660
dazugestoßen sind und dann halt länger dabei geblieben sind?

00:23:31.660 --> 00:23:33.660
Ihr verfolgt ja wahrscheinlich auch, was dann so ein bisschen

00:23:33.660 --> 00:23:35.660
mit den Leuten passiert. Äh, ist das,

00:23:35.660 --> 00:23:37.660
ist das eher ne Sache, die einen dann motiviert, oder

00:23:37.660 --> 00:23:39.660
ist es deprimierend, dass alle Leute dann doch wieder irgendwann

00:23:39.660 --> 00:23:41.660
aufhören und verschwinden, oder?

00:23:41.660 --> 00:23:43.660
Der Schweiner davon sitzt ja hier.

00:23:43.660 --> 00:23:45.660
Ja. Ups.

00:23:45.660 --> 00:23:47.660
Ich muss jetzt überlegen, wer.

00:23:47.660 --> 00:23:49.660
Ähm. Wie, wie, wie sind

00:23:49.660 --> 00:23:51.660
meistens da? Ja, ja, ähm,

00:23:51.660 --> 00:23:53.660
ja, ich glaub,

00:23:53.660 --> 00:23:55.660
ein paar Leute sind

00:23:55.660 --> 00:23:57.660
tatsächlich zum

00:23:57.660 --> 00:23:59.660
Python-Foo hinzugekommen.

00:23:59.660 --> 00:24:01.660
Hm. Aber meistens hatten die

00:24:01.660 --> 00:24:03.660
schon ein bisschen, äh, Background

00:24:03.660 --> 00:24:05.660
Python-technisch. Hm. Es gibt halt Leute,

00:24:05.660 --> 00:24:07.660
die kommen einmal, es gibt Leute, die kommen zweimal.

00:24:07.660 --> 00:24:09.660
Und es gibt Leute, die kommen immer

00:24:09.660 --> 00:24:11.660
wieder. Genau.

00:24:11.660 --> 00:24:13.660
Ja. Ähm, das ist, glaub ich, auch so ne

00:24:13.660 --> 00:24:15.660
Schwierigkeit von dem Termin, dass wir eh

00:24:15.660 --> 00:24:16.860
Die ersten beiden Donnerstage.

00:24:16.890 --> 00:24:20.030
im Monat haben und dann ist nach dem zweiten Donnerstag wieder ein Monat dazwischen.

00:24:20.030 --> 00:24:21.770
Da haben sie wieder vergessen, da kommen sie nicht mehr.

00:24:21.770 --> 00:24:22.730
Da haben sie wieder vergessen.

00:24:22.730 --> 00:24:27.870
Da wäre, glaube ich, tatsächlich wöchentlich, oder wie zwei wöchentlich oder so was, alle

00:24:27.870 --> 00:24:32.850
zwei Wochen jedenfalls ein regelmäßigeres Treffen, glaube ich, sinnvoller.

00:24:32.850 --> 00:24:36.590
Wie oft habt ihr denn schon die erste Lektion Leuten geteilt?

00:24:36.590 --> 00:24:39.830
Die erste können wir am besten, weil wir es am häufigsten getan haben.

00:24:39.830 --> 00:24:45.270
Also das ist natürlich bei uns auch ein, ja, das wollte ich progress sagen.

00:24:45.270 --> 00:24:49.110
Es war mal eine sehr schöne E-Mail geschrieben, warum wir alles zu schnell machen.

00:24:49.110 --> 00:24:51.510
Auf die wir auch nicht geantwortet haben, weil wir sind super.

00:24:51.510 --> 00:24:53.050
Ich fand die nicht so schnell.

00:24:53.050 --> 00:24:58.250
Ja, also die erste Lektion, ich glaube, 20 Mal haben wir die bestimmt schon gemacht.

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

00:24:59.370 --> 00:25:05.270
Ich habe jetzt grob im Kopf überschlagen, aber tatsächlich ist das bei uns natürlich

00:25:05.270 --> 00:25:09.290
auch ein steter Vorgang, dass wir uns immer wieder verbessern.

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

00:25:10.450 --> 00:25:14.550
Wir haben die Beispiele und auch die Hinweise ja auch so ins Getriebe.

00:25:14.710 --> 00:25:16.550
Und da kann man sehen, was wir geändert haben.

00:25:16.550 --> 00:25:19.130
Könnt ihr einmal kurz die Adresse noch mal?

00:25:19.130 --> 00:25:22.370
Wir diktieren, könnt ihr die nicht einfach?

00:25:22.370 --> 00:25:23.330
Ja, ja, doch, doch, doch, klar.

00:25:23.330 --> 00:25:24.130
Die fangen wir in die Show Notes.

00:25:24.130 --> 00:25:25.250
Python for Light.

00:25:25.250 --> 00:25:27.070
Ihr findet das Repo in den Show Notes.

00:25:27.070 --> 00:25:32.830
Ja, ich glaube, das ist auch schon in der ersten Folge oder?

00:25:32.830 --> 00:25:37.310
Aber das ist ja schon, wenn man das ein paar Mal gemacht wird, dann ist das dann immer polierter.

00:25:37.310 --> 00:25:40.970
Habt ihr mal darüber nachgedacht, das irgendwie, keine Ahnung, irgendwie davon Screencast zu machen

00:25:40.970 --> 00:25:43.890
oder das irgendwie mal mitzuschneiden und zu veröffentlichen oder so?

00:25:43.890 --> 00:25:44.530
Weil das ist ja ein Gefühl.

00:25:44.710 --> 00:25:45.910
Wir sind ja nicht geldgetrieben.

00:25:45.910 --> 00:25:46.850
Ja, wir sind nicht.

00:25:46.850 --> 00:25:49.030
Nee, darum geht es aber, ich meine, darum geht es ja gar nicht.

00:25:49.030 --> 00:25:54.530
Aber einfach, weil so viele Leute, die das so oft gemacht haben, gibt es ja wahrscheinlich gar nicht,

00:25:54.530 --> 00:25:56.430
die in so einer Einführungsveranstaltung irgendwie tatsächlich...

00:25:56.430 --> 00:26:00.590
Wir haben uns halt überlegt, dass wir das Gitarre-Repo möglichst ausformulieren,

00:26:00.590 --> 00:26:03.370
dass halt auch Leute, die nicht zu der Veranstaltung kommen, sich das angucken können.

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

00:26:06.550 --> 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:08.910 --> 00:26:09.470
Ja, stimmt.

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

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

00:26:14.150 --> 00:26:18.150
wo niemand kommt, können wir an den Beispielen arbeiten, was ja auch schon mal vorkommt.

00:26:18.150 --> 00:26:23.390
Ja, prinzipiell ist das natürlich auch eine schwierige Sache,

00:26:23.390 --> 00:26:29.650
weil, wie gesagt, es gibt verschiedene Arten davon, wie man das am besten lernt, so für einen selber.

00:26:29.650 --> 00:26:35.750
Und klar gibt es die Leute, die einfach nur Code lesen und den abarbeiten können,

00:26:35.750 --> 00:26:40.730
aber es gibt natürlich auch die Leute, die möchten, dass man denen das erklärt und mit denen macht.

00:26:40.730 --> 00:26:42.630
Und deshalb fände ich es schwierig.

00:26:43.590 --> 00:26:47.310
Um quasi den Code so zu halten, dass der für alle passt.

00:26:47.310 --> 00:26:52.630
Deshalb sind wir da ja auch relativ anpassungsfähig, je nachdem, wer zu uns kommt.

00:26:52.630 --> 00:26:55.470
Jetzt auffällt es, dass Leute tatsächlich relativ selten Fragen stellen.

00:26:55.470 --> 00:26:57.690
Da sollten wir vielleicht auch noch häufiger gucken, dass das passiert.

00:26:57.690 --> 00:27:00.390
Ja, dass wir das interaktiver gestalten, meinst du?

00:27:00.390 --> 00:27:00.590
Ja.

00:27:00.590 --> 00:27:02.630
Ja, was...

00:27:02.630 --> 00:27:04.450
Da fragte ich aber letztens ein paar Ideen.

00:27:04.450 --> 00:27:05.250
Und diese E-Mail.

00:27:05.250 --> 00:27:08.770
Eine interessante Strategie, die ich schon ein paar Mal gesehen habe, die ganz gut funktioniert,

00:27:08.770 --> 00:27:11.810
ist, wenn die Leute sich nicht trauen, Fragen zu stellen,

00:27:11.810 --> 00:27:12.770
dass man dann einfach...

00:27:13.430 --> 00:27:16.410
Als derjenige, der eine Schulung macht oder einen Vortrag hält oder so,

00:27:16.410 --> 00:27:18.510
dann einfach, vor allen Dingen, wenn es nicht so viele Leute sind, geht das gut,

00:27:18.510 --> 00:27:20.090
dann die Leute fragt.

00:27:20.090 --> 00:27:20.890
Oh nein.

00:27:20.890 --> 00:27:22.290
Das ist ein bisschen übergriffig.

00:27:22.290 --> 00:27:23.910
Das habe ich früher in der Schule schon gehört.

00:27:23.910 --> 00:27:28.690
Ich meine, das Gute ist ja, dass wir ja meistens zu zweit sind

00:27:28.690 --> 00:27:30.770
und uns dann auch selber an dem Ball so ein bisschen zuspielen können.

00:27:30.770 --> 00:27:31.010
Ja.

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

00:27:33.230 --> 00:27:34.010
Oh ja.

00:27:34.010 --> 00:27:36.370
Wir sind berühmt.

00:27:36.370 --> 00:27:38.930
Ich hoffe, positiv.

00:27:38.930 --> 00:27:41.830
Ja.

00:27:42.870 --> 00:27:46.570
Ich glaube, wir haben da durchaus noch Verbesserungspotenzial,

00:27:46.570 --> 00:27:48.930
gerade was den Beispielcode angeht.

00:27:48.930 --> 00:27:51.510
Ulrich, das sind keine gesehen.

00:27:51.510 --> 00:27:53.130
Gerne, genau.

00:27:53.130 --> 00:27:55.370
Ja.

00:27:55.370 --> 00:27:59.530
Ich glaube aber, dass wir das schon relativ gut hinkriegen.

00:27:59.530 --> 00:28:02.650
Bis zu welchem Level geht denn der Python-Fool light?

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

00:28:04.790 --> 00:28:08.790
Wir haben das ja in Level aufgeteilt,

00:28:08.790 --> 00:28:10.090
in die er gerade schon erwähnt hat,

00:28:10.090 --> 00:28:11.790
damit man das quasi...

00:28:12.710 --> 00:28:14.710
Ja, damit jemand, der zu uns kommt,

00:28:14.710 --> 00:28:16.050
den können wir dann sagen,

00:28:16.050 --> 00:28:17.630
guck mal, wir haben hier 10 Level.

00:28:17.630 --> 00:28:20.830
Lies die mal durch und sag mir, wo du dich einordnest.

00:28:20.830 --> 00:28:22.370
Nenne eine Zahl zwischen 1 und 10.

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

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

00:28:25.690 --> 00:28:29.250
Einerseits dient das natürlich der Strukturierung,

00:28:29.250 --> 00:28:30.350
weil dann kann man sagen so,

00:28:30.350 --> 00:28:33.050
okay, Level bla bla bla macht das und das,

00:28:33.050 --> 00:28:34.590
Level bla bla bla macht das und das.

00:28:34.590 --> 00:28:36.850
Dann lese ich mir jetzt das Level durch

00:28:36.850 --> 00:28:39.290
und kann mich mit dem Thema beschäftigen.

00:28:39.290 --> 00:28:41.330
Das ist auch wichtig für Leute, die wiederkommen,

00:28:41.330 --> 00:28:42.590
weil wir uns dann nicht merken müssen,

00:28:42.590 --> 00:28:43.870
wohin haben wir gemacht.

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

00:28:47.750 --> 00:28:52.630
Ich glaube, das Repo hat offiziell 10 Level.

00:28:52.630 --> 00:28:54.230
Angefangen bei,

00:28:54.230 --> 00:28:57.250
wie führe ich Code in Python aus?

00:28:57.250 --> 00:28:58.670
Was ist eine Variable?

00:28:58.670 --> 00:29:00.210
Was ist eine Variable?

00:29:00.210 --> 00:29:01.930
Wie weise ich eine Variable zu?

00:29:01.930 --> 00:29:02.730
Was sind Zahlen?

00:29:02.730 --> 00:29:06.050
Wobei, das geht, glaube ich,

00:29:06.050 --> 00:29:07.210
in die Zahlentheorie rein.

00:29:07.210 --> 00:29:08.490
Das wollen wir, glaube ich, nicht.

00:29:08.490 --> 00:29:10.170
Das sind ganz einfach Zahlen.

00:29:10.170 --> 00:29:11.550
Das sind Mengen.

00:29:12.430 --> 00:29:13.410
Das sind leistmäßige Mengen.

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

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

00:29:18.250 --> 00:29:20.890
If-Bedingungen, Flicen,

00:29:20.890 --> 00:29:23.390
Funktionen, Rekursionen.

00:29:23.390 --> 00:29:25.010
Konsolenanwendungen.

00:29:25.010 --> 00:29:25.770
Konsolenanwendungen.

00:29:25.770 --> 00:29:26.650
Das ist ein neues Kapitel,

00:29:26.650 --> 00:29:27.810
das wir eingeschoben haben,

00:29:27.810 --> 00:29:28.530
weil wir dachten,

00:29:28.530 --> 00:29:30.950
wenn wir direkt mit der Objektorientierung ankommen,

00:29:30.950 --> 00:29:32.710
dann sind die meisten Leute ein bisschen überrascht

00:29:32.710 --> 00:29:34.110
und uns wäre es lieber,

00:29:34.110 --> 00:29:35.550
wenn man Sachen dann zu dem Zeitpunkt

00:29:35.550 --> 00:29:36.730
mal praktisch anwenden könnte.

00:29:36.730 --> 00:29:37.090
Ja.

00:29:37.090 --> 00:29:39.390
Das ist ja auch eine Stärke von Python,

00:29:39.390 --> 00:29:41.950
dass die Objektorientierung zwar,

00:29:42.310 --> 00:29:44.070
da ist und auch

00:29:44.070 --> 00:29:46.750
alles in Python ein Objekt ist,

00:29:46.750 --> 00:29:48.370
aber du musst sie eben nicht verwenden.

00:29:48.370 --> 00:29:51.110
Also, du kannst in Python auch komplett

00:29:51.110 --> 00:29:52.510
ohne Klassen arbeiten.

00:29:52.510 --> 00:29:56.210
Und das hatte der Shisi tatsächlich

00:29:56.210 --> 00:29:57.150
einmal erzählt,

00:29:57.150 --> 00:30:00.110
dass er, wenn er mit Klassen arbeitet,

00:30:00.110 --> 00:30:01.550
eben nur objektorientiert,

00:30:01.550 --> 00:30:04.290
weil die anderen Arten von Klassen,

00:30:04.290 --> 00:30:04.970
die es da gibt,

00:30:04.970 --> 00:30:06.190
braucht man ja nicht.

00:30:06.190 --> 00:30:07.350
Und fragen halt immer Leute,

00:30:07.350 --> 00:30:08.630
wofür brauche ich denn jetzt

00:30:08.630 --> 00:30:10.070
diese Objektorientierung?

00:30:10.070 --> 00:30:11.190
Wir können das nicht beantworten,

00:30:11.190 --> 00:30:12.190
weil das geht meistens auch,

00:30:12.190 --> 00:30:12.390
ohne.

00:30:12.390 --> 00:30:13.590
Ja.

00:30:13.590 --> 00:30:16.070
Ja gut, also nach Objektorientierung

00:30:16.070 --> 00:30:17.370
machen wir dann noch Generatoren

00:30:17.370 --> 00:30:17.990
und sowas.

00:30:17.990 --> 00:30:20.190
Assert, Yield.

00:30:20.190 --> 00:30:22.830
Wir haben dann ein Beispiel

00:30:22.830 --> 00:30:24.270
für eine grafische Anwendung

00:30:24.270 --> 00:30:25.350
mit QT, glaube ich.

00:30:25.350 --> 00:30:25.650
Ja.

00:30:25.650 --> 00:30:28.390
Und irgendwie so eine

00:30:28.390 --> 00:30:31.730
Whisky-Sache mit Werkzeug.

00:30:31.730 --> 00:30:33.970
Die haben wir noch niemandem gezeigt,

00:30:33.970 --> 00:30:35.990
weil Leute sind nicht lange noch gekommen.

00:30:35.990 --> 00:30:38.010
Ist natürlich auch...

00:30:38.010 --> 00:30:38.830
Ich kenne es ja auch noch nicht,

00:30:38.830 --> 00:30:39.710
die Whisky mit Werkzeug.

00:30:39.710 --> 00:30:40.950
Ja, musst du mal wieder kommen.

00:30:42.070 --> 00:30:42.510
Ist geplant.

00:30:42.510 --> 00:30:43.950
Ich bewundere übrigens auch,

00:30:43.950 --> 00:30:45.950
wie du die Markdown-Seite

00:30:45.950 --> 00:30:47.090
im Kopf ausländisch kannst.

00:30:47.090 --> 00:30:49.790
Naja, es sind jetzt drei Jahre.

00:30:49.790 --> 00:30:50.570
Das hat sich nicht so gut

00:30:50.570 --> 00:30:51.530
an die Enderzeit geändert.

00:30:51.530 --> 00:30:53.950
Aber du hast die Witze entfernt.

00:30:53.950 --> 00:30:54.830
Wir hatten...

00:30:54.830 --> 00:30:56.010
Es gibt da so eine Geschichte.

00:30:56.010 --> 00:30:58.110
Wir saßen mal in einem Zug

00:30:58.110 --> 00:30:58.810
nach Hamburg

00:30:58.810 --> 00:31:00.690
und es war ein bisschen langweilig.

00:31:00.690 --> 00:31:02.390
Und dann haben wir

00:31:02.390 --> 00:31:04.030
zu Kapitel 5,5

00:31:04.030 --> 00:31:05.730
einen Text geschrieben,

00:31:05.730 --> 00:31:07.570
den man nur noch

00:31:07.570 --> 00:31:08.890
in der Wiki History findet.

00:31:08.890 --> 00:31:10.290
Ich glaube, das reicht jetzt.

00:31:10.290 --> 00:31:10.770
Erzählen wir es?

00:31:10.770 --> 00:31:10.950
Okay.

00:31:11.950 --> 00:31:16.730
Level 5,5 ging damals um Themen,

00:31:16.730 --> 00:31:18.610
die in den bisherigen Leveln

00:31:18.610 --> 00:31:19.570
keinen Platz gefunden haben.

00:31:19.570 --> 00:31:22.310
Ist Kapitel 5,5 sowas wie Gleis 9,5?

00:31:22.310 --> 00:31:23.830
Ja, ein bisschen.

00:31:23.830 --> 00:31:26.210
Wir wollten halt noch Themen unterbringen,

00:31:26.210 --> 00:31:28.130
über die wir bisher nicht gesprochen haben,

00:31:28.130 --> 00:31:31.110
weil entweder passten die nicht,

00:31:31.110 --> 00:31:32.750
die wären zu weit gegangen

00:31:32.750 --> 00:31:34.670
oder sie hätten den Fortschritt

00:31:34.670 --> 00:31:35.410
so ein bisschen...

00:31:35.410 --> 00:31:38.070
Sie hätten den Fortschritt

00:31:38.070 --> 00:31:39.030
so ein bisschen aufgehalten

00:31:39.030 --> 00:31:41.530
und das war dann hauptsächlich,

00:31:41.830 --> 00:31:42.950
Meta-Themen,

00:31:42.950 --> 00:31:44.850
die jetzt nicht zwingend

00:31:44.850 --> 00:31:46.610
direkt was mit Python zu tun haben,

00:31:46.610 --> 00:31:47.850
sondern mehr,

00:31:47.850 --> 00:31:49.190
da ging es dann darum,

00:31:49.190 --> 00:31:51.030
welchen Text-Editor benutze ich?

00:31:51.030 --> 00:31:52.230
Wie mache ich das mit Git?

00:31:52.230 --> 00:31:54.190
Wie schreibe ich am besten Doku?

00:31:54.190 --> 00:31:55.350
Wie schreibe ich Doku?

00:31:55.350 --> 00:31:57.390
Mir fällt übrigens ein,

00:31:57.390 --> 00:31:58.630
wir sollten noch ein Kapitel

00:31:58.630 --> 00:31:59.790
zu Tests einführen.

00:31:59.790 --> 00:32:03.390
Ja, wir sollten nicht nur erwähnen,

00:32:03.390 --> 00:32:04.210
dass sie wichtig sind,

00:32:04.210 --> 00:32:05.610
sondern uns trotzdem mal selber angucken,

00:32:05.610 --> 00:32:06.330
wie das überhaupt geht.

00:32:06.330 --> 00:32:10.190
Also ich habe das meiste,

00:32:10.190 --> 00:32:11.130
was ich über Python weiß,

00:32:11.130 --> 00:32:11.710
tatsächlich da betrachtet.

00:32:11.710 --> 00:32:12.250
Und dann habe ich gelernt,

00:32:12.250 --> 00:32:13.910
dass ich es anderen Leuten beibringe,

00:32:13.910 --> 00:32:16.310
weil man dann immer noch so Sachen merkt,

00:32:16.310 --> 00:32:18.350
sieht, wo man merkt,

00:32:18.350 --> 00:32:19.970
oh, das weiß ich doch eigentlich gar nicht so wirklich,

00:32:19.970 --> 00:32:21.150
wie das im Detail funktioniert.

00:32:21.150 --> 00:32:23.070
Das fällt mir immer wieder auf,

00:32:23.070 --> 00:32:24.290
dass wir dann auch,

00:32:24.290 --> 00:32:26.870
da wir gegenseitig uns den Ball zuspielen

00:32:26.870 --> 00:32:28.950
und doofe Fragen stellen

00:32:28.950 --> 00:32:31.030
und auch Grenzen austesten,

00:32:31.030 --> 00:32:33.190
dass ich jeden Abend,

00:32:33.190 --> 00:32:34.290
wo ich anderen was beibringe,

00:32:34.290 --> 00:32:35.830
auch selber sehr viel mitnehme.

00:32:35.830 --> 00:32:37.410
Dann halt das Problem haben,

00:32:37.410 --> 00:32:38.150
dass wir vielleicht dann auch

00:32:38.150 --> 00:32:39.250
ein bisschen zu tief einsteigen,

00:32:39.250 --> 00:32:40.870
dass den Leuten, die da sitzen,

00:32:40.870 --> 00:32:41.590
dann doch nicht so viel

00:32:41.590 --> 00:32:42.230
nicht so wichtig ist.

00:32:42.230 --> 00:32:43.470
Ja, das stimmt.

00:32:43.470 --> 00:32:45.090
Ja, weil es gibt halt auch Leute,

00:32:45.090 --> 00:32:46.450
die Interesse an diesen ganzen Details haben.

00:32:46.450 --> 00:32:47.850
Und ihr habt auf jeden Fall vollkommen recht,

00:32:47.850 --> 00:32:49.810
dass dieses Lernen einfach großartig ist,

00:32:49.810 --> 00:32:52.270
irgendwie um tiefer einzusteigen in das Thema.

00:32:52.270 --> 00:32:53.450
Habe ich übrigens auch gemacht,

00:32:53.450 --> 00:32:54.070
also ganz am Anfang,

00:32:54.070 --> 00:32:55.430
obwohl ich noch nicht so viel selber konnte.

00:32:55.430 --> 00:32:56.630
Aber das, was ich konnte,

00:32:56.630 --> 00:32:58.070
konnte man schon kleinen Kindern beibringen

00:32:58.070 --> 00:32:59.250
und die haben sich sehr darüber gefreut

00:32:59.250 --> 00:33:01.330
und haben tatsächlich dann auch

00:33:01.330 --> 00:33:02.410
ihre ersten Programme schreiben können.

00:33:02.410 --> 00:33:03.270
Das ist echt super.

00:33:03.270 --> 00:33:04.430
Und dadurch sind halt die Basics

00:33:04.430 --> 00:33:06.350
dann irgendwann wirklich feste.

00:33:06.350 --> 00:33:07.390
Das ist vielleicht nicht so unwichtig.

00:33:07.390 --> 00:33:08.330
Ich glaube auch,

00:33:08.330 --> 00:33:10.690
dass Python eine sehr gute Programmiersprache ist,

00:33:10.690 --> 00:33:11.570
um quasi,

00:33:11.570 --> 00:33:13.790
als kompletter Anfänger,

00:33:13.790 --> 00:33:16.290
als erste Programmiersprache Python zu lernen.

00:33:16.290 --> 00:33:19.490
Einerseits, weil es relativ wenig Einstiegshürden hat,

00:33:19.490 --> 00:33:21.070
die anderen Programmiersprachen bieten.

00:33:21.070 --> 00:33:23.350
Es gibt ja diesen schönen Spruch,

00:33:23.350 --> 00:33:24.570
irgendwie Python ist wie Pseudocode,

00:33:24.570 --> 00:33:26.530
aber man kann ihn ausführen.

00:33:26.530 --> 00:33:29.550
Ja, das und,

00:33:29.550 --> 00:33:31.210
ihr hattet das, glaube ich,

00:33:31.210 --> 00:33:32.590
in eurer ersten Folge erwähnt,

00:33:32.590 --> 00:33:34.830
dass Python einfach ist

00:33:34.830 --> 00:33:37.750
und dadurch sehr gut für Anfänger geeignet ist.

00:33:37.750 --> 00:33:39.910
Und ich finde,

00:33:39.910 --> 00:33:41.550
das ist auch so weit korrekt,

00:33:41.550 --> 00:33:44.170
ja, Pseudocode, den man ausführen kann,

00:33:44.170 --> 00:33:45.170
passt schon sehr gut.

00:33:45.170 --> 00:33:49.250
Womit fangt ihr denn an,

00:33:49.250 --> 00:33:52.050
wenn ihr Leuten jetzt quasi sozusagen

00:33:52.050 --> 00:33:54.810
das so Python nahe bringen wollt?

00:33:54.810 --> 00:33:57.970
Was wäre denn sozusagen euer erstes Beispiel oder sowas?

00:33:57.970 --> 00:33:59.210
Hello World natürlich.

00:33:59.210 --> 00:34:00.190
Hello World natürlich, genau.

00:34:00.190 --> 00:34:01.470
Das ist natürlich viel einfacher, ja.

00:34:01.470 --> 00:34:05.470
Ja, normalerweise fangen wir,

00:34:05.470 --> 00:34:10.030
zeigen wir einfach auf dem großen Fernseher

00:34:10.030 --> 00:34:11.230
einen Interpreter und fangen an,

00:34:11.230 --> 00:34:11.530
Code zu schreiben.

00:34:11.530 --> 00:34:13.490
Danke, Herr Plant.

00:34:13.490 --> 00:34:15.490
Danke, Herr Plant, vielen Dank.

00:34:15.490 --> 00:34:16.890
Ja,

00:34:16.890 --> 00:34:20.490
wir sitzen dann da am langen Tischreihe

00:34:20.490 --> 00:34:24.390
und einer sitzt meistens nah am Fernseher

00:34:24.390 --> 00:34:27.010
und zeigt dann auf B-Python meistens Code.

00:34:27.010 --> 00:34:30.830
Gerade für kürzere Sachen

00:34:30.830 --> 00:34:32.230
haben wir festgestellt,

00:34:32.230 --> 00:34:34.350
dass der Interpreter geeigneter ist,

00:34:34.350 --> 00:34:37.170
als wenn wir das in der Datei schreiben würden

00:34:37.170 --> 00:34:37.950
und ausführen würden.

00:34:37.950 --> 00:34:39.770
Natürlich könnte man das auch

00:34:39.770 --> 00:34:41.070
als Jupyter-Notebook machen.

00:34:41.070 --> 00:34:41.370
Das wäre,

00:34:41.510 --> 00:34:42.790
vielleicht sogar noch einen Schritt weiter.

00:34:42.790 --> 00:34:44.750
Ich benutze manchmal in den höheren Leveln

00:34:44.750 --> 00:34:45.350
Hydrogen.

00:34:45.350 --> 00:34:46.870
Das ist ein Atomplugin,

00:34:46.870 --> 00:34:48.590
das so wie Jupyter funktioniert,

00:34:48.590 --> 00:34:49.830
zahlenweise.

00:34:49.830 --> 00:34:52.390
Aber das macht halt erst ab größeren Dateien

00:34:52.390 --> 00:34:52.910
auch irgendwie Sinn.

00:34:52.910 --> 00:34:54.430
Am Anfang kann man das halt einfach neu eintippen.

00:34:54.430 --> 00:34:57.270
Gerade auch, weil B-Python so einen Modus hat,

00:34:57.270 --> 00:34:59.050
wo du die gesamte Historie

00:34:59.050 --> 00:35:00.750
im Texteditor bearbeiten kannst

00:35:00.750 --> 00:35:01.830
und dann wieder ausführen kannst.

00:35:01.830 --> 00:35:03.630
Und dann musst du es halt eigentlich

00:35:03.630 --> 00:35:04.990
nicht unbedingt speichern.

00:35:04.990 --> 00:35:08.450
Und B-Python kommt uns natürlich da

00:35:08.450 --> 00:35:09.730
sehr entgegen.

00:35:09.730 --> 00:35:10.870
So mit Autovervollständigung,

00:35:10.870 --> 00:35:11.490
Syntax-Haltern,

00:35:11.490 --> 00:35:12.510
das ist schon echt cool.

00:35:12.510 --> 00:35:14.830
Also, ja.

00:35:14.830 --> 00:35:16.530
Es ist bunt.

00:35:16.530 --> 00:35:18.690
Geht das B für bunt?

00:35:18.690 --> 00:35:20.670
Ja, das steht für bunt-Python.

00:35:20.670 --> 00:35:23.850
Weil, das ist auch deutsche Sprache.

00:35:23.850 --> 00:35:24.830
Das muss man so.

00:35:24.830 --> 00:35:27.490
Ja, und meistens

00:35:27.490 --> 00:35:29.070
in, ich glaube,

00:35:29.070 --> 00:35:31.390
spät höheren Leveln zeigen wir dann auch

00:35:31.390 --> 00:35:33.450
einfach die Code-Beispiele, die wir geschrieben haben.

00:35:33.450 --> 00:35:34.470
Aber gerade am Anfang,

00:35:34.470 --> 00:35:37.550
weil man im Interpreter auch deutlich besser

00:35:37.550 --> 00:35:39.330
auf Fragen eingehen kann, da kann ich dann

00:35:39.330 --> 00:35:41.370
einfach den, wenn mir

00:35:41.370 --> 00:35:42.850
mich, wenn ich gefragt werde,

00:35:42.850 --> 00:35:45.010
was ist denn, wenn ich das und das mache,

00:35:45.010 --> 00:35:47.190
kann ich das einfach direkt zeigen, als wenn ich das

00:35:47.190 --> 00:35:49.290
in eine Datei schreibe und dann den Commit,

00:35:49.290 --> 00:35:50.570
das wieder committen muss.

00:35:50.570 --> 00:35:53.370
Also, wir wechseln dann meistens so bei

00:35:53.370 --> 00:35:54.510
if und schleifen.

00:35:54.510 --> 00:35:57.550
Ja, weil da ist es dann irgendwann...

00:35:57.550 --> 00:35:59.290
Dann hast du auch Verschachtelungen und sowas

00:35:59.290 --> 00:36:01.350
und dann wird es schwieriger, einfach nach oben zu drücken.

00:36:01.350 --> 00:36:01.830
Ja.

00:36:01.830 --> 00:36:05.390
Da wird es dann anstrengend irgendwie mit B-Python.

00:36:05.390 --> 00:36:07.290
Das könnte man tatsächlich wahrscheinlich eben

00:36:07.290 --> 00:36:09.450
im Jupyter Notebook

00:36:09.450 --> 00:36:09.890
machen.

00:36:11.370 --> 00:36:11.690
Ja.

00:36:11.690 --> 00:36:15.310
Aber dann hat man halt

00:36:15.310 --> 00:36:17.490
tatsächlich auch wieder erstmal so einen Webbrowser dazwischen

00:36:17.490 --> 00:36:19.410
und dann muss man, wenn die Leute das nachvollziehen...

00:36:19.410 --> 00:36:21.930
Wenn die Leute das nachvollziehen

00:36:21.930 --> 00:36:23.090
wollen, wird es wieder schwerer.

00:36:23.090 --> 00:36:25.390
Ja, es ist nicht so...

00:36:25.390 --> 00:36:27.590
Jupyter habe ich immer gerne mal versucht, so zwischendurch anzutesten.

00:36:27.590 --> 00:36:29.550
Das ist natürlich super nett, gerade wenn man so Grafen noch

00:36:29.550 --> 00:36:31.450
einbaut, weil man direkt die Auswirkungen

00:36:31.450 --> 00:36:33.150
von dem Datensatz in diesen Grafen sehen kann.

00:36:33.150 --> 00:36:35.830
Aber ansonsten fand ich das eher so ein bisschen anstrengend.

00:36:35.830 --> 00:36:37.330
Aber vielleicht bin ich jetzt auch nicht

00:36:37.330 --> 00:36:38.490
wirklich drüber gestolpert.

00:36:38.490 --> 00:36:41.330
Ja, also ich glaube, man hat

00:36:41.330 --> 00:36:43.350
erst so richtig den... Also oder für

00:36:43.350 --> 00:36:45.510
mich hat es halt dann richtig funktioniert,

00:36:45.510 --> 00:36:46.910
als ich

00:36:46.910 --> 00:36:49.230
gemerkt habe, dass ich mir damit

00:36:49.230 --> 00:36:51.070
eine Menge Zeit sparen kann, wenn

00:36:51.070 --> 00:36:53.290
man Schritte hat, also die irgendwie Daten

00:36:53.290 --> 00:36:55.150
laden oder Sachen, die lange

00:36:55.150 --> 00:36:57.110
laufen und wenn man dann irgendwie

00:36:57.110 --> 00:36:59.410
Fehler macht und dann nicht alles

00:36:59.410 --> 00:37:01.010
weg ist, sondern man

00:37:01.010 --> 00:37:03.010
den Fehler korrigieren kann und das dann nochmal

00:37:03.010 --> 00:37:04.910
die Zelle ausführt und es dann einfach weitergeht.

00:37:04.910 --> 00:37:06.690
Das war dann so, wo ich mir dachte, wow.

00:37:06.690 --> 00:37:08.670
Das ist der beste Debuggen dann quasi.

00:37:08.670 --> 00:37:11.190
Ja, das ist halt so das, wofür ich das dann

00:37:11.190 --> 00:37:12.910
brauche. Aber wenn ich jetzt

00:37:12.910 --> 00:37:14.630
zum Beispiel Webentwicklung mache, dann

00:37:14.630 --> 00:37:16.850
benutze ich das zwar auch, aber deutlich

00:37:16.850 --> 00:37:19.110
seltener. Also eigentlich eher nur dann, wenn ich halt so

00:37:19.110 --> 00:37:21.370
viel Jobs

00:37:21.370 --> 00:37:22.830
habe, die eine Menge Zeugs berechnen.

00:37:22.830 --> 00:37:24.590
Ja.

00:37:24.590 --> 00:37:27.190
Aber nee, das ist schon...

00:37:27.190 --> 00:37:28.230
Ja.

00:37:28.230 --> 00:37:31.230
Jetzt sind wir ja gerade wieder bei der Umgebung.

00:37:31.230 --> 00:37:32.970
Welche nutzt ihr denn so privat dann?

00:37:32.970 --> 00:37:35.490
Inwiefern

00:37:35.490 --> 00:37:36.110
Umgebung?

00:37:36.110 --> 00:37:38.690
Benutzt ihr überhaupt eine oder bleibt alles in der Shell?

00:37:38.690 --> 00:37:41.150
Ich schreibe meinen Code

00:37:41.150 --> 00:37:42.250
bis der Nadel auf der Platte.

00:37:42.250 --> 00:37:43.350
Ach so.

00:37:43.350 --> 00:37:46.930
Ich persönlich bin ein großer Fan von Atom,

00:37:46.930 --> 00:37:48.150
weil ich halt nicht nur Python

00:37:48.150 --> 00:37:50.570
benutze, sondern auch irgendwie für

00:37:50.570 --> 00:37:52.810
die Software, die wir im Dorf haben, die existiert

00:37:52.810 --> 00:37:54.510
oder ob ich auch für die Uni

00:37:54.510 --> 00:37:56.450
diverse Programmiersprachen nutzen muss.

00:37:56.450 --> 00:37:58.970
In Atom kann ich halt Plugins für irgendwie alle Sprachen

00:37:58.970 --> 00:38:00.850
installieren und dann funktioniert das halt ähnlich.

00:38:00.850 --> 00:38:02.730
Ich muss mir das nicht immer einzeln anschauen.

00:38:02.730 --> 00:38:04.510
Ja.

00:38:04.510 --> 00:38:06.970
Ja, ich glaube, ich habe jetzt einmal

00:38:06.970 --> 00:38:07.910
alles ausprobiert.

00:38:07.910 --> 00:38:11.010
Am Anfang war es tatsächlich

00:38:11.010 --> 00:38:12.430
G-Edit, der

00:38:12.430 --> 00:38:14.910
vorinstallierte Texteditor von Gnome.

00:38:14.910 --> 00:38:16.830
Das hat auch gut

00:38:16.830 --> 00:38:18.970
funktioniert, weil es hat halt Syntax-Highlighting

00:38:18.970 --> 00:38:20.950
und mehr brauchte ich da nicht.

00:38:20.950 --> 00:38:22.850
Dann war so ein bisschen meine

00:38:22.850 --> 00:38:23.930
Sublime-Text-Site.

00:38:23.930 --> 00:38:26.850
Das hat jetzt auch nur ein bisschen

00:38:26.850 --> 00:38:28.690
mehr gemacht als G-Edit. Also ich konnte

00:38:28.690 --> 00:38:30.470
den Code auch im

00:38:30.470 --> 00:38:32.670
Editor direkt ausführen.

00:38:32.670 --> 00:38:35.030
Sublime hat dann eine Python-Konsole

00:38:35.030 --> 00:38:36.630
aufgemacht. Das hat auch gut

00:38:36.630 --> 00:38:38.850
funktioniert. Dann habe ich

00:38:38.850 --> 00:38:40.970
auch Atom benutzt, auch mit Plugins.

00:38:40.970 --> 00:38:42.790
Die mir dann zum Beispiel

00:38:42.790 --> 00:38:44.690
den Linter

00:38:44.690 --> 00:38:46.850
gemacht haben oder eine Python-Konsole.

00:38:46.850 --> 00:38:48.830
Mittlerweile bin ich bei

00:38:48.830 --> 00:38:50.890
VS-Code angelangt mit

00:38:50.890 --> 00:38:52.970
ich glaube, ich weiß nicht, ob es da

00:38:52.970 --> 00:38:54.330
Plugins oder Add-ons heißt.

00:38:54.330 --> 00:38:57.170
Jedenfalls ein Flake-8-Add-on,

00:38:57.170 --> 00:38:58.930
dass er mir direkt die

00:38:58.930 --> 00:39:01.110
Type-Annotations

00:39:01.110 --> 00:39:02.130
Oh ja, MyPile.

00:39:02.130 --> 00:39:03.850
Ich glaube, das ist

00:39:03.850 --> 00:39:07.090
ich habe, glaube ich, nur das Flake-8

00:39:07.090 --> 00:39:08.550
oder auch MyPile.

00:39:08.550 --> 00:39:10.090
Großartig, habe ich auch für mich entdeckt.

00:39:10.090 --> 00:39:10.950
Da kann man ja auch die

00:39:10.950 --> 00:39:12.330
Kit-Verwaltung direkt einbauen und

00:39:12.330 --> 00:39:14.450
man hat so eine tolle Live-Share-Funktion.

00:39:14.450 --> 00:39:16.430
Da kann man kollaborativ direkt arbeiten.

00:39:16.430 --> 00:39:17.770
Da ist man vor dem gleichen Rechner.

00:39:17.770 --> 00:39:19.110
Geht in Atom auch alles.

00:39:19.110 --> 00:39:22.290
Aktuell mein Workflow ist

00:39:22.290 --> 00:39:23.510
Das gibt man im BI auch.

00:39:23.510 --> 00:39:25.130
Screen-X

00:39:25.130 --> 00:39:28.110
Das ist schon so ein bisschen

00:39:28.110 --> 00:39:29.570
angestaubt.

00:39:29.570 --> 00:39:31.650
Letztendlich sind wahrscheinlich alle Texteditoren irgendwie.

00:39:31.650 --> 00:39:34.470
Aber wir scheinen alle nicht wirklich so eine Idee

00:39:34.470 --> 00:39:35.850
zu nutzen, sondern eher ein Texteditor mit

00:39:35.850 --> 00:39:36.610
zig Plugins.

00:39:36.610 --> 00:39:40.410
PyCharm habe ich installiert. Ich starte es irgendwie

00:39:40.410 --> 00:39:42.350
jedes halbe Jahr mal und mache es dann direkt wieder zu.

00:39:42.350 --> 00:39:44.630
Ich verwende es tatsächlich

00:39:44.630 --> 00:39:46.490
auch manchmal länger.

00:39:46.490 --> 00:39:48.670
Wobei, ehrlich gesagt,

00:39:48.670 --> 00:39:50.370
eher WebStorm als PyCharm.

00:39:50.370 --> 00:39:52.310
Also die

00:39:52.310 --> 00:39:54.330
gleiche Idee, aber für JavaScript.

00:39:54.330 --> 00:39:56.490
Oder halt TypeScript

00:39:56.490 --> 00:39:57.470
in meinem Fall jetzt.

00:39:57.470 --> 00:40:00.390
Ja, aber ich finde PyCharm

00:40:00.390 --> 00:40:01.330
auch schwer zu bedienen.

00:40:01.330 --> 00:40:04.410
Es kann schon auch coole Sachen,

00:40:04.410 --> 00:40:06.290
aber es fühlt sich

00:40:06.290 --> 00:40:08.350
nicht so gut an wie ein richtiger

00:40:08.350 --> 00:40:09.250
Editor irgendwie.

00:40:09.250 --> 00:40:10.390
Und ich

00:40:10.390 --> 00:40:11.410
meine, ja, selbst

00:40:11.410 --> 00:40:14.250
Atom, das ja im Grunde auch mehr so

00:40:14.250 --> 00:40:15.290
ein

00:40:15.290 --> 00:40:18.250
Browser mit irgendwie JavaScript und dann

00:40:18.250 --> 00:40:19.910
im Editor in JavaScript in dem Browser ist,

00:40:19.910 --> 00:40:21.110
fühlt sich halt viel

00:40:21.110 --> 00:40:24.370
irgendwie so agiler an

00:40:24.370 --> 00:40:25.270
als PyCharm.

00:40:25.270 --> 00:40:27.950
Was man da sagen muss, ist, dass die bei Atom in den letzten

00:40:27.950 --> 00:40:30.190
zwei Jahren wirklich stark an der Performance gearbeitet

00:40:30.190 --> 00:40:32.090
haben. Also wahrscheinlich auch dadurch bedingt, dass viele

00:40:32.090 --> 00:40:34.210
Leute auf VSCode umgestiegen sind, weil es halt

00:40:34.210 --> 00:40:36.010
schneller war. Atom ist

00:40:36.010 --> 00:40:37.230
wesentlich schneller geworden tatsächlich.

00:40:37.230 --> 00:40:39.290
Ah, okay. Muss ich vielleicht auch nochmal ausprobieren.

00:40:39.850 --> 00:40:41.330
Ich finde, der Niklas hat auch eben

00:40:41.330 --> 00:40:43.430
einen guten Punkt gebracht, dass

00:40:43.430 --> 00:40:45.710
eben, klar, wenn ich mit Python arbeite,

00:40:45.710 --> 00:40:47.570
gibt es wahrscheinlich nichts Besseres als

00:40:47.570 --> 00:40:49.850
PyCharm, also keine umfassendere

00:40:49.850 --> 00:40:51.910
Lösung, gerade weil

00:40:51.910 --> 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
Interaktion

00:40:58.310 --> 00:40:59.410
mit anderen Sachen, zum Beispiel

00:40:59.410 --> 00:41:01.470
Git oder Django liefert. Nur

00:41:01.470 --> 00:41:03.770
gerade wenn ich

00:41:03.770 --> 00:41:05.750
in meinem Git-Repo nicht nur

00:41:05.750 --> 00:41:07.590
Python-Dateien, sondern eventuell noch eine

00:41:07.590 --> 00:41:09.710
Markdown-Datei oder ein Bild habe,

00:41:09.710 --> 00:41:11.930
oder ganz andere Sachen,

00:41:11.930 --> 00:41:13.650
dann hilft mir

00:41:13.650 --> 00:41:14.950
PyCharm nicht, weil

00:41:14.950 --> 00:41:17.630
dann habe ich VSCode und dann kann ich da

00:41:17.630 --> 00:41:19.690
die Code-Dateien öffnen, dann kann

00:41:19.690 --> 00:41:21.770
ich die CSV-Datei

00:41:21.770 --> 00:41:23.530
ändern, da kann ich die

00:41:23.530 --> 00:41:25.710
readme.nd ändern, da kann

00:41:25.710 --> 00:41:27.030
ich mir das Bild angucken,

00:41:27.030 --> 00:41:29.430
alles in einem Programm, statt dass ich

00:41:29.430 --> 00:41:31.310
die Python-Datei in PyCharm

00:41:31.310 --> 00:41:33.850
bearbeite, die Markdown-Datei

00:41:33.850 --> 00:41:35.170
in meinen Markdown-Viewer,

00:41:35.170 --> 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.750
meinen Tabellen-Kalkulation.

00:41:41.750 --> 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.270
Platt, wo wir irgendwie so ein Diagramm gemacht

00:41:47.270 --> 00:41:49.150
habe, das dann halt in Atom

00:41:49.150 --> 00:41:51.210
auch 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:54.730
das war halt schon

00:41:54.730 --> 00:41:57.190
recht cool. Gerade für so Sachen, wo

00:41:57.190 --> 00:41:59.550
man eben nicht nur Code-Dateien

00:41:59.550 --> 00:42:00.210
im

00:42:00.210 --> 00:42:03.550
Repo hat, ist glaube ich so ein Text-Editor

00:42:03.550 --> 00:42:04.270
mit Atoms

00:42:04.270 --> 00:42:07.250
die bessere Option, weil dann kann ich

00:42:07.250 --> 00:42:09.170
mir VSCode

00:42:09.170 --> 00:42:10.450
und dann habe ich eben

00:42:10.450 --> 00:42:12.990
Autocompletion für Python

00:42:12.990 --> 00:42:15.110
und meinen Linter und

00:42:15.110 --> 00:42:16.970
meinen MyPy und

00:42:16.970 --> 00:42:19.050
vielleicht dann noch ein Preview

00:42:19.050 --> 00:42:20.890
für Markdown-Dateien und

00:42:20.890 --> 00:42:22.710
der Bildbetrachter ist eingebaut.

00:42:22.710 --> 00:42:25.150
Da habe ich dann alles in einem Programm,

00:42:25.150 --> 00:42:26.410
habe an der Seite die

00:42:26.410 --> 00:42:29.110
Ordner-Übersicht

00:42:29.110 --> 00:42:31.250
und dann kann ich da durchgehen,

00:42:31.250 --> 00:42:33.250
habe das in einem Programm

00:42:33.250 --> 00:42:34.990
zweites Fenster noch, das

00:42:34.990 --> 00:42:36.830
Terminal und bin damit voll zufrieden.

00:42:36.830 --> 00:42:38.950
Und die Einstiegshöhe ist auch geringer,

00:42:38.950 --> 00:42:40.790
ich kann mir irgendwie Subclime installieren, die Datei

00:42:40.790 --> 00:42:42.650
öffnen und da kann ich direkt anfangen zu

00:42:42.650 --> 00:42:44.250
programmieren. Ich muss mir nicht mehr

00:42:44.250 --> 00:42:46.410
erstmal durch den Einstellungsdialog klicken,

00:42:46.410 --> 00:42:48.270
um auch zu finden, wie ich jetzt zoome oder so.

00:42:48.270 --> 00:42:50.890
Das funktioniert halt alles so, wie man es erwarten würde.

00:42:50.890 --> 00:42:52.370
Das finde ich schon praktisch.

00:42:52.370 --> 00:42:54.910
VSCode habe ich jetzt

00:42:54.910 --> 00:42:56.790
erst seit neuerdings, also vielleicht

00:42:56.790 --> 00:42:58.530
drei Monate

00:42:58.530 --> 00:43:00.390
und

00:43:00.390 --> 00:43:02.630
da habe ich mich positiv überrascht.

00:43:02.630 --> 00:43:04.710
Ich habe VSCode geöffnet und wollte dann

00:43:04.710 --> 00:43:06.390
einfach meine Python-Datei ändern

00:43:06.390 --> 00:43:08.630
und da hat er direkt mir

00:43:08.630 --> 00:43:10.330
vorgeschlagen, hier möchtest du nicht

00:43:10.330 --> 00:43:12.690
dieses Add-on installieren,

00:43:12.690 --> 00:43:14.330
das dir die Autocompletion macht

00:43:14.330 --> 00:43:15.330
und ich so, ja, gerne.

00:43:15.330 --> 00:43:18.010
Hier wähle dein Linter aus.

00:43:18.010 --> 00:43:19.290
Ja, gerne.

00:43:19.290 --> 00:43:20.530
Brace yourself, Linter.

00:43:20.530 --> 00:43:23.310
Das ist ja sehr user-centric.

00:43:23.310 --> 00:43:24.250
Natürlich.

00:43:24.250 --> 00:43:28.390
In meinem RSS-Feed lese

00:43:28.390 --> 00:43:30.630
ich dann auch hin und wieder, welche Neuerungen

00:43:30.630 --> 00:43:32.510
in VSCode jetzt bezüglich

00:43:32.510 --> 00:43:34.250
Python kommen und das sieht schon

00:43:34.250 --> 00:43:35.010
sehr gut aus.

00:43:35.010 --> 00:43:38.450
Das einzige große Problem, was ich mal mit

00:43:38.450 --> 00:43:40.470
Atom hatte, ist, Atom konnte

00:43:40.470 --> 00:43:42.390
sehr spät so Type Notations.

00:43:42.390 --> 00:43:44.570
Das hat bis irgendwie 1.25

00:43:44.570 --> 00:43:46.010
oder so, wenn

00:43:46.010 --> 00:43:48.070
ein Feil in der Methodensignatur war,

00:43:48.070 --> 00:43:50.170
ist das ganze Highlighting kaputt gegangen.

00:43:50.170 --> 00:43:52.350
Das war sehr witzig, weil das ja eigentlich

00:43:52.350 --> 00:43:54.130
schon seit Python 3 im Sprachstandard

00:43:54.130 --> 00:43:56.070
enthalten ist und dann, ja,

00:43:56.070 --> 00:43:56.750
aber gut, ja.

00:43:56.750 --> 00:43:59.850
Ich muss auch sagen, seitdem ich VSCode mit

00:43:59.850 --> 00:44:01.830
einem direkt eingebauten Linter

00:44:01.830 --> 00:44:02.870
benutze,

00:44:02.870 --> 00:44:06.150
nicht nur, sondern

00:44:06.150 --> 00:44:07.910
da benutze ich auch

00:44:07.910 --> 00:44:09.950
richtig gut die Type Notations

00:44:09.950 --> 00:44:11.750
und selbst, wenn es irgendwie ein Skript von

00:44:11.750 --> 00:44:12.870
50 Zeilen ist,

00:44:12.870 --> 00:44:15.510
dadurch, dass der mir

00:44:15.510 --> 00:44:17.950
darauf hinweist, wenn ich was falsch mache,

00:44:17.950 --> 00:44:19.250
benutze ich es häufiger

00:44:19.250 --> 00:44:22.150
und das finde ich, das ist schon ein positiver

00:44:22.150 --> 00:44:24.230
Nebeneffekt, dass ich schöneren

00:44:24.230 --> 00:44:26.010
dokumentierten Code schreibe.

00:44:26.010 --> 00:44:27.710
Ja, aber so Type Notations machen wir uns am Anfang

00:44:27.710 --> 00:44:29.050
auch nicht sicher, wie wir das jetzt

00:44:29.050 --> 00:44:31.250
tatsächlich, sollen wir das zeigen,

00:44:31.250 --> 00:44:32.290
sollen wir das nicht zeigen?

00:44:32.290 --> 00:44:35.010
Wir haben es am Anfang so gemacht, dass wir

00:44:35.010 --> 00:44:37.810
die alte Syntax genommen haben, wo die Typen

00:44:37.810 --> 00:44:39.570
nicht bei den Variablen standen, sondern

00:44:39.570 --> 00:44:41.790
in den Kommentaren dahinter, weil wir uns

00:44:41.790 --> 00:44:43.330
überlegt haben, wir wollen eigentlich, dass unsere

00:44:43.330 --> 00:44:45.250
Beispiele mit allen Python-Versionen laufen.

00:44:45.250 --> 00:44:47.470
Zumindest mit allen Python-3-Versionen.

00:44:47.470 --> 00:44:49.170
Also auch mit 3.4.

00:44:49.170 --> 00:44:53.390
Mit allen aktuellen

00:44:53.390 --> 00:44:53.810
verschützten

00:44:53.810 --> 00:44:55.750
Python-3-Versionen. Aber wenn dann jetzt

00:44:55.750 --> 00:44:57.730
3.4 irgendwann stirbt, dann können wir uns

00:44:57.730 --> 00:44:59.770
überlegen, ob wir das nicht vielleicht auf die neue

00:44:59.770 --> 00:45:00.290
Syntax ändern.

00:45:00.290 --> 00:45:02.410
Ja.

00:45:02.410 --> 00:45:05.790
Das ist natürlich auch so, gerade wenn

00:45:05.790 --> 00:45:07.610
man den Code für Einsteiger

00:45:07.610 --> 00:45:09.590
schreibt und nur

00:45:09.590 --> 00:45:11.050
sagt Python 3,

00:45:11.050 --> 00:45:13.570
dann muss man natürlich auch darauf achten,

00:45:13.570 --> 00:45:15.450
dass der Code kompatibel bleibt.

00:45:15.450 --> 00:45:17.650
Wir hatten für ein Glück noch niemanden, der damit

00:45:17.650 --> 00:45:19.390
3.2 oder 3.3 aufgetastet hat.

00:45:19.390 --> 00:45:21.150
Das ist einfach zu schwer zu installieren.

00:45:21.150 --> 00:45:23.310
Das schafft sowieso kein Anfänger.

00:45:23.310 --> 00:45:25.730
Gibt es wirklich noch zwei Sachen irgendwo?

00:45:25.730 --> 00:45:27.750
Docker, Python, Doppelpunkt 3.2.

00:45:27.750 --> 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.550 --> 00:45:37.410
dessen aktuellste Version war,

00:45:37.410 --> 00:45:39.030
war Python 3.3.

00:45:39.030 --> 00:45:41.110
Das war auch bei Debian

00:45:41.110 --> 00:45:43.130
eine Zeit lang das, was

00:45:43.130 --> 00:45:43.890
dabei war.

00:45:43.890 --> 00:45:46.570
Das ist halt schon schlimm.

00:45:46.570 --> 00:45:48.730
3.4 wäre echt gut gewesen.

00:45:48.730 --> 00:45:53.370
Wir sagen uns halt, wenn die Version

00:45:53.370 --> 00:45:54.550
im Moment noch supported ist,

00:45:54.550 --> 00:45:57.290
dann versuchen wir auch die zu verwenden.

00:45:57.290 --> 00:45:58.750
Es ist ja nur 3.4 im Moment noch.

00:45:58.750 --> 00:46:00.830
Insofern ist 3.4 eigentlich

00:46:00.830 --> 00:46:03.490
für mich war so 3.4 die erste

00:46:03.490 --> 00:46:05.310
richtig gute Dreier-Version,

00:46:05.310 --> 00:46:06.450
die man

00:46:06.450 --> 00:46:07.210
ja,

00:46:07.210 --> 00:46:09.090
wo einem nicht mehr so dauernd

00:46:09.090 --> 00:46:10.330
Sachen auf den Fuß gepresst wird.

00:46:10.330 --> 00:46:12.610
Wann hast du mal Python 2 über den Weg gelaufen,

00:46:12.610 --> 00:46:13.970
so im aktiven Betrieb?

00:46:13.970 --> 00:46:17.210
Mir ehrlich gesagt

00:46:17.210 --> 00:46:18.230
schon ganz lange nicht mehr.

00:46:18.230 --> 00:46:20.990
Ich würde sagen, das müsste dann schon

00:46:20.990 --> 00:46:22.090
so wahrscheinlich 2000,

00:46:22.090 --> 00:46:24.890
na okay, so lange ist das jetzt auch nicht her,

00:46:24.890 --> 00:46:27.350
2014,

00:46:27.350 --> 00:46:28.210
2015 gewesen.

00:46:28.210 --> 00:46:30.750
Letzte Woche hatte ich ein Startup getroffen,

00:46:30.750 --> 00:46:32.570
die so einen Sensor betrieben haben auf

00:46:32.570 --> 00:46:34.530
Python 2 API-Base.

00:46:34.530 --> 00:46:36.330
Ich habe ein bisschen...

00:46:36.330 --> 00:46:37.050
Haben sie noch ein Jahr,

00:46:37.050 --> 00:46:37.490
zwei Jahre Zeit.

00:46:37.490 --> 00:46:39.810
Ich habe aber auch

00:46:39.810 --> 00:46:43.010
mittlerweile das Gefühl, dass Python 3

00:46:43.010 --> 00:46:45.050
doch mittlerweile weit

00:46:45.050 --> 00:46:46.430
genug verbreitet ist. Also,

00:46:46.430 --> 00:46:49.130
dass Python 2 doch langsam stirbt.

00:46:49.130 --> 00:46:49.430
Ja.

00:46:49.430 --> 00:46:52.390
Endlich das Problem gelöst. Keine zwei Sprachen mehr,

00:46:52.390 --> 00:46:53.450
sondern Progress.

00:46:53.450 --> 00:46:56.710
Weil Python 3 ist dann irgendwann

00:46:56.710 --> 00:46:58.590
nicht mehr Zukunft, sondern Gegenwart.

00:46:58.590 --> 00:46:59.790
Wann kommt dann endlich Python 4?

00:46:59.790 --> 00:47:02.810
Sollte es ja eigentlich gar nicht geben,

00:47:02.810 --> 00:47:04.290
wenn ich die Leute...

00:47:04.290 --> 00:47:06.850
Ich habe einen Blogpost von 2015 gefunden,

00:47:06.850 --> 00:47:09.070
wo es 2020 drin stand, aber...

00:47:09.070 --> 00:47:10.810
Aber da ist dann Python 3 42 oder so.

00:47:10.810 --> 00:47:12.350
Ich glaube es auch nicht.

00:47:12.350 --> 00:47:14.850
Da stellt sich dann natürlich die Frage,

00:47:14.850 --> 00:47:16.730
ob man bei Python

00:47:16.730 --> 00:47:18.850
überhaupt eine 4 oder 3,1

00:47:18.850 --> 00:47:20.670
4,1

00:47:20.670 --> 00:47:23.170
Wobei, es gab doch,

00:47:23.170 --> 00:47:23.890
ich meine, in den

00:47:23.890 --> 00:47:26.590
2.3.7 oder so, gibt es irgendein

00:47:26.590 --> 00:47:28.850
Feature, dass Type Annotations

00:47:28.850 --> 00:47:30.290
als String betrachtet werden,

00:47:30.290 --> 00:47:32.650
wo steht, dass das im Moment Opt-in ist,

00:47:32.650 --> 00:47:34.730
irgendwie mit From-Future-Import, aber Python 4

00:47:34.730 --> 00:47:36.570
macht das dann als Standard. Und dann habe ich mir gedacht,

00:47:36.690 --> 00:47:38.030
okay.

00:47:38.030 --> 00:47:40.750
Das mit dem Annähern

00:47:40.750 --> 00:47:42.930
an so eine Zahl,

00:47:42.930 --> 00:47:44.570
das ist leider schon ein bisschen vergeblich.

00:47:44.570 --> 00:47:46.750
Ich glaube, Lattech macht E und Tech macht

00:47:46.750 --> 00:47:47.730
Pi oder so, oder?

00:47:47.730 --> 00:47:51.030
Die nähern sich mit ihren Versionen schon irgendwie.

00:47:51.030 --> 00:47:52.890
Wenn sie bei Sempfer

00:47:52.890 --> 00:47:54.110
bleiben würden, wäre ich davor.

00:47:54.110 --> 00:47:55.550
Ja, das wäre auch ganz gut.

00:47:55.550 --> 00:48:00.970
Wenn die Versionen

00:48:00.970 --> 00:48:02.130
nichts bedeuten, ist das auch so ein bisschen schlecht.

00:48:02.130 --> 00:48:04.810
Ich kann doch jedes Jahr wieder

00:48:04.810 --> 00:48:06.190
hochzählen, dass wir irgendwann 2020

00:48:06.190 --> 00:48:07.330
angekommen sind.

00:48:07.330 --> 00:48:09.930
Wenn sich da nichts großartig ändert, warum nicht?

00:48:09.930 --> 00:48:12.130
Das verwirrt mich ja immer noch bei den

00:48:12.130 --> 00:48:14.710
Ubuntu-Versionen, die sich nach

00:48:14.710 --> 00:48:16.650
Buchstaben benennen

00:48:16.650 --> 00:48:18.390
und dann nach Z wieder bei A

00:48:18.390 --> 00:48:19.290
angefangen haben.

00:48:19.290 --> 00:48:22.550
Was hättest du erwartet, dass die irgendwie auf Emojis springen, oder was?

00:48:22.550 --> 00:48:24.210
Anderes Alphabet, Brille.

00:48:24.210 --> 00:48:25.030
Ich hätte Witz nicht gefunden.

00:48:25.030 --> 00:48:27.830
Naja.

00:48:27.830 --> 00:48:30.370
Ja.

00:48:30.370 --> 00:48:32.650
Was mich jetzt noch

00:48:32.650 --> 00:48:33.170
interessieren würde,

00:48:33.780 --> 00:48:35.720
nicht in Gründen. Was wäre denn mit dem nächsten Level?

00:48:35.720 --> 00:48:37.400
Also wenn ich jetzt so die ganzen Basics irgendwie so

00:48:37.400 --> 00:48:38.940
ein bisschen verstanden habe,

00:48:38.940 --> 00:48:41.460
was würde ich denn als nächstes machen?

00:48:41.460 --> 00:48:43.260
Also wir müssen uns ja nicht immer

00:48:43.260 --> 00:48:44.680
da sklavisch an

00:48:44.680 --> 00:48:47.300
unser Rahmenprogramm halten. Das haben wir ja nur

00:48:47.300 --> 00:48:49.820
vorbereitet, damit wir notfalls was haben.

00:48:49.820 --> 00:48:51.340
Also wenn Leute

00:48:51.340 --> 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.500 --> 00:48:59.180
Das heißt, wenn man bei euch durch ist mit Tutorial,

00:48:59.180 --> 00:49:01.300
dann sollte man mit Projekten anfangen oder

00:49:01.300 --> 00:49:03.360
was würdet ihr empfehlen, um die Sprache so

00:49:03.360 --> 00:49:05.280
ein bisschen besser zu verstehen oder irgendwie so Konzepte

00:49:05.280 --> 00:49:07.080
zu gestalten? Ja, ich glaube, es ist

00:49:07.080 --> 00:49:08.900
tatsächlich ein sehr guter

00:49:08.900 --> 00:49:10.380
Ansatz, dass man,

00:49:10.380 --> 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.340
absolviert hat, das muss

00:49:17.340 --> 00:49:19.220
noch nicht mal alle 10 Level sein, sondern das

00:49:19.220 --> 00:49:21.340
kann halt auch, ich glaube

00:49:21.340 --> 00:49:22.980
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
10 Level.

00:49:25.620 --> 00:49:31.460
Ich glaube, mit Level 6

00:49:31.460 --> 00:49:33.340
haben wir Funktionen abgearbeitet,

00:49:33.340 --> 00:49:35.240
und dann, wenn man dann quasi

00:49:35.240 --> 00:49:37.280
ein Projekt hat, wenn man

00:49:37.280 --> 00:49:38.820
sich überlegt, ich möchte

00:49:38.820 --> 00:49:40.720
irgendwas mit Bildern machen,

00:49:40.720 --> 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.160 --> 00:49:47.000
Oder mit Netzwerk, dass man dann

00:49:47.000 --> 00:49:49.400
quasi anfängt,

00:49:49.400 --> 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.620
wie macht man den

00:49:54.620 --> 00:49:56.180
Brandham-Algorithmus

00:49:56.180 --> 00:49:59.220
in Python, dann google ich das und dann gehe

00:49:59.220 --> 00:50:01.000
ich auf Stack Overflow und gucke ich mir an.

00:50:01.000 --> 00:50:03.220
Jetzt musst du ganz kurz für unsere Akteuren,

00:50:03.220 --> 00:50:04.680
was der Bandham-Algorithmus ist.

00:50:04.680 --> 00:50:05.960
Würde ich auch gerne wissen.

00:50:05.960 --> 00:50:08.860
Das war ein Beispiel.

00:50:08.860 --> 00:50:10.860
Damit habe ich mich irgendwann mal beschäftigt,

00:50:10.860 --> 00:50:12.060
ich weiß es selber nicht mehr.

00:50:12.060 --> 00:50:14.280
In die Shownotes kommt das dann.

00:50:14.280 --> 00:50:16.180
Ich kann es rausrufen.

00:50:16.180 --> 00:50:19.140
Also wie gesagt,

00:50:19.140 --> 00:50:20.620
meistens hilft es, wenn man

00:50:20.620 --> 00:50:22.800
ein Projekt hat, das möchte man machen,

00:50:22.800 --> 00:50:24.260
und dann

00:50:24.260 --> 00:50:26.140
beschäftigt man sich

00:50:26.140 --> 00:50:28.600
daher mit Python, weil dann hat man

00:50:28.600 --> 00:50:31.020
ein Ziel, und dann

00:50:31.020 --> 00:50:32.940
kann man gezielter Fragen

00:50:32.940 --> 00:50:33.200
stellen.

00:50:33.200 --> 00:50:34.420
Ansonsten haben wir ja auch

00:50:34.420 --> 00:50:37.200
diese Situation,

00:50:37.200 --> 00:50:38.720
dass wenn Leute

00:50:38.720 --> 00:50:41.220
beim ersten Donnerstag im Monat zu uns kommen

00:50:41.220 --> 00:50:43.000
und beim zweiten Donnerstag im Monat zu uns kommen,

00:50:43.000 --> 00:50:45.140
dass die Personen dann ja doch

00:50:45.140 --> 00:50:46.920
irgendwie was mitgenommen haben, hoffentlich.

00:50:46.920 --> 00:50:49.160
Und dann kann man auch zum dritten Donnerstag

00:50:49.160 --> 00:50:50.940
im Monat kommen, und dann sind wir nicht mehr da,

00:50:50.940 --> 00:50:52.400
und dann können wir sicherlich was anderes tun.

00:50:52.400 --> 00:50:55.040
Ja, aber

00:50:55.040 --> 00:50:56.620
genau, wenn ihr sagt, ihr macht dann

00:50:56.620 --> 00:50:59.080
Funktionen, wie tief geht denn das eigentlich

00:50:59.080 --> 00:51:00.020
sozusagen?

00:51:00.020 --> 00:51:02.840
Jetzt haben wir Rekursionslimit.

00:51:03.200 --> 00:51:04.700
Haha, okay.

00:51:04.700 --> 00:51:08.960
Aber macht ihr auch so Dekoratoren

00:51:08.960 --> 00:51:10.980
dann noch an Funktionen, oder?

00:51:10.980 --> 00:51:13.240
Ja, aber nicht in dem Level, das kommt später.

00:51:13.240 --> 00:51:15.020
Erklärt ihr sowas, was Kloschers

00:51:15.020 --> 00:51:16.280
sind und solche Dinge?

00:51:16.280 --> 00:51:18.340
Also das machen wir irgendwann,

00:51:18.340 --> 00:51:21.160
wenn ich meine, dann haben wir Level 8, 9 oder so,

00:51:21.160 --> 00:51:22.000
aber nicht dann.

00:51:22.000 --> 00:51:23.140
Ja, ich glaube 8.

00:51:23.140 --> 00:51:27.440
Ja, das ist immer eine schwierige Abwägung,

00:51:27.440 --> 00:51:29.060
weil man kann in die

00:51:29.060 --> 00:51:30.760
Themen viel tiefer reingehen.

00:51:30.760 --> 00:51:33.080
Wir haben zum Beispiel am Anfang auch

00:51:33.080 --> 00:51:35.080
nur positionale

00:51:35.080 --> 00:51:36.880
Parameter gemacht, und das dreht dann auch hier weiter

00:51:36.880 --> 00:51:38.340
auf GeoWord und sowas.

00:51:38.340 --> 00:51:41.060
Weil

00:51:41.060 --> 00:51:43.200
man möchte natürlich auch nichts erwähnen,

00:51:43.200 --> 00:51:44.720
was man noch nicht erklärt hat.

00:51:44.720 --> 00:51:47.260
Also zum Beispiel, wenn ich

00:51:47.260 --> 00:51:49.100
ein String habe, wenn ich

00:51:49.100 --> 00:51:51.340
ein Level 1 Strings durchgehe,

00:51:51.340 --> 00:51:53.100
und dann sage, ja,

00:51:53.100 --> 00:51:55.060
ich kann feststellen, ob

00:51:55.060 --> 00:51:55.600
ein String

00:51:55.600 --> 00:51:59.180
Uppercase oder Lowercase ist, wenn ich

00:51:59.180 --> 00:52:00.940
String.isLower schreibe.

00:52:00.940 --> 00:52:02.940
Dann müsste ich

00:52:02.940 --> 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.100 --> 00:52:09.060
Und dann kommt es halt als ersten Parameter selbst.

00:52:09.060 --> 00:52:10.980
Ja, aber

00:52:10.980 --> 00:52:12.960
ich persönlich finde es auch irgendwie doof zu sagen,

00:52:12.960 --> 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:15.280 --> 00:52:18.380
Was zu erwähnen ist einfach gar nicht.

00:52:18.380 --> 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 Arten und Weise,

00:52:22.660 --> 00:52:24.920
diese einfacheren Dinge zu erklären, und weil

00:52:24.920 --> 00:52:26.860
auch neue Leute dabei waren, hatte ich zum Beispiel so, dass ich

00:52:26.860 --> 00:52:28.680
einige Lektionen von jedem von euch einmal gehört habe.

00:52:28.680 --> 00:52:30.760
Und das war sehr cool, weil ich dann bestimmte Sachen noch

00:52:30.760 --> 00:52:32.240
neu gelernt habe, die ich vorher noch nicht kannte.

00:52:32.240 --> 00:52:32.920
Ja, das erinnert sich auch.

00:52:32.940 --> 00:52:34.360
Ich war auch bei der gleichen Person jeden Monat.

00:52:34.360 --> 00:52:37.520
Wir lernen ja auch dazu.

00:52:37.520 --> 00:52:38.580
Das hoffentlich.

00:52:38.580 --> 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.300 --> 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.000 --> 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:55.020
in Programmierung in der Uni

00:52:55.020 --> 00:52:56.880
in Java, ne? Erstmal, das ist

00:52:56.880 --> 00:52:58.840
eine Klasse, das ist eine Funktion, das erklären wir

00:52:58.840 --> 00:53:00.900
später. Ich finde das immer,

00:53:00.900 --> 00:53:02.700
wenn man was erwähnt, dann soll man es

00:53:02.700 --> 00:53:02.920
erklären.

00:53:02.940 --> 00:53:05.140
Und klar, man kann

00:53:05.140 --> 00:53:06.100
die Print-Funktion,

00:53:06.100 --> 00:53:09.000
man kann auch einfach hinnehmen, dass, wenn

00:53:09.000 --> 00:53:11.060
ich da einen String reintue, dann wird er ausgedruckt.

00:53:11.060 --> 00:53:13.000
Wir können ja Funktionsaufrufe

00:53:13.000 --> 00:53:14.980
auch machen, bevor wir selber Funktionen definieren.

00:53:14.980 --> 00:53:15.980
Das ist ja kein Problem.

00:53:15.980 --> 00:53:18.200
Man kann sagen, das ist eine Funktion,

00:53:18.200 --> 00:53:19.040
die

00:53:19.040 --> 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.880 --> 00:53:27.440
machen wir später.

00:53:27.440 --> 00:53:30.840
Aber gerade bei diesem

00:53:30.840 --> 00:53:32.840
String-Beispiel, dass man eben Funktionen

00:53:32.940 --> 00:53:35.320
hatte, die auf einen String aufgerufen

00:53:35.320 --> 00:53:36.920
werden und nicht mit einem String,

00:53:36.920 --> 00:53:38.960
das hat

00:53:38.960 --> 00:53:41.060
bisher auch zum Glück niemand gefragt, warum da ein Punkt

00:53:41.060 --> 00:53:41.440
steht.

00:53:41.440 --> 00:53:49.280
Das ist so eine Schwierigkeit,

00:53:49.280 --> 00:53:51.140
die es mit sich bringt,

00:53:51.140 --> 00:53:51.800
wenn man eben

00:53:51.800 --> 00:53:54.840
am Anfang Sachen erklären will, aber noch

00:53:54.840 --> 00:53:56.940
nicht zu sehr darauf eingehen möchte, warum das

00:53:56.940 --> 00:53:57.520
jetzt so ist.

00:53:57.520 --> 00:54:00.700
Und wenn man dann

00:54:00.700 --> 00:54:02.860
weitergekommen ist, dass man halt viele von diesen

00:54:02.860 --> 00:54:04.960
Konzepten verstanden hat und sein eigenes Projekt angefangen

00:54:04.960 --> 00:54:06.780
hat, dann ist halt die Frage,

00:54:06.780 --> 00:54:08.840
möchte man jedes Projekt dann komplett abschließen oder hat man

00:54:08.840 --> 00:54:10.840
in dem Projekt so schnell was gelernt, dass man direkt nächstes

00:54:10.840 --> 00:54:12.620
macht? Wie viele von euren Projekten habt ihr nicht

00:54:12.620 --> 00:54:14.780
fertig gemacht? Alle werde ich

00:54:14.780 --> 00:54:16.340
irgendwann nochmal fertig machen, glaube ich.

00:54:16.340 --> 00:54:18.840
Also das

00:54:18.840 --> 00:54:20.640
erste Projekt, mit dem ich angefangen habe,

00:54:20.640 --> 00:54:21.500
war

00:54:21.500 --> 00:54:24.620
irgendwie eine Verwaltung

00:54:24.620 --> 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.460
konnte ich irgendwie Dinge aus dem Fernsehen aufnehmen.

00:54:30.460 --> 00:54:32.820
Und dann habe ich mir gedacht, das wäre ja total

00:54:32.820 --> 00:54:34.980
cool, wenn ich die dann irgendwie so sortieren

00:54:34.980 --> 00:54:36.460
könnte, irgendwie nach einer Staffel,

00:54:36.460 --> 00:54:38.900
Episode und sowas. Es gibt da ja auch

00:54:38.900 --> 00:54:40.720
so Online-Datenbanken. Und das war

00:54:40.720 --> 00:54:42.200
mein erstes Projekt und

00:54:42.200 --> 00:54:44.720
ich mache da alle zwei Jahre nochmal irgendwie so

00:54:44.720 --> 00:54:46.800
einen Commit. Und bitte guckt euch nicht auf Github

00:54:46.800 --> 00:54:47.680
an, das ist schrecklich.

00:54:47.680 --> 00:54:50.720
Ja, ich glaube, ich habe auch noch auf

00:54:50.720 --> 00:54:52.580
meinem Github-Repo, in meinem

00:54:52.580 --> 00:54:55.140
Github-Account, Karteileichen

00:54:55.140 --> 00:54:56.660
von Projekten, die ich mal angefangen

00:54:56.660 --> 00:54:58.800
habe, halbherzig

00:54:58.800 --> 00:55:00.740
irgendwann dann liegen

00:55:00.740 --> 00:55:02.380
lassen. Da müsste ich, glaube ich, auch mal

00:55:02.780 --> 00:55:04.580
auskehren. Noch diesen einen

00:55:04.580 --> 00:55:06.640
YouTube-Client, der irgendwann einfach

00:55:06.640 --> 00:55:08.860
das Stack-Limit erreicht bei jeder

00:55:08.860 --> 00:55:10.820
Menüpunkt neuer Regressionswissen.

00:55:10.820 --> 00:55:12.800
Ja, das

00:55:12.800 --> 00:55:14.860
Programm gibt es noch. Ich glaube, das funktioniert

00:55:14.860 --> 00:55:16.300
sogar noch. Aber

00:55:16.300 --> 00:55:18.760
da habe ich halt seit Jahren nichts mehr gemacht.

00:55:18.760 --> 00:55:20.820
Und ich nehme mir vor,

00:55:20.820 --> 00:55:22.040
das irgendwann zu tun, aber

00:55:22.040 --> 00:55:23.100
ja.

00:55:23.100 --> 00:55:26.780
Man kann die Repos

00:55:26.780 --> 00:55:28.640
ja auf Github mittlerweile auch aktivieren. Aber ich hatte

00:55:28.640 --> 00:55:30.740
bisher noch nie diese

00:55:30.740 --> 00:55:32.740
harte Entscheidung getroffen, dass man doch nicht mehr

00:55:32.740 --> 00:55:33.220
verwandelt.

00:55:33.220 --> 00:55:36.640
Nee, das, genau. Es gibt da

00:55:36.640 --> 00:55:38.360
mehrere, also bei mir gibt es auch, ich habe ganz,

00:55:38.360 --> 00:55:40.700
ich weiß nicht genau, ich habe vielleicht so

00:55:40.700 --> 00:55:44.560
60 Github-Repos

00:55:44.560 --> 00:55:45.640
oder sowas.

00:55:45.640 --> 00:55:48.160
Ich sammle die nicht, aber

00:55:48.160 --> 00:55:50.340
im Verlauf der Zeit

00:55:50.340 --> 00:55:52.540
passiert das irgendwie. Und dann gibt es halt unterschiedliche Stadien,

00:55:52.540 --> 00:55:54.560
von denen sich

00:55:54.560 --> 00:55:55.400
Projekte befinden können.

00:55:55.400 --> 00:55:58.060
Also tatsächlich, ich habe auch noch nie

00:55:58.060 --> 00:56:00.540
ein Github-Repo gelöscht oder ein Projekt wirklich komplett wieder

00:56:00.540 --> 00:56:02.620
verschwinden lassen. Aber es gibt dann

00:56:02.620 --> 00:56:04.280
halt welche, wenn ich dann schon mal

00:56:04.280 --> 00:56:06.660
eine Domain registriere, dann ist es schon ernster.

00:56:06.660 --> 00:56:07.720
Oh ja.

00:56:07.720 --> 00:56:09.880
Ich habe

00:56:09.880 --> 00:56:12.540
Projekte, die ziemlich gut funktionieren, zu denen

00:56:12.540 --> 00:56:14.380
ich aber keine Doku habe. Und ich habe

00:56:14.380 --> 00:56:16.420
welche, wo ich eigentlich nur das Konzept habe

00:56:16.420 --> 00:56:18.500
und auch keine Software. Es gibt so eines,

00:56:18.500 --> 00:56:20.440
da habe ich eine Domain, da zahle ich jedes Jahr Geld

00:56:20.440 --> 00:56:22.200
für und da habe ich keine Software für.

00:56:22.200 --> 00:56:23.460
Sehr gut.

00:56:23.460 --> 00:56:26.520
Bei

00:56:26.520 --> 00:56:28.220
einem Projekt, das hatte ich,

00:56:28.220 --> 00:56:30.440
das ist mittlerweile jetzt auch

00:56:30.440 --> 00:56:32.540
drei Jahre alt, da ging es um Gruppen,

00:56:32.580 --> 00:56:34.500
Optimierung und ich hatte das angefangen

00:56:34.500 --> 00:56:36.340
und da hatte ich

00:56:36.340 --> 00:56:38.360
erst unglaublich viel Zeit

00:56:38.360 --> 00:56:39.280
investiert, mir

00:56:39.280 --> 00:56:42.220
viel zu viele Gedanken zu machen, okay,

00:56:42.220 --> 00:56:44.100
wie mache ich das jetzt? Das war doch dein erstes

00:56:44.100 --> 00:56:45.780
grafisches Programm, oder? Ja,

00:56:45.780 --> 00:56:48.240
das war für mich aus

00:56:48.240 --> 00:56:50.260
vielerlei Hinsicht interessant, weil ich da

00:56:50.260 --> 00:56:52.540
einerseits einmal so richtig

00:56:52.540 --> 00:56:54.620
mit Objektorientierung gearbeitet habe,

00:56:54.620 --> 00:56:56.400
also so einmal

00:56:56.400 --> 00:56:58.540
komplett Objektorientierung und Grafik

00:56:58.540 --> 00:57:00.260
und... Weil es geht. Weil es geht.

00:57:00.260 --> 00:57:02.200
Weil ich quasi daran auch selber

00:57:02.200 --> 00:57:02.460
...

00:57:02.460 --> 00:57:04.160
Dinge lernen wollte. Daran habe ich

00:57:04.160 --> 00:57:05.940
dann auch Git viel besser

00:57:05.940 --> 00:57:06.780
kennengelernt.

00:57:06.780 --> 00:57:10.200
Konflikte mit sich selbst ist auch etwas, was man

00:57:10.200 --> 00:57:12.060
vergabt haben sollte. Das muss man

00:57:12.060 --> 00:57:14.260
einfach mal gemacht haben und

00:57:14.260 --> 00:57:15.160
ich glaube, nach

00:57:15.160 --> 00:57:18.280
ein paar Monaten, wo ich da wirklich hochkonzentriert

00:57:18.280 --> 00:57:20.200
dabei geblieben bin, bin ich

00:57:20.200 --> 00:57:21.660
dann in so eine Sackgasse gelaufen,

00:57:21.660 --> 00:57:24.120
dass es einfach nicht mehr funktionierte. Dann habe ich

00:57:24.120 --> 00:57:26.320
das liegen gelassen, dann habe ich irgendwann wieder angefangen,

00:57:26.320 --> 00:57:27.720
die Codebasis

00:57:27.720 --> 00:57:30.320
überarbeitet und dann lief es wieder

00:57:30.320 --> 00:57:32.200
und dann habe ich das wieder ein bisschen

00:57:32.200 --> 00:57:34.060
liegen gelassen und dann habe ich da irgendwann

00:57:34.060 --> 00:57:36.060
mit weitergemacht und mittlerweile bin ich

00:57:36.060 --> 00:57:37.840
da sogar auf einem relativ guten Weg.

00:57:37.840 --> 00:57:40.240
Aber

00:57:40.240 --> 00:57:42.160
mittlerweile ist

00:57:42.160 --> 00:57:43.960
bei mir im Allgemeinen die

00:57:43.960 --> 00:57:46.340
der Workflow

00:57:46.340 --> 00:57:48.080
auch so, dass ich zwar Projekte lokal

00:57:48.080 --> 00:57:50.220
anlege, auch als Git-Repo,

00:57:50.220 --> 00:57:52.040
aber dann erst

00:57:52.040 --> 00:57:54.040
auf meinen GitHub-Account

00:57:54.040 --> 00:57:55.660
hochlade, wenn das quasi

00:57:55.660 --> 00:57:57.940
so weit ist, dass ich der Öffentlichkeit

00:57:57.940 --> 00:57:58.620
zeigen möchte.

00:57:58.620 --> 00:58:02.080
Ja, also ich habe das vor, dass ich

00:58:02.080 --> 00:58:04.120
alle, also dass ich eigentlich nur noch ein

00:58:04.120 --> 00:58:05.980
oder ein Projekt habe, an dem ich

00:58:05.980 --> 00:58:08.260
aktuell arbeite und das halt irgendwie so mal

00:58:08.260 --> 00:58:10.160
entweder, weil mir das

00:58:10.160 --> 00:58:11.980
eine irgendwann langweilig wird oder durch

00:58:11.980 --> 00:58:13.960
so andere Faktoren, wie wenn ich

00:58:13.960 --> 00:58:15.920
Zeit oder sowas, oder Leute

00:58:15.920 --> 00:58:17.800
sprechen mich mal an mit, hey, was ist denn eigentlich

00:58:17.800 --> 00:58:20.220
geworden aus, dass ich das dann so

00:58:20.220 --> 00:58:21.960
einmal im Monat wechsle, was ich gerade

00:58:21.960 --> 00:58:24.180
aktuell mache. Ja, ich glaube, bei mir

00:58:24.180 --> 00:58:25.900
ist das relativ sprunghaft.

00:58:25.900 --> 00:58:28.120
Also ich habe dieses große

00:58:28.120 --> 00:58:30.000
Projekt mit der Gruppenoptimierung,

00:58:30.000 --> 00:58:31.820
wo ich halt immer, wenn ich mal wieder

00:58:31.820 --> 00:58:34.020
Zeit und Lust dran habe,

00:58:34.020 --> 00:58:35.780
weiterarbeite. Da habe ich es jetzt

00:58:35.780 --> 00:58:37.800
mittlerweile auch ganz gut mit der Doku hinbekommen,

00:58:37.800 --> 00:58:39.820
dass ich auch vier Monate

00:58:39.820 --> 00:58:41.940
später noch weiß, wo ich

00:58:41.940 --> 00:58:43.880
war und was mein letzter Stand ist.

00:58:43.880 --> 00:58:44.760
Hast du auch Tests?

00:58:44.760 --> 00:58:47.880
Tatsächlich habe ich teilweise

00:58:47.880 --> 00:58:49.980
Tests. 100% Coverage.

00:58:49.980 --> 00:58:51.780
Naja, die werde ich niemals

00:58:51.780 --> 00:58:54.120
erreichen, aber für die

00:58:54.120 --> 00:58:55.940
Objektiorientierung, die da

00:58:55.940 --> 00:58:57.640
zugrunde liegt, sind Tests

00:58:57.640 --> 00:58:58.680
sogar schon fertig.

00:58:58.680 --> 00:59:01.340
Die führe ich auch hin und wieder aus.

00:59:01.700 --> 00:59:04.040
Aber meistens

00:59:04.040 --> 00:59:05.780
ist es bei meinen Projekten eher

00:59:05.780 --> 00:59:07.820
sprunghaft, dass ich halt

00:59:07.820 --> 00:59:09.840
kleinere Projekte habe. Das sind dann

00:59:09.840 --> 00:59:11.780
meistens auch nur so ein paar hundert Zeilen Code,

00:59:11.780 --> 00:59:14.060
wo ich entweder

00:59:14.060 --> 00:59:16.140
spontan die Idee dazu hatte

00:59:16.140 --> 00:59:18.180
oder da hatte

00:59:18.180 --> 00:59:20.060
mich wer gefragt und ich habe das einfach mal

00:59:20.060 --> 00:59:21.760
ausgetestet oder wir hatten da

00:59:21.760 --> 00:59:23.880
Donnerstag darüber gesprochen und ich wollte da

00:59:23.880 --> 00:59:25.980
quasi noch weitergehen. Das hatte ich jetzt

00:59:25.980 --> 00:59:28.100
letztens, da habe ich was mit Bildern

00:59:28.100 --> 00:59:29.940
gemacht. Also aber du hast

00:59:29.940 --> 00:59:31.580
die Sachen auch vorher mal direkt bei GitHub direkt hochgezogen.

00:59:31.580 --> 00:59:33.700
Das ist ja interessant. Also ich habe jetzt auch so ein paar

00:59:33.700 --> 00:59:35.660
Sachen entdeckt. Bitbucket kennt ihr ja bestimmt alle

00:59:35.660 --> 00:59:37.480
und Azure. Da gibt es ja jetzt auch die Möglichkeit,

00:59:37.480 --> 00:59:39.980
private Repositories unbegrenzt anzulegen.

00:59:39.980 --> 00:59:41.580
Ja, dafür habe ich mir einen

00:59:41.580 --> 00:59:43.460
extra GitLab-Account gemacht, damit ich

00:59:43.460 --> 00:59:45.220
ein privates Repo anlegen kann.

00:59:45.220 --> 00:59:46.900
Ja, aber das gibt es jetzt bei GitHub auch.

00:59:46.900 --> 00:59:49.600
Das war früher, aber das ist

00:59:49.600 --> 00:59:50.180
kostenpflichtig.

00:59:50.180 --> 00:59:53.680
Also das ist jetzt neu, das ist nicht mehr kostenpflichtig?

00:59:53.680 --> 00:59:54.460
Nee. Achso.

00:59:54.460 --> 00:59:57.460
Da wollte ich dann auch überlegen, ob ich mein

00:59:57.460 --> 00:59:59.500
Gruppenoptimierungs-Repo einmal

00:59:59.500 --> 01:00:01.460
auf GitHub hochlade und eventuell

01:00:01.460 --> 01:00:03.760
dann sogar ein öffentliches

01:00:03.760 --> 01:00:05.640
Repo, weil es mittlerweile doch

01:00:05.640 --> 01:00:07.520
ganz schön ansehnlich ist. Aber es gibt

01:00:07.520 --> 01:00:09.420
bei diesen kostenlosen

01:00:09.420 --> 01:00:11.380
privaten Repos auf GitHub

01:00:11.380 --> 01:00:13.520
irgendwie Einschränkungen. Aber du kannst glaube ich

01:00:13.520 --> 01:00:15.400
irgendwie dann keine Leute hinzufügen

01:00:15.400 --> 01:00:17.480
oder sowas, die damit arbeiten können. Das kostet weiterhin

01:00:17.480 --> 01:00:19.400
Geld. Ah, okay. Ja gut,

01:00:19.400 --> 01:00:21.180
irgendwie soll GitHub ja auch nicht verdienen.

01:00:21.180 --> 01:00:22.440
Also finde ich schon okay.

01:00:22.440 --> 01:00:25.860
Aber Gruppenoptimierung,

01:00:25.860 --> 01:00:27.360
das... Ich glaube,

01:00:27.360 --> 01:00:28.420
nicht mathematische.

01:00:28.420 --> 01:00:30.980
Nein, nein, nicht mathematische Gruppen.

01:00:31.340 --> 01:00:33.240
Ja, so Teamzuteilung.

01:00:33.240 --> 01:00:34.280
Ja, Teamzuteilung.

01:00:34.280 --> 01:00:36.980
Hatte ich mir dann

01:00:36.980 --> 01:00:39.340
in der Mitte der Entwicklung dann auch überlegt,

01:00:39.340 --> 01:00:41.420
hm, weise ich

01:00:41.420 --> 01:00:43.100
hier Menschenwerten zu, ob das noch

01:00:43.100 --> 01:00:44.240
moralisch vertretbar ist.

01:00:44.240 --> 01:00:47.100
Man muss wissen, Dodo macht Jugendarbeit.

01:00:47.100 --> 01:00:49.200
Ja, ich mache das mit der Jugendarbeit

01:00:49.200 --> 01:00:51.280
und da ist es immer schwierig, die Teams

01:00:51.280 --> 01:00:52.120
fair zu gestalten.

01:00:52.120 --> 01:00:54.300
Und irgendwelche Sensoren

01:00:54.300 --> 01:00:56.460
die Arbeit übernehmen lassen für die Bewertung.

01:00:56.460 --> 01:00:58.600
Ja,

01:00:58.600 --> 01:01:00.800
da musste ich mir dann auch,

01:01:01.220 --> 01:01:03.200
zum Glück funktioniert das Programm

01:01:03.200 --> 01:01:05.160
auch mit beliebigen Attributen.

01:01:05.160 --> 01:01:07.140
Also die sind nicht so tief

01:01:07.140 --> 01:01:09.140
eingebaut, dass ich die nicht jederzeit ändern könnte.

01:01:09.140 --> 01:01:10.980
Da musste ich mir dann

01:01:10.980 --> 01:01:13.080
erstmal Gedanken machen, welche Attribute ich nehmen kann.

01:01:13.080 --> 01:01:14.200
Aber da

01:01:14.200 --> 01:01:16.460
habe ich dann auch gesehen, dass ich

01:01:16.460 --> 01:01:18.880
das gar nicht kann, dass ich quasi

01:01:18.880 --> 01:01:21.000
ein Projekt von vornherein aus plane

01:01:21.000 --> 01:01:22.820
und dann irgendwann anfange. Das war

01:01:22.820 --> 01:01:25.000
da am Anfang mein Fehler, dass ich mir viel zu

01:01:25.000 --> 01:01:26.700
viele Gedanken gemacht habe, wie ich das

01:01:26.700 --> 01:01:28.980
dokumentiere, wie ich das strukturiere.

01:01:28.980 --> 01:01:31.160
Und es hat deutlich besser geklappt,

01:01:31.180 --> 01:01:33.240
als ich dann irgendwann einmal die Codebasis

01:01:33.240 --> 01:01:34.880
komplett umgeworfen habe und direkt

01:01:34.880 --> 01:01:37.060
angefangen habe, Code zu schreiben

01:01:37.060 --> 01:01:39.220
und danach zu dokumentieren,

01:01:39.220 --> 01:01:40.520
was ich da gemacht habe,

01:01:40.520 --> 01:01:43.080
als erst zu schreiben,

01:01:43.080 --> 01:01:45.180
okay, ich habe hier ein Player-Objekt

01:01:45.180 --> 01:01:48.060
und dann habe ich ein Team-Objekt

01:01:48.060 --> 01:01:49.140
und dann müssen die so und so

01:01:49.140 --> 01:01:50.300
miteinander interagieren.

01:01:50.300 --> 01:01:53.120
Da hat es mir tatsächlich besser getan, einfach

01:01:53.120 --> 01:01:55.280
anzufangen, Code zu schreiben,

01:01:55.280 --> 01:01:57.160
dann ein bisschen zu dokumentieren, dann weiter

01:01:57.160 --> 01:01:57.720
zu schreiben.

01:01:57.720 --> 01:01:59.740
So ein bisschen Agile Hands-On, das kannst du auch

01:01:59.740 --> 01:02:00.180
bestätigen.

01:02:01.060 --> 01:02:03.360
Mir fällt das auch deutlich leichter, wenn ich

01:02:03.360 --> 01:02:05.140
das so mache. Also ich meine, es gibt wahrscheinlich auch

01:02:05.140 --> 01:02:07.280
einfach unterschiedliche Arten von

01:02:07.280 --> 01:02:09.220
Leuten, denen

01:02:09.220 --> 01:02:11.180
unterschiedliche Dinge leicht oder schwer

01:02:11.180 --> 01:02:13.320
fallen. Aber das, was man ja sozusagen

01:02:13.320 --> 01:02:14.520
erzählt bekommt, ist, dass

01:02:14.520 --> 01:02:17.080
der Weg, wie es eigentlich

01:02:17.080 --> 01:02:18.680
sein sollte, irgendwie top-down.

01:02:18.680 --> 01:02:20.660
Man macht irgendwie Architektur und überlegt sich,

01:02:20.660 --> 01:02:22.580
wie Dinge so funktionieren sollen.

01:02:22.580 --> 01:02:23.760
Das ist aber schon sehr klassisch.

01:02:23.760 --> 01:02:27.320
Und dann füllt man das sozusagen nur noch aus

01:02:27.320 --> 01:02:29.060
bis zu, keine Ahnung, wenn

01:02:29.060 --> 01:02:31.020
ein Konzern, das habe ich mal irgendwann von Siemens

01:02:31.020 --> 01:02:32.760
gehört, wo es dann irgendwie, dann gibt es dann

01:02:32.760 --> 01:02:35.020
irgendwie die Informatiker, die dann halt

01:02:35.020 --> 01:02:37.220
sich die Architektur überlegen oder die UML-Diagramme

01:02:37.220 --> 01:02:39.000
malen. Dann gibt es halt Programmierer, die dann halt

01:02:39.000 --> 01:02:41.340
die Funktionssignaturen ausfüllen.

01:02:41.340 --> 01:02:45.120
Es gibt ja auch so Tools, die dir aus UML-Diagrammen

01:02:45.120 --> 01:02:46.480
dann automatisch Code erzeugen.

01:02:46.480 --> 01:02:47.260
Ja.

01:02:47.260 --> 01:02:48.860
Das finde ich auch ein bisschen ekelig.

01:02:48.860 --> 01:02:53.140
Also aufgrund meiner eigenen Erfahrung

01:02:53.140 --> 01:02:54.760
kann ich mir sehr schwer vorstellen, dass das irgendwie

01:02:54.760 --> 01:02:56.360
zu einem guten Ergebnis führt.

01:02:56.360 --> 01:02:58.780
Das ist das Problem der Digitalisierung, oder?

01:02:58.780 --> 01:03:00.820
Dass halt alles völlig überplant ist und dann,

01:03:00.900 --> 01:03:02.700
ändert sich die Umwelt viel schneller,

01:03:02.700 --> 01:03:04.720
als der Plan noch aktuell ist.

01:03:04.720 --> 01:03:06.840
Und dann ist der ganze Aufwand, den man

01:03:06.840 --> 01:03:08.700
für das Plan betrieben hat, erstens dahin

01:03:08.700 --> 01:03:10.740
und man ist dem Projekt noch nicht so weit. Man hat noch keine

01:03:10.740 --> 01:03:12.660
Traction, wie man das so schön sagt,

01:03:12.660 --> 01:03:14.820
bekommen irgendwo. Aber andererseits

01:03:14.820 --> 01:03:16.740
sollte man durchaus schon so ein Konzept

01:03:16.740 --> 01:03:17.900
haben, was man eigentlich machen möchte.

01:03:17.900 --> 01:03:18.780
Ja, gut.

01:03:18.780 --> 01:03:22.900
Aber das muss ja nicht komplett ausformuliert werden.

01:03:22.900 --> 01:03:23.500
Nee, nee, nee.

01:03:23.500 --> 01:03:27.100
Es reicht ja auch, wenn du weißt, was du vorhast.

01:03:27.100 --> 01:03:28.840
Aber wenn du das da ausformulierst,

01:03:28.840 --> 01:03:30.780
ist die...

01:03:30.780 --> 01:03:32.740
der Wille,

01:03:32.740 --> 01:03:34.700
sich an genau dieses Konzept zu

01:03:34.700 --> 01:03:36.880
halten, größer, als wenn du einfach

01:03:36.880 --> 01:03:38.840
nur ein Konzept im Kopf hast und dann...

01:03:38.840 --> 01:03:40.740
Oder das kann auch

01:03:40.740 --> 01:03:42.820
grob ausformuliert sein, aber ich hatte halt

01:03:42.820 --> 01:03:43.740
versucht, das relativ

01:03:43.740 --> 01:03:46.640
stark und streng

01:03:46.640 --> 01:03:48.840
auszuformulieren und dann habe ich festgestellt, dass ich

01:03:48.840 --> 01:03:50.720
beim tatsächlichen Schreiben des

01:03:50.720 --> 01:03:52.640
Codes an Probleme stoße,

01:03:52.640 --> 01:03:54.840
die ich vorher einfach nicht bedacht habe, die dann...

01:03:54.840 --> 01:03:57.060
wo ich mein Konzept ändern müsste

01:03:57.060 --> 01:03:58.800
und da habe ich dann nicht versucht, das Konzept

01:03:58.800 --> 01:04:00.660
zu ändern, sondern den Code und das hat halt

01:04:00.660 --> 01:04:02.360
nicht geklappt, bis ich dann irgendwann eben

01:04:02.360 --> 01:04:04.860
das mit dem Konzept

01:04:04.860 --> 01:04:06.720
gelassen habe und direkt angefangen habe, Code

01:04:06.720 --> 01:04:08.340
zu schreiben, das klappte dann deutlich besser.

01:04:08.340 --> 01:04:10.800
Ja, also mir geht das

01:04:10.800 --> 01:04:12.820
oft tatsächlich so, dass man die Abstraktionen,

01:04:12.820 --> 01:04:14.960
die man braucht, um das Ganze zu strukturieren,

01:04:14.960 --> 01:04:16.740
weil Struktur sollte es dann am Schluss ja

01:04:16.740 --> 01:04:18.900
vielleicht schon haben, erst einfallen,

01:04:18.900 --> 01:04:20.720
wenn man das implementiert, weil viele Dinge,

01:04:20.720 --> 01:04:21.820
die wichtig sind

01:04:21.820 --> 01:04:24.720
und man gar nicht weiß,

01:04:24.720 --> 01:04:26.700
bevor man es nicht gemacht hat und dann erst,

01:04:26.700 --> 01:04:28.460
wenn man es hinschreibt, merkt man also,

01:04:28.460 --> 01:04:30.540
oh, das ist mal ganz wichtig, das und...

01:04:30.540 --> 01:04:32.380
dieses und dieses Ding, die vorher, wo ich vorher gedacht hätte,

01:04:32.380 --> 01:04:34.360
die wären gar nicht gleich, die sind aber eigentlich fast das Gleiche,

01:04:34.360 --> 01:04:36.200
dann kann ich die dann hier zusammenfassen und dann

01:04:36.200 --> 01:04:38.440
kann es sein, dass da irgendwie

01:04:38.440 --> 01:04:39.320
auch ein

01:04:39.320 --> 01:04:42.240
elegantes Konzept oder so draus entsteht,

01:04:42.240 --> 01:04:43.900
aber eher so im Nachhinein, wenn man

01:04:43.900 --> 01:04:46.240
das Problem wirklich verstanden hat, aber um

01:04:46.240 --> 01:04:48.100
das Problem wirklich zu verstehen, muss man irgendwie das

01:04:48.100 --> 01:04:50.760
schon programmiert haben, sonst...

01:04:50.760 --> 01:04:52.300
Ja. Aber gerade so,

01:04:52.300 --> 01:04:54.360
wenn man mit großen

01:04:54.360 --> 01:04:56.180
zeitlichen Abständen an einem Projekt arbeitet,

01:04:56.180 --> 01:04:58.560
finde ich es persönlich wichtig, auch sich so Sachen aufzuschreiben,

01:04:58.560 --> 01:05:00.420
weil ich es ansonsten einfach vergesse

01:05:00.420 --> 01:05:02.580
und ansonsten,

01:05:02.580 --> 01:05:04.220
was ich nicht, also gerade auch

01:05:04.220 --> 01:05:06.020
bei Software, die dann auch tatsächlich Leute nutzen,

01:05:06.020 --> 01:05:08.020
also die ich nicht nur für mich selbst schreibe,

01:05:08.020 --> 01:05:09.780
finde ich das auch irgendwie wichtig, das

01:05:09.780 --> 01:05:12.060
ein bisschen zu dokumentieren, weil

01:05:12.060 --> 01:05:14.000
auch wegen dem Busfaktor und sowas,

01:05:14.000 --> 01:05:16.320
also es wäre halt gut, wenn ich

01:05:16.320 --> 01:05:18.160
das nicht nur in meinem Kopf habe, sondern es im Notfall auch

01:05:18.160 --> 01:05:18.920
andere Leute machen könnten.

01:05:18.920 --> 01:05:21.380
Kleine To-Do-Liste vielleicht, ich weiß nicht, wird das dann

01:05:21.380 --> 01:05:22.660
schon viel sagen?

01:05:22.660 --> 01:05:26.120
Wie macht

01:05:26.120 --> 01:05:27.740
ihr Dokumentationen

01:05:27.740 --> 01:05:30.220
sozusagen in euren Projekten?

01:05:30.300 --> 01:05:32.580
Zu wenig?

01:05:32.580 --> 01:05:34.020
Zu wenig, ja.

01:05:34.020 --> 01:05:38.400
Das Gruppenoptimierungsprojekt

01:05:38.400 --> 01:05:40.100
war jetzt das erste, wo ich wirklich

01:05:40.100 --> 01:05:41.720
Dokumentation

01:05:41.720 --> 01:05:44.380
gut angelegt habe.

01:05:44.380 --> 01:05:45.940
Da habe ich halt eine

01:05:45.940 --> 01:05:48.100
Readme-Datei, die so das Grobe umfasst

01:05:48.100 --> 01:05:49.860
und dann zu bestimmten Themen.

01:05:49.860 --> 01:05:51.220
Ich glaube, ich habe eine

01:05:51.220 --> 01:05:54.000
GUI.md, die eben beschreibt, wie man die

01:05:54.000 --> 01:05:55.980
GUI benutzen soll und wie die

01:05:55.980 --> 01:05:58.100
so aufgebaut ist mit Mockup-Bildern und so.

01:05:58.100 --> 01:05:59.860
Dann habe ich eine

01:05:59.860 --> 01:06:02.140
Klassen.md, die beschreibt,

01:06:02.140 --> 01:06:04.120
welche Klasse welches Objekt liefert

01:06:04.120 --> 01:06:06.240
und was die tun

01:06:06.240 --> 01:06:07.600
sollen, was die darstellen,

01:06:07.600 --> 01:06:10.260
wie die miteinander interagieren

01:06:10.260 --> 01:06:11.980
und ich glaube, ich habe noch eine

01:06:11.980 --> 01:06:14.080
Backend.md, die beschreibt,

01:06:14.080 --> 01:06:16.440
welche Funktionen in der Backend.py

01:06:16.440 --> 01:06:18.040
tatsächlich die

01:06:18.040 --> 01:06:19.020
Berechnung durchführen.

01:06:19.020 --> 01:06:22.100
Und in der Main.py werden einfach

01:06:22.100 --> 01:06:24.100
GUI und Backend zusammengeführt.

01:06:24.100 --> 01:06:25.780
Ich habe gerade so ein ganz wichtiges

01:06:25.780 --> 01:06:27.060
irgendwie Sphinx oder sowas,

01:06:27.060 --> 01:06:28.720
dokumentiert.

01:06:29.740 --> 01:06:31.980
Also ich benutze ja auch tatsächlich

01:06:31.980 --> 01:06:33.900
Sphinx. Also Markdown,

01:06:33.900 --> 01:06:35.520
wird das dann irgendwie

01:06:35.520 --> 01:06:37.040
noch in was anderes verwandelt?

01:06:37.040 --> 01:06:40.120
Nö, ich nehme rohe Markdown-Dateien.

01:06:40.120 --> 01:06:41.140
Genau, weil

01:06:41.140 --> 01:06:43.320
was ich normalerweise mache, aber

01:06:43.320 --> 01:06:45.300
ich habe auch schon überlegt, nicht vielleicht

01:06:45.300 --> 01:06:47.860
komplett Markdown verwenden das Richtige wäre, aber

01:06:47.860 --> 01:06:49.440
was ich momentan verwende ist halt

01:06:49.440 --> 01:06:51.400
Restructured Text als sozusagen

01:06:51.400 --> 01:06:53.880
Format für Dokumentation

01:06:53.880 --> 01:06:55.500
und dann Sphinx

01:06:55.500 --> 01:06:58.180
als sozusagen Renderer,

01:06:58.180 --> 01:06:59.620
der dann halt hinterher

01:06:59.620 --> 01:07:01.040
entweder eine Webseite ausspuckt oder

01:07:01.040 --> 01:07:03.120
ein PDF oder sonst irgendwas.

01:07:03.120 --> 01:07:04.400
Und da nehme ich dann immer noch

01:07:04.400 --> 01:07:05.960
dieses

01:07:05.960 --> 01:07:09.480
Read the Docs

01:07:09.480 --> 01:07:10.880
Theme dazu.

01:07:10.880 --> 01:07:12.500
Es gibt so eine Seite,

01:07:12.500 --> 01:07:15.500
das ist eigentlich ganz hübsch und dann,

01:07:15.500 --> 01:07:18.020
wenn man dieses Theme mit installiert,

01:07:18.020 --> 01:07:20.100
dann sieht die generierte Dokumentation

01:07:20.100 --> 01:07:21.320
halt hinterher genauso aus und

01:07:21.320 --> 01:07:23.700
man kann sie auch automatisch irgendwie direkt

01:07:23.700 --> 01:07:25.820
auf Read the Docs hochladen, wenn man

01:07:25.820 --> 01:07:28.020
jetzt da in GitHub

01:07:28.020 --> 01:07:29.540
so einen Hook aktiviert.

01:07:29.540 --> 01:07:31.740
Ja, ich glaube, ich habe bei Sphinx

01:07:31.740 --> 01:07:33.720
aus seiner Dokumentation an den einzelnen

01:07:33.720 --> 01:07:35.700
Funktionen und Methoden dran, also

01:07:35.700 --> 01:07:37.540
aus den Docstrings, die erstellen lassen.

01:07:37.540 --> 01:07:39.300
Kann man auch, genau. Man kann dann halt

01:07:39.300 --> 01:07:41.680
Sachen, so API-Dokumentationen

01:07:41.680 --> 01:07:44.020
und das kann man automatisch

01:07:44.020 --> 01:07:45.620
erstellen lassen. Das ist aber die Frage,

01:07:45.620 --> 01:07:47.600
wie hilfreich das ist, weil, naja gut,

01:07:47.600 --> 01:07:49.460
das steht ja auch schon im Code irgendwie und

01:07:49.460 --> 01:07:51.200
ja,

01:07:51.200 --> 01:07:53.700
kann man

01:07:53.700 --> 01:07:55.480
machen, aber weiß ich jetzt nicht, fand ich

01:07:55.480 --> 01:07:57.200
bisher nie so wirklich hilfreich.

01:07:57.200 --> 01:07:58.980
Ich meine, wenn man jetzt natürlich wahnsinnig viel,

01:07:59.420 --> 01:08:00.940
äh, Dokumentationen in die, äh,

01:08:00.940 --> 01:08:03.400
in Kommentare reingeschrieben hat, dann

01:08:03.400 --> 01:08:04.460
macht das vielleicht schon Sinn, aber...

01:08:04.460 --> 01:08:07.380
Gerade auch bei so Live-Voices muss ich dann unter Leute überlegen, wie rufe ich

01:08:07.380 --> 01:08:08.800
jetzt die Funktion tatsächlich auf?

01:08:08.800 --> 01:08:11.480
Ja, das ist tatsächlich gerade so

01:08:11.480 --> 01:08:13.360
die Hürde, vor der ich jetzt so ein bisschen noch stehe, wenn ich jetzt

01:08:13.360 --> 01:08:15.080
an meine Projekte denke. Ich habe dann irgendwie

01:08:15.080 --> 01:08:17.320
eine fremde Bibliothek, die ich benutze, sei es jetzt

01:08:17.320 --> 01:08:18.680
irgendwie Qt oder irgendwie sowas

01:08:18.680 --> 01:08:21.460
und ich verstehe jetzt nicht, wie ich was Neues da

01:08:21.460 --> 01:08:23.260
machen kann, wenn ich eine Idee habe, die jetzt nicht direkt

01:08:23.260 --> 01:08:25.200
in den Klassen vorhanden ist und ich muss das irgendwie

01:08:25.200 --> 01:08:27.080
selber generieren, dann habe ich dann

01:08:27.080 --> 01:08:29.180
eine Dokumentation in C-Code mit,

01:08:29.300 --> 01:08:31.300
äh, den Funktionen aufrufen, die da möglich sind

01:08:31.300 --> 01:08:33.300
und wenn ich mir jetzt irgendwie

01:08:33.300 --> 01:08:35.220
abstrakt überlegen soll, wie ich jetzt den Schritt weiterkomme,

01:08:35.220 --> 01:08:36.700
das fällt mir so ein bisschen schwer, also,

01:08:36.700 --> 01:08:39.240
ne, so, was, wie kann ich jetzt ein abstraktes

01:08:39.240 --> 01:08:41.140
Modell in meinem Kopf erzeugen, das ich noch nie kenne?

01:08:41.140 --> 01:08:42.640
Whiteboard. Ja.

01:08:42.640 --> 01:08:43.240
Ja.

01:08:43.240 --> 01:08:46.940
Also auch malen, sagst du,

01:08:46.940 --> 01:08:48.960
und dann in kleine Teile zu legen. Ja, also

01:08:48.960 --> 01:08:51.120
malen hilft doch

01:08:51.120 --> 01:08:53.280
ziemlich stark, finde ich, dass ich dann so Sachen

01:08:53.280 --> 01:08:54.660
auch besser vorstellen kann. Okay.

01:08:54.660 --> 01:08:57.260
Kann ich nur bestätigen, ich habe zwar auch ein Whiteboard,

01:08:57.260 --> 01:08:59.180
aber einerseits, ich habe zu Hause leider kein

01:08:59.180 --> 01:09:01.360
eins, aber wir haben ja genug davon im Dorf.

01:09:01.360 --> 01:09:03.460
Ja, mein Whiteboard hängt leider zu weit

01:09:03.460 --> 01:09:05.260
vom Schrank weg, äh,

01:09:05.260 --> 01:09:07.380
vom Schreibtisch weg, ähm, was ich dann

01:09:07.380 --> 01:09:09.520
mache, ich nehme dann, äh, noch ganz altmodisch

01:09:09.520 --> 01:09:11.320
Zettel und Papier und... Ich habe leider auch nichts

01:09:11.320 --> 01:09:11.920
zu...

01:09:11.920 --> 01:09:15.080
Also Schmierzettel,

01:09:15.080 --> 01:09:17.400
meistens die Rückseite von irgendeinem

01:09:17.400 --> 01:09:19.140
Fehldruck und nehme dann Bleistift und

01:09:19.140 --> 01:09:20.960
mal das auf, weil

01:09:20.960 --> 01:09:23.100
ich habe tatsächlich festgestellt, dass ich so

01:09:23.100 --> 01:09:25.360
deutlich besser mir Sachen visualisieren

01:09:25.360 --> 01:09:27.180
kann, wahrscheinlich

01:09:27.180 --> 01:09:29.060
würde das auch mit einem Grafik-Tablet

01:09:29.060 --> 01:09:31.140
gehen, aber dafür müsste man ja Geld

01:09:31.140 --> 01:09:33.740
aufnehmen. Grafik-Tablets fände ich cool, aber ich, äh,

01:09:33.740 --> 01:09:35.020
habe bisher noch keins gekauft.

01:09:35.020 --> 01:09:37.300
Tatsächlich für das Gruppenoptimierungsprogramm,

01:09:37.300 --> 01:09:39.360
wenn ich einmal, da hatte,

01:09:39.360 --> 01:09:41.120
da ging es um den Algorithmus, der

01:09:41.120 --> 01:09:43.040
tatsächlich die Optimierung macht, der

01:09:43.040 --> 01:09:45.300
teilt die Teams nochmal auf

01:09:45.300 --> 01:09:46.940
und ist

01:09:46.940 --> 01:09:49.060
an einer Stelle ein bisschen rekursiv und so

01:09:49.060 --> 01:09:51.420
und dann, ähm, habe ich tatsächlich

01:09:51.420 --> 01:09:52.820
ganz viel Papier genommen

01:09:52.820 --> 01:09:55.500
und Schnipsel erstellt, auf die ich, ähm,

01:09:55.500 --> 01:09:57.340
die Sachen draufgeschrieben habe,

01:09:57.340 --> 01:09:58.780
so, hier ist mein, äh,

01:09:58.940 --> 01:10:00.900
Player-Schnipsel und hier ist mein Team-Schnipsel

01:10:00.900 --> 01:10:03.000
und dann habe ich ein weiteres Schnipsel

01:10:03.000 --> 01:10:04.600
genommen, die wie Pfeile aussahen,

01:10:04.600 --> 01:10:07.000
dann habe ich den Teppich zur Seite gerollt,

01:10:07.000 --> 01:10:09.020
das alles auf dem Boden aufgelegt, ein Foto von

01:10:09.020 --> 01:10:11.020
mir gemacht und seitdem

01:10:11.020 --> 01:10:12.800
habe ich im, äh, Repo ein

01:10:12.800 --> 01:10:14.940
Foto von Schnipseln auf dem Boden,

01:10:14.940 --> 01:10:17.060
da bräuchte man halt auch Platz auf dem Boden, ne?

01:10:17.060 --> 01:10:18.400
Ja, da,

01:10:18.400 --> 01:10:21.000
da der positive

01:10:21.000 --> 01:10:22.980
Nebeneffekt war, der Boden ist jetzt

01:10:22.980 --> 01:10:24.760
auch gesaugt, ähm,

01:10:24.760 --> 01:10:26.820
aber seitdem habe ich im Repo

01:10:26.820 --> 01:10:28.820
ein Bild von, ähm,

01:10:28.820 --> 01:10:30.140
Zetteln auf dem Boden und

01:10:30.140 --> 01:10:32.680
tatsächlich ist das gar nicht so doof,

01:10:32.680 --> 01:10:34.740
ich hätte es natürlich auch mit einem Grafik-Tablet

01:10:34.740 --> 01:10:35.880
schneller hingekriegt,

01:10:35.880 --> 01:10:38.780
aber, ähm, ja.

01:10:38.780 --> 01:10:40.960
Ja, ne, ich mache auch oft

01:10:40.960 --> 01:10:42.760
dann tatsächlich Fotos von, von irgendwelchen Dingen,

01:10:42.760 --> 01:10:44.680
die ich auf dem Zettel gemalt habe, weil das halt

01:10:44.680 --> 01:10:46.540
irgendwie schneller geht, äh, als, ähm,

01:10:46.540 --> 01:10:48.660
wenn man das bei dir per Machine Learning automatisch

01:10:48.660 --> 01:10:49.840
getaggt und in den richtigen Ordner...

01:10:49.840 --> 01:10:52.220
Nee, das ist alles, alles

01:10:52.220 --> 01:10:54.700
Handarbeit, aber was ich auch faszinierend

01:10:54.700 --> 01:10:56.820
finde, ist, dass ich, äh, ich weiß nicht genau

01:10:56.820 --> 01:10:58.800
warum, ich, ich wollte eigentlich das Papier immer loswerden,

01:10:58.800 --> 01:11:01.060
aber, ähm, irgendwie,

01:11:01.060 --> 01:11:02.860
äh, das kann ja auch sein, dass das

01:11:02.860 --> 01:11:04.620
irgendwie so eine, äh,

01:11:04.620 --> 01:11:06.720
ja, so historisch, äh,

01:11:06.720 --> 01:11:08.780
irgendwie noch so ist, dass irgendwie, wenn ich,

01:11:08.780 --> 01:11:10.680
wenn ich Sachen aufschreibe, es, es kommt, ich hab,

01:11:10.680 --> 01:11:12.780
also meiner Ansicht nach ist es gar nicht so wichtig,

01:11:12.780 --> 01:11:14.440
was man sich aufschreibt, sondern allein das

01:11:14.440 --> 01:11:16.620
vom Papier sitzen und mit dem Stift da irgendwie was

01:11:16.620 --> 01:11:18.800
drauf rummachen, das hilft einem schon

01:11:18.800 --> 01:11:20.600
irgendwie, oder meinem Gehirn irgendwie offenbar

01:11:20.600 --> 01:11:22.820
dabei, äh, irgendwie im richtigen

01:11:22.820 --> 01:11:24.540
Modus zu operieren und, äh,

01:11:24.540 --> 01:11:26.820
wenn ich das auf nem, auf nem Tablet

01:11:26.820 --> 01:11:28.780
mache, was ich halt auch habe, dann funktioniert das

01:11:28.780 --> 01:11:30.780
irgendwie nicht, oder wenn ich auf einer Tastatur sitze, also wenn ich

01:11:30.780 --> 01:11:32.720
irgendwie tippe, ist es was anderes, als wenn ich das auf

01:11:32.720 --> 01:11:34.760
nem Zettel irgendwie aufschreibe, ich hab keine Ahnung, woran das

01:11:34.760 --> 01:11:36.640
liegt, das ist irgendwie komisch. Also bei mir funktioniert das tatsächlich

01:11:36.640 --> 01:11:38.580
auch ganz gut mit, mit Textdateien,

01:11:38.580 --> 01:11:40.680
vielleicht ist es halt nur, dass ich dann sonst nichts habe, also

01:11:40.680 --> 01:11:42.440
ich mach halt dann, dann wirklich auch, auch

01:11:42.440 --> 01:11:44.600
den, den Bildschirm frei und guck halt,

01:11:44.600 --> 01:11:46.400
dass ich wirklich nur das habe, was ich schreibe.

01:11:46.400 --> 01:11:48.620
Der Sehen-Modus. Und dann geht das eigentlich

01:11:48.620 --> 01:11:50.280
auch relativ gut, finde ich.

01:11:50.280 --> 01:11:52.780
Vielleicht ist es aber witzig mit den Zeichnen,

01:11:52.780 --> 01:11:54.560
also ich hab auch ein bisschen das Gefühl, dass das wirklich hilft,

01:11:54.560 --> 01:11:56.700
vielleicht benutzt man andere Gehirnteile oder sowas

01:11:56.700 --> 01:11:58.180
und wird dann neu, kreativ, oder?

01:11:58.180 --> 01:12:00.600
Oder auch, wenn ich gerade nicht

01:12:00.600 --> 01:12:02.520
im Rechner bin, kann ich nicht Twitter aufmachen auf dem

01:12:02.520 --> 01:12:03.140
Whiteboard oder so.

01:12:03.140 --> 01:12:06.640
Ich kann mir vorstellen, dass es so eine Kombination

01:12:06.640 --> 01:12:08.680
daraus ist, dass man einerseits weniger abgelenkt

01:12:08.680 --> 01:12:10.280
ist, dass andererseits,

01:12:10.280 --> 01:12:12.700
was weiß ich, vielleicht hängt es auch damit

01:12:12.700 --> 01:12:14.000
zusammen, dass wir aus der Schule,

01:12:14.000 --> 01:12:16.740
die wir noch gewohnt sind, wenn wir

01:12:16.740 --> 01:12:18.540
was auf Papier schreiben, dann konzentrieren

01:12:18.540 --> 01:12:20.640
wir uns darauf. Ich hasse Papier und Papier

01:12:20.640 --> 01:12:22.740
hasse ich nicht. Und wenn wir vorm Rechner

01:12:22.740 --> 01:12:24.740
sitzen, haben wir da ganz andere Reize,

01:12:24.740 --> 01:12:26.560
die auf uns zukommen. Also ich kann das auch

01:12:26.560 --> 01:12:26.680
vollkommen,

01:12:26.680 --> 01:12:27.880
vollkommen nachvollziehen, was ihr sagt.

01:12:27.880 --> 01:12:30.900
Meistens brauche ich da auch

01:12:30.900 --> 01:12:31.700
Stift und Papier,

01:12:31.700 --> 01:12:34.840
weil Textdateien habe ich versucht,

01:12:34.840 --> 01:12:36.740
aber meistens

01:12:36.740 --> 01:12:38.580
kann ich in

01:12:38.580 --> 01:12:40.620
Textdateien das nicht so

01:12:40.620 --> 01:12:43.040
gut ausformulieren,

01:12:43.040 --> 01:12:44.660
wie wenn ich mir ein Schaubild aufs

01:12:44.660 --> 01:12:46.460
Papier male. Ja, gerade so

01:12:46.460 --> 01:12:48.340
Pfeile und so was und Kästen

01:12:48.340 --> 01:12:49.860
sind schwierig in Textdateien, ja.

01:12:50.670 --> 01:13:09.850
Meistens brauche ich es dann ein bisschen grafisch, weil ich mir, was weiß ich, wenn ich mir, ja, jetzt fehlt mir ein Beispiel, meistens nehme ich dann kleine Grafiken, die ich mir dann aufs Papier zeichne, um mir das zu visualisieren und ich finde, das klappt deutlich besser, als wenn ich das versuche auszuformulieren.

01:13:11.050 --> 01:13:22.710
Was würdet ihr denn machen, wenn ihr gar nicht mehr weiterkommt? Also ich habe das auch schon ein paar Mal gehabt, dann, keine Ahnung, weiß nicht, wie es geht, also mit einem Drohverlauf, dann ist da so eine Wand, da kommt man nicht einfach drüber und was würdet ihr empfehlen, wie sollte man da dann rangehen?

01:13:22.710 --> 01:13:39.710
Schlafen oder irgendwas völlig anderes machen, also teilweise kommen mir die Ideen dann irgendwie auf den Klo oder hinter der Dusche, abends im Bett, drüber schlafen, davon ablenken, was anderes machen, generell häufig führt das zu was, weil

01:13:41.050 --> 01:13:49.210
ich weiß nicht wieso, aber wie gesagt, mir fielen Sachen auch unter der Dusche ein, auf dem Weg ins Bett und dann dachte ich, ah ne, jetzt nochmal aufstehen.

01:13:49.210 --> 01:14:08.290
Was mir auch geholfen hat, dass ich mich von dem Gedanken gelöst habe, dass es jetzt schlecht ist, wenn ich was lösche, also ich habe eine Versionsverwaltung, das heißt, ich kann auch einfach mal die letzten fünf Commits rückgängig machen und neu anfangen, also dass man...

01:14:08.290 --> 01:14:10.770
Ich muss die Funktionen nicht schrittweise neu schreiben?

01:14:11.050 --> 01:14:13.210
Ich kann jetzt löschen und neu schreiben, ich habe die alte Version noch.

01:14:13.210 --> 01:14:17.910
Man darf auch ruhig mal 100 Zeilen Code auf einmal löschen und neu schreiben.

01:14:17.910 --> 01:14:20.070
Nicht jeden Tag.

01:14:20.070 --> 01:14:29.310
Nicht jeden Tag, weil irgendwo einen Fortschritt muss es auch geben, aber dann kann man beruhigt auch mal größere Mengen Code löschen und neu schreiben.

01:14:29.310 --> 01:14:41.010
Meistens hilft das einem schneller, als wenn man versucht, alte Strukturen noch irgendwie zu laufen zu kriegen, weil man dann viel eher noch Sachen hinterfragt, die man vorher einfach akzeptiert.

01:14:41.010 --> 01:14:41.030
Ja.

01:14:41.050 --> 01:14:43.070
Und noch mal das Konzept mit dem Gelernten.

01:14:43.070 --> 01:14:46.450
Ja.

01:14:46.450 --> 01:14:58.930
Ansonsten, Wabadacking ist natürlich auch sinnvoll, wenn ich nicht alleine vor meinem Code sitze und frage, warum der die ganze Zeit einen Fehler wirft oder warum er nicht das tut, was er machen soll.

01:14:58.930 --> 01:15:04.190
Gerade semantische Fehler sind halt da schwieriger, wenn ich dann einfach jemand anderen erkläre.

01:15:04.190 --> 01:15:10.030
Also das Programm macht das und das und dann stellt der mir Fragen und wenn ich die Fragen nicht beantworten kann, dann lerne ich daraus.

01:15:10.030 --> 01:15:11.030
Oder auch...

01:15:11.050 --> 01:15:15.510
Oder Doku schreiben. Das ist ein bisschen quasi Wabadacking mit sich selbst.

01:15:15.510 --> 01:15:15.830
Ja.

01:15:15.830 --> 01:15:17.590
Und da fällt mir das dann auch teilweise auf.

01:15:17.590 --> 01:15:18.670
So.

01:15:18.670 --> 01:15:19.130
Ja.

01:15:19.130 --> 01:15:24.210
Allein schon, weil man dadurch auch eine andere Blickweise auf das Problem bekommt.

01:15:24.210 --> 01:15:24.690
Mhm.

01:15:24.690 --> 01:15:27.370
Und das hilft einem meistens.

01:15:27.370 --> 01:15:29.050
Wabadacking, Gummienten?

01:15:29.050 --> 01:15:30.130
Ja.

01:15:30.130 --> 01:15:31.130
Ja, das...

01:15:31.130 --> 01:15:33.330
Stell dir vor, du erzählst es einer Gummientin.

01:15:33.330 --> 01:15:38.370
Genau. Ich kenne das als Wabadack-Debugging sozusagen.

01:15:38.370 --> 01:15:38.870
Ja, genau.

01:15:38.870 --> 01:15:41.010
Man debugt dadurch, dass man einer Gummienten...

01:15:41.010 --> 01:15:42.830
Erzählt, was da eigentlich passieren sollte.

01:15:42.830 --> 01:15:44.910
Und dann, wenn man das 10 Minuten...

01:15:44.910 --> 01:15:49.630
Also, es kommt aus der Erfahrung, dass man normalerweise anfängt, das irgendwelchen Leuten zu erzählen.

01:15:49.630 --> 01:15:52.770
Und die dann irgendwie alle 30 Sekunden sagen so, ja, aber ich habe keine Ahnung.

01:15:52.770 --> 01:15:54.030
Und das muss man dann ignorieren.

01:15:54.030 --> 01:15:57.970
Und dann nach irgendwie 10 Minuten sagt man sich, ah, okay, ich weiß, warum es schief geht.

01:15:57.970 --> 01:15:58.330
Ach, Mist.

01:15:58.330 --> 01:16:00.550
Kommt halt immer auf die Leute an.

01:16:00.550 --> 01:16:05.910
Also, wenn du genug Leute hast, die sich für ähnliche Dinge interessieren oder Zeit haben, das wirklich spannend finden,

01:16:05.910 --> 01:16:08.810
dann geht das auch mit echten Menschen und nicht nur mit Gummienten.

01:16:08.810 --> 01:16:10.170
Ja, vielleicht geht es auch sogar schneller.

01:16:10.170 --> 01:16:10.810
Aber es geht halt...

01:16:11.010 --> 01:16:11.790
Auch mit Gummienten.

01:16:11.790 --> 01:16:12.230
Ja, genau.

01:16:12.230 --> 01:16:13.430
Das ist halt das Faszinierende.

01:16:13.430 --> 01:16:16.130
So eine Art von Gummienten bin ich irgendwo bei mir über die Jahre.

01:16:16.130 --> 01:16:20.270
Es gibt tatsächlich Firmen, die so Gummienten als Werbegeschenke genau dafür verteilen.

01:16:20.270 --> 01:16:30.310
Meistens ist es ja so, dass man tatsächlich nicht zu doof ist, sondern irgendetwas nicht bedacht hat.

01:16:30.310 --> 01:16:31.270
Man steht irgendwie gerade auf einer Verleitung oder sowas.

01:16:31.270 --> 01:16:33.470
Die Fehler sind meistens döver als man selber.

01:16:33.470 --> 01:16:36.710
Ja, was weiß ich.

01:16:36.710 --> 01:16:40.710
Da hast du dann irgendwie eine Klammer vergessen und auf einmal ist das kein Tuppel, sondern...

01:16:41.010 --> 01:16:42.230
Sonst noch was?

01:16:42.230 --> 01:16:48.590
Oh ja, ich habe mir ziemlich viel Zeit damit verschwendet, weil ich einen Tuppel haben wollte mit einem Element,

01:16:48.590 --> 01:16:51.010
dann eine runde Klammer drum gemacht habe und es war dann kein Tuppel.

01:16:51.010 --> 01:16:52.010
Nee, es fehlte eine Klammer.

01:16:52.010 --> 01:16:53.530
Ja, ja.

01:16:53.530 --> 01:16:59.310
Ja, wie gesagt, meistens sind es eben die doofen Fehler, die man am längsten sucht.

01:16:59.310 --> 01:17:01.890
Weil es dann ja auch in Ordnung aussieht, wenn du drauf guckst.

01:17:01.890 --> 01:17:02.350
Genau.

01:17:02.350 --> 01:17:03.790
Ja.

01:17:03.790 --> 01:17:06.270
Naja, da gibt es schon...

01:17:06.270 --> 01:17:07.550
Aber das finde ich auch interessant.

01:17:07.550 --> 01:17:10.270
Das ist auch vielleicht etwas, das halt irgendwie so den...

01:17:10.270 --> 01:17:10.830
Wenn man...

01:17:10.830 --> 01:17:14.570
Ja, die Tätigkeit beim Programmieren unterscheidet von anderen Geschichten.

01:17:14.570 --> 01:17:15.270
Man ist ja als...

01:17:15.270 --> 01:17:18.850
Ich glaube, das ist tatsächlich irgendwie ein bisschen was Besonderes, dass man, wenn man programmiert ist,

01:17:18.850 --> 01:17:24.150
dass man halt irgendwie die ganze Zeit frustriert darüber, dass irgendwie Dinge nicht gehen.

01:17:24.150 --> 01:17:27.110
Weil alles, was geht, das geht ja super schnell und ist super schnell automatisiert.

01:17:27.110 --> 01:17:29.270
Und man ist immer eigentlich an dem Punkt, wo was nicht geht.

01:17:29.270 --> 01:17:30.890
Und das ist, glaube ich, bei anderen Leuten nicht so.

01:17:30.890 --> 01:17:36.670
Also ich meine, wenn ich jetzt irgendwie, keine Ahnung, irgendeinen Garten umgrabe oder wenn ich irgendwie so Dinge...

01:17:36.670 --> 01:17:40.770
Dann habe ich immer wieder Phasen, wo ich weiß, naja gut, das geht jetzt so eine halbe Stunde,

01:17:40.790 --> 01:17:42.050
weil ich muss das aber...

01:17:42.050 --> 01:17:42.670
Ich weiß, wie das geht.

01:17:42.670 --> 01:17:44.090
Ich mache das jetzt einfach mal eine halbe Stunde lang.

01:17:44.090 --> 01:17:46.150
Zum Beispiel beim Kochen oder so, dann schnibbel ich irgendwas.

01:17:46.150 --> 01:17:52.430
Man hat nicht die ganze Zeit das Problem, da wirklich von einem harten Ding, was man nicht versteht, zu stehen.

01:17:52.430 --> 01:17:54.130
Sondern man hat immer wieder so...

01:17:54.130 --> 01:17:59.530
Man hat natürlich auch diese Momente, aber oft weiß man eigentlich, was zu tun ist und muss das halt nur eine Zeit lang machen.

01:17:59.530 --> 01:18:01.250
Und beim Programmieren ist es oft so...

01:18:01.250 --> 01:18:07.670
Also ja, man muss sich erst daran gewöhnen, sozusagen überwiegenden Teil der Zeit halt irgendwie mit dem Kopf vor der Wand zu stehen.

01:18:07.670 --> 01:18:10.610
Aber das ist ja auch irgendwie so wie Wadding, weil du halt da stehst und du hast...

01:18:10.610 --> 01:18:10.650
Ja.

01:18:10.650 --> 01:18:13.510
Ein Rätsel und du knackst es dann irgendwann halt hoffentlich, aber...

01:18:13.510 --> 01:18:15.270
Ja, aber das kann auch ziemlich frustrierend sein.

01:18:15.270 --> 01:18:23.010
Ich finde es aber dann als Abwechslung auch ziemlich entspannt, irgendwie, weiß ich nicht, irgendwas einzurichten oder irgendwie Dokus zu schreiben oder so,

01:18:23.010 --> 01:18:28.210
weil du weißt, du kannst dann halt irgendwie die Zeit einschalten und du machst das dann halt und hast so ein Ergebnis nach der Zeit.

01:18:28.210 --> 01:18:29.890
Das ist halt schon auch nett.

01:18:29.890 --> 01:18:34.210
Ja, so zur Abwechslung, die Kommentare zu dem Code zu schreiben, ist auch schon ganz gut.

01:18:34.210 --> 01:18:34.530
Ja.

01:18:34.530 --> 01:18:40.530
Aber ich verstehe dann, was du meinst, dass du quasi Programmieren keinen Anteil an Fleißarbeit hast.

01:18:40.650 --> 01:18:48.330
Sondern du bist halt immer bei den 80 Prozent, machst du in 20 Prozent der Zeit und danach hängst du bei diesen 20 Prozent fest.

01:18:48.330 --> 01:18:49.750
Du musst einfach wissen, wie es geht.

01:18:49.750 --> 01:18:50.110
Ja.

01:18:50.110 --> 01:18:52.830
Und...

01:18:52.830 --> 01:18:53.990
Sehr schön dichter, ne?

01:18:53.990 --> 01:18:59.090
Wenn man tatsächlich messen würde, wie viel Zeit man so beim Programm braucht.

01:18:59.090 --> 01:19:03.570
Ich meine, der Großteil ist ja schnell runtergeschrieben, nur die Fehler, die brauchen dann viel mehr.

01:19:03.570 --> 01:19:08.150
Und im Grunde weiß man ja auch, was...

01:19:08.150 --> 01:19:10.570
Man schreibt eine Zeile und weiß, in der nächsten Zeit...

01:19:10.570 --> 01:19:15.630
In der nächsten Zeile muss das und das stehen und dann kommt die Vorschleife und dann packe ich da rein das und so weiter und so fort.

01:19:15.630 --> 01:19:17.510
Wenn ihr so einen Fehler habt, wie geht ihr denn daran?

01:19:17.510 --> 01:19:21.710
Also versucht ihr den zu debuggen, indem ihr guckt, warum das ist?

01:19:21.710 --> 01:19:23.830
Oder versucht ihr dann auszuprobieren, wie man den lösen kann?

01:19:23.830 --> 01:19:26.870
Ich habe noch nie wirklich einen Debugger verwendet, sondern immer nur Print.

01:19:26.870 --> 01:19:28.050
Ja, ich auch nicht.

01:19:28.050 --> 01:19:34.530
Also, wenn ich einen Hintag-Fehler habe, gut, dann sehe ich im Traceback, aha, Zeile das und das.

01:19:34.530 --> 01:19:36.170
Was sagt denn der Fehler? Aha, okay.

01:19:36.170 --> 01:19:40.490
Schwieriger ist es natürlich bei semantischen Fehlern.

01:19:40.490 --> 01:19:46.030
Wo das Programm keinen Fehler wirft, sondern du mit der Ausgabe nicht zufrieden bist, da ist dann die Anwendung ja okay.

01:19:46.030 --> 01:19:52.970
Ich packe da jetzt ganz viele Prints rein und gucke, da ist es noch richtig, da auch, da auch, da falsch.

01:19:52.970 --> 01:19:55.470
Okay, der Fehler muss ungefähr da sein.

01:19:55.470 --> 01:19:56.210
Oh ja.

01:19:56.210 --> 01:20:01.950
Und dann, okay, das ist jetzt ein Ausdruck der drei ineinander verschachtelte Funktionsaufrufe.

01:20:01.950 --> 01:20:07.570
Dann verschachtele ich die jetzt mal in drei Zeilen und dann jeweils Print vorher, Print nachher.

01:20:07.570 --> 01:20:10.410
Und meistens mache ich es dann so.

01:20:10.410 --> 01:20:24.370
Also, wie ist CodeTroll auch einen sehr guten Debugger an der Stelle haben für so Zeugs, dass man halt die Variablen testen kann, immer genau da und diesen Print sich dann immer einem, den man nicht extra in Code schreiben muss, sondern irgendwie einen Debugger und so.

01:20:24.370 --> 01:20:29.610
Ja, aber meistens nehme ich dafür dann auch einfach einen Print und gut.

01:20:29.610 --> 01:20:37.330
Und wenn euch nicht einfällt diese Lösung, guckt ihr dann in die Dokumentation oder werdet ihr dann einfach angezeigen in die Modulreihen oder sowas?

01:20:40.330 --> 01:21:00.590
Also, es mag unglaublich doof klingen, aber wenn mir ein Fehler angezeigt wird, eventuell aus einem Modul, das ich importiert habe, den ich nicht kenne, der mir nichts sagt, dann kann ich den googeln und da wird garantiert schon wer anders auf Stack Overflow dieselbe Frage gehabt haben.

01:21:00.590 --> 01:21:08.630
Und da hilft es meistens auch, zumindestens um schon mal zu verstehen, um was für einen Fehler es sich handelt.

01:21:08.630 --> 01:21:10.250
Klar, bei den Normalen.

01:21:10.250 --> 01:21:12.470
Bei den Normalen Facebacks ist das relativ simpel.

01:21:12.470 --> 01:21:16.690
Wenn da Zero Division Ever steht, dann habe ich durch Null geteilt irgendwo.

01:21:16.690 --> 01:21:25.310
Das kriegt man relativ gut gefixt, aber wenn man die Fehlermeldung nicht kennt, dann einfach mal googeln.

01:21:25.310 --> 01:21:35.130
Ja, aber auch vielleicht nochmal, was interessant wäre, was seht ihr denn, wenn ihr jetzt da viel Anfänger dabei beobachtet, das zu lernen, was fällt denen denn besonders schwer?

01:21:35.130 --> 01:21:40.110
Ist das immer das Gleiche oder ist es ganz je nachdem, wer das ist?

01:21:40.170 --> 01:21:41.030
Ganz unterschiedliche Sachen.

01:21:41.030 --> 01:21:42.770
Cool.

01:21:42.770 --> 01:21:53.410
Bei Anfängern hat man teilweise noch tatsächlich Flüchtigkeitsfehler, so was weiß ich, Klammer nicht zugemacht, Gänsefühlchen offengelassen.

01:21:53.410 --> 01:21:56.210
Das sind natürlich ja gut.

01:21:56.210 --> 01:22:03.770
Ist man eventuell noch nicht gewohnt, ein klassischer Flüchtigkeitsfehler einfach vergessen.

01:22:03.770 --> 01:22:06.250
Das kommt natürlich vor.

01:22:06.250 --> 01:22:10.090
Dann gibt es Fehler, die quasi wir schon wissen, dass die aufhören.

01:22:10.090 --> 01:22:13.930
Die auftauchen werden, weil, ja.

01:22:13.930 --> 01:22:16.390
Welche zum Beispiel?

01:22:16.390 --> 01:22:20.790
Jetzt wäre ein Beispiel gut.

01:22:20.790 --> 01:22:24.550
Wenn man zum Beispiel die falsche Variable benutzt.

01:22:24.550 --> 01:22:36.950
Wenn du in der Vorschleife statt die Durchlaufvariable dein Interact, statt die Variable, die du als Durchlaufvariable hast, die Variable nimmst, die du durchläufst.

01:22:36.950 --> 01:22:39.950
Das passiert schon mal, aber das ist dann...

01:22:40.090 --> 01:22:46.370
Das ist dann ja auch eher ein semantischer Fehler, weil es wirft nicht zwingend einen Fehler, aber es tut halt nicht das, was es soll.

01:22:46.370 --> 01:22:50.710
Und auch Leute, die eine Funktion nicht aufrufen, sondern nur die Funktion dahin schreiben.

01:22:50.710 --> 01:22:51.150
Ja.

01:22:51.150 --> 01:22:51.810
Das passiert schon mal.

01:22:51.810 --> 01:22:54.090
Vergessene Klammern beim Funktionsaufruf.

01:22:54.090 --> 01:22:56.850
Ja.

01:22:56.850 --> 01:23:03.090
Ich glaube, Anfänger machen jetzt nicht groß andere Fehler als Fortgeschrittene.

01:23:03.090 --> 01:23:06.350
Wenn du mehr weißt, kannst du auch mehr Fehler machen.

01:23:06.350 --> 01:23:07.110
Ja, das stimmt.

01:23:10.010 --> 01:23:13.650
Tatsächlich, ich glaube, Anfänger machen einfach nur mehr Flüchtigkeitsfehler.

01:23:13.650 --> 01:23:17.930
Die sind das ja auch nicht so gewohnt.

01:23:17.930 --> 01:23:19.070
Wie sieht ein String aus?

01:23:19.070 --> 01:23:21.850
Ich erkenne viele Fehler, der hat das letztlich auch optisch.

01:23:21.850 --> 01:23:22.330
Ja.

01:23:22.330 --> 01:23:26.410
Wenn mir der Editor anzeigt, guck mal, da geht ein String nicht zu.

01:23:26.410 --> 01:23:27.830
Ja gut, dann mache ich den zu.

01:23:27.830 --> 01:23:38.790
Aber wenn ich gerade damit anfange und jeder Buchstabe für mich quasi einen Einblick in eine neue Welt gibt, dann ist das eventuell schwieriger.

01:23:38.790 --> 01:23:39.830
Das ist auch so, dass das...

01:23:40.010 --> 01:23:43.710
Syntaxverleitung irgendwie in der falschen Farbe, das fällt mir zunächst mal auf.

01:23:43.710 --> 01:23:44.050
Ja.

01:23:44.050 --> 01:23:48.030
Weil man da auch ein gewisses, ich weiß nicht, Gefühl...

01:23:48.030 --> 01:23:48.150
Oh.

01:23:48.150 --> 01:23:54.850
Irgendwann hat man dann auch so einen Modus Operandi.

01:23:54.850 --> 01:24:03.190
Zum Beispiel, wenn ich Gänsefüßchen nehme, dann macht mir der Editor automatisch zwei, wenn ich eins tippe.

01:24:03.190 --> 01:24:07.130
Dann gehe ich einmal nach links, um in dem Gänsefüßchen zu sein und dann tippe ich da rein.

01:24:07.130 --> 01:24:09.930
Und was weiß ich, ein Anfänger...

01:24:09.930 --> 01:24:15.470
Ein Anfänger würde dann wahrscheinlich Gänsefüßchen, den String und dann nochmal ein Gänsefüßchen und dann vergisst es dir einen zweiten.

01:24:15.470 --> 01:24:19.910
Oder der Text-Editor fügt da nochmal zwei ein.

01:24:19.910 --> 01:24:20.270
Ja.

01:24:20.270 --> 01:24:23.230
Dann hast du drei und dann klappt das auf einmal nicht mehr.

01:24:23.230 --> 01:24:25.650
Dann laufe ich ja immer noch regelmäßig rein, tatsächlich.

01:24:25.650 --> 01:24:27.010
Ja.

01:24:27.010 --> 01:24:32.090
Also ich würde behaupten, Anfänger machen dieselben Fehler.

01:24:32.090 --> 01:24:34.070
Vielleicht nur häufiger.

01:24:34.070 --> 01:24:37.070
Aber ich glaube gar nicht so häufiger.

01:24:37.070 --> 01:24:38.630
Ja.

01:24:38.630 --> 01:24:39.850
Gibt es denn auch...

01:24:39.850 --> 01:24:42.730
Gibt es denn auch Dinge, die Anfänger besonders toll finden?

01:24:42.730 --> 01:24:47.110
Etwas, wo man irgendwie zuverlässig so einen Wow-Effekt mit erzielen kann?

01:24:47.110 --> 01:24:50.310
Oder was sie überrascht, wie einfach das geht?

01:24:50.310 --> 01:24:53.590
Gerade so grafische Sachen sind immer ziemlich überraschend.

01:24:53.590 --> 01:24:55.430
Wir haben mal irgendwann Tirtel gezeigt.

01:24:55.430 --> 01:25:02.370
Und dass man einfach so schnell irgendwie...

01:25:02.370 --> 01:25:08.490
Also gerade so grafische Ergebnisse, weil sie nicht Rechtecke oder so was oder irgendwie Flächen überraschen Leute doch.

01:25:08.490 --> 01:25:09.610
Ja.

01:25:09.770 --> 01:25:15.390
Es ist natürlich immer gut, wenn man direkt was zeigen kann, was auch so ein bisschen über eine Kommando...

01:25:15.390 --> 01:25:21.610
Also klar ist es noch eine Kommandozeilenanwendung, aber wenn dann plötzlich ein Fenster aufgeht und da ist ein Bild drin.

01:25:21.610 --> 01:25:25.550
Oder wenn ein Fenster aufgeht und auf einmal ist dann ein Graf drin.

01:25:25.550 --> 01:25:29.530
Was ich persönlich finde, finde bunten Text im Terminal ja spannender, aber...

01:25:29.530 --> 01:25:31.710
Ich finde das auch schon sehr spannend.

01:25:31.710 --> 01:25:33.550
Irgendwie sehen das andere Leute nicht so.

01:25:33.550 --> 01:25:35.210
Die Leidenschaft hat nicht so ausgeprägt.

01:25:35.210 --> 01:25:39.730
Wir haben, glaube ich, mal einen Abend heute ziemlich stark gelangen.

01:25:39.730 --> 01:25:42.210
Wir haben einen Abend heute, in dem wir sehr viel zu Terminals erzählt haben.

01:25:42.210 --> 01:25:42.430
Ja.

01:25:42.430 --> 01:25:45.450
Ich glaube, du warst dabei, ne?

01:25:45.450 --> 01:25:46.110
Ich fand's gut.

01:25:46.110 --> 01:25:50.370
Das hatten wir ja letzten Abend.

01:25:50.370 --> 01:25:52.070
Da haben wir was mit Bildern gemacht.

01:25:52.070 --> 01:25:56.770
Das hat natürlich den Vorteil, dass man direkt was Buntes sieht und auch die Erinnerungen direkt sieht.

01:25:56.770 --> 01:25:57.430
Was für die Augen.

01:25:57.430 --> 01:25:58.010
Ja.

01:25:58.010 --> 01:25:59.910
Ein bisschen was für die Augen.

01:25:59.910 --> 01:26:02.030
Voll die krassen Sachen gesehen, wenn man Blender machen kann.

01:26:02.030 --> 01:26:07.630
Man kann halt diese ganzen interaktiven Grafiken generieren lassen mit, weiß ich nicht, 20 Zeilen oder so.

01:26:07.630 --> 01:26:09.630
Ja, aber dafür müssen wir eine Ahnung von Blender haben.

01:26:09.650 --> 01:26:11.070
Ähm, tja.

01:26:11.070 --> 01:26:12.810
Das sah auf jeden Fall cool aus.

01:26:12.810 --> 01:26:20.670
Ich hab mir das tatsächlich, als wir am letzten Donnerstag was mit Pillow und Bildern gemacht haben,

01:26:20.670 --> 01:26:22.470
hab ich mir das direkt als, ähm...

01:26:22.470 --> 01:26:23.630
Hab ich da richtig was verpasst?

01:26:23.630 --> 01:26:24.030
Ja.

01:26:24.030 --> 01:26:30.270
Hab ich das direkt als Anfang dafür genommen, mich ein bisschen mehr mit Pillow zu beschäftigen

01:26:30.270 --> 01:26:35.170
und, ähm, ja, hab da jetzt ein kleines Projekt, das sich mit Steganografie beschäftigt.

01:26:35.170 --> 01:26:35.530
Oh.

01:26:35.530 --> 01:26:39.530
Ja, gerade so zu den höheren Leveln fehlen uns doch sinnvolle Beispiele.

01:26:39.570 --> 01:26:40.710
Ja, das stimmt.

01:26:40.710 --> 01:26:41.630
Ja.

01:26:41.630 --> 01:26:43.570
Aber da kommen wir gerade ja dazu, Pillow.

01:26:43.570 --> 01:26:44.710
Was sind eure Lieblingsmodule?

01:26:44.710 --> 01:26:45.390
Puh.

01:26:45.390 --> 01:26:46.750
B-Python, ganz klar.

01:26:46.750 --> 01:26:49.390
Ähm, ja, B-Python ist ja ein Interpreter.

01:26:49.390 --> 01:26:50.090
Ja, gut gesagt.

01:26:50.090 --> 01:26:52.930
Aber ich stimme ja zu, B-Python ist schon ziemlich cool.

01:26:52.930 --> 01:26:56.270
Ähm, boah, mein Lieblingsmodul.

01:26:56.270 --> 01:27:00.890
Jetzt hat er B-Python gesagt, jetzt will ich ihn nicht einfach auch B-Python sagen.

01:27:00.890 --> 01:27:03.330
Ähm...

01:27:03.330 --> 01:27:04.590
Jetzt kannst du C-Python sagen.

01:27:04.590 --> 01:27:05.530
Oh, oh, oh.

01:27:05.530 --> 01:27:06.650
B-Python.

01:27:06.650 --> 01:27:09.050
Ähm...

01:27:09.050 --> 01:27:09.490
Ja.

01:27:09.490 --> 01:27:15.450
Ähm, ähm, Weekfest finde ich ziemlich cool, weil man damit sehr einfach, äh, halt Netzwerk

01:27:15.450 --> 01:27:16.030
machen kann.

01:27:16.030 --> 01:27:20.890
Gerade auch so, wenn Leute irgendwie, es gab Leute, die hatten irgendwie so eine, so eine

01:27:20.890 --> 01:27:24.070
Comic-Seite oder so, und da wollten die irgendwie eine Benachrichtigung haben, wenn es einen

01:27:24.070 --> 01:27:25.050
neuen gibt oder sowas.

01:27:25.050 --> 01:27:29.470
Also gerade so, so Projekte, die eigentlich einfach sind, aber dann doch irgendwie überraschend

01:27:29.470 --> 01:27:31.050
sind, gehen aber ziemlich schnell.

01:27:31.050 --> 01:27:34.050
Ähm...

01:27:34.050 --> 01:27:39.410
Ich glaube, ich, ähm, Waypy, das wäre schon, ähm, das finde ich cool.

01:27:39.410 --> 01:27:44.350
Weil es bringt Farbe ins Terminal und besteht nur aus 56 Zeilen Code oder so.

01:27:44.350 --> 01:27:52.170
Also, hm, das ist für mich ein schönes Beispiel, wie man sehr einfach ein, klar, das ist jetzt

01:27:52.170 --> 01:27:59.210
auch nicht so das große Werkzeug, aber es bringt doch einen großen, ein großes Plus

01:27:59.210 --> 01:28:04.490
an Usability und, ähm, dafür 56 Zeilen finde ich echt gut.

01:28:04.490 --> 01:28:06.750
Vor allem, der Großteil davon ist einfach nur ein Dictionary.

01:28:07.530 --> 01:28:11.070
Ähm, dann, was ich noch gut finde, ist Parflip.

01:28:11.070 --> 01:28:12.130
Oh, ja.

01:28:12.130 --> 01:28:17.470
Einfach, weil, wenn ich sehe, wie man vorher mit OS.par...

01:28:17.470 --> 01:28:18.470
Ja, ja, damals nicht.

01:28:18.470 --> 01:28:24.710
...Dateien, äh, mit Dateien gearbeitet hat und wie einfacher, wie viel einfacher das

01:28:24.710 --> 01:28:29.770
jetzt mit Parflip geht, ähm, aber das ist ja kein, kein, also, ich meine, das ist ja

01:28:29.770 --> 01:28:29.950
Teil...

01:28:29.950 --> 01:28:31.530
Das ist Standard, Standard-Bibliothek, ja.

01:28:31.530 --> 01:28:35.170
Aber, ja, ich meine, auch da gibt es ja viel zu viele Dinge, die eigentlich cool sind,

01:28:35.170 --> 01:28:36.270
die zu wenig bekannt sind und so.

01:28:36.270 --> 01:28:36.910
Ja, ja.

01:28:36.910 --> 01:28:37.210
Ja.

01:28:37.210 --> 01:28:38.370
Aber das finde ich, äh, ja.

01:28:38.370 --> 01:28:40.630
Jochen, was ist dein, äh, dein Lieblingsmodul?

01:28:40.630 --> 01:28:42.290
Huh, mein Lieblingsmodul?

01:28:42.290 --> 01:28:44.170
Oh je, äh, ich weiß nicht.

01:28:44.170 --> 01:28:52.650
Hm, äh, ich glaube, Lieblings, na ja, was, was könnte, äh, äh, ich hätte jetzt auch

01:28:52.650 --> 01:28:54.070
gar nicht, gar nicht wirklich drüber nachgedacht.

01:28:54.070 --> 01:28:59.070
Also, ähm, was ich letztens gesehen habe, was ich ganz cool fand, äh, was ich noch

01:28:59.070 --> 01:29:00.410
nicht kannte, war SQL-Path.

01:29:00.410 --> 01:29:01.290
Was so?

01:29:01.290 --> 01:29:06.770
Äh, womit man, also, äh, SQL-Statements, die man ja, also, wenn man jetzt zum Beispiel

01:29:06.770 --> 01:29:11.370
so, äh, ORM verwendet und dann fällt da so ein Statement bei raus und man guckt sich

01:29:11.370 --> 01:29:14.930
ja dann manchmal an, weil irgendwie ein Statement ist langsam oder irgendwas, was man mit dem

01:29:14.930 --> 01:29:18.870
ORM macht, ist langsam und dann, äh, äh, bei Django kann man halt einfach sagen, irgendwie

01:29:18.870 --> 01:29:22.850
man das Query-Set hat, Query-Set.query und dann spuckt das Ding das SQL-Statement aus,

01:29:22.850 --> 01:29:27.710
allerdings dann halt so als langen String, was, äh, äh, relativ unleserlich ist und,

01:29:27.710 --> 01:29:33.490
äh, mit SQL-Path kann man halt einfach sagen, okay, formatier mir das mal neu, äh, indentiere

01:29:33.490 --> 01:29:36.610
das alles und dann sieht das halt nach einem hübsch, äh, formatierten SQL-Statement

01:29:36.610 --> 01:29:41.670
aus und dann sieht man halt auch, was passiert und, ähm, genau, dafür, äh, hab ich das

01:29:41.670 --> 01:29:49.930
letztens verwendet und fand das sehr praktisch, dass es sowas gibt, ja, ähm, hm, tja, weiß

01:29:49.930 --> 01:29:52.850
nicht, was, äh, was hättest du denn so an, an Python-Modulen oder so?

01:29:52.850 --> 01:29:55.670
So viel hab ich jetzt doch gar nicht durch, aber ich finde Kiwi ganz witzig irgendwie.

01:29:55.670 --> 01:29:56.230
Kiwi, ah.

01:29:56.230 --> 01:29:59.830
Weil das auch direkt irgendwie so Touch bietet für so kleinen Unsinn und, ich meine, wenn

01:29:59.830 --> 01:30:04.130
man jetzt nicht total die aufwendigen GUIs bauen will, da relativ einfach ganz witzige

01:30:04.130 --> 01:30:04.710
Lösungen hinbekommen.

01:30:06.450 --> 01:30:10.270
Ähm, ja, was mir da, ah, was mir noch einfällt, genau, ähm, ich weiß nicht, ob wir das schon

01:30:10.270 --> 01:30:16.530
mal hatten, Pythonista ist ziemlich, ziemlich cool, äh, das ist so eine, ähm, das ist

01:30:16.530 --> 01:30:20.990
tatsächlich ein Python-Interpreter auf, äh, iOS, äh, keine Ahnung, wie das Ding durch

01:30:20.990 --> 01:30:25.670
den App-Store gekommen ist, das, äh, das kann eigentlich nicht mit rechten Dingen

01:30:25.670 --> 01:30:29.510
zugegangen sein irgendwie, aber, äh, das ist tatsächlich, äh, irgendwie vollständiges

01:30:29.510 --> 01:30:36.170
Python 3.6, äh, und, ähm, tatsächlich, wenn also jemand mit einem, äh, gut, das kostet

01:30:36.170 --> 01:30:36.290
Geld, das kostet Geld.

01:30:36.290 --> 01:30:40.090
Das kostet irgendwie ein paar Euro, aber, ähm, das ist wirklich, wirklich ganz toll,

01:30:40.090 --> 01:30:43.670
hat auch eine schöne IDE dabei, äh, also wenn man jetzt irgendwie ein, ein iPhone hat

01:30:43.670 --> 01:30:48.370
oder ein iPad und eine Bluetooth-Tastatur, dann könnte man auch tatsächlich, äh, wahrscheinlich

01:30:48.370 --> 01:30:52.290
irgendwie Python-Fu, äh, mit, äh, damit teilnehmen, was man jetzt gar nicht so erwarten würde,

01:30:52.290 --> 01:30:59.610
weil eigentlich ja iOS, äh, irgendwie auf, auf Objective-C, äh, äh, C++ und C und, äh,

01:30:59.610 --> 01:31:01.530
das gibt's dann auch, Swift, äh, irgendwie beschränkt ist.

01:31:01.530 --> 01:31:06.130
Aber, äh, genau, und was halt auch sehr schön, äh, ist, ist, dass man da viel Zugriff

01:31:06.130 --> 01:31:10.910
hat auf, äh, die APIs, also man kann halt, äh, also wenn man, man kann auf die Fotos

01:31:10.910 --> 01:31:16.630
zugreifen, Location-API, man kann Grafisch-Geschichten machen und, äh, das Ding nutzt halt auch

01:31:16.630 --> 01:31:23.490
die nativen Widgets, ähm, von, von, äh, iOS, sodass das halt auch alles, äh, so jedenfalls

01:31:23.490 --> 01:31:27.170
von den Animationen her und so schnell ist und, ähm, ich hab's halt mal benutzt, um

01:31:27.170 --> 01:31:32.630
so ein, so ein Sharing-Dings, äh, äh, so ein, so ein, so ein Dings in ein Share-Sheet

01:31:32.630 --> 01:31:35.970
reinzubauen, sodass man, wenn man im Browser sagt, äh, äh,

01:31:35.970 --> 01:31:40.430
ein, ein URL teilen, dass ich das halt dann in meinen Bookmark, äh, Service, äh, irgendwie

01:31:40.430 --> 01:31:46.270
reinpipen kann, äh, genau, und dann die ganze Bearbeitung, also das Sprechen mit der

01:31:46.270 --> 01:31:49.270
REST-API oder so, das macht dann halt alles irgendwie Pythonista oder ein Skript, das

01:31:49.270 --> 01:31:50.950
halt dann von Pythonista ausgeführt wird.

01:31:50.950 --> 01:31:56.370
Joa, das ist auch ziemlich cool, wenn man das nicht kennt und iOS irgendwie pipen machen

01:31:56.370 --> 01:31:57.650
möchte, dann ist das, glaub ich, ganz hilfreich.

01:31:57.650 --> 01:32:05.810
Ja, sowas ähnliches gibt's auch für Android, ähm, Thermos, das ist...

01:32:05.810 --> 01:32:08.930
Sogar mit Paketmanagement, allem drohen dran.

01:32:08.930 --> 01:32:12.650
Genau, also es bietet halt sehr viele Möglichkeiten, auch mit Android selber zu interagieren, also

01:32:12.650 --> 01:32:20.190
irgendwie, äh, weiß ich nicht, äh, Kontakte, SMS senden oder sowas, ähm, und es läuft

01:32:20.190 --> 01:32:24.510
halt auch beidendrauf, also es kommt halt mit einem Paket-Repo von sehr vieler Software

01:32:24.510 --> 01:32:30.310
und es ist halt eigentlich alles so in Sprachen dabei, die man haben wollen würde, also

01:32:30.310 --> 01:32:35.650
irgendwie ein C-Compiler, Go-Compiler, Rust-Compiler, äh, was nicht so wirklich gut läuft, ist

01:32:35.650 --> 01:32:40.630
leider Java, was bei Android ein bisschen komisch ist eigentlich, ähm, aber ansonsten,

01:32:40.630 --> 01:32:41.710
ja, unter anderem auch Python.

01:32:41.710 --> 01:32:46.550
Also, was ich auch noch tatsächlich cool finde, ist das GPIO, also auch dem Respy oder

01:32:46.550 --> 01:32:50.850
sowas, das ist natürlich ein Zufall, weil man da ganz viele coole, einfache Sachen machen

01:32:50.850 --> 01:32:54.950
kann, die man auch super schön zeigen kann, also einfach jetzt ein paar Pinne ansteuern

01:32:54.950 --> 01:32:58.130
und so Lämpchen zum Leuchten bringen, das kriegt auch jedes Kind hin und man hat da

01:32:58.130 --> 01:32:59.890
direkt was, was man sehen kann, das ist irgendwie immer schön.

01:33:01.550 --> 01:33:09.090
Generell kann man auch sagen, dass die Python-Standard-Library sehr viele, sehr coole Module enthält.

01:33:09.090 --> 01:33:13.430
DISS finde ich extrem cool, weil ich mich immer dafür interessiere, wie funktioniert

01:33:13.430 --> 01:33:17.570
sowas eigentlich und mit DISS kann ich mir halt den Python-Byte-Code für eine Funktion

01:33:17.570 --> 01:33:22.690
anzeigen lassen und es ist halt nicht nur einfach die Byte, sondern es hat auch wirklich

01:33:22.690 --> 01:33:25.950
die Namen, die Instruktionen, die Parameter daneben und so und das ist schon ziemlich

01:33:25.950 --> 01:33:26.190
cool.

01:33:27.430 --> 01:33:37.190
Also generell ist die Standard-Library ja so umfangreich, dass wir bei den Anfängern

01:33:37.190 --> 01:33:41.630
größtenteils nur die Standard-Library benutzen müssen.

01:33:41.630 --> 01:33:47.190
Das sind halt auch so Sachen dabei, wo man sich denkt, warum ist das jetzt eigentlich

01:33:47.190 --> 01:33:48.010
in der Standard-Library?

01:33:48.010 --> 01:33:49.490
Und andere Sachen nicht.

01:33:49.490 --> 01:33:50.930
Ja, das ist manchmal ein bisschen komisch.

01:33:50.930 --> 01:33:54.930
Zum Beispiel IMG-HDR, das kann dir ja von einer Bilddatei sagen, welches Dateiformat

01:33:54.930 --> 01:33:55.890
das ist.

01:33:55.890 --> 01:33:56.370
Mhm.

01:33:56.470 --> 01:33:59.870
Quasi so ein Pfeil-ähnliches Ding, das muss in der Python-Standard-Library eingebaut

01:33:59.870 --> 01:34:00.470
werden, habe ich mir gedacht.

01:34:00.470 --> 01:34:01.190
Warum?

01:34:01.190 --> 01:34:03.450
Aber naja, das ist ganz praktisch manchmal.

01:34:03.450 --> 01:34:05.590
Ja, ja.

01:34:05.590 --> 01:34:08.890
Oder WAV ist es auch als Codec da drin.

01:34:08.890 --> 01:34:10.150
Ja.

01:34:10.150 --> 01:34:16.690
Ja, da gibt es andere Bereiche, in denen gibt es dann irgendwie drei Module, die irgendwie

01:34:16.690 --> 01:34:19.070
das Gleiche nur auf unterschiedliche Art tun.

01:34:19.070 --> 01:34:20.890
Urlib, Urlib 2 oder 3.

01:34:20.890 --> 01:34:22.690
Einfach Request nehmen.

01:34:22.690 --> 01:34:25.170
Und Request gibt es nicht in der Standard-Bibliothek und so.

01:34:25.510 --> 01:34:27.570
Und das ist schon so ein bisschen...

01:34:27.570 --> 01:34:31.310
Also Request ist auch so das eine Ding, wo ich mir wünschen würde, dass es in der

01:34:31.310 --> 01:34:32.770
Standard-Bibliothek wäre.

01:34:32.770 --> 01:34:35.950
Schreibt uns auf jeden Fall eure Lieblingsmodule.

01:34:35.950 --> 01:34:41.330
Ja, wobei, was mich an Request halt noch so ein bisschen...

01:34:41.330 --> 01:34:44.130
Also ich meine, das ist von der Benutzung her...

01:34:44.130 --> 01:34:45.570
Ich meine, das ist ja auch der Anspruch irgendwie.

01:34:45.570 --> 01:34:47.430
Das ist ja halt HTTP for Humans.

01:34:47.430 --> 01:34:52.190
Wenn man das jetzt als Entwickler-Anwender benutzt, ist das halt sehr praktisch.

01:34:52.190 --> 01:34:54.950
Aber wenn man jetzt zum Beispiel viele HTTP-Requests...

01:34:55.510 --> 01:34:58.790
machen möchte oder so, dann ist das halt auch schon nicht mehr so toll, weil das ist

01:34:58.790 --> 01:35:00.490
halt nicht asynchron.

01:35:00.490 --> 01:35:03.770
Also man hat Multiplex halt sozusagen I.O. nicht wirklich.

01:35:03.770 --> 01:35:08.010
Kann das dann eventuell machen, indem man halt Threads verwendet oder so.

01:35:08.010 --> 01:35:10.770
Aber so von sich aus kann das das halt nicht.

01:35:10.770 --> 01:35:14.930
Und dann gibt es halt vielleicht auch, wenn man das halt noch nicht kennt,

01:35:14.930 --> 01:35:17.890
A.I.O.

01:35:17.890 --> 01:35:24.210
HTTP ist, glaube ich, die Bibliothek oder das Projekt.

01:35:24.210 --> 01:35:24.910
Ich weiß nicht so genau.

01:35:25.510 --> 01:35:26.790
A.I.O. HTTP.

01:35:26.790 --> 01:35:28.050
A.I.O. HTTP.

01:35:28.050 --> 01:35:33.070
Und da gibt es einen Server drin und es gibt halt auch einen Client.

01:35:33.070 --> 01:35:36.970
Und der basiert halt auf Async.io und das ist halt richtig schnell.

01:35:36.970 --> 01:35:38.150
Und da kann man halt auch mal...

01:35:38.150 --> 01:35:39.010
Da gibt es auch ein schönes Beispiel.

01:35:39.010 --> 01:35:40.490
Das hat...

01:35:40.490 --> 01:35:42.570
Da gibt es einen Artikel von...

01:35:42.570 --> 01:35:45.770
Ich habe jetzt den einen Namen vergessen, aber Guido von Rassum ist der andere Autor.

01:35:45.770 --> 01:35:48.750
Und die beschreiben halt so, wie kann man mal so eine Million Webseiten,

01:35:48.750 --> 01:35:51.610
Millionen Requests machen irgendwie schnell.

01:35:51.610 --> 01:35:54.890
Und das ist ein sehr nettes Ding.

01:35:55.510 --> 01:35:55.910
Und...

01:35:55.910 --> 01:35:56.930
So.

01:35:56.930 --> 01:35:58.450
Ja.

01:35:58.450 --> 01:36:03.110
Also ich würde sagen, viel gehört dazu, was wir...

01:36:03.110 --> 01:36:05.170
Ja, wie man anfangen kann, wie man vielleicht weitermachen kann,

01:36:05.170 --> 01:36:08.630
welche Probleme so am Anfang auftauchen, wie man die so ein bisschen umschifft.

01:36:08.630 --> 01:36:11.930
Also wenn ihr in Düsseldorf unter den Regierungen seid, dann kommt doch einfach vorbei, ne?

01:36:11.930 --> 01:36:12.310
Genau.

01:36:12.310 --> 01:36:14.130
Ja, einfach so.

01:36:14.130 --> 01:36:16.510
Ich glaube, nicht nur donnerstags sind da ein paar Jungs immer da.

01:36:16.510 --> 01:36:16.990
Ja.

01:36:16.990 --> 01:36:20.250
Ich sage, es ist halt jede Woche.

01:36:20.250 --> 01:36:20.990
Ja.

01:36:20.990 --> 01:36:23.990
Also nicht unbedingt mit uns, aber ja.

01:36:25.510 --> 01:36:27.950
Da gibt es auch andere coole Menschen.

01:36:27.950 --> 01:36:29.530
Ja.

01:36:29.530 --> 01:36:30.330
Sehr gut.

01:36:30.330 --> 01:36:38.250
Ja, wenn ihr irgendwas antragen wollt, nochmal event, wieder euer Feedback, Kommentare an hallo-podcast.de.

01:36:38.250 --> 01:36:40.450
Ja, schön, dass wir wieder eingeschaltet haben.

01:36:40.450 --> 01:36:41.330
Genau.

01:36:41.330 --> 01:36:45.470
Und dann versuchen wir mal irgendwie die nächste Sendung etwas zeitnah hinzukriegen, aber das...

01:36:45.470 --> 01:36:48.410
Ja, wir hatten eigentlich schon etwas vorbereitet, aber das hat nicht so gut geklappt.

01:36:48.410 --> 01:36:49.630
Ja, dann müssen wir nochmal dran.

01:36:49.630 --> 01:36:52.250
Datenbanken, wir können ja schon mal das Thema verraten.

01:36:52.250 --> 01:36:52.450
Ja.

01:36:52.450 --> 01:36:53.770
Haben wir uns eigentlich auch die Frage da geschrieben.

01:36:53.770 --> 01:36:55.270
Wer hat eigentlich...

01:36:55.270 --> 01:36:56.230
Wie hat man die Model-View-Controller erfunden?

01:36:56.230 --> 01:36:58.210
You have to.

01:36:58.210 --> 01:37:02.430
Okay.

01:37:02.430 --> 01:37:04.170
Bis zum nächsten Mal.

01:37:04.170 --> 01:37:04.790
Alles klar.

01:37:04.790 --> 01:37:05.750
Tschüss.

01:37:05.750 --> 01:37:06.270
Tschüss.
