Seite 1 von 1

Gute Videos zu Python 3.0

Verfasst: Donnerstag 25. September 2014, 16:10
von Carolin09
Ich habe Heute sehr gute Videos gefunden die allen Einsteigern gut helfen werden werft mal einen Blick drauf https://www.youtube.com/playlist?list=P ... ature=plcp

Re: Gute Videos zu Python 3.0

Verfasst: Donnerstag 25. September 2014, 21:12
von Hyperion
Hm... also ich habe mir mal einige Folgen (teilweise mittels Vorspulen angeguckt) und bin wenig begeistert.
  • Größtes Manko ist für mich der fehlende Mehrwert der Videos gegenüber einem schriftlichen Tutorial. Zum einen wird eigentlich nur vor einem leeren Desktop alles mögliche erklärt, zum anderen danach mehr oder minder nur die eingegebenen Sourcecode Zeilen vorgelesen und danach die Ausgabe nach der Ausführung der Code-Zeilen. So in der Art: "Nächste Zeile. Einrücken. Print u für Unicode in Anführungszeichen. Ein Anführungszeichen. In geschweiften Klammern 0. Ein Anführungszeichen. Hat in geschweiften Klammern eins. Buchstaben. Anführungszeichen. Punkt. Format. Klammer auf. Name. Komma. l-e-n. Klammer auf. Name. Klammer zu. Klammer zu" So etwas kann ich in einem Text viel schneller lesend erfassen und dazu noch schnell in einer interaktiven Shell Dinge ausprobieren.
  • Wieso der Autor für die meisten Sachen zu Beginn nicht eine (gute) interaktive Shell benutzt hat, weiß er wohl nur alleine. *Genau* dafür könnte man sie wunderbar nutzen (Kontrollstrukturen und Basis-Datentypen!), und es würde auch die Tipparbeit für sich wiederholende Zeilen und danke der Nutzung von Code-Completion verkürzen
  • Das Kapitel über Unicode ist aboslut überflüssig. Zum einen redet der Autor die Hälfte der Zeit über die Unterschiede von ``print`` zwischen Python 2 und 3 (wobei er dann etwas für 3 in Version 2 zeigt - imho verwirrend!), zum anderen erklärt er überhaupt nicht, *was* es überhaupt mit Unicode und dem gegenüber codierten Bytes auf sich hat! ``unicode`` als einzige Möglichkeit zur Wandlung von Bytestrings vorzustellen ist auch gewagt; zumeist wird man die *Methoden* ``encode`` und ``decode`` von String-Objekten nutzen. Über die Angabe eines expliziten Encodings schweigt er sich aus. Klar kann man das Thema auch nicht in drei Minuten abhandeln, aber so nützt es nix.
  • Im Kapitel 2 zu Listen zeigt er ein absolutes No-go! Er nutzt eine ``while``-Schleife, um alle bestimmten Elemente aus einer Liste zu entfernen... in Python (und vielen vielen anderen Sprachen) löscht man in einer Schleife nichts aus Sammlungen, sondern baut besser eine *neue*, nur die relevanten Elemente umfassende Struktur auf. Zudem ist ein ``while element in list`` ziemlich teuer, nämlich O(n). Zusammen mit der Lösche-Operation *im* Rumpf der Schleife wird daraus dann eine quadratische Laufzeit O(n^2)! Dabei bräuchte man lediglich eine lineare, wenn man die Liste mittels ``for`` durchläuft und die erwünschten Elemente in eine neue Liste packt.
  • Ich habe in keinem der Kapitel zu Listen auch nur einmal eine ``for``-Schleife gesehen, die alle Elemente durchläuft. Hu? Ich meine das ist doch imho *das* zentrale an einer Liste, dass man eben *viele* Elemente mit demselben Code bearbeiten kann, ohne einzelne Namen für jedes Objekt einzuführen. Bei Anfängern ist das ja sehr beliebt, eben weil sie das Konzept noch nicht kennen bzw. es verinnerlicht haben - ich kann mich immer noch an einen Samstag Abend im Jahre 1991 erinnern, als ich als 13 Jähriger zum ersten Male kapiert habe, wozu Arrays beim C64 Basic nützlich sind... das war ein Aha-Erlebnis erster Güte! Und das habe ich erst durch die Kombination eines Arrays mit einer Schleife gelernt. Diese komischen Indizes, die davor auf zig Seiten besprochen worden sind, haben mir alleine gar nichts vermittelt. Ich dachte immer, "wozu soll ich 'a[3]' schreiben, wenn ich doch auch eine Variable 'a3' nennen kann - das sind ja viel weniger Zeichen!". Insofern... imho didaktisch verbesserungswürdig ;-) (Habe gerade gesehen: Das Iterieren mittels ``for`` kommt dann in der Folge "Substitution von Zeicheketten" bei Minute 2:00. Ohne eine Erklärung, *was* da gerade passiert :shock: )
  • Das Beispielprogramm ist dann auch ein Fall von lauter unglücklich gewählten Konstrukten! Wenn ich doch die Anzahl im voraus kenne, wie oft ich eine Schleife (maximal) durchlaufen werde, so sollte man idR. eine ``for``-Schleife nutzen! Der Autor nimmt natürlich eine ``while``-Schleife und braucht dann eine Laufvariable und eine für die Abbruchbedingung. Dann kommt ein ``if not element in sammlung``... *brrr* Das ist doch viel viel schwerer zu verstehen, als zuerst den *positiven* Fall zu behandeln, also zu prüfen, *ob* ein Benutzer in der Benutzerliste enthalten ist: ``if username in users``! Obwohl die Namensgebung ansonsten recht gut ist, wird dann imho sinnloser Weise ``index`` zu ``idx`` verkrüppelt - wieso das? Als letztes missfällt mir der *implizite* Zusammenhang zwischen Benutzernamen und Passwort. Sicherlich kann man so etwas mal als Beispiel bringen, um zu zeigen, wie man es *nicht* modellieren sollte. Aber das wird niemals aufgeklärt werden fürchte ich... Als letzte Inkonsequenz zeigt er dann in einem Testlauf so ziemlich alles, bis auf den letzten Fall, dass man zu viele falsche Versuche gebraucht hat :P
  • Bei den Erklärungen zu Dictionaries erklärt er imho viel zu wenig, was an einer Key-Value-Abbildung denn vorteilhaft gegenüber anderen Datenstrukturen ist. Prinzipiell ist das primär die Effizienz beim Zugriff auf Elemente, die man nicht über einen fortlaufenden Index adressieren kann. Aber ok, über Komplexität hat er ja auch noch nicht gesprochen :-D
  • Ach ja, es werden Tabulatoren und das auch noch mit acht Stellen benutzt - PEP8 schreibt dagegen vier Spaces vor. Insbesondere in einem Tutorial sollte man imho darauf achten.
  • Die Kapitel rund um die Einführung in OOP existiert - wie so oft - ein didaktisches Problem. Es wird überhaupt nicht vermittelt, *wozu* man Klassen brauchen kann, nämlich immer dann, wenn man irgend wie einen inneren Zustand abbilden möchte. Dies zu motivieren wäre imho sehr wertvoll und könnte gegenüber vielen Tutorials ein Pluspunkt sein. Vererbung ist dagegen in Python eher weniger wichtig, wird aber lang und breit behandelt - Komposition wird dagegen gar nicht erst gezeigt und Duck Typing erst recht nicht :-( Immerhin wird kein Schmarrn über ``__del__`` erzählt. Auch die so oft schon gesehenen unpythonischen "Getter" und "Setter" fehlen hier ein Glück! :-) Dennoch bezweifle ich, dass ein Anfänger nach dem Video wirklich selber sinnvolle Klassen schreiben kann. Auch die Begrifflichkeiten "Klasse" und "Objekt" werden ab und an im falschen Kontext verwendet.
  • Leider wird in der Folge "Die Sache mit dem Unterstrich" der Name ``_privat`` gewählt, um die Konvention zu verdeutlichen... finde ich irgend wie unglücklich! Immerhin hat sich der Autor bemüht, das Fehlen eines Zugriffsschutzes auf Sprachebene explizit zu erwähnen. Imho ist das jedoch für einen Anfänger alles ziemlich unwichtig.
