Qué es la programación: lenguajes de programación

Qué es la programación: lenguajes de programación

¿Qué es la programación? Lenguajes que hablan con máquinas

Si alguna vez le has dicho a tu teléfono que ponga una alarma o has visto un robot moverse exactamente como esperabas, ya has sido testigo del poder de la programación. Pero, ¿qué es exactamente? Programar es simplemente dar instrucciones a una computadora en un idioma que ella entienda. Como cuando das una receta de cocina, pero mucho más preciso.

🎯 En este post aprenderás: La definición real de programación, qué son los lenguajes de programación (y por qué hay tantos), la diferencia entre código fuente y ejecutable, tipos de lenguajes (bajo/alto nivel, compilados/interpretados) y ejemplos visuales con Python, JavaScript y C++.

🔍 Programación: más allá de «escribir código»

🧠 Definición técnica (pero fácil)

PROGRAMAR = ENTRADA (datos) + PROCESO (algoritmo) + SALIDA (resultado)

📥 Entrada: Lo que le das al programa (ej: dos números)
⚙️ Proceso: Lo que hace el programa (ej: los suma)
📤 Salida: Lo que devuelve (ej: el resultado)

Y todo esto escrito en un lenguaje de programación

Analogía del chef: Imagina que eres un chef (programador) y la computadora es tu ayudante de cocina super literal. Tu ayudante no sabe «pelar patatas» a menos que le expliques paso a paso: «coge el pelador, agarra la patata, desliza el pelador desde arriba hacia abajo, gira la patata…». Eso es programar: traducir cualquier tarea a una secuencia de órdenes atómicas que una máquina pueda ejecutar sin pensar.

🗣️ La torre de Babel digital: ¿por qué tantos lenguajes?

Las computadoras solo entienden código máquina (ceros y unos). Pero para nosotros, escribir 01001000 01101111 01101100 01100001 cada vez que queremos mostrar «Hola» es inviable. Por eso usamos lenguajes de programación: son traductores entre nuestro idioma humano y el binario de la máquina.

Cada lenguaje tiene sus ventajas: Python es fácil de leer, C++ es ultrarrápido, JavaScript domina la web. Es como elegir entre inglés, español o mandarín según a quién te quieras comunicar.

🔢 Código fuente vs código ejecutable

Un error muy común es pensar que el programa que escribes es lo que ejecuta la máquina. No es así.

Concepto Qué es Ejemplo Lo entiende…
Código fuente Instrucciones escritas en un lenguaje de programación (texto legible por humanos) print("Hola mundo") Personas (con entrenamiento) y compiladores/interpretes
Código ejecutable Archivo binario que el procesador puede ejecutar directamente programa.exe en Windows La CPU de la computadora

💡 Analogía del libro receta: El código fuente es tu receta escrita en español («mezcla harina y huevos»). El código ejecutable es el pastel ya horneado. Tú escribes la receta, pero la computadora hornea el pastel siguiendo tus instrucciones. El proceso de convertir la receta en pastel es la compilación o interpretación.

📊 Clasificación de los lenguajes de programación

1. Por nivel de abstracción (cerca del hardware vs cerca del humano)

🖥️ Bajo nivel

  • Lenguaje máquina: Ceros y unos directos
  • Ensamblador: Instrucciones tipo MOV, ADD (un paso por encima)
  • Pros: Máxima velocidad, control total del hardware
  • Contras: Muy difícil de escribir y mantener, depende del procesador
  • Usos: Controladores de dispositivos, kernels de sistemas operativos

📝 Alto nivel

  • Python, Java, C#, JavaScript, PHP
  • Pros: Fácil de leer/escribir, portable (funciona en distintas máquinas)
  • Contras: Algo más lentos, necesitan un intérprete o compilador
  • Usos: Aplicaciones web, inteligencia artificial, videojuegos, apps móviles
  • Ejemplo Python: if edad >= 18: print("puedes votar")

2. Según su forma de ejecución: compilados vs interpretados

Tipo Cómo funciona Lenguajes ejemplos Velocidad Portabilidad
Compilado El código fuente se traduce (compila) a código máquina ANTES de ejecutarse. Genera un archivo ejecutable independiente. C, C++, Rust, Go, Swift ⚡ Muy rápido Baja (hay que recompilar por cada sistema)
Interpretado El código se ejecuta línea por línea mediante un programa llamado intérprete. No hay archivo ejecutable previo. Python, JavaScript, PHP, Ruby 🐢 Más lento (aunque hoy en día se optimiza) Alta (solo necesitas el intérprete)
Híbridos Se compila a un código intermedio (bytecode) y luego se interpreta o compila en tiempo real (JIT). Java, C#, Kotlin 🔄 Buena Muy alta

🎯 ¿Cuál elegir para aprender? Si empiezas desde cero, Python es la opción más amable. Es interpretado, con una sintaxis clarísima y no te preocupas por memoria ni tipos de datos al principio. Cuando domines lo básico, podrás probar JavaScript (web) o C++ (rendimiento).

🐍 Python – El favorito para empezar

# Esto es un comentario
nombre = input(«¿Cómo te llamas? «)
print(f»¡Hola {nombre}! Bienvenido a la programación»)

