Para que el dispositivo funcione como lo necesita el usuario, debe estar programado correctamente (escribir un programa para una computadora, desarrollar un circuito lógico para una FPGA, escribir información en ROM, etc.). Una gran cantidad de acciones se pueden llamar programación, pero en el sentido habitual es escribir programas de computadora.
En un sentido estricto, programar (o codificar) significa escribir programas (instrucciones para una computadora) en un lenguaje de programación específico de acuerdo con un algoritmo creado. Por lo general, tienen una sintaxis legible por humanos. Las personas que se dedican a la programación se denominan programadores (codificadores o simplemente "codificadores"), y los que crean algoritmos se denominan algoritmos. En un sentido amplio, la programación debe entenderse como el conjunto de actividades que se asocian a la creación y mantenimiento de productos de software (software informático) en funcionamiento. El más exacto es el término moderno: "ingeniería de software" (o simplemente "ingeniería de software"). Los especialistas en este campo se dedican a establecer tareas, diseñar programas, construir algoritmos, escribir texto de programas, probar, depurar, documentar y mantener Cualquier programación informática se basa en el uso de lenguajes de programación. Para ejecutar un programa en una computadora, es necesario utilizar traductores que traducirán un lenguaje legible por humanos (un programa escrito) al lenguaje de las instrucciones de la máquina. Hay dos tipos de traductores: intérpretes y compiladores. La principal diferencia entre ellos es que el primero ejecuta inmediatamente el programa, mientras que el segundo simplemente lo traduce al lenguaje de las instrucciones de la máquina, sin ejecutarlo más. Para ejecutar un programa, primero debe compilarse o interpretarse. Anteriormente, tenía que escribir programas y luego compilarlos por separado, lo que complicaba el proceso de prueba y depuración. Actualmente, existen varios entornos de desarrollo integrados. Los IDE incluyen editores para editar e ingresar textos de programas y varios traductores de diferentes idiomas. Además, pueden incluir varias otras rutinas que facilitan el proceso de creación, prueba y mantenimiento de productos de software.