2 points par GN⁺ 2024-02-17 | 1 commentaires | Partager sur WhatsApp
  • Introduction à Python destinée aux personnes qui découvrent la programmation ou qui ont rencontré des difficultés lors d’un apprentissage précédent, avec possibilité de commander la 3e édition en version papier ou ebook
  • Le livre entier est proposé sous forme de notebooks Jupyter, ce qui permet de lire le texte, exécuter le code et faire les exercices dans un seul et même flux
  • Les notebooks de chaque chapitre peuvent être exécutés directement dans Colab, ce qui facilite le démarrage sans installation supplémentaire
  • La 3e édition réorganise le parcours d’apprentissage grâce à une révision du texte, un ajustement de l’ordre de certains chapitres et un enrichissement des exercices
  • Les suggestions d’usage de ChatGPT et de Colab AI en fin de chapitre servent d’outils d’appui pour obtenir des explications supplémentaires et de l’aide sur les exercices lorsqu’on bloque

Une introduction à Python pour les débutants

  • Think Python est une introduction à Python destinée aux personnes qui découvrent la programmation, ou à celles qui ont déjà essayé auparavant mais ont rencontré des difficultés
  • La 3e édition, en version papier et ebook, peut être commandée sur Bookshop.org et Amazon
  • La page de présentation du livre chez Green Tea Press est disponible sur Think Python 3rd Edition
  • La 3e édition compose l’ensemble du livre en notebooks Jupyter, réunissant en un seul endroit le texte, le code exécutable et les exercices
    • Les notebooks peuvent être exécutés dans Colab, ce qui réduit les contraintes d’installation
    • Le texte a été largement révisé et l’ordre de certains chapitres a été réorganisé
    • Le nombre d’exercices a augmenté
    • La fin de chaque chapitre inclut des indications sur l’usage de ChatGPT et de Colab AI pour l’apprentissage et la résolution des exercices

Notebooks Colab et ressources pour l’enseignement

