2 Punkte von GN⁺ 2024-02-17 | 1 Kommentare | Auf WhatsApp teilen
  • Python-Einführung für Menschen, die Programmieren zum ersten Mal lernen oder bei früheren Lernversuchen Schwierigkeiten hatten; die gedruckte Ausgabe und das E-Book der 3. Auflage können bestellt werden
  • Das gesamte Buch liegt als Jupyter-Notebook vor, sodass Lesen, Code-Ausführung und das Bearbeiten von Übungen in einem durchgängigen Ablauf möglich sind
  • Die Notebooks zu den einzelnen Kapiteln lassen sich direkt in Colab ausführen, sodass der Einstieg ohne separate Installation leichtfällt
  • Die 3. Auflage strukturiert den Lernfluss durch überarbeiteten Text, eine angepasste Reihenfolge einiger Kapitel und erweiterte Übungen neu
  • Die Vorschläge am Ende der Kapitel zur Nutzung von ChatGPT und Colab AI dienen als Hilfsmittel, um an schwierigen Stellen zusätzliche Erklärungen und Unterstützung bei Übungen zu erhalten

Python-Einführung für Einsteiger

  • Think Python ist eine Python-Einführung für Menschen, die zum ersten Mal mit Programmierung in Berührung kommen oder es schon einmal versucht haben und dabei Schwierigkeiten hatten
  • Die gedruckte Ausgabe und das E-Book der 3. Auflage können bei Bookshop.org und Amazon bestellt werden
  • Die Landingpage des Buchs bei Green Tea Press ist unter Think Python 3rd Edition zu finden
  • Die 3. Auflage ist vollständig als Jupyter-Notebook aufgebaut und behandelt Text, ausführbaren Code und Übungen an einem Ort
    • Die Notebooks können in Colab ausgeführt werden, was den Installationsaufwand reduziert
    • Der Text wurde deutlich überarbeitet und die Reihenfolge einiger Kapitel wurde umgestellt
    • Es gibt mehr Übungen
    • Am Ende jedes Kapitels wird beschrieben, wie sich ChatGPT und Colab AI beim Lernen und beim Lösen von Übungen einsetzen lassen

Colab-Notebooks und Materialien für den Unterricht

