Un programador es una persona que escribe, prueba, depura y mantiene instrucciones detalladas llamadas aplicaciones o programas. Un programador también puede concebir, diseñar y probar estructuras lógicas para resolver problemas. En pocas palabras, un programador es capaz de codificar programas y, en lo que respecta a su especialidad, puede denominarse desarrollador, ingeniero de software, codificador, desarrollador web, informático o analista de software.
Un ingeniero de software también hace algo de codificación, pero su función básica es aplicar los principios de la ingeniería de software, que son básicamente el diseño, desarrollo, mantenimiento y prueba de un software. El alcance de sus responsabilidades también incluye la evaluación y solución de problemas de un software codificado y, por supuesto, de otros sistemas que pueden necesitar programación de software.