*seufz* Nun habe ich so viel negatives dazu geschrieben, obwohl sich der Autor sicherlich viel Mühe gemacht hat. Das tut mir zwar schon ein wenig leid, aber ich denke, man sollte nicht aus falscher Höflichkeit schweigen, wenn man sinnvolles dazu zu sagen hat. Wenn ich mich recht an den Namen erinnere, habe ich die Artikel vom selben Autor im freien Magazin seinerzeit ein wenig Korrektur gelesen. Die Video-Reihe hat damit aber iirc wenig zu tun, setzt sie vieles doch anders um.

Zum Schluss aber noch etwas nettes: Der Autor hat bei der Namensgebung zumeist gute Namen gewählt! Nicht selbstverständlich und imho auch mehr erwähnenswert *im* Tutorial selber ;-)

Re: Gute Videos zu Python 3.0

Verfasst: Donnerstag 25. September 2014, 21:27
von BlackJack
@Hyperion: Ich bin mir ziemlich sicher Du hast 1991 nicht gedacht „wozu soll ich a[3] schreiben…”, denn:

Code: Alles auswählen

PRINT A[3]
 0
?SYNTAX ERROR
READY.
Du wirst eher gedacht haben wozu Du ``a(3)`` schreiben sollst. ;-)

Re: Gute Videos zu Python 3.0

