Según Donald E. Knuth, la programación como comunicación con una máquina es un arte. Esta opinión aparentemente exagerada es completamente cierta. No lo es por el hecho que los que programan puedan ser considerados artistas sino porque la programación es una práctica muy parecida a la creación de una obra de arte. Basta con realizar una simple comparación. ¿Qué es lo necesario para pintar un retrato? Pues a parte del artista; un modelo; pinturas, lienzo y pinceles y la capacidad para hacerlo. Resumienedo: algoritmos, herramientas y técnica. Con la ausencia de cualquiera de las anteriores el cuadro sería cualquier cosa menos una obra de arte.
La realización de un programa es parecida; también requere estos tres ingredientes, capacidad de crear el algoritmo, unas herramientas de desarrollo adecuadas y el buen uso de los lenguajes de programación. La enseñanza de la informática suele obviar uno de los tres ingredientes esenciales, las herramientas. La consecuencia es que quien se inicia en un curso de programación necesita horas y horas de lucha con el ordenador completamente innecesarias. Basta con dar a conocer unos pocos conceptos que por desgracia suelen obviarse.
Programar es, como su propio nombre indica, crear un programa. Todo sería trivial si supieramos con precisión qué es un programa. Windows ha acercado la informática al usuario novel, sin embargo ha escondido conceptos esenciales detrás de ventanas de colores. Programar consta de dos pasos esenciales una vez el código está escrito: compilar y enlazar; en inglés, build and link. Compila el compilador y enlaza el linker.