Chámase programación á creación dun programa de computadora, un conxunto concreto de instrucións que unha computadora pode executar. O programa escríbese nunha linguaxe de programación, aínda que tamén se pode escribir directamente en linguaxe máquina, con certa dificultade. Un programa pódese dividir en diversas partes, que poden estar escritas en linguaxes distintos.
Software é o substantivo que denomina ós programas e datos da computadora.
Un algoritmo é unha secuencia non ambigua, finita e ordenada de instrucións que deben seguirse para resolver un problema. Un programa normalmente pon en funcionamento (traduce a unha linguaxe de programación concreto) un algoritmo. Un algoritmo pode expresarse de distintos xeitos: de xeito gráfico, como un diagrama de fluxo, en forma de código como en pseudocódigo ou nunha linguaxe de programación, en forma explicativa...
Os programas acostuman a dividirse en partes menores (módulos), de modo que a complexidade algorítmica de cada unha das partes sexa menor que a do programa completo. Isto axuda ó desenvolvemento do programa.
Segundo Niklaus Wirth un programa está formado por algoritmos e estrutura de datos.
O obxectivo das diversas técnicas de programación propostas é mellorar tanto o proceso de creación de software como o seu mantemento. Entre elas pódense mencionar as programacións estruturada, modular, declarativa e orientada a obxectos.
O programa escrito nunha linguaxe de programación (comprensible polo ser humano, aínda que adoitan corresponder con linguaxes formais descritas por gramáticas independentes do contexto) non é inmediatamente executable nun ordenador. A opción máis común é compilar o programa, aínda que tamén pode ser executado mediante un intérprete informático.
O código fonte do programa sométese a un proceso de transformación para converterse en linguaxe máquina, interpretable polo procesador. A este proceso chámaselle compilación e resulta nun programa executable (un típico .exe para os usuarios de Windows). O proceso faise en dous pasos. O primeiro paso é a compilación propiamente dita e traduce o código fonte escrito nunha linguaxe de alto nivel a código obxecto, máis próximo á linguaxe máquina. O segundo paso chámase enlazado (ou ás veces mal chamado linkado do inglés link) e traduce o código obxecto a código máquina. Un programa podería ter partes escritas en varios linguaxes, que se poderían compilar de xeito independente e enlazar xuntas para formar un único executable, aínda que non é unha práctica habitual.
Outra alternativa son os programas interpretados, nos que un intérprete realizan a tradución da linguaxe de alto nivel a código máquina a medida que sexa necesario. O resultado da tradución normalmente non se almacena, senón que se volve a traducir no caso de que se volva a precisar.
Existe unha tendencia a identifica-lo proceso de creación dun programa informático coa programación, que é certa cando se trata de programas pequenos para uso persoal, e que dista da realidade cando se trata de grades proxectos.
O proceso de creación de software dende o punto de vista da Enxeñería ten os seguintes pasos:
A enxeñería do software céntrase nos pasos de planificación e deseño do programa, mentres que antigamente (programación artesanal) a realización dun programa consistía unicamente en escribi-lo código.
A primeira programadora de computadora coñecida foi Ada Lovelace, filla de Anabella e Lord Byron. Anabella introduciu nas matemáticas a Ada, quen despois de coñecer a Charles Babbage traduciu e ampliou unha descrición da súa máquina analítica. Aínda que Babbage nunca completou a construción de ningunha das súas máquinas, o traballo que Ada realizou con elas fíxolle gaña-lo título de primeira programadora de computadoras do mundo. O nome da linguaxe de programación Ada foi escollido como homenaxe a esta programadora.
A programación de ordenadores debe perseguir tres obxectivos fundamentais:
A eficiencia e a claridade dun programa pode ser obxectivos contrapostos: pódese conseguir maior claridade sacrificando parte da eficiencia ou viceversa. Pero hai que ter en conta que o tempo do programador é caro, e que hoxe en día o prezo dos ordenadores é razoable e cada vez son máis baratos.