Verfasst: Donnerstag 25. September 2014, 22:01
von Hyperion
BlackJack hat geschrieben:@Hyperion: Ich bin mir ziemlich sicher Du hast 1991 nicht gedacht „wozu soll ich a[3] schreiben…”, denn:

Code: Alles auswählen

PRINT A[3]
 0
?SYNTAX ERROR
READY.
Du wirst eher gedacht haben wozu Du ``a(3)`` schreiben sollst. ;-)
Du kennst mich ja viel besser als ich mich selber :mrgreen: Recht hast Du! :-)

Ich habe gerade noch mal die Seiten 98 - 104 in meinem alten "COMMODORE Bedienungshandbuch" des C64 nachgelesen. Das ist so hölzern erklärt, dass ich damit auch heute noch Mühe hätte ;-) Zudem wurde das in meiner Programmier-"Fibel" ("64'er Großer Einsteigerkurs") nicht besprochen! Ansonsten war das ein locker flockig geschriebenes Buch, welches ich noch immer gut in Erinnerung habe :-) Aber ausgerechnet das Thema fehlt darin :-( - auch das habe ich grad doch noch mal nachgeprüft.

Re: Gute Videos zu Python 3.0

Verfasst: Freitag 26. September 2014, 00:22
von BlackJack
@Hyperion: Hm, habe gerade mal in mein „C64 Benutzerhandbuch — Deutsch” geschaut. Die Seitenzahlen stimmen mit Deinen Angaben überein, aber sooo schlimm finde ich das gar nicht. Sind doch Beispiele dabei. Ich denke beim Würfelprogramm sieht man den Vorteil gegenüber einzelnen Namen weil man da viele, naja zumindest sechs, ``IF``\s schreiben müsste, und beim Mittelwert wäre ein Programm mit Einzelnamen für die Werte extrem umschön.

Jetzt hast Du mich dazu gebracht das ich das allererste mal den BASIC-Teil in „Das grosse Commodore 64 Buch” von Martin Hecht durchgeblättert habe. Da werden Arrays eigentlich ganz gut eingeführt. BASIC hatte ich damals hauptsächlich aus einem Buch aus der Stadtbücherei gelernt, dessen Titel ich leider nicht mehr weiss. Bücher die ich gekauft habe gingen dann eher in Richtung Maschinensprache. Das Buch von Hecht ist glaube ich das einzige hier im Regal, das auch etwas grundlegendes über BASIC enthält.

„C64/C128 — Alles über Maschinensprache” von Frank Riemenschneider und das obligatorische „C64 Intern” (nein die *sieben* Autoren liste ich jetzt hier *nicht* auf :-)) fand ich dann doch spannender als BASIC-Zeugs. Auch gut ist „Programming the 6510” von Rodney Zaks, das von 1980 ist und den Prozessor/Befehlssatz ohne einen spezifischen Rechner behandelt. War so um 1990 herum mein erstes englischsprachiges Buch das ich erstand (ohne das mich die Schule dazu zwang).

Re: Gute Videos zu Python 3.0

Verfasst: Freitag 26. September 2014, 07:26
von MagBen
Hyperion hat geschrieben:Hm... also ich habe mir mal einige Folgen (teilweise mittels Vorspulen angeguckt) und bin wenig begeistert.
Hast Du schon mal irgendwas unterrichtet?

Re: Gute Videos zu Python 3.0

Verfasst: Freitag 26. September 2014, 08:46
von Hyperion
MagBen hat geschrieben:Hast Du schon mal irgendwas unterrichtet?
Japp. Sowohl an der Uni als auch an der KVHS einige Kurse. Wieso?

Re: Gute Videos zu Python 3.0

