¿Cómo comenzar a programar?
Tags: aprenderaprogramar, español, principiante
Published: 2019-05-19 16:47:12

---
title: ¿Cómo comenzar a programar?
published: true
description: No se como programar.
series: En que pienso cuando pienso acerca de programar
tags: aprender a programar, español, principiante
---

#¿Qué es programar?
Antes de pensar en FrontEnd, Backend, pensemos en qué consiste el trabajo de un programador.

Siempre pienso en este tema cuando conozco a alguien que se entera que soy programador y conoce del medio o también es programador. Casi siempre, siempre,  la pregunta que me hacen es: ¿en que lenguaje programas?.

Ser programador no es saber escribir código en un lenguaje de programación. Saber escribir código es una habilidad indispensable para programar, digamos que es como correr para un futbolista.

Cuando se, que alguien que acabo de conocer es programador; lo que me gustaría saber es: ¿qué tipo de problemas resuelve? ¿en qué giro trabaja?.

Un programador es alguien que resuelve problemas usando computadoras, para usar esas computadoras utiliza uno o varios lenguajes de computación. El punto principal es: **un programador es un resolvedor de problemas**.

##Bienvenidos los problemas

Inmediatamente que entramos en contacto con la idea del problema comenzamos a trabajar : nuestro trabajo es 50% pensar y el otro restante hacer lo que pensamos. Hay que analizar el nuevo problema que tenemos y buscamos conocer más detalles del problema….

**¿Qué se requiere obtener?**
**¿Cómo se requiere el resultado?**
**¿Quien lo necesita?**
**...**

Aquí es donde comienza la magia, con la información que recabamos comenzamos a pensar en una maquinaria / un gran circo que hará las cosas automáticamente paso a paso, de la forma que le digamos la primera vez y siempre, del dia de hoy al fin de los tiempos. Un programador es alguien que construye una maquinaria que requiere unos datos para producir algo siguiendo los pasos que le digamos.


Cada programador creará una maquinaria diferente según sus gustos, preferencias y conocimientos. No hay una respuesta correcta o incorrecta. Solo hay programas más elegantes,  más eficientes, más fáciles que entender, más útiles que otros.

##Antes de comenzar a crear la máquina debemos resolver el Problema

Ya sabemos que vamos a crear una máquina y definimos ciertos actores que sabemos vamos a utilizar. Lo que sigue es en pensar los pasos que haríamos si lo hiciéramos de forma manual. Necesitamos sí o sí ,saber como resolver el problema con teclado y computadora (en analogía de lápiz y papel). Esta etapa es crítica, si no podemos resolver el problema de forma manual no lo haremos con un programa. Programar es escribir nuestros pasos al resolver un problema en código para la computadora. Si no sabemos hacerlo, le preguntamos a alguien más que nos lo explique como hacerlo a mano. Si nos piden hacer algo que no nos pueden explicar como se hace a mano también lo podemos hacer, pero eso es otro proyecto/problema “Como resolver a mano esto”.

##¿Cómo empezamos a programar?

###¿Empezamos por el inicio?
Lo lógico es que comencemos en la entrada con el paso 1 (los datos del problema) y avancemos en transformar los datos al producto final. Así como las carreteras. Se comienza del inicio y se van construyendo.

###¿Empezamos por el fin?
También es lógico que empecemos por el fin. Ya que es como estar en un laberinto y seguir nuestros pasos para llegar a la entrada.  Esta metodología nos asegura que si o si vamos a tener el producto final que queremos. También se construyen las carreteras así. 

###¿Cual es la mejor opción?
Para elegir cómo empezar a resolver un problema necesitamos entenderlo bien y  teniendo en cuenta nuestros conocimientos y nuestros recursos determinar qué es lo más difícil para nosotros. Esto significa que atacamos directamente la esencia del problema, resolviendo esta parte sabemos que todos lo demás serán “obvio” y no batallaremos con ellos.

Resolver la parte más difícil del problema nos dirá si el problema se puede resolver o no, así sabremos reaccionar a tiempo. Cuando tengamos resuelta la parte más difícil de nuestro problema, la ruta entre la entrada  y salida se hace más corta porque ahora ya tenemos claro el punto medio. Los pasos de entrada al punto medio y de allí a la salida serán más sencillos. Si hacemos esto el resultado es que tenemos dos problemas (A y B) en lugar de uno,  pero son problemas más pequeños que el problema inicial. 

Ahora que tenemos dos problemas tomamos el primer problema (origen a punto medio) y repetimos el ciclo:

1)Entender el problema
2)Resolver el problema en pasos
3)Buscar el paso más difícil
4)Resolver el paso más difícil

De esta forma terminamos resolviendo problemas pequeños muy específicos.

Esta metodología no es algo que se invento con la programación, es algo propio del pensamiento humano. Realmente no se tiene que aprender, solo se debe ejercitar.

###Por más complejo que parezca un proceso, lo podemos dividir y resolver en pasos.

![image](http://productividadti.com.mx/blog/proceso_q1.png)