¿Qué es la programación? y ¿Qué hace un programador?
Tags: programacion, principiante
Published: 2020-06-29 22:06:46

---
title: ¿Qué es la programación? y ¿Qué hace un programador?
published: true
date: 2020-06-19 22:44:00 UTC
tags: programacion,principiante
canonical_url: https://esgabo.dev/blog/que-es-la-programacion-y-que-hace-un-programador
---

![](https://esgabo.dev/media/programadores.webp)

Antes de definir siquiera que es la programación, primero debemos subir un poco el nivel de conocimiento y entender un poco como funcionan las computadoras desde el punto de vista de la programación.

## ¿Qué son las computadoras?

La computadora no es más que un conjunto de _Software_ y _Hardware_.

### Hardware

El hardware es lo que puedes tocar del computador. Son las partes físicas: la pantalla, el teclado, el ratón; todos los componentes internos como la tarjeta madre, tarjetas de memoria RAM, disco duro, procesador (Intel 13, 15, i7), entre otros.

### Software

El software es lo impalpable del computador. Podríamos llamarle la mente o el alma del computador.

Como ejemplos de software, tenemos el sistema operativo Windows, Android, iOS (iPhones y Macs). También las aplicaciones que usan diariamente como Word, Excel, Instagram, Facebook, y un sin fin más de aplicaciones.

> Si puedes golpearlo, entonces es hardware. Si solo puedes insultarlo, entonces es software.

Ya habiendo diferenciado el software y el hardware. Vamos a definir, por encima, qué es el software. Ya sabemos que es lo impalpable, pero ¿de qué está hecho? o ¿Cómo se hace el software?.

Pues el software no es más que un **conjunto de instrucciones para hacer algo**.

Por ejemplo, El navegador web que estás usando para leer esta publicación (Internet Explorer, Chrome, Firefox, Safari, etc) es, en el fondo, instrucciones que le dicen al hardware que debe mostrar por pantalla; Mostrarte el texto, algunas palabras en negrita, con cierto tamaño, etc.

Si pensamos en plato de comida, entonces el software sería análogo a la receta de esa comida. Esta receta indican los ingredientes y el modo de preparación para que el cocinero "ejecute" las instrucciones y obtener el resultado desea, en este caso, la comida.

El cocinero, quien ejecuta las instrucciones, sería el Hardware. Absolutamente todas las instrucciones van hacia el hardware y te generan un resultado.

Para que el hardware pueda ejecutar las instrucciones, lo primero que de ocurrir, es que el software y el hardware se puedan entender. De la misma forma que un cocinero que solo hable español, debe tener su receta en español, o de otra manera no podrá entender las instrucciones.

### ¿Qué idioma entiende el Hardware?

Pues el único idioma que entiende son los **números binarios**. Así que las instrucciones deben estar expresadas en este _idioma_.

Les voy a explicar muy brevemente qué significa esto, pero no se asusten que a este nivel no tienen que aprenderse esto y ciertamente (aunque depende del ramo de tecnología que elijan) un programador no lidia con números binarios normalmente.

Los números binarios son números en base 2, así que solo tienen 2 posibles valores: el 0 y el 1.

Los humanos estamos acostumbrados a contar que son números en base 10, es decir, cada dígito tiene 10 símbolos diferentes, del 0 al 9. Por lo tanto, si el hardware solo entiende de números binarios, quiere decir que se le debe "hablar" en ceros y unos.

### ¿Cómo se le dan instrucciones al Hardware en Binario?

Excelente pregunta. Hasta donde yo sé, los humanos no hablan en números y mucho menos números binarios.

La (afortunada) verdad es que desde hace muchos años las instrucciones no se hacen usando números binarios directamente. Se inventaron traductores que traducen un idioma más cercano al que hablamos los humanos a números binarios para que el hardware pueda entenderlas.

Sin embargo, no vas a usar el español o el inglés para crear las instrucciones sino otros idiomas basados en la lógica que se conocen como **Lenguajes de programación**.

Existen muchos lenguajes con diferencias y semejanzas entre ellos. Hay lenguajes más famosos que otros, pero al final, todos cumplen el mismo propósito: ayudar a los humanos a expresar instrucciones más fácilmente, que luego puedan ser traducidas a ceros y unos.

Esto es una explicación muy muy por encima del proceso, pero suficiente para que aprendan que hoy en día no se programa con ceros y unos (¡qué alivio!).

### ¿Qué es la programación?

Ya habiendo visto un poco de como funcionan las computadoras, vamos a responder la pregunta por la cual llegaron hasta aquí.

La programación es el proceso de _diseñar_ y _construir_ el software. Este software o programa resuelve una necesidad y problema particular.

Todo programa tiene un propósito y normalmente es en beneficio de los humanos; Realizar algún cálculo, distraernos, divertirnos, etc.

Como ya les mencioné, el software no son más que instrucciones. Así que podríamos decir que la programación es el proceso de crear instrucciones para resolver un problema o necesidad.

### ¿Qué es un programador?

Pues, obviamente, alguien que programa o ejerce la programación.

### ¿Qué hace un programador?

Los programadores tratan, con sus mejores habilidades para resolver problemas, crear las instrucciones para resolver el problema y comunicárselas al computador usando algún lenguaje de programación que eventualmente son traducidas a ceros y unos de manera automática.

Un punto importante aquí es que hay que tener claro: Resolver problemas y saber lenguajes de programación son cosas diferentes y no deben ser confundidas.

Una persona puede saber todos los lenguajes que haya, y aun así no poder resolver problemas. Los lenguajes son los **instrumentos** para **comunicarse** con el **computador**, pero el mensaje que le quieras dar al computador no tiene que ver con un lenguaje en específico.

Esta habilidad para resolver problemas es totalmente aparte de la de los lenguajes y debe ser desarrollada y practicada constantemente.

Entonces un programador tiene que saber resolver problemas **y** saber lenguajes de programación.

## Conclusiones

Ya para finalizar y como consejo: para poder entrar en el mundo de la programación, es necesario saber hasta con cierto grado de detalle cómo funcionan las tecnologías que permiten programar.

Si quedaron con la curiosidad de algún punto, es bueno que lo investiguen porque mucho de esta carrera es ser autodidacta y la habilidad para investigar es **super importante**. Los mejores programadores aún buscan en Google cualquier problema y cualquier ayuda. Así que anímense y no sean pasivos.

_Esta publicación está basada en el [video](https://www.youtube.com/embed/eH3ZXPcFr38) de mi canal en YouTube_

{% youtube eH3ZXPcFr38 %}
  
_Publicado originalmente en [esgabo.dev](https://esgabo.dev/blog/que-es-la-programacion-y-que-hace-un-programador)._