L'entraînement est la clé pour maitriser une discipline ("C'est en forgeant qu'on devient forgeron"), et en algorithmique cela ne peut être que vrai. Apprendre par la pratique est essentiel dans ce domaine, et de nombreux sites existent contenant des exercices, ainsi que plusieurs concours en ligne accessibles à tous.
En voici une liste non exhaustive :
- France IOI : une référence francophone incontournable, je ne peux que recommander ce site car j'ai moi-même passé un an à m'entraîner pour les IOI grâce à cette association.
- USACO : quatre concours sont répartis dans l'année avec plusieurs niveaux de difficultés (bronze, argent, or, platine). C'est l'équivalent américain de l'association France IOI.
- Prologin : chaque année un concours national est organisé permettant aux 100 meilleurs de s'affronter dans un tournoi de trois jours pour coder la meilleure IA. Lors de ma première finale, ce fut trois jours exceptionnels et je vous invite fortement à y participer.
- Codeforces : des concours de 2h quasiment toutes les semaines, et une banque d'exercice énorme pour s'entraîner dans toutes les catégories d'algorithmes.
- Codingame : une plateforme interactive où les problèmes sont sous forme de mini jeu, et quelques concours sont organisés de temps en temps.
- HackerRank : beaucoup d'exercices répartis en différentes catégories sont disponibles pour s'entrainer en algorithmie.
- Project Euler : des problèmes plutôt orientés mathématiques, mais qui nécessitent des algorithmes bien utiles pour être résolus.
- Sphere online judge : énorme réserve à exercice en tous genres, dans toutes les catégories.
- Topcoder : des challenges dans différents domaines (rémunérés pour certains), mais le site contient surtout pas mal de tutoriels et de références intéressantes, ainsi que beaucoup d'exercices disponibles.
- Google Code Jam : un concours international est mis en place par Google chaque année à travers différentes épreuves de sélection.