Skip to content

1. Importancia de aprender a programar

Programar no es solo una herramienta técnica

Section titled “Programar no es solo una herramienta técnica”

Aprender a programar no es solo aprender una herramienta técnica: es desarrollar la capacidad de analizar un problema, descomponerlo y diseñar una solución sistemática.

Estas capacidades son útiles incluso en contextos donde no se escribe una sola línea de código: organizar un proceso, automatizar una tarea repetitiva o explicar un procedimiento de forma que cualquier persona (o máquina) pueda seguirlo sin ambigüedad.

Por qué importa: un problema descrito de forma imprecisa (“hacer un sistema para la escuela”) no puede convertirse directamente en una solución. Antes de programar, necesitas la disciplina de analizar y descomponer — exactamente lo que practicarás en esta unidad.

Una computadora no trabaja directamente con toda la realidad de un problema: trabaja con una representación de sus aspectos relevantes.

Ejemplo profesional. Piensa en un sistema para calcular el costo de un viaje. La realidad de ese viaje incluye el color del automóvil, la música que escucha quien conduce, la marca del vehículo… pero para calcular el costo probablemente solo necesitas la distancia recorrida, el consumo de combustible y su precio. Abstraer no significa ignorar información al azar: significa decidir qué información es relevante para el problema que estás resolviendo.

Esta idea — construir un modelo de la parte relevante del problema, no programar la realidad completa — es una de las ideas más importantes de toda la unidad, y la retomarás constantemente durante la carrera.

Contenido de apoyo. Esta sección se agrega para que comprendas, con ejemplos concretos de la historia de la computación, por qué distintas personas consideraron importante crear formas de programar. Cuando una frase se presenta entre comillas como cita textual, se indica explícitamente el nivel de certeza sobre su exactitud documental.

Ada Lovelace (1815–1852). Trabajó con Charles Babbage en el diseño de la Máquina Analítica. En sus notas de 1843 sobre el trabajo de Luigi Menabrea escribió lo que hoy se considera el primer algoritmo pensado para ser ejecutado por una máquina, mucho antes de que existiera una computadora electrónica. Su aporte muestra que programar es, ante todo, un ejercicio de abstracción: imaginar un proceso antes de que la máquina para ejecutarlo siquiera exista.

Grace Hopper (1906–1992). Matemática y contralmirante de la Marina de Estados Unidos. Desarrolló uno de los primeros compiladores y promovió la idea de escribir programas en un lenguaje cercano al humano en lugar de código máquina, lo que impulsó el desarrollo de COBOL. Se le atribuye ampliamente la frase “It’s easier to ask forgiveness than it is to get permission”frase ampliamente atribuida a ella, aunque su origen documental exacto es incierto. Su trabajo muestra que programar debía volverse accesible para más personas, no solo para especialistas en código máquina.

Dennis Ritchie y Ken Thompson. Crearon el lenguaje C y el sistema operativo Unix en los Bell Labs, a inicios de la década de 1970. C fue diseñado para ser lo bastante simple para escribir un sistema operativo y lo bastante eficiente para ejecutarse con pocos recursos — un equilibrio entre control de bajo nivel y facilidad de escritura que sigue influyendo en el diseño de lenguajes actuales.

Guido van Rossum. Creador de Python (1991). Uno de los principios documentados en la guía de estilo oficial de Python (PEP 8) es que “el código se lee muchas más veces de las que se escribe” — por eso Python prioriza la legibilidad sobre la brevedad. Esta es una cita documentada en una fuente pública verificable (PEP 8, python.org).

Linus Torvalds. Creador del núcleo de Linux (1991) y de Git. Es conocido por una frase que resume su forma de evaluar propuestas técnicas: “Talk is cheap. Show me the code.”frase ampliamente documentada en la comunidad de software libre, aunque el hilo o mensaje exacto de origen es difícil de precisar. Su trabajo muestra el valor de la evidencia concreta (el código que funciona) y de la colaboración abierta entre muchas personas.

Margaret Hamilton. Dirigió el equipo que desarrolló el software de vuelo del programa Apollo de la NASA, incluida la misión que llevó al primer alunizaje (1969). Se le atribuye ampliamente haber popularizado el término “ingeniería de software”, para dar a esta actividad el mismo estatus profesional que otras ingenierías. Su trabajo muestra que programar puede implicar una responsabilidad profesional enorme: errores de software en sistemas críticos tienen consecuencias reales.

Persona Aporta a la idea de que programar requiere…
Ada Lovelace …imaginación y abstracción, antes que máquinas
Grace Hopper …hacer el proceso accesible para más personas
Ritchie y Thompson …equilibrar simplicidad y control
Guido van Rossum …escribir pensando en quien va a leer, no solo en la máquina
Linus Torvalds …mostrar evidencia concreta y colaborar abiertamente
Margaret Hamilton …asumir responsabilidad profesional por lo que se construye

Ninguna de estas ideas sustituye el propósito oficial de la materia: lo ilustran con ejemplos reales de la historia de la disciplina.

Reducir “programar” a “escribir código en un lenguaje”. Como viste arriba, escribir código es la última etapa de un proceso que empieza mucho antes, con comprender el problema y diseñar una solución.

  • De las seis perspectivas anteriores, ¿con cuál te identificas más y por qué?
  • Piensa en una tarea cotidiana tuya: ¿qué detalles de esa tarea “abstraerías” (ignorarías) si tuvieras que explicarle a alguien más cómo hacerla, y cuáles conservarías?

Aplica lo estudiado aquí en la Actividad 1 — Registro de ideas previas y reflexión sobre voces de la disciplina, que integra tu idea inicial de “programar” con una reflexión sobre una de las seis figuras históricas.

  • Joyanes Aguilar, L. (2020). Fundamentos de programación. Fuente principal sobre programación como resolución de problemas.
  • Wing, J. M. (2006). Computational Thinking. Fundamento académico complementario. Ver Referencias de la unidad.

Ya tienes una idea de por qué vale la pena aprender a programar. El siguiente paso es precisar el vocabulario: continúa con 2. Computadora, algoritmo, programa y lenguaje.