Curso de Programación #2 : ¿Qué es programar?

Dibujo de un globo terraqueo con los simbolos del potocolo de internet representando la conectiviad global

¿Qué es programar?

Comencemos por el principio: ¿Qué es programar? Bien, programar es ¡crear un programa!… ¿Y que es un programa? bueno, un programa es sencillamente un conjunto de instrucciones. Emmm … esto … me explico.

Un programa, desde el editor de texto mas sencillo, hasta el juego de ultima generación que imagines, pasando por cualquier programa que utilices en tus dispositivos, no es mas que un conjunto de instrucciones que le indican a tu ordenador o movil correspondiente que hacer, y como interactuar con la persona que sostiene el dispositivo.

Pero … ¡esto es imposible! ¿como va a ser algo tan complejo como un juego sólo un conjunto de instrucciones? pues si, efectivamente , lo es, un conjunto de miles, incluso millones de instrucciones cada una de ellas por separado muy sencilla, pero que funcionando en conjunto, forman algo tan complejo como un juego.

Como el cuerpo humano

El cuerpo humano es muy complejo, y sin embargo esta formado por miles de elementos mas pequeños y especializados, como las células, que trabajando en equipo forman lo que identificamos como “cuerpo humano”, igual funciona un programa.

Cualquier programa que imaginemos consiste en una secuencia de instrucciones , divididas en mutiples comandos pequeños, uno tras otro. Cada uno de ellos se encarga de una parte pequeña de la tarea, el conjunto forma nuestro programa. Puede que hagan falta millones de instrucciones para construir algo tan completo como un juego, pero es eso, una coleccion de instruciones.

Construyendo programas

Para construir un programa, su diseñador ha tenido que interpretar y estudiar las funciones que desaeaba para dicho software, y ha dividido esas funciones en bloques, que a su vez se dividen en funciones , cada una de las cuelaes se compone de varias instrucciones individuales.

Un ejemplo muy sencillo

Si queremos obtener una idea mas aproximada de lo que es un programa, imaginemos que invitamos a un amigo querido a nuestra casa, pero este nos llama por telefono porque se ha perdido. Le pedimos nos indique que es lo que ve a su alrededor para hacernos una idea de donde esta.

Es facil suponer que, a partir de la información de donde se encuentra, de donde queremos que llegue y nuestro conocimiento del lugar, podemos darle una serie de instrucciones que le permitan llegar a nuestra casa.

“Programando” a nuestro amigo

Le diremos, por ejemplo, “Toma la carretare al sur, en el segundo cruce gira a la derecha y continua medio kilómetro, cuando veas una casa con una fachada verde esmeralda, y oigas el sonido del mar, habras llegado a mi casa.”

Si nos fijamos bien, las instrucciones que le hemos propocionado, constituyen un “programa” tal que, si nuestro amigo ejecuta esas instrucciones en secuencia, llegara a nuestra casa. Tan sencillo como eso.

Una cuestión de orden

Es preciso señalar la enorme importancia del orden en las instrucciones de un programa. Si a nuestro amigo le decimos en primer lugar avanza medio kiloentro y luego que gire a la derecha, nuestro amigo aparecerá en cualquier lugar, menos en nuestra casa. Del mismo modo, al escribir un progama, hay que tener en cuenta, tanto las instrucciones que damos a la maquina, como el orden de estas.

No obstante, crear un programa para que un computador lo ejecute es algo que requiere algo mas de tiempo, hemos de tomar un problema complejo y dividirlo en procesos mas sencillos, y estos a su vez en tareas esenciales, de forma que la union de los diferentes elementos individuales, trabajando en equipo, den como resultado nuestro programa.

¿Tengo que aprender Swahili?

En el caso de nuestro amigo, utilizamos nuestro idioma para indicarle, la direccion, pero, si nunca has programado antes, te estaras preguntando que idioma comprende una maquina.

Las instrucciones que podemos dar a una maquina, en muchas ocasiones son tan simples como sumar dos numeros o mostrar una letra en pantalla. Parece poco y extremadamente básico, pero es la unión de miles de estas instrucciones que podemos indicar a la máquina lo que nos permite crear programas.

En equipo

Os preguntareis como es posible crear un programa como un videojuego con solo instrucciones muy simples. Bien, aqui es donde podemos observar hasta donde llega la madriguera de conejos. Para crear un programa de ese tamaño, es posible que cien programadores hayan tenidoq que trabajar en el codigo ocho (o mas) horas al dia durante varios años. Pero no se asusten, nosotros empezaremos por el principio y veran que se pueden lograr objetivos interesantes en poco tiempo 🙂