# Calcular si un número es par
numero = 7
if numero % 2 == 0:
    print(«Es par»)
else:
    print(«Es impar»)

Por qué es ideal: No necesitas punto y coma, las llaves son reemplazadas por indentación (sangrías) y se lee casi como inglés.

🌐 JavaScript – El rey de la web

// Esto también es un comentario
let nombre = prompt(«¿Cómo te llamas?»);
console.log(`Hola ${nombre}`);

function esPar(numero) {
    if (numero % 2 === 0) {
        return true;
    } else {
        return false;
    }
}

Principal uso: Hacer que las páginas web sean interactivas (botones, animaciones, juegos en el navegador).

⚙️ C++ – Potencia y control

#include <iostream>
using namespace std;

int main() {
    string nombre;
    cout << "¿Cómo te llamas? ";
    cin >> nombre;
    cout << "Hola " << nombre << endl;
    
    int numero = 7;
    if (numero % 2 == 0) {
        cout << "Es par" << endl;
    } else {
        cout << "Es impar" << endl;
    }
    return 0;
}

Ideal para: Videojuegos, sistemas operativos, software de tiempo real. Aprender C++ te enseña cómo funciona realmente la memoria.

🧠 Lenguajes más usados hoy (y por qué)

Lenguaje Dónde se usa Dificultad inicial
PythonCiencia de datos, IA, backend, automatización⭐ Fácil
JavaScriptFrontend web, Node.js (backend), apps híbridas⭐ Fácil-media
JavaAndroid, aplicaciones empresariales, big data⭐⭐ Media
C#Videojuegos (Unity), aplicaciones Windows⭐⭐ Media
C++Motores gráficos, sistemas embebidos, trading de alta frecuencia⭐⭐⭐ Difícil
PHPBackend web (WordPress, Laravel)⭐ Fácil
SQLGestión de bases de datos (no es lenguaje general, pero esencial)⭐ Fácil

📈 Dato curioso: Según el índice TIOBE (medición de popularidad), Python lleva varios años como el más popular. ¿La razón? Es tan versátil que desde un niño de 10 años hasta un científico de datos lo usan. Además hay millones de bibliotecas listas para usar.

⚙️ ¿Cómo se ejecuta realmente un programa? El viaje del código

✈️ Viaje de 4 pasos (versión compilada como C++)

1️⃣ Editas código fuente → archivo programa.cpp
2️⃣ Preprocesador (prepara el código, añade bibliotecas)
3️⃣ Compilador traduce a ensamblador → luego a código máquina objeto (programa.obj)
4️⃣ Enlazador (linker) une todos los objetos y bibliotecas → archivo ejecutable programa.exe o programa.out
5️⃣ Ejecutas y el procesador lee las instrucciones binarias.

📜 Versión interpretada (Python, JS)

1️⃣ Editas script.py
2️⃣ El intérprete de Python lee línea por línea: analiza sintaxis, la traduce a bytecode (una especie de ensamblador virtual) y lo ejecuta sobre la marcha.
3️⃣ No hay paso de enlazado ni ejecutable independiente (aunque puedes empaquetarlo con el intérprete).

🧪 Ejercicios prácticos

Ejercicio 1: Identifica el tipo de lenguaje

Clasifica estos lenguajes como bajo nivel o alto nivel y como compilado o interpretado: C, Python, Ensamblador x86, Java, JavaScript, Rust.

✅ Ver solución
  • C: Alto nivel, compilado (aunque se considera «medio nivel» por manipulación de memoria)
  • Python: Alto nivel, interpretado
  • Ensamblador x86: Bajo nivel (casi máquina), se ensambla (no compila realmente)
  • Java: Alto nivel, compilado a bytecode + interpretado por JVM (híbrido)
  • JavaScript: Alto nivel, interpretado (aunque hoy los navegadores usan compilación JIT)
  • Rust: Alto nivel, compilado

Ejercicio 2: Traduce a pasos de algoritmo

Describe con instrucciones muy detalladas (como si fueran código) el proceso de «hacer un café con cafetera de cápsulas». Escribe al menos 8 pasos.

✅ Ver solución ejemplo
  1. Encender la cafetera (pulsar botón de encendido)
  2. Esperar a que la luz indicadora deje de parpadear (aprox 15 seg)
  3. Abrir la palanca que sostiene la cápsula
  4. Insertar una cápsula nueva con el lado de la lámina hacia abajo
  5. Cerrar la palanca firmemente
  6. Colocar una taza vacía en la bandeja
  7. Seleccionar el tamaño de café (pulsar botón de 110ml)
  8. Esperar a que deje de salir líquido (aprox 25 seg)
  9. Retirar la taza con café preparado

Ejercicio 3: Encuentra el error en este «lenguaje natural» ambiguo

Imagina que le dices a un robot: «Ordena los libros de la estantería». ¿Por qué es una instrucción mala para un programa? Reescríbela como instrucciones claras.

✅ Ver solución

