L'algèbre booléenne est fondamentale pour la compréhension des structures de contrôle et de refactoring. Par exemple, j'ai vu beaucoup de bugs causés par des programmeurs qui ne connaissent pas (ou ne pouvait pas l'utiliser) la loi de deMorgan. Comme autre exemple, combien de programmeurs immédiatement reconnaître qu'
if (condition-1) {
if (condition-2) {
action-1
} else {
action-2
} else {
action-2
}
peut être réécrit comme
if (condition-1 and condition-2) {
action-1
} else {
action-2
}
Les mathématiques discrètes et la combinatoire sont extrêmement utiles dans la compréhension de la performance de divers algorithmes et structures de données.
Comme mentionné par Baltimark, induction mathématique est très utile dans le raisonnement sur les boucles et la récursivité.
La théorie des ensembles est la base des bases de données relationnelles et SQL.
Par analogie, permettez-moi de souligner que les charpentiers ont systématiquement recours à une variété de règle-de-pouce techniques dans la construction des choses comme les toits et les escaliers. Cependant, une connaissance de la géométrie permet de résoudre les problèmes pour lesquels vous ne disposez pas d'un "boîtes" règle du pouce. C'est comme l'apprentissage de la lecture par rapport à la phonétique de la vue de la reconnaissance d'un vocabulaire de base. Plus de 90% du temps il n'y a pas beaucoup de différence. Mais lorsque vous exécutez dans une situation inconnue, il est TRÈS agréable d'avoir les outils pour travailler sur la solution vous-même.
Enfin, la rigueur, la précision requise par les mathématiques est très utile à la préparation de la programmation, indépendamment de la technique spécifique. Encore une fois, beaucoup de bugs de programmation (ou même cahier des charges) que j'ai vu dans ma carrière d'avoir bâclé la pensée à leur cause.