La necesidad de programar máquinas existía mucho antes del desarrollo de las computadoras, el ejemplo más famoso de este es la fabricación textil.

Antes del Computador
a necesidad de programar máquinas existía mucho antes del desarrollo de las computadoras, el ejemplo más famoso de este es la fabricación textil. El telar de Joseph Jacquard desarrollado en 1801 es considerada por muchos como una de las primeras formas de programación.
Las tarjetas perforadas, fueron de gran utilidad en el gran censo hecho en 1890, las tarjetas perforadas eran pasadas por una máquina de tabulación y esta iba sumando los cambios perforadas, pero hay un detalle, estas almacenaban datos pero no un programa.
Paneles de control, estos paneles estaban llenos de pequeños enchufes, en los que el programador enchufaba cables para pasar valores y señales entre diferentes partes de la máquina, por esta razón también se les llamó placas de conexión. Esto implicaba cablear la máquina cada vez que se necesitaba ejecutar un programa diferente.
Por esta razón, en 1920 estas placas de enchufes se hicieron intercambiables.

Arquitectura Von Neumann
A finales de los años 1940 e inicios de los 50, la memoria electrónica se estaba volviendo factible, a medida que los costos cayeron el tamaño creció. Esto hizo posible almacenar un programa completamente en la memoria de una computadora, donde los programadores pueden cambiarlo fácilmente y el CPU puede acceder rápidamente a él. Estas computadoras se llamaron computadoras de programa almacenado.
La unificación de los datos de programación en una única memoria compartida se llama arquitectura Von Neumann.
Las características de las computadoras de Von Newmann son una unidad de procesamiento que contiene una unidad lógica aritmética, registro de datos, un registro de instrucciones, un registro de direcciones de instrucciones y finalmente, una memoria para almacenar tanto datos como instrucciones.
La primera computadora con la arquitectura de Von Newmann, fue construida en 1984 en la Universidad de Manchester, apodado "Baby".

Lector de Tarjetas perforadas
En 1980, casi todas las computadoras tenían un lector de tarjetas perforadas, la cual absorbía una tarjeta perforada a la vez y escribía el contenido de la tarjeta en la memoria de la computadora. Una vez cargados en memoria los datos de programación se pedía a la computadora que los ejecutara.
El programa más grande cargado en tarjetas perforadas, fue el sabio sistema de defensa área de las Fuerzas Armadas de USA, completado en 1955. Se dice que consistía en 62500 tarjetas perforadas, lo que equivale a 5 megabytes de datos.
Un "primo cercano" fue la cinta de papel perforada. Era la misma idea pero continuamente en lugar de estar en tarjetas individuales.
Antes de 1980, también se contó con la programación de paneles. Consistía en un enorme panel lleno de interruptores y botones. Contaba con luces indicadoras para mostrar el estado de varias funciones y valores del sistema.
La primera computadora doméstica comercial existosa fue la Altair 8800.