Es ambigua porque no especifica: ¿por qué criterio ordenar? (alfabético, tamaño, color, fecha). ¿Ascendente o descendente? ¿Qué pasa con los libros que no encajan? Una versión clara: «Ordena alfabéticamente por título del autor (de la A a la Z) los libros que estén en la fila superior de la estantería. Coloca los libros sin autor al final».

Ejercicio 4: ¿Qué salida produce este pseudocódigo?

inicio
    entero x = 3
    entero y = 5
    entero z = x + y
    escribir(«El resultado es: «)
    escribir(z)
    si z > 7 entonces
        escribir(» y es mayor que 7″)
    sino
        escribir(» y no es mayor que 7″)
    fin si
fin
✅ Ver solución

El resultado es: 8 y es mayor que 7
Explicación: x=3, y=5, z=8. Escribe «El resultado es: 8″ y como 8>7 muestra » y es mayor que 7″.

Ejercicio 5: Elige el lenguaje adecuado

Para cada proyecto, recomienda UN lenguaje de los vistos y justifica brevemente:
a) Una página web interactiva con animaciones.
b) Un programa que controle los frenos de un coche (tiempo real).
c) Un sistema que analice miles de datos médicos con inteligencia artificial.
d) Una aplicación para Android.

✅ Ver solución
  • a) JavaScript: es el estándar para interactividad en navegador.
  • b) C o C++: requieren tiempo real y control preciso del hardware.
  • c) Python: tiene las mejores bibliotecas de ciencia de datos (Pandas, Scikit-learn) e IA (TensorFlow, PyTorch).
  • d) Java o Kotlin: lenguajes oficiales para Android (Kotlin más moderno).

🌍 Aplicaciones reales (dónde vive la programación)

📱 Apps móviles

Instagram (Python + C++), WhatsApp (Erlang + C++), TikTok (Java, Swift, C++). Cada «me gusta» es código ejecutándose.

🌐 Webs

Google (C++, Python, Java), Amazon (Java, JavaScript), YouTube (Python, C++, JavaScript). Todo lo que ves en tu navegador fue programado.

🎮 Videojuegos

The Witcher 3 (C++), Minecraft (Java), Fortnite (C++). Los motores gráficos (Unreal, Unity) están escritos en C++.

🤖 Robótica

Los robots usan C++ y Python sobre ROS (Robot Operating System). Desde un Roomba hasta un brazo de fábrica.

🚦Errores comunes al empezar a programar

Error típico Consecuencia Cómo evitarlo
Memorizar sintaxis sin entender lógicaBloqueo al cambiar de lenguajePractica algoritmos con papel y lápiz primero
Escribir todo el código de una vezDescubres 50 errores al finalPrueba cada línea o función a medida que la escribes
Ignorar los mensajes de errorNo aprendes a depurarLee los errores, son tus aliados
Copiar y pegar sin entenderNo progresas realmenteEscribe cada ejemplo a mano y modifícalo
No comentar el códigoA la semana no sabes qué haceComenta explicando «el por qué», no el qué

📖 Glosario de términos imprescindibles

TérminoDefinición corta
AlgoritmoSecuencia finita de pasos para resolver un problema
VariableEspacio en memoria con un nombre para guardar datos temporales
CompilarTraducir todo el código fuente a máquina antes de ejecutar
InterpretarTraducir y ejecutar línea por línea en tiempo real
BugError en el programa (literalmente «insecto», de cuando uno causó un fallo en un ordenador)
DebuggingProceso de encontrar y eliminar bugs
IDEEntorno de desarrollo integrado (editor + compilador + depurador)

🎯 Resumen visual rápido

📌 Lo que debes recordar

✔️ Programar es dar instrucciones precisas a una máquina.
✔️ El lenguaje de programación es el puente entre humano y máquina.
✔️ Hay lenguajes de bajo nivel (cerca del hardware) y alto nivel (cerca del humano).
✔️ Compilado → traduce todo antes → más rápido y menos portable.
✔️ Interpretado → ejecuta línea por línea → más lento pero más flexible.
✔️ Para empezar: Python por su legibilidad o JavaScript si te interesa la web.
✔️ Los errores son parte del proceso: aprende a leerlos.

📚 Sigue profundizando en programación básica

Dentro del mismo cluster de Programación Básica, te recomiendo los siguientes posts (estarán publicados pronto):

Si quieres empezar con ejemplos muy sencillos, también puedes explorar nuestra sección de Scratch donde la programación se convierte en un juego de encajar piezas.

🧪 Reto final: Elige un problema cotidiano (por ejemplo, «ordenar la ropa limpia» o «hacer la mochila para el colegio») y escríbelo como un algoritmo de al menos 10 pasos. Después, compártelo con un compañero y pregúntale si entiende exactamente lo que hay que hacer. Si hay alguna ambigüedad, refínalo. ¡Ya estás programando en lenguaje natural!

Trasteando en la escuela está formado por un grupo de docentes titulados en diversas áreas. Somos amantes del conocimiento y de la enseñanza, tratando de ayudar a los estudiantes y todo aquel que desee aprender. Escribimos sobre materias de escuelas, institutos y universidades. También sobre noticias relacionadas con la enseñanza. Si quieres aprender, síguenos.

Publicar comentario