Le programmeur a un certain niveau de compréhension du fonctionnement d'un ordinateur. Les programmeurs sont habituellement les gens qui fouillent dans les détails de tout les sujets, et ont l'aptitude de comprendre, même avec des informations tronquées. Plutôt que des écrous, boulons, bois, ou tournevis, les outils de programmeurs sont la logique pure, une compréhension des protocoles, une culture de l'information et un juste degré de compétence arithmétique.
Les instructions en langage de programmation qui générent du code compréhensible par des machines sont habituellement d'un niveau de conception élevé. Les fonctions de bas niveau des ordinateurs sont, par elles-mêmes, non utilisables. C'est le juste assemblage de ces fonctions qui crée un programme utile.
D'habitude, les programmes sont développés pour résoudre une certaine sorte de problème technique. Ce sont donc la capacité du programmeur à créer des solutions qui sera importante dans la conception de programmes .
Le problème, avec nous les humains, c'est que nos plus petites erreurs peuvent troubler les ordinateurs, qui demandent une précision totale. Ces erreurs se manifestent sous le nom de "bogues". Les bogues les plus durs ne sont habituellement pas évidents, et n'apparaissent qu'indirectement. Ici le programmeur doit être un détective. Ceci va de pair avec la capacité a trouver des solutions. Par exemple, quand il conçoit un programme en y incluant des mécanismes de surveillances, il apportea une solution encore plus adapté et réduit considérablement le long chemin de la traque.
La créativité est un trait facultatif du programmeur. Souvent, le programmeur sera confronté à un problème très difficile ou à une solution trop complexe à mettre en oeuvre. Un bon programmeur essaiera d'être créatif, avec des idées ou des approche innovatrice pour résoudre les cas difficiles.