¿Para qué me sirve programar?
Cuando empecé esta carrera y alguien me preguntaba para qué sirve programar, respondía sin pensarlo mucho: para hacer páginas web. Con el tiempo entendí que programar sirve para muchísimo más, y estoy convencido de que, dentro de unos años, será tan imprescindible como saber manejar hojas de cálculo.
🥦 Hojas de cálculo: herramientas como Microsoft Excel o Google Spreadsheets digitalizan las antiguas tablas de papel. Cumplen la misma misión, guardar y procesar números, pero ahora con fórmulas, gráficos y automatizaciones que en papel es imposible.
Resulta que hay un dúo dinámico: software y hardware que se conectan a través de la programación, y para que me entiendan de qué forma, primero imaginemos una orquesta:
- El instrumento musical (guitarra, violín, batería) representa el hardware: un objeto físico capaz de producir sonido.
- La partitura, un conjunto escrito de notas que indica qué tocar, cuándo y cómo, sería la programación: las instrucciones que definen el comportamiento.
- La música que finalmente escuchas es el software en ejecución: el resultado de seguir esas instrucciones sobre el instrumento.
🔧 Hardware: conjunto de componentes físicos, como los chips, placas, sensores, pantallas, motores, cables que forman el cuerpo de cualquier sistema electrónico y en general permiten ejecutar las instrucciones del software.
El software vive en páginas y apps web, en las aplicaciones que llevas en el móvil, en los programas de tu portátil y, por supuesto, en cada videojuego, en la realidad aumentada y mundos virtuales.
Al mismo tiempo, hay código y programas en aspiradoras robot, bombillas, termostatos, ventiladores conectados a tu Wi-Fi. Cualquier dispositivo con un microcontrolador necesita programación; sí, incluso tu cepillo de dientes eléctrico o esas tarjetas de cumpleaños que suenan una canción al abrirse necesitan programarse.
El mismo principio controla hoy los frenos ABS de tu coche (qué evitan que se bloqueen las llantas cuando frenas con fuerza) y miles de robots que ensamblan nuestros dispositivos, y ni hablar de los coches que se conducen solos.
Incluso programar nos llevó (literalmente) a la Luna: Margaret Hamilton y su equipo escribieron cientos de miles de líneas de código para el software de navegación y control del Apollo 11.
Hamilton en 1969, de pie junto a los listados del software de orientación del Apolo que ella y su equipo del MIT produjeron.
Lo más increíble es que ni siquiera necesitas un entorno complicado para empezar. Sí tienes un iPhone, por ejemplo, puedes automatizar tareas con la app propia de Shortcuts, una herramienta low-code que te deja crear flujos arrastrando bloques. Sigue siendo programación, solo que con menos tecleo y resultados inmediatos.
Low-code
Para programar no es necesario verse como un hacker de película, con una terminal negra llena de letras verdes y tecleando a toda velocidad sin tocar el mouse. De hecho, programar suele ser un proceso pausado, con mucha lectura, análisis, pruebas, búsquedas en internet y revisión constante para asegurarse de que todo funcione como se espera. Como mencionamos en el capítulo [[¿Qué necesito saber antes?]], la lógica y la paciencia pesan más que la velocidad de los dedos.
Ahora bien, el low-code va un paso más allá: permite programar sin escribir tantas líneas de código. En lugar de escribir todo desde cero, usas controles visuales, generalmente en forma de pequeñas cajas que se conectan entre sí. Y aunque se llame low-code, eso no significa que no puedas escribir código cuando lo necesites, solo que muchas cosas ya están resueltas de antemano.
🎛️ Esta forma de programar se conoce como node-based programming1 (programación basada en nodos), y por más increíble que parezca, es usada por la mayoría de motores de videojuegos, sobre todo en las partes visuales o de interfaz. También es común en herramientas de modelado 3D, donde conectar nodos es más intuitivo que escribir ecuaciones complejas.
Otra variante del low-code es el block coding, (codificación en bloques) una interfaz en la que programas usando bloques prearmados que encajan entre sí, como si fueran piezas de LEGO. Este enfoque es ideal para aprender a programar desde cero, y lo usa Scratch, uno de los editores más populares para enseñar programación a jóvenes y niños.
ℹ️ ¿Programar o codificar? ¿Software, programa o aplicación? Programar y codificar suelen usarse como sinónimos: ambas se refieren a escribir líneas de código que la máquina ejecuta. Software, programa y aplicación también se usan de forma similar. En general, software engloba todo tipo de código, programa se refiere a cualquier ejecutable que un sistema operativo puede correr: servicio, comando, script o demonio; y aplicación describe programas pensados para el usuario final, habituales en móviles, escritorio o web.
Hoy en día, existen muchísimas formas de programar sin necesidad de ser un experto en sintaxis ni memorizar comandos extraños. Con herramientas low-code, puedes crear páginas web, automatizar tareas repetitivas, conectar servicios entre sí, diseñar prototipos de videojuegos, o incluso controlar dispositivos en tu casa.
Lo importante es entender que programar no siempre significa escribir líneas y líneas de código: también es saber cómo darle instrucciones claras a una máquina. Y con las herramientas adecuadas, eso está más al alcance que nunca.
No-code
No-code da un paso más allá del low-code: aquí la idea es que no escribes ni una sola línea de código, sino que programas con controles específicos: botones, formularios, disparadores que arrastras, configuras y publicas.
Es sumamente útil para validar ideas, automatizar tareas e incluso lanzar productos reales en producción sin un equipo de desarrollo, pero tiene la desventaja de ser lo que llamamos una “caja negra”, si algo falla o necesitas una personalización compleja, dependes totalmente del proveedor.
En herramientas como Webflow, por ejemplo, puedes diseñar y publicar un sitio web responsivo ajustando estilos desde paneles visuales; y con Zapier orquestar flujos entre tus aplicaciones (enviar un correo cuando llegue un pedido, copiar datos a una hoja de cálculo, etc.) todo mediante pasos predefinidos.
En ambos casos, el poder radica en saber elegir y combinar bloques, así como manejar controles sin tocar el código que los hace funcionar.
Inteligencia Artificial
A finales de 2022, ChatGPT revolucionó el mundo de la inteligencia artificial mostrando lo increíble que podían ser los Large Language Models (grandes modelos de lenguaje), con su versión GPT-3.5. Desde entonces, los LLM han evolucionado al punto de poder generar textos, imágenes, música e incluso escribir código completo para aplicaciones sencillas.
Eso nos lleva un paso más allá de la programación tradicional: ahora puedes tener una idea, describírsela a una IA, y recibir como respuesta un bloque entero de código funcional. Parece magia ✨
Pero aunque parezca que la IA puede hacer todo por ti, escribir código es solo una parte de lo que implica construir un producto real. Las decisiones sobre arquitectura, seguridad, rendimiento, diseño y experiencia de usuario siguen siendo responsabilidad tuya.
No hay nada más aterrador que ser responsable de algo sin saber cómo funciona. Es como comer algo sin leer los ingredientes: puede que esté rico hoy, pero mañana podría pasarte factura. Es una bomba de tiempo. Si el sistema falla, (y en algún momento lo hará) será mejor saber cómo arreglarlo.
Por eso, mi consejo es usar la inteligencia artificial como un acompañante, un asistente que te ayuda, te inspira y te acelera. Pero la dirección técnica debe seguir en tus manos. Aprender a programar te da el criterio para decidir qué funciona, qué no, y cuándo decirle “gracias, pero no lo haremos así”.
Es mucho más que escribir código
Podemos crear nuestros propios universos a imagen y semejanza (no estoy exagerando), o cosas tan simples como automatizar tareas.
Programar nos permite entender cómo funcionan los sistemas que usamos todos los días y tomar mejores decisiones en un mundo lleno de tecnología.
Aprender a programar es como aprender un nuevo idioma: tu cerebro se expande, empiezas a ver patrones en todos lados, a pensar de forma más estructurada y a detectar oportunidades para crear y ejecutar ideas en los procesos de nuestro día a día.
No se trata solo de escribir código, sino de entrenar la cabeza para resolver problemas y convertir ideas en realidad. Y lo mejor de todo: no necesitas estudiar una carrera para hacerlo. Con un par de meses y mucha práctica, puedes ser un programador listo para comerte el mundo.
Footnotes
-
Node graph architecture - https://en.m.wikipedia.org/wiki/Node_graph_architecture ↩