L'algorithmique t'apprends à créer de bons algos, à analyser leur complexité, à utiliser les bonnes structures de données et les bonnes méthodes sur ces structures, en faisant abstraction du language. Peu importe que tu fasses du matlab, du cobol ou du js au final, un algo c'est d'abord une logique que tu vas écrire sur un bout de papier par exemple. Ensuite tu peux l'implémenter, peu importe le langage. L'algo je trouve ça vraiment fondamental pour un développeur, peu importe ce qu'il fait, pour plusieurs raisons:
1 - ça te permet de comprendre comment marche une liste, une pile, un tas, un graphe, un arbre, les algos que tu peux faire sur ces structures, leur complexité ... Des structures de données qui sont partout, dans n'importe quel langage.
2 - ça t'apprends à t'émanciper des libraries toutes faites, souvent difficiles a truster en général, en plus d'être mal codées et du coup d'avoir des performances complétement intolérables.
3 - tu apprends (et c'est le plus important) a faire des algos efficaces (et beaux du coup ;) ) qui utilise les ressources qu'il faut, ni trop, ni pas assez. Ca se traduit par du code plus léger, plus facile à comprendre en général et plus performant.
Après il y a plein d'autres aspects qui ne t'intéresseront surement pas (qui ne sont pas utiles pour faire uniquement du code en tout cas), du genre la théorie de la complexité, les machines de Turing ou les competitive ratio. Par contre, je pense que quel que soit le langage que tu veux pousser (particulièrement des pompes a ressources genre js), bien connaitre les structures de données que tu utilises, les opérations que tu peux faire dessus, les algos que tu peux produire avec, comment construire des algos efficaces et pas trop complexes, comment les algos connus sont ou peuvent être implémentés... C'est indispensable.
Donc tu ne perdras pas ton temps à faire de l'algo et le livre de Knuth se comprend très bien, pas besoin d'être une bête en maths ^^
This post was edited by Bromen on Oct 16 2018 07:26pm