L'outil le plus important pour la programmation est certainement le langage de programmation utilisé. Les fonctionnalités du langage sont importantes, car elles déterminent la structure des programmes laquelle détermine à son tour la lisibilité et la maintenabilité.
Alors qu'il existe des langages de programmation spécifiques pour un domaine donné (bases de données, interfaces graphiques, etc), ici, nous allons traiter uniquement le cas des langages de programmation généraux (en anglais : general-purpose programming languages).
Les langages de programmation généraux sont très différents les uns des autres, même si l'on peut identifier certaines catégories contenant plusieurs langages similaires. Le choix du langage pour un projet de programmation n'est donc pas une chose innocente. Un informaticien doit maîtriser plusieurs, voire plusieurs dizaines de, langages généraux, ou au moins avoir une idée de leur structure générale. Cela lui permet de faire un choix bien réfléchi du langage pour un projet donné.
Il y a une tendance parmi les néophytes (et souvent aussi parmi les programmeurs plus expérimentés) à s'attacher à un langage de programmation particulier, souvent le premier appris, à l'exclusion de tout autre langage. Les psychologues expliquent cette tendance comme une réticence naturelle les humains à l'apprentissage de nouvelles choses. En effet, pendant une période d'apprentissage la personne court le risque d'être considérée comme incompétente par son entourage tandis que l'utilisation d'un outil connu depuis longtemps apporte une impression de sécurité et la possibilité d'être admiré par son entourage.
Un informaticien doit à tout prix résister à ce type de tendance. L'informatique évolue tellement vite qu'il est absolument essentiel d'appréhender en permanence de nouvelles choses. Un informaticien qui se déclare attaché à un langage particulier à l'exclusion de tout autre langage qu'il ne connaît pas, commet donc une aberration qui risque de le faire ridiculiser par des collègues plus expérimentés. En fait, en informatique, il est courant de parler du nombre de langages appris par an plutôt que du nombre de langages maitrisés.