Verfasst: Freitag 26. September 2014, 17:37
von MagBen
Ich habe mir zwei der 80 kleinen Videos angeschaut:
Python-Programmierung - Hallo Welt: https://www.youtube.com/watch?v=VcKxtM2 ... 125C1FC7B1
Python-Programmierung - Richtig einrücken: [url]ps://www.youtube.com/watch?v=m2UDI5Fy6qw&lis ... 125C1FC7B1[/url]

Mir hat es gefallen, da hat sich jemand die Mühe gemacht ein Python-Hörlehrbuch zu erstellen. Die Einstiegshürde ist dabei so niedrig gehalten, dass die zu überspringende Latte auf dem Boden liegt.

Macht sowas Sinn? Wenn's Leute gut finden wohl schon.

Was Schade ist, dass die Zielgruppe wohl ziemlich klein ist. Alles wird auf einem Ubuntu Desktop gezeigt. Wohl nur wenige Ubuntu-Benutzer brauchen eine so niedrige Einstiegshürde. Und wieviele der Windows-Benutzer, die sowas brauchen, schaffen die Transferleistung? Vielleicht was für Schulen die einen PC-Raum mit Ubuntu haben?

@Hyperion: Deine Kritik ist so berechtigt wie ein Report von Ernährungswissenschaftlern zu Hamburgern. Die Kunden bei McDonalds wirken aber selten unzufrieden.

Re: Gute Videos zu Python 3.0

Verfasst: Freitag 26. September 2014, 18:50
von EyDu
MagBen hat geschrieben:@Hyperion: Deine Kritik ist so berechtigt wie ein Report von Ernährungswissenschaftlern zu Hamburgern. Die Kunden bei McDonalds wirken aber selten unzufrieden.
Vielleicht weil sie den Report nicht kennen, nicht verstehen oder nicht verstehen wollen. Und was ist mit den Leuten die früher gerne viele Hamburger gegessen haben und sich auf Grund des Reports nun gesünder ernähren? Vielleicht finden wir ja noch mehr hinkende Vergleiche :twisted:

Mir ist aber immer noch nicht ganz klar, was Hyperions Unterrichtsfähigkeiten damit zu tun haben.

Re: Gute Videos zu Python 3.0

Verfasst: Freitag 26. September 2014, 19:05
von MagBen
EyDu hat geschrieben:Vielleicht finden wir ja noch mehr hinkende Vergleiche
Nicht alles was hinkt ist ein Vergleich.
EyDu hat geschrieben:Mir ist aber immer noch nicht ganz klar, was Hyperions Unterrichtsfähigkeiten damit zu tun haben.
Gar nichts, es hat mich nur interessiert ob er unterrichtet.

Re: Gute Videos zu Python 3.0

Verfasst: Samstag 27. September 2014, 08:58
von Hyperion
MagBen hat geschrieben: Macht sowas Sinn? Wenn's Leute gut finden wohl schon.
...
@Hyperion: Deine Kritik ist so berechtigt wie ein Report von Ernährungswissenschaftlern zu Hamburgern. Die Kunden bei McDonalds wirken aber selten unzufrieden.
Dass Du Zugänglichkeit über Richtigkeit stellst, haben wir ja schon festgestellt ;-)

Der Vergleich passt aber nicht wirklich. Kunden von McDonalds *essen* dort - eine Fähigkeit, die man durchaus mit viel Instinkt gepaart mit etwas technischer Anleitung durch seine Eltern recht früh im Leben vermittelt bekommt. Bei solchen Reporten geht es ja um das Essen selber, also ob es gesund ist usw. Durch die Tätigkeit des Essens an sich, schaffst Du nichts, du kreierst nichts - ganz im Gegensatz zum Programmieren. Kunden bei McDonalds wollen "lecker" essen - Programmieranfänger Programmieren lernen. "lecker" ist absolut subjektiv und vor allem unabhängig von anderen Metriken wie "gesund" oder "nahrhaft", dennoch liegt darin die Wurzel der Zufriedenheit. Das Maß beim Lernen ist der Erfolg, den ich beim Programmieren durch die *Qualität* selbst kreierter Programme messen kann. Ein Programmieranfänger ist zufrieden, wenn er ein eigenes Programm geschrieben hat, welches funktioniert.

Programmieren ist also viel mehr mit dem Kochen oder irgend einer anderen kreativen Tätigkeit vergleichbar, die neben Begabung ein hohes Maß an Wissen um Methodiken und Werkzeuge benötigt. Dieses Wissen muss vermittelt werden. Insofern wäre der Vergleich eines Video-Tutorials zu einer Kochshow eher angemessen ;-)