À chaque fois qu'un dev m'annonce qu'il veut se mettre à Go, la question tombe dans la foulée : « tu me conseilles quel bouquin ? ». Et à chaque fois je freine, parce que la vraie réponse n'est pas une liste de dix titres notés sur cinq étoiles. C'est : « ça dépend d'où tu pars, et tu n'as peut-être même pas besoin d'un livre ».
Go est un petit langage. La spécification tient dans une après-midi de lecture. Du coup, le piège du débutant, c'est d'acheter le pavé de référence de 400 pages et de ne jamais le finir, alors qu'un parcours gratuit l'aurait rendu opérationnel en une semaine. Voici donc mon tri, après plusieurs années à écrire du Go en production et à voir des collègues débarquer de PHP, Python ou JS.
Avant d'acheter : le gratuit qui suffit pour démarrer
Soyons honnêtes deux minutes : pour les bases de Go, le matériel officiel est excellent et gratuit. Avant de sortir la carte bleue, fais le tour de ces trois ressources.
- A Tour of Go : le tutoriel interactif officiel, dans le navigateur, sans rien installer. Syntaxe, types, méthodes, goroutines. C'est le point de départ universel.
- Effective Go : le document qui t'apprend à écrire du Go idiomatique, pas juste du code qui compile. À lire dès que la syntaxe est digérée.
- 100 Go Mistakes : la version web est en accès libre. On y revient plus bas, mais sache que la majorité du contenu se lit gratuitement en ligne.
Mon conseil : commence par le Tour, écris un vrai petit projet (un outil en ligne de commande, une mini-API), et n'achète un livre que quand tu butes sur un mur précis. Le livre acheté « pour apprendre un jour » prend la poussière.
Pour apprendre Go proprement : Learning Go (Jon Bodner)
Learning Go de Jon Bodner (O'Reilly), dans sa 2e édition de 2024, est aujourd'hui mon défaut quand quelqu'un veut un seul livre pour apprendre le langage correctement. Il couvre tout le langage moderne, generics inclus, et surtout il insiste sur le pourquoi des choix de Go : pourquoi pas d'héritage, pourquoi la gestion d'erreurs explicite, pourquoi cette gestion de la concurrence.
C'est un livre pour quelqu'un qui sait déjà programmer dans un autre langage. Si tu viens de PHP, Python ou JS, c'est exactement le bon niveau : il ne te réexplique pas ce qu'est une variable, il te montre comment penser en Go. Sa limite : il survole les sujets très avancés (il les introduit sans creuser), ce qui est normal pour un livre de fondations.
La référence des puristes : The Go Programming Language
The Go Programming Language d'Alan Donovan et Brian Kernighan (oui, le Kernighan du C) reste « le K&R de Go » : rigoureux, dense, magnifiquement écrit. Si tu aimes comprendre un langage en profondeur plutôt qu'en survol, c'est celui-là.
Le bémol honnête : il date de 2015. Pas de generics, pas de modules Go, des conventions qui ont un peu bougé depuis. Les fondations restent solides à 100 %, mais tu devras compléter sur les ajouts récents du langage. Je le recommande en deuxième livre, pour consolider, pas pour démarrer.
Pour construire de vrais services web : Let's Go (Alex Edwards)
Si ton objectif est concret (« je veux faire un backend web en Go »), Let's Go d'Alex Edwards est le meilleur du lot. Il te fait construire une vraie application web de A à Z, sans framework, en t'appuyant sur la bibliothèque standard. Routing, base de données, sessions, authentification, tests : tout y passe, proprement.
Sa suite, Let's Go Further, monte d'un cran sur les APIs JSON, le rate limiting, le déploiement. C'est payant, mis à jour régulièrement, et ça les vaut largement. C'est le livre le plus directement « rentable » de cette liste si tu veux livrer quelque chose.
Pour passer au niveau pro : 100 Go Mistakes et Concurrency in Go
Une fois que tu écris du Go qui marche, le palier suivant c'est écrire du Go qui ne se fera pas démolir en revue de code.
- 100 Go Mistakes and How to Avoid Them (Teiva Harsanyi, Manning) : cent pièges classiques, du débutant au piège de concurrence retors, chacun avec la version fautive puis la version idiomatique. C'est le livre qui t'a fait passer de « je connais la syntaxe » à « j'écris du Go propre ». Gratuit en ligne, mais la version papier se feuillette bien.
- Concurrency in Go (Katherine Cox-Buday, O'Reilly) : la référence sur les goroutines, channels et patterns de concurrence. Approche presque académique, parfois ardue, mais c'est le livre quand tu veux vraiment maîtriser ce qui fait la force de Go.
Lequel choisir selon ton profil
Plutôt qu'un classement absolu, voici comment je trie selon d'où tu pars.
| Ton profil | Le livre que je conseille |
|---|---|
| Grand débutant en programmation | A Tour of Go (gratuit), puis Head First Go ou The Deeper Love of Go (John Arundel), plus visuels et progressifs |
| Dev confirmé qui découvre Go | Learning Go (Bodner) : direct au bon niveau |
| Tu veux comprendre le langage à fond | The Go Programming Language (Donovan & Kernighan) |
| Objectif backend / API web | Let's Go puis Let's Go Further (Alex Edwards) |
| Monter en concurrence et perf | 100 Go Mistakes puis Concurrency in Go |
Conclusion
Le meilleur livre de Go n'est pas le plus complet ni le mieux noté : c'est celui que tu termines, le clavier à côté, en tapant chaque exemple au lieu de le lire. Go est un langage qui s'apprend par la main, pas par la lecture passive. Un bon livre accélère, il ne remplace pas les heures à écrire du code qui plante puis qui marche.
Et si tu préfères apprendre en pratiquant directement dans ton navigateur avant d'investir dans un livre, j'ai écrit un cours Go gratuit et interactif sur ce site, ainsi qu'un guide complet pour démarrer en Go quand on vient de PHP, Python ou JS.