Introduction

Plan

Partie 1 : Notions de “base”

  • Variables, fonctions
  • Structures de contrôle (conditions, boucles)
  • Structures de données (listes, dictionnaires, …)
  • Debugging avec pdb/ipdb

Partie 2 : Notions avancés

  • Fichiers
  • Exceptions
  • Librairies
  • Bonne pratiques

Partie 3 : Programmation Orientée Objet

  • Classes et méthodes
  • Héritage et Polymorphisme
  • Encapsulation
  • Stockage de données?

Partie 4 : Python Object Model

  • Python Object Model, méthodes spéciales
  • Itérateurs, Décorateurs, Design Patterns
  • Modules et Packages, script CLI, documentation
  • Testing

Flask

Bonus

  • Regexp

Méthode

Alternance entre :

  • Des explications théoriques sur une notion donnée et présentation de syntaxes Python
  • Exercices pratiques que nous ferons ensemble pas à pas.

Tous est décrit sur le site.

Votre profil et vos attentes ?

Langage Python et programmation.

« L’Informatique »

Cuisiner de l’information

  • Préparer des outils et des ingrédients
  • Donner des instructions
  • … parfois en utilisant des “fonctions”
    • « monter des oeufs en neige »
    • « cuire à thermostat 6 pendant 20 minutes »

Langage de programmation

Comme un vrai langage !

  1. Concepts (mots, verbes, phrases …)
  2. Grammaire et syntaxe
  3. Vocabulaire
  4. Organiser sa rédaction et ses idées : structurer correctement son code et ses données

Le langage Python

  • “Moyen-niveau” : équilibre entre performance, flexibilité et simplicité d’écriture
  • Syntaxe légère, lisible, facile à prendre en main
  • Interprété, “scripting”, prototypage rapide
  • Flexible (typage dynamique, …)
  • Grande communauté, de plus en plus répandu…

Nous récapitulerons en conclusion les caractéristiques du langage, ses avantages et ses inconvénients.

Python history

« … In December 1989, I was looking for a “hobby” programming project that would keep me occupied during the week around Christmas. My office … would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python’s Flying Circus). » — Guido van Rossum

Some programming mindset

Remarque Meme
La programmation c’est compliqué
Il n’y a pas de honte à prendre du temps pour comprendre
Cassez des trucs !
Explorez !

Développement Logiciel

  • Jusqu’ici nous avons parlé du langage python et de la façon dont il permet d’exprimer un programme. Il s’agit donc de programmation.

  • Mais l’activité de coder va au delà de l’expression d’une logique dans un langage. Il s’agit d’organiser la production d’un ensemble d’élément de programme, un logiciel et pour cela on parle plutôt de développement logiciel.

Quatre grands thèmes de l’activité de développement

Algorithme / Langage / Architecture / Qualité Logicielle

Algorithme vs Langage

Lorsqu’on programme il est utile de faire la distinction en ce qui relève de :

  • L’algorithme c’est à dire de la logique de résolution de problème (indépendant du langage).
  • L’expression élégante de cet algorithme dans le langage qu’on veut utiliser.

Pour trouver un algorithme il vaut mieux dessiner et écrire sur un papier ce que l’on cherche à faire !

Architecture

Attitude du développeur

  • Il est important avoir des connaissances fondamentales (ce que je vous raconte ici notamment) et des connaissances techniques.

  • Il faut également avoir la recherche web facile pour pouvoir faire le tri dans la junglede tétails techniques.

Deux sources web classiques de l’information pertinente

  • github
  • stackoverflow.

Lire des livres

Lire des (bons) livres plutôt que des (mauvais) tutoriels. Cf Bibliographie

Communauté

Bonne nouvelle le Python est un écosystème informatique plutôt sain: culture libriste et passion de l’informatique dans la communauté python. N’hésitez pas à aller rencontrer d’autre développeurs.

Après cette formation

Le sujet est très vaste, le métier de développeur est long à intégrer. Il faut “passer plusieurs couches de peintures”. Nous allons parcourir pas mal de distance (en profondeur) et vous pourrez (devriez ?) creuser en largeur par la suite grâce aux références indiquées.