Découvre quelques techniques générales de résolution de problèmes pour t'aider à programmer.
Comme l'indique le premier article de cette page, la résolution de problèmes est une méta-compétence.
Nous constatons souvent que la syntaxe ou la structure d'un langage de programmation ne sont pas la partie la plus difficile quand on s'attaque à un défi : ce qui est difficile, c'est de déterminer quoi coder ou par où commencer.
Développer des stratégies et une méthode pour découper les problèmes en étapes codables est une excellente compétence à cultiver.
Voici une sélection d'articles, de vidéos et de livres issus de la communauté qui peuvent t'aider à développer cette super-compétence.
- Free Code Camp propose un bon article d'introduction sur How to Think Like a Programmer - Lessons in Problem-Solving.
- Jeremy Howard, fondateur de fast.ai, a fait un bon résumé des G. Polya's Problem Solving Techniques.
- Écrit à l'origine en 1945 comme guide pour aborder des problèmes de maths complexes, G. Polya's How To Solve It (le livre complet) reste un conseil excellent pour la résolution de problèmes en général.
- Kurtis Pykes, qui écrit pour Towards Data Science, propose un bon tutoriel pratique de résolution de problèmes.
- Mentionné dans l'article de Free Code Camp, Think Like a Programmer: An Introduction to Creative Problem Solving de V. Anton Spraul propose une approche plus moderne et plus centrée sur la programmation des mêmes méthodes générales que Polya décrit pour les mathématiques.
-
Felienne Hermans s'intéresse surtout à la manière dont les gens apprennent l'art de coder et à la façon dont cela se rattache à l'apprentissage en général.
Elle a écrit The Programmer's Brian, qui propose des stratégies pour mieux lire le code, penser clairement au code, écrire du meilleur code et devenir un meilleur collaborateur sur le code.
-
Algorithmic Thinking (Daniel Zingaro), paru chez No Starch Press, et How to think like a programmer (Paul Vickers) traitent eux aussi de la résolution de problèmes en programmation.
-
Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher) et Computational Thinking for the Modern Problem-Solver (Riley and Hunt) offrent également des stratégies pour réfléchir aux problèmes et les découper en vue de solutions de code.
-
From Computing to Computational Thinking (Paul S. Wang) est un peu plus général et académique, mais il propose des stratégies et des structures de résolution de problèmes qui s'appliquent à bien plus que la programmation, et il ne demande aucune connaissance préalable en programmation.
Certains de ces livres peuvent aussi être consultés via la bibliothèque de l'Association of Computing Machinery (ACM).
Les informations sur l'adhésion (payante) sont disponibles sur acm(dot)org.