a

Somos una startup de tecnología dedicada a la transformación digital. Especializados en desarrollo de aplicaciones móviles, desarrollo web a medida y marketing digital.

Últimas noticias
Síguenos
Armadillo Amarillo > Tecnología  > Introducción a la programación (Day 0)

Introducción a la programación (Day 0)

Bienvenidos a la primera entrega de «introducción a la programación» donde veremos, poco a poco, como hacer el clásico «Hola Mundo» hasta llegar a poder hacer programas sencillos.

Warning! : Una vez entras en este mundo y te gusta es muy difícil salir, así que, si no estas preparado … mejor sigue no sigas leyendo.

Notice : Primero pensar, luego andar y luego correr. Así que nuestros primeros post de esta serie serán teóricos (Noooo!!! Teoria nooooooo). Me temo que si, sin una buena base… se acaban haciendo cosas que todos conocemos y no nos gustan.

¡¡Comenzamos!!

freepik_04

Comenzamos con alguna definición:

Wikipedia dice:

La programación informática o programación algorítmica, acortada como programación, es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.

Del proceso de programación surge lo que comúnmente se conoce como software (conjunto de programas), aunque estrictamente este último abarca mucho más que solo la programación.

Pero… ¿Que significa esto? Mejor con un ejemplo.

Estamos enganchados a Juego de Tronos y esta temporada los capítulos salen a la vez que en Estados Unidos, es decir… a eso de las 3/4 de la madrugada. Como es normal ( a no ser que seas un búho) es que te vayas a dormir y pongas a grabar la serie para verla al día siguiente, o como antiguamente se hacia con los VHS, programes el vídeo, para que grabe cierto canal a cierta hora. Si no solemos hacerlo, normalmente probaremos antes (porque no queremos perdernos el capitulo por nada del mundo) así que probamos a programar el vídeo con algo de ahora mismo para ver si funciona.

En este ejemplo hemos visto todo lo que la definición de Wikipedia dice, vamos a verlo:

  1. Proceso de diseñar: hemos pensado que queríamos (grabar la serie).
  2. Codificar: hemos puesto a grabar el vídeo.
  3. Depurar: hemos hecho pruebas probado a ver si graba bien.

En palabras aún más simples, programar es decirle a una máquina muy potente (que no sabe nada) lo que tiene que hacer. Una vez te metes en este mundo te das cuenta de las miles de millones de cosas que están programadas. Por su puesto los ordenadores y sus aplicaciones, los móviles y sus aplicaciones (desde los más antiguos a los más modernos), tu lavadora, la tele, el router, la alarma de tu casa, la puerta que se abre de tu garaje, la caja registradora del supermercado, la barrera levadiza del peaje…. como veis, casi, casi, casi todo pasa por la informática y más en concreto por la programación.

El resultado de esas instrucciones o sentencias es lo que llamamos «programa» aunque depende de la vertiente en la que nos movamos. Por ejemplo, un programa informático nos viene a la mente siempre las aplicaciones del ordenador o «de escritorio» (Skype, Chrome, MS Word, etc…) pero una aplicación móvil también es un programa aunque lo llamamos aplicación, una web también es un programa pero lo llamas página web o aplicación web.

Generalmente, el éxito de un programa surge porque resuelve un problema. Cuanto más grande sea el problema (porque afecta a mucha gente por ejemplo) más éxito tendrá. Nos vamos al caso de Whatsapp: esta aplicación viene a resolver un problema de comunicación instantánea con la gente. ¿A quien puede llegar esta app? Absolutamente a todo el mundo que tenga un móvil, ergo a millones de personas, ¿existo asegurado, no? Bueno, la teoría dice que si, pero luego nos metemos entre otras cosas en temas de «competencia» que es otro jardín.

¿Como nos entendemos con las máquinas?

Bueno, para empezar hablemos de 0 y 1…. así es como la inmensa mayoría de las máquinas entienden las cosas con corriente eléctrica (1) o la falta de ella (0). No nos asustemos, no vamos a empezar a escribir en tarjetas perforadas (aquí dejo el link para algún curioso) pero es importante saber que escribir «algo» se tiene que traducir a 0 y 1 para que las máquinas lo entiendan.

Con este concepto descubrimos 3 cosas el traductor, el proceso de traducir y el el lenguaje. 

Es decir, nosotros queremos hacer un programa que diga «Hola Armadillos Lectores!», pues tenemos que escribir en alguno de los miles de lenguajes de programación una serie de sentencias para hacerlo. Después, debe haber un traductor que se encargue de traducir ese mensaje para que la máquina sepa que hacer.

Dependiendo del lenguaje o de la máquina el proceso es más complejo o menos complejo.

Por ejemplo: en lenguajes compilados (en C, por ejemplo)

Código Fuente --> Preprocesador --> Objetos Preprocesados --> Compilador --> Objetos Compilados --> Linker / Enlace --> Ejecutable

Es normal que os suene a chino, muy muy normal. No es importante que sepáis como se monta un programa en C, pero si es importante que entendáis todo lo que se hace para que un programa en escrito en C lo entienda la máquina.

Los lenguajes de programación, salvando las distancias, tienen similitudes con las lenguas humanas: evolucionan (por ejemplo aumentan o disminuyen el número de vocablos),  se expanden internacionalmente y triunfan si gran número de personas se decide a utilizarlos, o caen en desuso y se convierten en lenguas muertas. Igualmente pueden ser más o menos fáciles de aprender, más o menos ricos en vocablos, y más o menos fuertes para resistir el embate de las necesidades de los programadores. Hablaremos de ello en otros artículos.

Y terminando pero no menos importante:

Un programador no es aquel que sabe Java o C o Cobol… ¡Un programador es aquel que sabe programar y se puede adaptar a cualquier lenguaje!

Siguiendo esta tónica, nosotros aprenderemos a programar en «pseudo-código» y luego ya nos meteremos con el lenguaje que elijamos.

Un saludo… ¡y nos vemos en el Day 1!

 

 

 

Jesus Lopez

Armadillo Habilidoso. Experto técnico en todas tecnologías habidas y por haber. Responsable de los Armadillos Habilidosos, amante de la música, las motos y Geek a más no poder.

No Comments

Leave a reply