Precisión, precisión, precisión

Ahora centremos nuestra atencion en la importancia de la precisión en las instrucciones que demos a la maquina. Un programa contendra un gran numero de instrucciones ejecutadas a una gran velocidad.

Si a nuestro amigo le indicamos tan solo una instruccion incorrectamente, puede acabar en cualquier lugar excepto en nuestra casa, ademas, entre tantos miles de instrucciones, no es trivial localizar la que causa el problema, por lo que deberemos ser extremadamente cautelosos.

Comandos

En programacion usamos diferentes lenguajes para escribir estas instrucciones, a traves de lo que llamamos comandos, un comando en programacion es algo asi como una frase en ingles, se usan palabras, numeros y signos de puntuacion para expresar ideas que explican a la computadora que hacer en cada momento.

Algunos comandos son muy cortos, otros contienen mas informacion, pero en esencia, todo se basa en secuencias de comandos que describen de forma precisa un proceso y las posibles variaciones que existen en este. En algunos lenguajes, cada comando se termina con un punto y coma, de forma similar a como finalizamos nuestras frases con un punto. En otros esta diferenciacion se realiza mediante un salto de linea. Esto dependera del lenguaje, pero os preocupeis ahora mismo por esto, lo iremos viendo poco a poco.

No todos son iguales

Cada lenguaje es unico, los hay expresados en mayusculas, otros todo en minusculas, otros no toman en cuenta esto y otros son extremadamente estrictos en este punto, sin embargo, lo principal es entender la sintaxis, es decir la gramática de dichos lenguajes. Lo veremos poco a poco, pero tómese en cuenta que dependiendo de la situación, el entorno o la máquina puede hacer falta usar diferentes lenguajes.

No se asusten, comenzaremos por comprender uno bien, y, una vez hecho, no les resultara especialmente complicado utilizar otros.

Finalizando

Un pequeño consejo, si no sabeis mecanografía, es el momento de aboradar su estudio a la vez que el presente curso. Pensad que la programacion se basa integramente en texto, y creedme, se acaban pasando muchas horas delante del un teclado. Por tanto, maximicen su velicidad editando texto, sea cual sea el metodo o herramienta que utilicen para ello, incluso si es un sistema basado en switch.

Por último, tomen en cuenta que programar es el arte de tomar un problema complejo, dividirlo en tareas mas sencillas y crear programas de forma que la maquina, siguiendo estas instrucciones que le hemos indicado, sea capaz de resolver el problema inicial de forma eficiente.


La libertad tiene un precio

dibujo de la paloma de La Paz atravesada por la sangre de los inocentes

Y en ocasiones ademas,, ese precio se paga en sangre humana. Es demasiado común asistir a debates en los que se habla de lo que debería ser, lo que es justo que sea, y lo que otros deben hacer para que nosotros podamos disfrutar de esas libertades, pero la realidad no funciona de ese modo.

Si queremos disfrutar de la libertad tenemos que estar dispuestos a crearla, si, crearla y mantenerla, a veces paradojicamente mediante la imposición, ya que habitualmente cuando se debate en un grupo amplio, el resultado es inspirativo.

En demasiadas ocasiones nos perdemos con el concepto de derechos en lugar de plantar cara al mundo y hacer de estos valores que decimos defender, una realidad en el ámbito de influencia que tenemos.

Esta es la gran lección que les planteo hoy que todos aprendamos en común, a través de este Ted Talk en el que la actual defensora de la libertad, nos da una lección magistral de como tornar un lugar sin esperanza en un núcleo de excelencia y crecimiento social.

El lunes mas. Disfruten! 🙂


Medir para Conocer, Conocer para Triunfar

Dibujo de perfil de una cabeza humana dentro de la cual se ve un cerebro, como símbolo de planificación y raciocinio

Mide primero, actua despues, piensa siempre. O así debería ser. Es sorprendente el numero de emprendedores de terraza de bar que comienzan envalentonados un proyecto, presas de unos buenos copados y mucho entusiasmo gratuito, con una idea genial en mente.

El cementerio está lleno de heroes, gran frase que he atesorado toda mi vida, no en pro de no arriesgar, sino de arriesgar con cabeza. Medir la situación para ver que pasos son coherentes y, sobre todo, remar en una dirección que tenga opciones de llevarse a cabo, por difícil que sea la empresa.

Esto mismo penso el ponente de este Ted Talk que les recomiendo hoy, en el que se analiza con detalle el porqué unas empresas triunfan con sus proyectos y otras, cosechan el mas absoluto fracaso. Las conclusiones son sorprendente, aunque bien pensado, mas que coherentes.