En este pequeño tutorial veremos algunos conceptos básicos en programación que debes conocer bien ya que son fundamentales, al ser comunes a todos los lenguajes de programación.
Por otro lado, al ser un tema muy extenso hay cosas que omitiremos o bien describiremos brevemente, centrándonos sólo en las más necesarias de cara a aprender un lenguaje de programación.
Un de los grandes fallos que cometen las personas que están aprendiendo a programar (e incluso muchos profesionales, por falta de tiempo principalmente) es que se apresuran a escribir el código fuente sin haberse tomado antes el tiempo necesario para analizar los objetivos (qué debe hacer el programa) y los pasos necesarios para alcanzarlos, creando así un programa robusto (libre de errores).
Por ejemplo, si se está escribiendo un simple programa para pedir un número al usuario con motivo de mostrarlo después por pantalla, el objetivo principal sería mostrar el número, los pasos necesarios serían pedir el número y mostrarlo luego por pantalla... debiéndose también tener en cuenta cosas como: ¿qué debería hacer el programa si el usuario escribe una letra en lugar de un número?, ¿y si pulsa la tecla Esc?...
La fase de análisis es un paso fundamental para obtener una documentación del programa sobre cuya base se comenzará a desarrollar el mismo.
La documentación del programa debe mantenerse actualizada durante todo el ciclo de vida del mismo dejando constancia de todos los cambios realizados, pudiendo así ser consultada en caso de tener que comprobar algo, facilitar la comprensión del mismo por otros programadores que entren a formar parte del proyecto, etc.
Una vez se han analizado los requisitos del programa podemos crear algoritmos para indicar qué pasos debe realizar el programa de modo que realice correctamente su propósito, independientemente del lenguaje de programación que sea usado.
Los algoritmos pueden representarse de tres modos: usando lenguaje natural, pseudocódigo o con Diagramas de Flujo de Datos (DFD), siendo los dos últimos métodos los más usados.
Para el presente tutorial nos centraremos principalmente en el pseudocódigo.
Para crear un Diagrama de Flujo de Datos usaremos entre otros los siguientes símbolos:
Algunas de las pautas para crearlos son:
- Debe ser diseñado de forma que sea leído de arriba hacia abajo y de izquierda a derecha.
- Todo Diagrama de Flujo de Datos (DFD) debe tener un conector de inicio y al menos uno de finalización (el programa debe terminar su ejecución en algún momento).
- A un símbolo no puede apuntar más de una flecha.
Es posible que encuentres otras formas de representar un DFD.
En la siguiente imagen mostramos un ejemplo de un programa que pide un número al usuario y muestra el resultado por pantalla, realizado con un Diagrama de Flujo de Datos (DFD):
Para la acción de pedir el dato al usuario usamos el conector correspondiente, cargando el valor obtenido en una variable llamada 'entrada', cuyo valor a continuación será mostrado por pantalla.
Observa que para los elementos que dan comienzo y fin al programa se usan terminadores.
Más adelante veremos algunos ejemplos de Diagramas de Flujo de Datos más.

Para crear Diagramas de Flujo de Datos gratis puedes usar el programa Dia.
El pseudocódigo es una mezcla entre lenguaje natural y lenguaje de programación. La estructura básica de un algoritmo en pseudocódigo es:
ALGORITMO Mostrar;
...
INICIO
// Esto es un comentario
/*
Esto es un comentario
Esto es otra línea dentro del mismo comentario
*/
...
FIN
En 'ALGORITMO' indicamos el nombre del programa, y justo después debemos declarar las variables que serán usadas en él. Entre INICIO y FIN escribiremos las diferentes acciones que irá realizando el programa.
Como hemos visto, para escribir un comentario en una línea usaremos la doble barra ' // ', y para poner un comentario en varias líneas los escribiremos entre /* y */. Esto es así también en muchos lenguajes de programación (como Java o lenguaje C).
Más adelante, tras explicar algunos conceptos necesarios, veremos algunos ejemplos más completos.

Para crear algoritmos en pseudocódigo gratis puedes usar el programa gratuito PSeInt.
Existen dos tipos de lenguajes de programación: los denominados de bajo nivel (se ejecutan más rápidamente en el ordenador que los de alto nivel pero no son fáciles de entender para los humanos, siendo muy complicado escribir programas con ellos) y los de alto nivel (en los que el código fuente es más facilmente entendible por el ser humano).
Dentro de los lenguajes de bajo nivel se hallan:
- Lenguaje máquina: formado por una combinación de ceros y unos (es el lenguaje 'entendido' por los ordenadores). El código fuente escrito en otros lenguajes de programación es 'traducido' a él de un modo u otro.
- Ensamblador: en el que se usan algunas palabras abreviadas del idioma inglés.
Los lenguajes de alto nivel pueden ser:
- Lenguaje secuencial: en el que las líneas del programa se ejecutan una tras otra, de forma secuencial.
- Lenguaje estructurado: permite dividir el código fuente del programa en varias partes, permitiendo así mantener un orden dentro del mismo, facilitar la búsqueda de errores, etc.
Lenguaje de Programación Orientada a Objetos (POO): tratan de aplicar conceptos de la vida real al desarrollar un programa.
Por ejemplo, si estamos escribiendo un programa que controle un coche, debemos tratar a éste desde el mismo código fuente como un Objeto (el coche en sí), que tiene sus Propiedades (marca, modelo, color...) y realiza acciones (llamadas Métodos, como por ejemplo: arrancar, acelerar, parar, etc.)
También cabe destacar que los lenguajes de programación pueden ser:
Interpretados: cada línea del código fuente del programa es sobre la marcha leída y 'traducida' a lenguaje máquina (el único entendido por el ordenador) por un programa denominado intérprete.
Como ejemplo tenemos los antiguos lenguajes de programación BASIC o COBOL, así como los más modernos PHP, JavaScript, etc.
Compilados: el código fuente es convertido a lenguaje máquina por medio de un compilador.
Ejemplos: Delphi, C, C++...
Existen otros lenguajes de programación como por ejemplo Java que es una mezcla de ambos: por un lado su código fuente necesita ser compilado a bytecode (un código intermedio entre el propio código fuente y el lenguaje máquina), el cual para ser interpretado necesita de una Máquina Virtual Java instalada el sistema operativo.
Para desarrollar programas se usan normalmente lenguajes de alto nivel (como Java, C++, Visual Basic .NET, PHP, JavaScript, etc.).