En los tiempos que corren se habla mucho de aprender a programar y  'prepararse para las carreras del futuro'. Se nos ofrecen cientos de maneras de aprender, videos de Youtube, cursos online, workshops, nuevas carreras en la universidad pública.

Parece que de pronto todo el mundo lo está haciendo. Y nos quieren enseñar cómo, pero no nos explican para qué, por eso quiero inaugurar esta serie de posts donde les voy a contar un poco sobre la programación, sus distintas ramas y como se aplican estas habilidades a la vida real.

Ahora, vamos a la primera parada en este camino:

¿Qué es programar?

La programación en términos muy generales puede ser explicada como 'escribir instrucciones en un lenguaje que una computadora pueda leer'. Estas instrucciones son interpretadas y ejecutadas, su resultado final es la resolución de un problema.

Las computadoras tienen una gran capacidad de procesamiento y pueden realizar acciones mucho más rápido que un humano, pero no pueden pensar por sí mismas. El trabajo de quien programa es pensar las soluciones y darle a la computadora las instrucciones de lo que debe hacer.

Programar entonces es pensar, diseñar e implementar soluciones a problemas para que una computadora las ejecute.

Pero todo esto es muy abstracto y aburrido, contándolo así parece que estoy hablando de 1980, grupos de gente en camisa y máquinas gigantescas. La realidad es que hoy en día todos tenemos pequeñas computadoras en nuestros bolsillos y le ponemos procesadores hasta a las heladeras, esto hace que la programación tenga aplicaciones increíblemente variadas y de intersección constante con otras industrias.

Del mismo modo, también se está rompiendo un poco la imagen del programador como persona que sabe mucho de matemáticas y habla de cosas incomprensibles en pos de una imagen menos generalista donde quienes programan cumplen distintos roles y tienen perfiles acordes al rol que ejercen.

Programar es una habilidad, y dependiendo de la industria en la que estemos trabajando se va a complementar con otras áreas de conocimiento, algunas van a requerir que sepamos matemáticas o estadistica, otras que tengamos buen ojo para el diseño, o que sepamos de física y colisiones. Hay tantos perfiles distintos como personas en el mundo y el cliché del programador tradicional ya nos queda chico.

En conclusión, este conocimiento nos pueden abrir distintas puertas: desde trabajar con datos, hacer páginas web, desarrollar videojuegos o programar satélites. Los usos que podemos darle son casi infinitos y obviamente cada uno tiene sus peculiaridades que vamos a ir descubriendo en los próximos artículos.