🦎✨ Curso Geckónico de Programación: Prólogo (¿Qué significa programar?)

Prólogo

¡¡¡Bienvenidos al Curso de Programación Geckónica!!! 🦎📚✨☕

Y sí... en realidad no vamos a hablar de computadoras (no mucho), hablaremos de cómo pensamos y vamos a definir lo qué realmente significa programar.



Destruyendo algunos Mitos

La misión de este prólogo no es enseñar programación, sino prepararte para entrar de lleno en este mundo sin arrastrar ideas preconcebidas generalizadas que solo confunden y limitan al pensamiento analítico y la lógica pura. Para eso vamos a destruir algunos mitos:

  • Mito 1

Programar es escribir código.

No.

Escribir código es la parte mecánica.

Programar es otra cosa.

Programar es analizar una situación y construir una secuencia lógica para transformarla.

Por eso una persona puede estar programando sin tocar una computadora.


  • Mito 2

Los programadores saben mucho de computadoras.

Algunos sí.

Otros no.

Lo que todos los buenos programadores tienen en común es otra cosa:

Los Programadores saben descomponer problemas.


  • Mito 3

La computadora es inteligente.

Y acá aparece una de nuestras partes favoritas.

Porque podríamos plantearlo casi como una paradoja...



¿Por qué las computadoras parecen inteligentes?

Porque hacen cosas impresionantes.

Calculan millones de operaciones.

Reconocen imágenes.

Traducen idiomas.

Juegan al ajedrez.

Generan música.

Conducen vehículos.

Y entonces el cerebro humano concluye:

"Debe ser inteligente."

Pero...



¿Por qué las computadoras son increíblemente estúpidas?

Porque no entienden nada.

Absolutamente nada.

No entienden qué es una lámpara.

No entienden qué es un mate.

No entienden qué es un semáforo.

No entienden qué es una persona.

No entienden qué es un problema.

Solo ejecutan instrucciones.

Y si las instrucciones son incorrectas...

obedecen incorrectamente.

Con una precisión admirable. 😄


🦎 Ejemplo Geckónico:

Imaginate por un segundo que programaste un robot para hacer tostadas.

Las instrucciones dicen:

  1. Tomar pan.

  2. Colocar en tostadora.

  3. Esperar 2 minutos.

  4. Servir.

Perfecto.

Hasta que un día no hay pan.

El humano (quizás vos mismo) dice:

"Ah, no hay pan."

La computadora dice:

<<< ERROR 404 PNF (Pan Not Found) >>>

Porque nunca le explicaste qué hacer cuando falta pan.


...sí, ya te diste cuenta de algo fundamental; técnicamente una computadora no es estúpida, es literal. No entienden nada no porque sean tontas, sino porque carecen de comprensión.

Son expertas ejecutando instrucciones y completamente incapaces de interpretar aquello que nunca les fue explicado, en este caso: el contexto completo del problema.



Y entonces aparece naturalmente el siguiente tema...

¿Qué es un problema?

Y nos gusta definirlo de una forma muy simple:

Un problema es la distancia entre una situación actual y una situación deseada.


🦎 Ejemplos Geckónicos:

A) 

Situación actual:
Tengo hambre.

Situación deseada:
Quiero estar alimentado.

Problema:
Conseguir comida.

B) 

Situación actual:
La lámpara no enciende.

Situación deseada:
Necesito luz.

Problema:
Descubrir qué falla.

Y entonces aparece algo hermoso ¿te diste cuenta?.

La programación deja de parecer informática, y empieza a parecerse a la vida cotidiana.



¿Qué es una solución?

  • No es magia.
  • No es inspiración.
  • No es suerte.

Una solución es simplemente:

Un conjunto de acciones que reduce o elimina la distancia entre el estado actual y el estado deseado.

Y de golpe todo es mas claro...

problemas y soluciones empiezan a sentirse como estados y transiciones, y sí, empezas sin darte cuenta a pensar como alguien que programa.

Sembramos en tu mente la semilla de las máquinas de estado sin nombrarlas todavía.

...y eso es Geckónico 🦎✨.



Automatización vs Comprensión

Este punto nos parece fundamental.

Porque muchas personas confunden ambas cosas.

Por ejemplo:

Podes aprender de memoria:

for i in range(10):
    print(i)

Y no entender nada, como cuando aprendiste de memoria fechas y nombres de batallas históricas o los ríos de Europa, nada más tonto que engañarte a vos mismo pensando que engañas a alguien más.

O podes comprender perfectamente el concepto de repetición sin conocer Python o cualquier lenguaje de programación.

Entonces, ¿Qué camino está más cerca de convertirte en programador?

Simple, el segundo.

Porque la comprensión genera transferencia.

La memorización genera dependencia.


🦎 Frase Geckónica para el curso:

"La automatización multiplica la comprensión. Pero no puede reemplazarla."

Porque automatizar algo mal entendido solamente produce errores más rápido 😄.


Entonces es claro, no vamos a pedirte que memorices sintaxis, de hecho, los programadores tampoco lo hacen.

Los lenguajes cambian, las herramientas cambian, las versiones cambian. Lo que permanece es la lógica que hay detrás de las soluciones, si comprendés esa lógica, aprender un lenguaje nuevo será mucho más sencillo.

Si solamente memorizás instrucciones, cada lenguaje nuevo parecerá empezar desde cero.


 🦎 Analogía Geckónica para ese punto:

Memorizar sintaxis es como aprender de memoria dónde está cada baldosa de una ciudad.

Comprender la lógica es entender el mapa.

Si conocés el mapa, aunque cambien algunas calles siempre vas a poder orientarte.

La sintaxis puede ser Python, Java, C, Rust, SQL, QT, Bash o el lenguaje marciano utilizado en Vulkano para controlar tostadoras cuánticas 😄🦎.

La idea sigue siendo la misma.



Programador vs Desarrollador

Vamos a tocar este tema con mucho cuidado, porque suele generar guerras santas en internet, y nosotros vinimos a plantar la bandera de la paz y la lógica 😄.


Lo planteamos así:

  • Programador:

Se enfoca en construir soluciones mediante código.


  • Desarrollador:

Se enfoca en construir productos o sistemas completos.


Todo desarrollador programa.

Pero no todo programador necesariamente desarrolla sistemas completos.

Y ambos roles son valiosos, fin de las discusiones.



🦎✨ Cierre del Prólogo

Si llegaste hasta acá, quizás hayas notado algo extraño.

Todavía no explicamos una sola línea de código.

Sin embargo ya hablamos de problemas, soluciones, lógica, comprensión y automatización.
Eso no es casualidad.

Porque la programación no empieza cuando abrís tu IDE en la compu super iluminada con RGB con dos monitores y escribís tu primer línea en Python.

Empieza cuando aprendés a observar la realidad como un sistema.

Todo lo demás vendrá después.


🦎 Frase Geckónica:

"La programación no es aprender un lenguaje.

La programación es aprender a modelar la realidad mediante estructuras lógicas."


🦎✨ Y sinceramente, si este prólogo logra que alguien cierre la página pensando:

"Pará... entonces programar no era lo que yo creía..."

ya habrá cumplido perfectamente su misión. 📚☕🦎💡




🦎✨ Volver al índice del Curso Geckónico de Programación: "Enseñando a Pensar como Alguien que Programa"

Siguiente CapÍtulo... (En Redacción)

Comentarios

Entradas populares