1 Kommentare

 
GN⁺ 2024-02-17
Hacker-News-Kommentare
  • Ich freue mich wirklich über diese Nachricht. Als Practical Deep Learning for Coders als Jupyter Notebook veröffentlicht wurde, hatten wir darüber gesprochen, einige von Allens Büchern auf die gleiche Weise zu machen.
    Jetzt passiert das tatsächlich, und noch besser: Es gibt sogar großartige Tools wie ein Jupyter-basiertes turtle, das Inline-Grafiken direkt im Notebook anzeigen kann.
    Wenn es erscheint, dürfte das sehr wahrscheinlich die beste Art sein, Python-Programmierung zu lernen.
    Ich erinnere mich, dass ich früher auch einen Proof of Concept gezeigt habe, bei dem Teile der 2. Auflage dieses Buchs in nbdev-Notebooks umgewandelt wurden: https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
    Dieses Notebook wird in dieses HTML gerendert: https://fastai.github.io/nbdev_cards/deck.html

    • Ich mochte Think Bayes und Think Stats wirklich sehr, aber es fühlte sich immer ein wenig aus der Zeit gefallen an, wenn alle anderen Notebooks benutzten.
      Wenn ich mit so etwas wie AdventOfCode eine neue Sprache lerne, ist meine erste Aufgabe immer, ein Jupyter-Image für diese Sprache zu bauen.
    • So ein ausblendbarer Code scheint für Dokumentation wirklich hervorragend zu sein. Ich habe schon eine ganze Weile nach so etwas gesucht.
  • Die 2. Auflage von Think Python hat die Richtung meines Lebens verändert. Ich hatte einmal einen Java-Kurs belegt, ihn gehasst und das Programmieren dann aufgegeben. Ein paar Jahre später arbeitete ich als Netzwerkingenieur und stieß auf ein Problem, das sich wohl mit einem Skript lösen ließ. Ich griff zu Think Python und verliebte mich in Python und ins Programmieren selbst.

    • Das war genau das, was ich gerade lesen musste.
      Ich überlege gerade, die Richtung meines Lebens stärker in Richtung Community/Maker/Lehrerrolle zu verändern, und habe eine Idee für eine freiberufliche Tätigkeit bzw. ein kleines Geschäft im Bildungsbereich, wofür ich Material mit einem „lockeren Curriculum“ brauche.
      Während ich als professioneller Webentwickler gearbeitet habe, brauchte ich Python nie, deshalb lerne ich es jetzt. Ich habe fast alle webzentrierten Sprachen benutzt, einschließlich Perl und Ruby.
      Python scheint eine geeignete Sprache zu sein, um allgemeine Konzepte zu vermitteln, und ein Buch als Referenz wäre hilfreich.
    • Als Gegenbeispiel: Ich habe mit bash/Perl angefangen und bin dann zu Python gewechselt. Anfangs fand ich es wirklich großartig, aber dann begannen durch dynamische Typisierung Probleme aufzutreten.
      Ungefähr zu dieser Zeit wurde Java zur Hauptsprache meines Teams, und nachdem ich die Vorteile von statischer Typisierung gesehen hatte, konnte ich nicht mehr zurück.
      Seitdem hat sich Python mit optionaler Typisierung und IDEs, die diese erzwingen können, stark weiterentwickelt, aber heute bin ich vollkommen in Richtung statisch typisierter Sprachen voreingenommen.
      Für Utility-Skripte mag ich das deutlich ausgefeiltere Python immer noch lieber, als nur bash zu verwenden. Wenn ich aber die Sprache für eine vollwertige Anwendung frei wählen könnte, würde ich Java/Scala und Ähnliches bevorzugen. Rust ist ebenfalls großartig, aber für die meisten normalen Menschen ist die Lernkurve zu steil.
      Ich habe Pythons optionale Typisierung mit Unterstützung von Tools wie PyCharm selbst nie benutzt, daher ist es gut möglich, dass die Tooling-Unterstützung zu einer Erfahrung führt, die statisch typisierten Sprachen ähnelt. Falls jemand Python mit aktivierter Typprüfung in IntelliJ Community Edition verwendet hat, würde ich gern von den Erfahrungen hören.
    • Bei mir war es ähnlich. Ich hatte ein wenig Java, Matlab, C und Perl gelernt, aber erst als ich die 2. Auflage von Think Python las, hat es mich wirklich gepackt, und danach habe ich noch mehrere Bücher gelesen und bin in eine Software-Karriere gewechselt.
    • Bei mir genauso. Ich war gerade in eine andere Stadt gezogen und auf Jobsuche, habe dieses Buch ausgedruckt und Kapitel für Kapitel gelesen, und dank dieses Buchs wurde ich Softwareingenieur.
    • Objektorientierte Programmierung, die ich selbst nach C++- und Java-Kursen nicht verstanden hatte, habe ich dank Think Python zum ersten Mal wirklich begriffen.
  • Ich mag Think Python und habe es vielen Lernenden empfohlen. Es schafft die Balance aus vielen Dingen, auf die ein Buch für neue Programmierer achten muss, wirklich sehr gut.
    Allen Downey hat mehrere weitere Bücher mit einem ähnlichen Ansatz veröffentlicht: https://greenteapress.com/wp/
    Ich finde, manche davon sind beim Verzicht auf Strenge vielleicht etwas zu weit gegangen, aber insgesamt waren die Bücher, die ich mir angesehen habe, ziemlich gut.
    Ich saß einmal auf einer Konferenz mit Allen am selben Tisch, und als ich ihm erzählte, wie oft ich seine Bücher empfohlen oder verschenkt hatte, schien er zu denken, ich würde übertreiben.

    • Der Sohn eines Freundes ist im letzten Jahr an der Highschool, und vielleicht geht er an Olin, das ich ihm empfohlen habe. Von Olin habe ich überhaupt erst durch Think Python erfahren.
  • Entschuldigt den kleinen Themenwechsel, aber gibt es, wenn man bereits praktische Erfahrung hat und sie im Job weiter ausbaut, Material von ähnlicher Qualität für Python-Entwickler auf mittlerem/fortgeschrittenem Niveau?
    Ich habe immer das Gefühl, dass es in der Sprache oder der Standardbibliothek große Bereiche gibt, die ich nicht kenne.

    • Ich habe damals zu Python 1.5.2 mit der offiziellen Dokumentation angefangen und halte sie immer noch für gutes Material.
      https://docs.python.org/3/tutorial/index.html
      https://docs.python.org/3/library/index.html
      Jedes Mal, wenn eine neue Version erscheint, lese ich die What’s-New-Dokumente.
      Außerdem lese ich gern den Quellcode der Standardbibliothek und beliebter Third-Party-Pakete. Dieser Rat gilt meist nicht nur für Python, sondern generell, wenn man eine neue Sprache lernt oder wieder auffrischt.
    • Effective Python fand ich gut. Es ist ein Buch im Tipp-Format mit Empfehlungen samt Anwendungsfällen und Praxisbeispielen.
    • Fluent Python ist auf diesem Niveau ein gutes Buch und auch als Nachschlagewerk für die Arbeit nützlich.
    • Ich mag https://effectivepython.com/ sehr.
      Und oft gewinne ich schon allein daraus Einsichten, wie man eleganten und prägnanten Python-Code schreibt, indem ich Norvigs jährliche Advent-of-Code-Implementierungen lese.
    • Fluent Python und Effective Python sind gute Bücher. Ersteres ist sehr dick und eigentlich fast schon mehrere Bücher in einem Band.
  • Der Autor veröffentlicht aktuelle Python-Projekte, vor allem zur Bayesianischen Datenanalyse, in seinem Blog unter https://www.allendowney.com/blog/; ich lese das mit ziemlich großem Interesse

  • Welche Bücher gibt es für Programmierung in Python auf mittlerem bis fortgeschrittenem Niveau? Python und Programmierung im Allgemeinen kenne ich bereits, aber ich möchte meine Python-Kenntnisse weiter ausbauen
    Im Moment kenne ich eigentlich nur Fluent Python und CPython Internals

    • Man kann Bücher in Betracht ziehen, die zeigen, wie Techniken in echtem, praktischem Code angewendet werden
      Zum Beispiel zeigt Effective Pandas 2 häufige Muster beim Umgang mit tabellarischen Daten. Dabei kommen Comprehensions, Lambdas und Unpacking zum Einsatz, außerdem wird gezeigt, wie man mit pytest refaktoriert und Visualisierungen nutzt, um Daten besser zu verstehen
      Der Autor bin übrigens ich
    • Fluent Python reicht völlig aus. Die übrigen Sprachfeatures versteht man, wenn man das offizielle Referenzhandbuch liest
    • Man kann sich auch allgemeinere Bücher zu Algorithmen und Datenstrukturen oder zu Design ansehen
      Auf https://www.redblobgames.com/ gibt es ebenfalls viele sehr geistreiche Texte
    • Die 2. Auflage von Cristina Videira Lopes’ Exercises in Programming Style ist ebenfalls einen Blick wert
      Das Buch ist nicht besonders bekannt, untersucht aber verschiedene Programmierstile, indem es dasselbe Problem unter unterschiedlichen Einschränkungen löst
    • Am Ende sind es doch Dokumentation und Quellcode, oder nicht?
      Sobald man ein gewisses Niveau erreicht hat, also über das grundlegende professionelle Praxisniveau hinaus, bleibt am Ende nur noch Code zu lesen und zu schreiben
  • Verwandte Beiträge:
    Think Python 2e - https://news.ycombinator.com/item?id=35421096 - April 2023, 30 Kommentare
    Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - August 2010, 9 Kommentare

  • Ein Glücksfall. Ich habe gerade angefangen, Python-Mentoring zu machen, und bin ein großer Fan von Downey. Er ist wirklich ein herausragender Pädagoge und Renaissance-Mensch
    Ich werde dieses Buch definitiv im Auge behalten

  • Auch für mich hat dieses Buch mein Leben verändert, als ich gerade erst programmieren lernte. Weniger im Sinne eines Karrierewechsels, sondern weil die Art, wie das Buch geschrieben ist, und einige der Konzepte bei mir als völligem Anfänger plötzlich Klick gemacht haben
    Jetzt, 10 bis 15 Jahre später, die 3. Auflage zu sehen, löst starke Nostalgie aus, und dieses Buch kann ich gar nicht genug empfehlen

  • In der vorherigen Ausgabe von Think Java mochte ich besonders diese Stelle: https://files.catbox.moe/v1vgdc.jpg
    Und noch eine großartige Passage ist diese:

    Was danach geschah, ist das Großartige daran. Jeff Elkner, ein Highschool-Lehrer aus Virginia, übernahm mein Buch [Think Java] und übersetzte es in Python. Er schickte mir die Übersetzung, und ich hatte die ungewöhnliche Erfahrung, Python zu lernen, indem ich mein eigenes Buch las."