1 commentaires

 
GN⁺ 2024-02-17
Avis de Hacker News
  • Je suis vraiment ravi de cette nouvelle. Quand nous avons publié Practical Deep Learning for Coders sous forme de Jupyter Notebook, j’avais parlé avec Allen de faire la même chose pour certains de ses livres
    Maintenant c’est réellement en cours, et mieux encore, ils y ont ajouté des outils sympas comme une turtle basée sur Jupyter, qui affiche des graphiques en ligne dans le notebook
    Une fois publié, je pense que cela a de grandes chances de devenir la meilleure façon d’apprendre la programmation Python
    Je me souviens avoir montré autrefois une preuve de concept qui convertissait une partie de la 2e édition de ce livre en notebooks nbdev : https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
    Ce notebook est rendu en HTML ici : https://fastai.github.io/nbdev_cards/deck.html

    • J’aimais beaucoup Think Bayes et Think Stats, mais il y avait un léger décalage quand tout le monde utilisait des notebooks
      Quand j’apprends un nouveau langage avec des choses comme AdventOfCode, ma première tâche est toujours de créer une image Jupyter pour ce langage
    • Ce type de code masquable a l’air excellent pour la documentation. Je cherchais quelque chose comme ça depuis un moment
  • La 2e édition de Think Python a changé le cours de ma vie. J’avais suivi un cours de Java, je l’avais détesté au point d’abandonner la programmation, puis quelques années plus tard, en travaillant comme ingénieur réseau, je suis tombé sur un problème qui semblait pouvoir se résoudre avec un script ; j’ai pris Think Python, et je suis tombé amoureux de Python et de la programmation elle-même

    • C’est exactement ce que j’avais besoin de lire maintenant
      Je réfléchis à orienter ma vie vers des rôles de communauté/maker/enseignant, et j’ai une idée d’activité freelance/petite entreprise autour de l’enseignement, mais il me faut du matériel de type « programme souple »
      Pendant que je travaillais comme développeur web professionnel, je n’ai jamais eu besoin de Python, donc je suis en train de l’apprendre. J’ai utilisé à peu près tous les langages centrés web, y compris Perl et Ruby
      Python me semble être un langage adapté pour enseigner les concepts généraux, et disposer d’un livre de référence devrait aider
    • À titre de contre-exemple, j’ai commencé avec bash/Perl avant de passer à Python, et au début j’ai vraiment adoré, mais les types dynamiques ont commencé à me causer des problèmes
      À peu près à cette époque, Java est devenu le langage principal de l’équipe, et après avoir vu les avantages du typage statique, je n’ai plus pu revenir en arrière
      Depuis, Python a beaucoup progressé grâce à la prise en charge optionnelle des types et aux IDE qui peuvent les faire respecter, mais aujourd’hui je penche complètement vers les langages à typage statique
      Pour écrire des scripts utilitaires, j’aime toujours Python, bien plus raffiné que d’utiliser seulement bash. Mais si je peux choisir un langage pour une application aboutie, je préfère Java/Scala, etc. Rust est excellent aussi, mais sa courbe d’apprentissage est trop raide pour la plupart des gens ordinaires
      Je n’ai jamais vraiment utilisé le typage optionnel de Python avec des outils comme PyCharm, donc il est possible que l’outillage rende l’expérience proche de celle d’un langage à typage statique. Si quelqu’un a utilisé IntelliJ Community Edition avec la vérification des types Python activée, j’aimerais connaître son retour
    • J’ai eu une expérience similaire. J’avais appris un peu de Java, Matlab, C et Perl, mais c’est seulement après avoir lu la 2e édition de Think Python que j’ai vraiment accroché, puis j’ai lu plusieurs livres et je me suis réorienté vers une carrière dans le logiciel
    • Moi aussi. Alors que je changeais de ville et cherchais un emploi, j’ai imprimé ce livre et commencé à le lire chapitre par chapitre ; grâce à lui, je suis devenu ingénieur logiciel
    • C’est grâce à Think Python que j’ai vraiment compris pour la première fois la programmation orientée objet, que je n’avais pas comprise même après des cours de C++, de Java, etc.
  • J’aime Think Python et je l’ai recommandé à beaucoup d’apprenants. Il équilibre vraiment bien les nombreux aspects auxquels un livre pour nouveaux programmeurs doit faire attention
    Allen Downey a publié plusieurs autres livres dans une approche similaire : https://greenteapress.com/wp/
    Certains vont à mon avis un peu trop loin dans la réduction de la rigueur, mais dans l’ensemble, les livres que j’ai consultés étaient plutôt bons
    J’ai partagé une table avec Allen lors d’une conférence il y a quelque temps, et quand je lui ai dit à quelle fréquence j’avais recommandé ou acheté ses livres pour d’autres, il a dû penser que j’exagérais

    • Le fils d’un ami est en dernière année d’université et ira peut-être à Olin, que je lui ai recommandé. C’est aussi grâce à Think Python que j’ai découvert Olin
  • Désolé de faire légèrement dériver le sujet, mais en supposant qu’on ait déjà de l’expérience pratique et qu’on continue à en acquérir au travail, existe-t-il des ressources de qualité comparable pour un développeur Python intermédiaire/avancé ?
    J’ai toujours l’impression qu’il y a de gros pans du langage ou de la bibliothèque standard que je ne connais pas

    • J’ai commencé à apprendre avec la documentation officielle à l’époque de Python 1.5.2, et je pense qu’elle reste une bonne ressource
      https://docs.python.org/3/tutorial/index.html
      https://docs.python.org/3/library/index.html
      À chaque nouvelle version, je lis les documents What’s New
      À part ça, j’aime lire le code source de la bibliothèque standard et de paquets tiers populaires. Ce conseil vaut globalement aussi au-delà de Python, quand on apprend un nouveau langage ou qu’on s’y remet
    • Effective Python était bien. C’est un livre de conseils avec des recommandations accompagnées de cas d’usage et d’exemples d’application
    • Fluent Python est un bon livre à ce niveau, et il sert aussi bien de référence au travail
    • J’aime https://effectivepython.com/
      Et rien qu’en lisant les implémentations annuelles d’Advent of Code par Norvig, on obtient souvent des idées sur la façon d’écrire du code Python élégant et concis
    • Fluent Python et Effective Python sont de bons livres. Le premier est très épais, presque comme plusieurs livres réunis en un seul
  • L’auteur publie sur son blog ses projets Python récents, principalement des travaux d’analyse bayésienne des données, à l’adresse https://www.allendowney.com/blog/, et je trouve ça assez intéressant à suivre.

  • Quels livres recommander pour passer d’un niveau intermédiaire à avancé en programmation Python ? Je connais déjà Python et la programmation en général, mais j’aimerais renforcer mes compétences en Python.
    Pour l’instant, je ne connais que Fluent Python et CPython Internals, que je suis en train de lire.

    • Il peut être intéressant d’envisager des livres qui montrent comment les techniques s’appliquent dans du vrai code pratique.
      Par exemple, Effective Pandas 2 présente des patterns courants pour manipuler des données tabulaires. Au passage, il utilise les compréhensions, les lambdas, le dépaquetage, etc., et montre aussi comment refactorer avec pytest et exploiter la visualisation pour comprendre les données.
      Pour info, j’en suis l’auteur.
    • Fluent Python suffit. Pour les autres fonctionnalités du langage, lire le manuel de référence officiel permet de les comprendre.
    • On peut aussi lire des livres plus généraux sur les algorithmes et structures de données, ou des livres liés à la conception.
      Il y a aussi beaucoup d’articles très malins sur https://www.redblobgames.com/.
    • La 2e édition d’Exercises in Programming Style, de Cristina Videira Lopes, vaut aussi le détour.
      C’est un livre peu connu, mais qui explore plusieurs styles de programmation pour résoudre le même problème sous différentes contraintes.
    • Au final, ce ne sont pas surtout la documentation et le code source ?
      Une fois qu’on a atteint un certain niveau, c’est-à-dire dépassé le niveau de base d’un praticien, il ne reste plus que lire et écrire du code.
  • Articles liés :
    Think Python 2e - https://news.ycombinator.com/item?id=35421096 - avril 2023, 30 commentaires
    Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - août 2010, 9 commentaires

  • Quelle chance. Je viens tout juste de commencer du mentorat Python, et je suis un grand fan de Downey. C’est vraiment un éducateur remarquable et un esprit de la Renaissance.
    Je vais suivre ce livre de très près.

  • Moi aussi, ce livre a changé ma vie quand j’ai appris la programmation pour la première fois. Ce n’était pas tant un changement de carrière ; c’est surtout la manière dont le livre était écrit, et la façon dont certains concepts sont soudain devenus compréhensibles pour le parfait débutant que j’étais.
    Maintenant, en voyant cette 3e édition 10 à 15 ans plus tard, je ressens une forte nostalgie, et je ne recommanderai jamais assez ce livre.

  • Dans l’édition précédente de Think Java, j’aimais particulièrement ce passage : https://files.catbox.moe/v1vgdc.jpg
    Un autre passage formidable est celui-ci :

    Ce qui s’est passé ensuite est la partie formidable. Jeff Elkner, un enseignant de lycée en Virginie, a adopté mon livre [Think Java] et l’a traduit en Python. Il m’a envoyé sa traduction, et j’ai vécu l’expérience étrange d’apprendre Python en lisant mon propre livre.