1. Programación

¿Qué es la Programación? #

La programación consiste en muchas cosas, pero su esencia reside en la resolucion de problemas. Escribir código e implementar una solución viene después de pensar detenidamente en cómo resolver el problema. Después de todo, no habría necesidad de escribir programas si no existiera algo que resolver.

Los constructores construyen cosas porque la gente necesita que se construyan cosas—¿cierto? De manera similar, los programadores escriben programas porque la gente necesita (o simplemente quieren crear) programas.

Pensando en algunas de las aplicaciones de un celular: redes sociales, cámara, edición de video, aplicaciones de mensajería, videojuegos. Cada una es una aplicación escrita por un grupo de personas—a veces por una sola persona—y cubren distintas áreas: desarrollo web, microcontroladores, aplicaciones de línea de comandos, hardware, la nube, infraestructura (como servidores) y más recientemente, modelos grande de lenguaje (LLMs) y sus interfaces como ChatGPT.

Así que, al pensar en la palabra programación, no se trata únicamente de alguien creando una aplicación web o móvil—esas solo son las más visibles. Se trata de construir algo que resuelve un problema y/o modifica datos (hablaremos más de esto después). Incluso una calculadora necesitó un programador que definiera la lógica que le permite realizar las operaciones que todos conocemos.

En el núcleo de toda solución hay una transformación de datos: comenzando desde un estado inicial, un programa hace un conjunto de cosas que lo convierten en un estado final.

Pero, ¿qué tipo de problemas? #

Eso depende de en qué esté trabajando el programador. No hay una definición única de los tipos de problemas que los programadores resuelven—pero en general, involucran computadoras de alguna u otra manera.

A medida que avancen los capítulos, se vera de manera más evidente que programar en sí no es la parte más difícil. De hecho, muchas veces es la más fácil. El verdadero reto está en todo lo que lo rodea—entender el problema, diseñar una buena solución y construir algo que perdure. Escribir el código se convierte casi en una carrera contra el mantenimiento.