Welcome
![]() | ![]() |
Cours de programmation – Programming Courses
Serge Tahé - About the author
Ce site propose des cours de programmation gratuits, en français et en anglais. Chaque cours avance pas à pas : de nombreux petits exemples commentés, chacun centré sur une seule notion, le plus souvent suivis d’une étude de cas complète. Le PDF et les codes de chaque cours sont téléchargeables.
This site offers free programming courses, in French and in English. Each course proceeds step by step: many small commented examples, each focused on a single concept, most often followed by a complete case study. The PDF and the code of each course can be downloaded.
Français
Les cours ci-dessous ont été écrits en septembre et octobre 2026 par l’IA Claude d’Anthropic, à la demande de Serge Tahé.
Frameworks web côté serveur
Dans ces sept cours, les pages HTML sont fabriquées par le serveur. Ils traitent les mêmes 28 exemples, numéro par numéro, puis la même étude de cas, RdvMedecins, une application de prise de rendez-vous médicaux : on peut ainsi comparer les frameworks.
- [Introduction étape par étape au framework web [NestJS] (sept 2026)] : une application web MVC en TypeScript, avec des vues Handlebars, TypeORM et MySQL ;
- [Introduction étape par étape au framework web [ASP.NET Core MVC] (sept 2026)] : une application web MVC en C# avec .NET 10, des vues Razor et Entity Framework Core ;
- [Introduction étape par étape au framework web [Spring MVC] (sept 2026)] : une application web en Java 21 avec Spring Boot 4, des vues Thymeleaf, Spring Security et Hibernate ;
- [Introduction étape par étape au framework web [Flask] (sept 2026)] : une application web MVC en Python avec Flask 3.1, des vues Jinja2, Pydantic, WTForms et SQLAlchemy ;
- [Introduction étape par étape au framework web [Laravel] (sept 2026)] : une application web MVC en PHP 8.4 avec Laravel 13, des vues Blade et l’ORM Eloquent ;
- [Introduction étape par étape au framework web [Symfony] (sept 2026)] : une application web MVC en PHP 8.4 avec Symfony 8.1, des vues Twig et l’ORM Doctrine ;
- [Introduction étape par étape au framework web [Django] (sept 2026)] : une application web MVC en Python avec Django 6.1, ses gabarits et son ORM.
Frameworks côté client
Dans ces six cours, les pages sont fabriquées dans le navigateur, ou sur le téléphone, à partir des données JSON d’un serveur. Chacun écrit le client de la même application RdvMedecins, d’abord à travers de petits exemples, puis dans une étude de cas complète.
- [Introduction étape par étape au framework web [Vue.js] (sept 2026)] : une application à page unique avec Vue.js 3, vue-router, Pinia et vue-i18n ;
- [Introduction étape par étape au framework web [Angular] (sept 2026)] : une application à page unique avec Angular 22, ses signaux, son routeur et RxJS ;
- [Introduction étape par étape au framework web [React] (sept 2026)] : une application à page unique avec React 19, React Router, Zustand et TanStack Query ;
- [Introduction étape par étape au framework mobile [Flutter] (sept 2026)] : une application mobile Android, qui tourne aussi dans un navigateur, avec Flutter et Dart ;
- [Introduction étape par étape à la programmation mobile avec [Kotlin] (oct 2026)] : une application Android native avec Kotlin, Jetpack Compose, Navigation Compose, les coroutines et OkHttp ;
- [Introduction étape par étape au framework mobile [Ionic] (oct 2026)] : une application mobile Android, qui tourne aussi dans un navigateur, avec Ionic 9, Angular 22 et Capacitor 8, testée sur émulateur.
Exemples client / serveur complets
Ces cinq cours construisent l’application RdvMedecins de bout en bout : un serveur NestJS qui expose une API JSON, une base MySQL et un client.
- [Un exemple de client / serveur Angular / NestJS (sept 2026)] : le serveur NestJS (TypeORM, MySQL, jetons JWT) et son client Angular 22 ;
- [Un exemple de client / serveur React / NestJS (sept 2026)] : le serveur NestJS et son client React 19, écrit avec Vite et TypeScript ;
- [Un exemple de client / serveur Vue.js / NestJS (sept 2026)] : le serveur NestJS et son client Vue.js 3, écrit avec la Composition API ;
- [Une application client / serveur [Flutter] / [NestJS] (sept 2026)] : un client mobile Flutter pour le serveur NestJS, porté ensuite vers le bureau et le web ;
- [Un exemple de client / serveur [Kotlin Android] / [NestJS] (oct 2026)] : un client Android natif pour le serveur NestJS, écrit en Kotlin avec Jetpack Compose (Material 3, ViewModel, coroutines, OkHttp), testé sur émulateur et téléphone.
Langages
Ces six cours enseignent un langage à travers de petits scripts commentés ligne par ligne.
- [Introduction au langage TypeScript et au framework web NestJS par l’exemple (sept 2026)] : le langage TypeScript depuis ses fondamentaux, l’accès aux bases de données (mysql2, TypeORM, Prisma), puis le framework NestJS ;
- [Introduction au langage Dart par l’exemple (sept 2026)] : le langage Dart, ses fonctions HTTP et l’accès à une base MySQL ;
- [Introduction au langage PHP 8 par l’exemple (oct 2026)] : le langage PHP 8.5, sans aucune fonctionnalité dépréciée : classes, exceptions, tests PHPUnit, bases MySQL et PostgreSQL, réseau, services web, jusqu’à une application web MVC (fil rouge : un calcul d’impôt en 13 versions) ;
- [Apprentissage du langage C# 14 avec .NET 10 (oct 2026)] : le langage C# 14 et la plateforme .NET 10, réécriture du cours C# de 2008 : classes, records, LINQ, architectures en couches testées avec MSTest, threads et programmation asynchrone, ADO.NET et Entity Framework Core avec MySQL, réseau TCP et HTTP, services web ASP.NET Core (fil rouge : un calcul d’impôt en 9 versions) ;
- [Apprentissage du langage Java 25 (oct 2026)] : le langage Java 25, portage du cours C# 14 : classes, records, classes scellées, API Stream, architectures en couches testées avec JUnit 6 et intégrées avec Spring, threads virtuels et programmation asynchrone, JDBC et Hibernate avec MySQL, réseau TCP et HTTP, services web Spring Boot (fil rouge : un calcul d’impôt en 9 versions) ;
- [Apprentissage du langage Kotlin 2.4 (oct 2026)] : le langage Kotlin 2.4, portage du cours Java 25 : sûreté vis-à-vis de null, propriétés, classes de données, classes scellées, fonctions d’extension, collections et séquences, architectures en couches testées avec JUnit 6 et intégrées avec Spring, threads virtuels et coroutines, JDBC et Hibernate avec MySQL, réseau TCP et HTTP, services web Spring Boot, projets Gradle (fil rouge : un calcul d’impôt en 9 versions).
Les cours plus anciens (Java, .NET, JavaScript, PHP, Python, SQL), écrits par Serge Tahé entre 1998 et 2020, sont sur une page séparée : Autres cours disponibles (1998-2020).
English
The courses below were written in September and October 2026 by Anthropic’s AI Claude, at the request of Serge Tahé. The English versions were translated with DeepL.
Server-side web frameworks
In these seven courses, the HTML pages are generated by the server. They cover the same 28 examples, number by number, then the same case study, RdvMedecins, a medical appointment-booking application, so the frameworks can be compared.
- [Step-by-Step Introduction to the [NestJS] Web Framework (sept 2026)] : an MVC web application in TypeScript, with Handlebars views, TypeORM and MySQL;
- [Step-by-Step Introduction to the [ASP.NET Core MVC] Web Framework (sept 2026)] : an MVC web application in C# with .NET 10, Razor views and Entity Framework Core;
- [Step-by-Step Introduction to the [Spring MVC] Web Framework (sept 2026)] : a web application in Java 21 with Spring Boot 4, Thymeleaf views, Spring Security and Hibernate;
- [Step-by-Step Introduction to the [Flask] Web Framework (sept 2026)] : an MVC web application in Python with Flask 3.1, Jinja2 views, Pydantic, WTForms and SQLAlchemy;
- [Step-by-Step Introduction to the [Laravel] Web Framework (sept 2026)] : an MVC web application in PHP 8.4 with Laravel 13, Blade views and the Eloquent ORM;
- [Step-by-Step Introduction to the [Symfony] Web Framework (sept 2026)] : an MVC web application in PHP 8.4 with Symfony 8.1, Twig views and the Doctrine ORM;
- [Step-by-Step Introduction to the [Django] Web Framework (sept 2026)] : an MVC web application in Python with Django 6.1, its templates and its ORM.
Client-side frameworks
In these six courses, the pages are built in the browser, or on the phone, from the JSON data of a server. Each one writes the client of the same RdvMedecins application, first through small examples, then in a complete case study.
- [Step-by-Step Introduction to the [Vue.js] Web Framework (sept 2026)] : a single-page application with Vue.js 3, vue-router, Pinia and vue-i18n;
- [Step-by-Step Introduction to the [Angular] Web Framework (sept 2026)] : a single-page application with Angular 22, its signals, its router and RxJS;
- [Step-by-Step Introduction to the [React] Web Framework (sept 2026)] : a single-page application with React 19, React Router, Zustand and TanStack Query;
- [Step-by-Step Introduction to the [Flutter] Mobile Framework (sept 2026)] : an Android mobile application, which also runs in a browser, with Flutter and Dart;
- [Step-by-Step Introduction to Mobile Programming with [Kotlin] (oct 2026)] : a native Android application with Kotlin, Jetpack Compose, Navigation Compose, coroutines and OkHttp;
- [Step-by-Step Introduction to the [Ionic] Mobile Framework (oct 2026)] : an Android mobile application, which also runs in a browser, with Ionic 9, Angular 22 and Capacitor 8, tested on an emulator.
Complete client/server examples
These five courses build the RdvMedecins application from end to end: a NestJS server that exposes a JSON API, a MySQL database and a client.
- [An Angular/NestJS Client/Server Example (sept 2026)] : the NestJS server (TypeORM, MySQL, JWT) and its Angular 22 client;
- [A React/NestJS Client/Server Example (sept 2026)] : the NestJS server and its React 19 client, written with Vite and TypeScript;
- [A Vue.js/NestJS Client/Server Example (sept 2026)] : the NestJS server and its Vue.js 3 client, written with the Composition API;
- [A [Flutter] / [NestJS] client/server application (sept 2026)] : a Flutter mobile client for the NestJS server, then ported to desktop and web;
- [A [Kotlin Android] / [NestJS] Client/Server Example (oct 2026)] : a native Android client for the NestJS server, written in Kotlin with Jetpack Compose (Material 3, ViewModel, coroutines, OkHttp), tested on an emulator and a phone.
Languages
These six courses teach a language through small scripts commented line by line.
- [Introduction to the TypeScript language and the NestJS web framework through examples (sept 2026)] : the TypeScript language from its fundamentals, database access (mysql2, TypeORM, Prisma), then the NestJS framework;
- [Introduction to the Dart Language Through Examples (sept 2026)] : the Dart language, its HTTP functions and access to a MySQL database;
- [Introduction to the PHP 8 Language by Example (oct 2026)] : the PHP 8.5 language, without any deprecated feature: classes, exceptions, PHPUnit tests, MySQL and PostgreSQL databases, networking, web services, up to an MVC web application (common thread: a tax calculation in 13 versions);
- [Learning the C# 14 Language with .NET 10 (oct 2026)] : the C# 14 language and the .NET 10 platform, a rewrite of the 2008 C# course: classes, records, LINQ, layered architectures tested with MSTest, threads and asynchronous programming, ADO.NET and Entity Framework Core with MySQL, TCP and HTTP networking, ASP.NET Core web services (common thread: a tax calculation in 9 versions);
- [Learning the Java 25 Language (oct 2026)] : the Java 25 language, a port of the C# 14 course: classes, records, sealed classes, the Stream API, layered architectures tested with JUnit 6 and wired with Spring, virtual threads and asynchronous programming, JDBC and Hibernate with MySQL, TCP and HTTP networking, Spring Boot web services (common thread: a tax calculation in 9 versions);
- [Learning the Kotlin 2.4 Language (oct 2026)] : the Kotlin 2.4 language, a port of the Java 25 course: null safety, properties, data classes, sealed classes, extension functions, collections and sequences, layered architectures tested with JUnit 6 and wired with Spring, virtual threads and coroutines, JDBC and Hibernate with MySQL, TCP and HTTP networking, Spring Boot web services, Gradle projects (common thread: a tax calculation in 9 versions).
The older courses (Java, .NET, JavaScript, PHP, Python, SQL), written by Serge Tahé between 1998 and 2020, are on a separate page: Other available courses (1998-2020).

