Parcours
Apprendre Go (Golang)
Un cours Go en ligne, gratuit et interactif. Tu écris du Go à chaque leçon — syntaxe, structs, slices, interfaces, goroutines, channels — avec des indices IA quand la concurrence devient bizarre, et un certificat gratuit à la fin.
20,998+ codders inscrits
- Adapté aux débutants
Aide au codage assistée par IA
Leçons interactives et pratiques
Narration audio dans chaque leçon
Quiz pour tester vos connaissances
Certificat gratuit de réussite
Programme
Section 1
Fondamentaux
Commencer la sectionDémarrerDévelopperRéduireConstruisez une base solide avec les concepts essentiels et les compétences de baseIntroduction à Go
4 leçons423- 01Qu'est-ce que Go ?Défi
- 02Hello WorldDéfiQuizAudio
- 03PrintlnDéfiQuizAudio
- 04Commentaires GoDéfiQuizAudio
Variables et types de données de base
10 leçons1069- 01Qu'est-ce qu'une variableDéfiQuizAudio
- 02Inférence de type avec `:=` DéfiQuizAudio
- 03Entiers (int)DéfiQuizAudio
- 04Nombres à virgule flottanteDéfiQuizAudio
- 05BooléensDéfiQuizAudio
- 06Chaînes de caractères (Strings)DéfiQuizAudio
- 07Valeurs zéroDéfiQuizAudio
- 08ConstantesDéfiQuizAudio
- 09Conventions de nommageDéfiQuizAudio
- 10Récapitulatif - Variables et typesDéfi
Opérateurs de base
7 leçons744- 01Opérateurs arithmétiquesDéfiQuizAudio
- 02Opérateur de divisionDéfiQuizAudio
- 03L'opérateur moduloDéfiQuizAudio
- 04Opérateur d'affectationDéfiQuizAudio
- 05Opérateurs d'affectation augmentéeDéfiQuizAudio
- 06Incrémentation et décrémentationDéfiQuizAudio
- 07Récapitulatif - CalculsDéfi
Opérateurs de comparaison et logiques
7 leçons742- 01Opérateurs de comparaison - Partie 1DéfiQuizAudio
- 02Opérateurs de comparaison - Partie 2DéfiQuizAudio
- 03Opérateur logique ANDDéfiQuizAudio
- 04Opérateur logique ORDéfiQuizAudio
- 05Opérateur logique NOTDéfiQuizAudio
- 06Bases de la priorité des opérateursDéfiQuizAudio
- 07Récapitulatif - Effectuer des comparaisonsDéfi
Entrées/Sorties de base
5 leçons532- 01Sortie formatéeDéfiQuizAudio
- 02Verbes de formatageDéfiQuizAudio
- 03Affichage des typesDéfiQuizAudio
- 04Saisie utilisateur de baseDéfiQuizAudio
- 05Récapitulatif - Entrées et SortiesDéfi
Structure de contrôle : Les conditionnelles
10 leçons1069- 01L'instruction `if`DéfiQuizAudio
- 02Le mot-clé `else`DéfiQuizAudio
- 03Le mot-clé `else if`DéfiQuizAudio
- 04Masquage de variable dans `if`DéfiQuizAudio
- 05Initialisation des variablesDéfiQuizAudio
- 06L'instruction `switch`DéfiQuizAudio
- 07`switch` avec expressionsDéfiQuizAudio
- 08`switch` sans expressionDéfiQuizAudio
- 09Le mot-clé `fallthrough`DéfiQuizAudio
- 10Récapitulatif - Prendre des décisionsDéfi
Structures de contrôle : Les boucles
7 leçons743- 01Explication de la boucle `for`DéfiQuizAudio
- 02Boucle For - Les basesDéfiQuizAudio
- 03Boucle For - Condition uniquementDéfiQuizAudio
- 04Le mot-clé `break`DéfiQuizAudio
- 05Le mot-clé `continue`DéfiQuizAudio
- 06Boucles imbriquéesDéfiQuizAudio
- 07Récapitulatif - Répéter des actionsDéfi
Fonctions
9 leçons962- 01Comprendre les fonctionsDéfiQuizAudio
- 02Déclarer une fonctionDéfiQuizAudio
- 03Appeler des fonctionsDéfiQuizAudio
- 04Paramètres de fonctionDéfiQuizAudio
- 05Retourner une valeur uniqueDéfiQuizAudio
- 06Retourner plusieurs valeursDéfiQuizAudio
- 07Valeurs de retour nomméesDéfiQuizAudio
- 08Bases de la portée des fonctionsDéfiQuizAudio
- 09Récapitulatif - Créer du code réutilisableDéfi
Pointeurs
7 leçons644- 01Qu'est-ce qu'un pointeur ?QuizAudio
- 02Déclaration de variables pointeursDéfiQuizAudio
- 03L'opérateur d'adresseDéfiQuizAudio
- 04Déréférencement de pointeursDéfiQuizAudio
- 05Utiliser des pointeurs dans les fonctionsDéfiQuizAudio
- 06Pointeurs NilDéfiQuizAudio
- 07Récapitulatif - Comprendre les pointeursDéfi
Types composites : Tableaux
7 leçons650- 01Introduction aux tableauxQuizAudio
- 02Déclaration de tableauxDéfiQuizAudio
- 03Initialisation de tableauxDéfiQuizAudio
- 04Accès aux éléments d'un tableauDéfiQuizAudio
- 05Taille d'un tableau avec `len`DéfiQuizAudio
- 06Itération sur les tableauxDéfiQuizAudio
- 07Tableaux multidimensionnelsDéfiQuizAudio
Types composites : Slices
10 leçons965- 01Introduction aux SlicesQuizAudio
- 02Déclaration de littéraux de SlicesDéfiQuizAudio
- 03Création de Slices avec `make`DéfiQuizAudio
- 04Longueur vs Capacité des SlicesDéfiQuizAudio
- 05Accès aux éléments d'un SliceDéfiQuizAudio
- 06Ajout d'élémentsDéfiQuizAudio
- 07Découpage de Slices/Tableaux existantsDéfiQuizAudio
- 08Itération sur les SlicesDéfiQuizAudio
- 09Copie de SlicesDéfiQuizAudio
- 10Récapitulatif - Listes dynamiquesDéfi
Types composites : Maps
10 leçons965- 01Introduction aux MapsQuizAudio
- 02Déclaration de littéraux de MapDéfiQuizAudio
- 03Création de Maps avec `make`DéfiQuizAudio
- 04Ajout et mise à jour de paires clé-valeurDéfiQuizAudio
- 05Accès aux valeurs d'une MapDéfiQuizAudio
- 06Vérification de l'existence d'une cléDéfiQuizAudio
- 07Suppression d'entrées de MapDéfiQuizAudio
- 08Taille d'une MapDéfiQuizAudio
- 09Itération sur les MapsDéfiQuizAudio
- 10Récapitulatif - Stockage clé-valeurDéfi
Types composites : Structures
8 leçons854- 01Définition de types personnalisésDéfiQuizAudio
- 02Création d'instances de structuresDéfiQuizAudio
- 03Accès aux champs d'une structureDéfiQuizAudio
- 04Pointeurs vers des structuresDéfiQuizAudio
- 05Initialisation de structuresDéfiQuizAudio
- 06Structures imbriquéesDéfiQuizAudio
- 07Structures anonymesDéfiQuizAudio
- 08Récapitulatif - Structures de données personnaliséesDéfi
Gestion de base des erreurs
8 leçons858- 01Le concept d'erreurDéfiQuizAudio
- 02L'interface `error`DéfiQuizAudio
- 03Fonctions retournant des erreursDéfiQuizAudio
- 04Vérification des erreursDéfiQuizAudio
- 05Création d'erreurs simplesDéfiQuizAudio
- 06Création d'erreurs formatéesDéfiQuizAudio
- 07Gestion de base des erreursDéfiQuizAudio
- 08Récapitulatif - Gérer les problèmesDéfi
Section 2
Logique & Flux
Commencer la sectionDémarrerDévelopperRéduireMaîtrisez la programmation avancée en Go avec un accent sur les structures de données et le contrôle de flux. Apprenez à travailler avec des tableaux complexes, des collections, la gestion d'erreurs et la gestion du temps.Structures de contrôle avancées
5 leçons528- 01Switch avec `fallthrough`DéfiQuiz
- 02Sortir de boucles imbriquéesDéfiQuiz
- 03Continuer une boucle spécifiqueDéfiQuiz
- 04L'instruction `goto`DéfiQuiz
- 05Récapitulatif - Contrôle de boucle avancéDéfi
Structures et Méthodes
6 leçons439- 01Définir des méthodes sur des structuresDéfiQuiz
- 02Receveurs par valeurDéfiQuiz
- 03Receveurs par pointeurDéfiQuiz
- 04Choisir les receveursQuiz
- 05Méthodes vs FonctionsQuiz
- 06Récapitulatif - Comportement des structuresDéfi
Interfaces (Les bases)
8 leçons757- 01Qu'est-ce qu'une Interface ?Quiz
- 02Définir une InterfaceDéfiQuiz
- 03Implémenter une InterfaceDéfiQuiz
- 04Utiliser les types d'InterfaceDéfiQuiz
- 05Interface videDéfiQuiz
- 06Assertions de typeDéfiQuiz
- 07Type SwitchDéfiQuiz
- 08Récapitulatif - Formes et comportementsDéfi
Projet : Liste de tâches simple
Projet6 leçons1- 01Configuration du projetDéfi
- 02Ajouter une tâcheProjet
- 03Afficher toutes les tâchesProjet
- 04Terminer une tâcheProjet
- 05Supprimer une tâcheProjet
- 06Assemblage finalProjet
Les Maps en profondeur
5 leçons432- 01Maps de StructsDéfiQuiz
- 02Pointeurs comme valeurs de MapDéfiQuiz
- 03Tester les Maps NilDéfiQuiz
- 04Comparer des MapsQuiz
- 05Récapitulatif - Compteur de fréquence de motsDéfi
Go idiomatique : Les ensembles
7 leçons648- 01L'idiome des ensembles en GoQuiz
- 02Créer un ensembleDéfiQuiz
- 03Ajouter à un ensembleDéfiQuiz
- 04Vérifier l'appartenanceDéfiQuiz
- 05Supprimer d'un ensembleDéfiQuiz
- 06Itérer sur un ensembleDéfiQuiz
- 07Récapitulatif - Noms d'utilisateur uniquesDéfi
Gestion des erreurs en profondeur
7 leçons650- 01Types d'erreurs personnalisésDéfiQuiz
- 02Envelopper des erreurs avec `%w`DéfiQuiz
- 03Désenvelopper avec `errors.Is`DéfiQuiz
- 04Désenvelopper avec `errors.As`DéfiQuiz
- 05Comprendre `panic`Quiz
- 06Utiliser `recover`DéfiQuiz
- 07Récapitulatif - Division sécuriséeDéfi
Projet : Inventaire simple
Projet6 leçons1- 01Aperçu du projetDéfi
- 02Vérifier le stockProjet
- 03Ajouter un nouvel articleProjet
- 04Mettre à jour la quantité en stockProjet
- 05Générer un rapportProjet
- 06Assemblage finalProjet
Packages et Portée
7 leçons550- 01Qu'est-ce qu'un Package ?Quiz
- 02Exporté vs Non-exportéDéfiQuiz
- 03Créer un Package SimpleDéfiQuiz
- 04Aliasing de PackageDéfiQuiz
- 05L'identificateur blanc `_`Quiz
- 06La fonction `init`DéfiQuiz
- 07Récapitulatif - Créer un utilitaireDéfi
Travailler avec le temps
8 leçons857- 01Obtenir l'heure actuelleDéfiQuiz
- 02Créer une heure spécifiqueDéfiQuiz
- 03Formatage de l'heureDéfiQuiz
- 04Parsing de chaînes de tempsDéfiQuiz
- 05Durée temporelleDéfiQuiz
- 06Arithmétique temporelleDéfiQuiz
- 07Sleep et TickersDéfiQuiz
- 08Récapitulatif - Minuteur simpleDéfi
Défis finaux
3 leçons3- 01Liste de contacts basiqueDéfi
- 02Validateur de nombres simpleDéfi
- 03Collecteur d'éléments uniquesDéfi
Section 3
Programmation Orientée Objet
Commencer la sectionDémarrerDévelopperRéduireDécouvrez comment organiser le code avec des classes, des objets et des structures réutilisablesFondamentaux de la POO en Go
11 leçons1189- 01Fichiers externesDéfiQuiz
- 02Espace de travail et Modules GoDéfiQuiz
- 03Packages et ImportsDéfiQuiz
- 04Noms exportés vs non exportésDéfiQuiz
- 05Introduction à la POO en GoDéfiQuiz
- 06Les Structs comme ClassesDéfiQuiz
- 07Définir des méthodes sur les StructsDéfiQuiz
- 08Receveurs par pointeur vs par valeurDéfiQuiz
- 09Initialisation de StructsDéfiQuiz
- 10Fonctions constructeursDéfiQuiz
- 11Récapitulatif - Calculatrice simpleDéfi
Exploration approfondie des Types et Structs
7 leçons752- 01Types de base et compositesDéfiQuiz
- 02Définitions de types personnalisésDéfiQuiz
- 03Tags de StructDéfiQuiz
- 04Structs anonymesDéfiQuiz
- 05Structs imbriquéesDéfiQuiz
- 06Valeurs par défaut et Zero ValuesDéfiQuiz
- 07Récapitulatif - Carnet de contactsDéfi
Pointeurs et Mémoire
6 leçons644- 01Bases des pointeurs en GoDéfiQuiz
- 02Pointeurs vers des structsDéfiQuiz
- 03Passage par valeur vs référenceDéfiQuiz
- 04La fonction new()DéfiQuiz
- 05Garbage Collection en GoDéfiQuiz
- 06Récapitulatif - Constructeur de liste chaînéeDéfi
Interfaces
9 leçons969- 01Introduction aux interfacesDéfiQuiz
- 02Implémentation impliciteDéfiQuiz
- 03L'interface comme contratDéfiQuiz
- 04Interface vide (any)DéfiQuiz
- 05Assertion de typeDéfiQuiz
- 06Type SwitchDéfiQuiz
- 07Composition d'interfacesDéfiQuiz
- 08Interfaces Stringer & ErrorDéfiQuiz
- 09Récapitulatif - Calculateur de formesDéfi
Composition plutôt qu'héritage
7 leçons749- 01Pourquoi Go n'a pas d'héritageDéfiQuiz
- 02Les bases de l'imbrication de structsDéfiQuiz
- 03Promotion de méthodesDéfiQuiz
- 04Imbriquer plusieurs structsDéfiQuiz
- 05Imbrication vs AgrégationDéfiQuiz
- 06Masquage de méthodes imbriquéesDéfiQuiz
- 07Récapitulatif - Hiérarchie des employésDéfi
Le polymorphisme en Go
6 leçons643- 01Le polymorphisme via les interfacesDéfiQuiz
- 02Le Duck Typing en GoDéfiQuiz
- 03Règles de satisfaction des interfacesDéfiQuiz
- 04Collections polymorphesDéfiQuiz
- 05Injection de dépendancesDéfiQuiz
- 06Récapitulatif - Processeur de paiementDéfi
Encapsulation
5 leçons536- 01Champs exportés vs non exportésDéfiQuiz
- 02Encapsulation au niveau du packageDéfiQuiz
- 03Méthodes Getter & SetterDéfiQuiz
- 04Masquage d'informations en GoDéfiQuiz
- 05Récapitulatif - Dossiers étudiantsDéfi
Gestion des erreurs & POO
7 leçons754- 01L'interface errorDéfiQuiz
- 02Types d'erreurs personnalisésDéfiQuiz
- 03Error Wrapping (fmt.Errorf)DéfiQuiz
- 04Erreurs sentinellesDéfiQuiz
- 05errors.Is() et errors.As()DéfiQuiz
- 06Panic, Defer et RecoverDéfiQuiz
- 07Récapitulatif - File ParserDéfi
Concurrence et POO
8 leçons863- 01Bases des GoroutinesDéfiQuiz
- 02Channels et CommunicationDéfiQuiz
- 03Channels avec buffer vs sans bufferDéfiQuiz
- 04L'instruction SelectDéfiQuiz
- 05sync.Mutex et sync.RWMutexDéfiQuiz
- 06sync.WaitGroupDéfiQuiz
- 07Conception de structures Thread-SafeDéfiQuiz
- 08Récapitulatif - Worker PoolDéfi
Génériques (Go 1.18+)
6 leçons645- 01Introduction aux génériquesDéfiQuiz
- 02Paramètres de typeDéfiQuiz
- 03Contraintes de typeDéfiQuiz
- 04Structures génériquesDéfiQuiz
- 05Contournement pour les méthodes génériquesDéfiQuiz
- 06Récapitulatif - Collections génériquesDéfi
Bibliothèque standard et POO
6 leçons644- 01io.Reader & io.WriterDéfiQuiz
- 02L'interface sort.InterfaceDéfiQuiz
- 03L'interface fmt.StringerDéfiQuiz
- 04encoding/json avec les StructsDéfiQuiz
- 05L'interface http.HandlerDéfiQuiz
- 06Récapitulatif - Modèles d'API RESTDéfi
Concepts POO Avancés
6 leçons655- 01Pattern Functional OptionsDéfiQuiz
- 02Pattern Builder en GoDéfiQuiz
- 03Chaînage de méthodesDéfiQuiz
- 04Alias de types vs DéfinitionsDéfiQuiz
- 05Bases de la RéflexionDéfiQuiz
- 06Aperçu de la génération de codeDéfiQuiz
Patrons de conception, Partie 1
6 leçons651- 01Introduction aux Design PatternsDéfiQuiz
- 02Patron SingletonDéfiQuiz
- 03Patron FactoryDéfiQuiz
- 04Patron Abstract FactoryDéfiQuiz
- 05Patron ObserverDéfiQuiz
- 06Patron StrategyDéfiQuiz
Patrons de conception, Partie 2
7 leçons764- 01Patron CommandeDéfiQuiz
- 02Patron AdaptateurDéfiQuiz
- 03Patron DécorateurDéfiQuiz
- 04Patron Template MethodDéfiQuiz
- 05Patron ÉtatDéfiQuiz
- 06Patron CompositeDéfiQuiz
- 07Middleware en tant que DécorateurDéfiQuiz
Projet : Gestion de bibliothèque
Projet7 leçons1- 01Présentation et structure du projetDéfi
- 02Structures Livre et UtilisateurProjet
- 03Système d'empruntProjet
- 04Recherche avec les InterfacesProjet
- 05Couche de persistance JSONProjet
- 06Interface CLI d'administrationProjet
- 07Tests et intégrationProjet
Défis finaux
3 leçons3- 01Plateforme d'E-LearningDéfi
- 02Système bancaireDéfi
- 03Système de personnages de jeuDéfi
Pourquoi apprendre Go (Golang) avec Coddy
- Écris et exécute du vrai code Go dans ton navigateur. Pas de toolchain Go à installer, pas de GOPATH à configurer. Chaque leçon compile ton programme Go côté serveur et affiche le résultat instantanément.
- Du Go idiomatique : packages, structs, slices et maps, interfaces, gestion des erreurs, goroutines, channels. Les patterns Go que tu utiliseras vraiment pour construire des backends et des CLIs.
- Les indices IA t'aident à débugger ton code Go et à démêler les bugs de goroutines et de channels sans spoiler la réponse, pour que le modèle de concurrence te paraisse limpide au lieu de t'embrouiller.
- Certificat Golang gratuit à la fin du cours. Un signal crédible pour les postes backend, cloud-infrastructure et DevOps, où la maîtrise de Go est de plus en plus attendue.
Questions fréquentes sur l’apprentissage de Go (Golang)
Go (Golang) est-il facile à apprendre ?
Go fait partie, volontairement, des langages modernes les plus simples. Spec réduite, pas d'héritage, pas de complexité liée aux generics par défaut, et une solide bibliothèque standard. La plupart des débutants arrivent à leur premier programme Go fonctionnel dès la première heure et écrivent des goroutines au bout de quelques semaines.
À quoi sert Go (Golang) ?
Services backend, infrastructure cloud, CLIs et outils DevOps. Docker, Kubernetes, Terraform et une grande partie de l'infrastructure cloud-native sont écrits en Go. Le langage est pensé autour d'une compilation rapide, d'une concurrence facile et de la production d'un seul binaire statique, ce qui le rend tout indiqué pour les serveurs et les outils en ligne de commande.
Combien de temps faut-il pour apprendre Go ?
Les bases de Go — syntaxe, fonctions, structs, slices, maps — te prennent une à deux semaines de pratique quotidienne. Manipuler les interfaces, goroutines et channels avec aisance demande en général deux à six semaines de plus. Atteindre un niveau production sur des services Go dépend ensuite surtout du temps passé sur une vraie base de code.
Apprendre Go ou Python ?
Choisis selon ton objectif. Python te rend productif plus vite pour la data, le scripting et l'IA. Go brille pour les backend services, les outils d'infrastructure et tout ce qui demande un binaire rapide et typé statiquement avec de la concurrence intégrée. Les deux se complètent bien — beaucoup d'équipes backend utilisent les deux.
Est-ce que je peux apprendre Golang en ligne gratuitement ?
Oui. Le cours interactif de Go est gratuit — leçons complètes, exercices de code, quiz et certificat. Le compilateur Go tourne côté serveur, donc tu n'as pas besoin d'installer Go en local ni de configurer ton GOPATH pour commencer à coder.
Est-ce que je reçois un certificat après le cours de Go ?
Oui. En terminant le cours Go, tu reçois un certificat de réussite gratuit à ajouter à ton CV ou à partager sur LinkedIn. Une preuve vérifiable, en complément des projets Go ou des repos GitHub que tu as déjà construits.