Programación para todos: Programas

in #cervantes3 years ago (edited)

Luego de un reparador descanso, ¡continuemos nuestro camino!


En nuestro viaje ya hemos aprendido que son los datos, la información y la informática, los que han tenido un rol fundamental para el desarrollo de la humanidad. Descubrimos el nacimiento de uno de los instrumentos más poderosos creado en la historia ; la computadora, conociendo su estructura y funcionamiento a grandes rasgos. Pero hay algo que no quedó muy claro, ¿que es un programa?. En este artículo responderemos está pregunta, y comenzaremos a estudiar una disciplina que prometimos enseñaros desde el principio: la programación. Pero antes de empezar necesitamos recordar algo importante; este artículo es la tercera parte de una serie, para comprenderlo a cabalidad recomendamos leer los anteriores en el siguiente orden:


Parte1:https://steemit.com/cervantes/@cervantes/programacion-para-todos-la-informatica-y-su-rol-en-la-humanidad


Parte 2:https://steemit.com/spanish/@cervantes/programacion-para-todos-computadoras


Como de costumbre, miremos el pasado


En el artículo anterior aprendimos que el primer instrumento que podemos llamar computadora corresponde a la máquina analítica , la cual , mediante el uso de tarjetas perforadas recibe datos e instrucciones.


Una tarjeta perforada es simplemente una lámina de cartulina, la que contiene perforaciones en patrones específicos.


Fuente


Cada perforación en la tarjeta corresponde a un dato, y el patrón en el que se encuentran estas perforaciones corresponde a la información que recibe la computadora.


Pero , si observamos una tarjeta solo vemos orificios que para nosotros no tienen ningún significado, ¿de que se trata?. Para entender esto, estudiemos un poco el concepto de lenguaje.


Tomando la definición de la RAE, lenguaje corresponde a “Facultad del ser humano de expresarse y comunicarse con los demás a través del sonido articulado o de otros sistemas de signos” . Siendo más generoso, podemos decir que el lenguaje corresponde a un sistema con el cual el hombre, los animales o cualquier entidad capaz pueden comunicar ideas, pensamientos, y sentimientos, a través del habla o signos.



Fuente


Analicemos un segundo lo anterior; la computadora ejecuta instrucciones que recibe en una tarjeta con orificios, es decir, el usuario se comunica con la computadora a través de la tarjeta. Por lo tanto, según la definición anterior, ¡la tarjeta perforada corresponde a un lenguaje!, y un lenguaje que la computadora entiende.


De modo que, podemos entender a una computadora como una entidad que comprende un lenguaje en específico, y nosotros nos podemos comunicar con ella escribiéndole en aquel lenguaje, el cual corresponde al patrón de orificios en las tarjetas perforadas.


Comprender este concepto ha sido fundamental , pero, ¿quién fue el primero en entenderlo y vislumbrar sus capacidades?, ¿fue el creador de la máquina analítica, Charles Babbage?.


Charles Babbage fue ciertamente un genio innovador, pero no percibía el real potencial de su diseño. Desde su perspectiva, la máquina analítica sólo cumpliría con la función de calculadora automática.


Ada Lovelace, matemática y escritora francesa, vió más allá. Dedujo y vislumbró la capacidad de la máquina analítica, y por ende de las computadoras, de cumplir con múltiples tipos de tareas elaboradas .


Sentía una gran curiosidad y admiración por el trabajo del que sería su amigo, Charles Babbage. Con el fin de divulgar e ilustrar la existencia y funcionamiento del diseño de Charles, tradujo unos textos escritos por el militar e ingeniero italiano Luigi Menabrea sobre la máquina, anexando en ellos notas de su autoría, denominadas Notas.



En éstos documentos, se pueden encontrar notas que definieron un hito en la historia de la informática: describió un lenguaje de uso general para dar instrucciones a la máquina analítica,y escribió lo que se considera como el primer programa de ordenador.


Fuente


Realizó impresionantes deducciones, y vislumbró que el instrumento se puede utilizar para variadas y complejas tareas: realizar representaciones matemáticas más allá de los números, y hasta componer y reproducir piezas musicales.


Este gran acontecimiento y trabajo convirtió a Ada Lovelace en la madre de la programación.


Entonces, ¿qué es un programa?


Primero, veamos la definición de la palabra programar de la RAE: “Idear y ordenar las acciones necesarias para realizar un proyecto.”. Es decir, programamos cuando planificamos nuestra semana, definimos en que orden haremos las compras, etc.


Fuente


Desde esta perspectiva, podemos entender un programa como un conjunto de acciones necesarias para realizar un proyecto. ¿Y en una computadora?.


Como vimos, la máquina analítica recibe instrucciones a través de una tarjeta perforada, es decir, recibe de manera ordenada las acciones necesarias para realizar una tarea. Por lo tanto, podemos definir un programa informático como: ”secuencia de instrucciones escritas para completar una tarea específica en una computadora”, y estas instrucciones están escritas en un lenguaje que la computadora entiende.


Así, cuando perforamos las tarjetas para que la computadora ejecute unas instrucciones , ¡estamos programando!.


¿Cómo funciona un programa en la actualidad?


Claramente, las computadoras actuales no utilizan tarjetas perforadas, no son mecánicas, y funcionan mediante el uso de electricidad en pequeños circuitos integrados (tarjeta madre, memorias, tarjeta de sonido, etc), pero su principio de funcionamiento es el mismo.


Fuente Así, los programas de computadoras que utilizamos hoy en día son secuencias de instrucciones escritas en un lenguaje que la computadora entiende, y éstas instrucciones son ejecutadas por el procesador.


¿Qué lenguaje entiende una computadora?


Los pequeños circuitos programables de las computadoras actuales son digitales, y funcionan mediante solo dos niveles de tensión, los que se simbolizan con dos números; 0 y 1. Toda instrucción que se entrega a través de un programa está escrita sólo con estos dos números, de modo que el lenguaje que utilizamos para comunicarnos con el procesador corresponde a código binario.


Fuente


Entonces, ¿tenemos que aprender código binario para programar?, no.Se han creado múltiples herramientas y métodos para optimizar y facilitar el desarrollo de programas, ¡pero ahondaremos en esto en la entrega del próximo miércoles!.


¡Espera!, aún no hemos terminado


Ya comprendemos lo que son los programas, y podemos observar que todo funcionamiento de la computadora está dado por ellos, por lo que corresponden a un componente fundamental de una computadora.


De este modo podemos separar una computadora en dos partes: componentes físicos; tales como circuitos eléctricos, dispositivos de entrada y salida, cables, gabinetes, entre otros, y componentes lógicos,dónde encontramos a los programas.


Al conjunto de componentes físicos los llamamos hardware, y a los componentes lógicos los llamamos software.


Resumamos y ordenemos las ideas


Fuente


Las computadoras son instrumentos que procesan información de manera automatizada, y para ello reciben instrucciones en forma de un programa.


Un programa, es un conjunto de instrucciones escritas en un lenguaje que la computadora entiende, con las que puede realizar todo tipo de tareas.


Programar consiste en escribir estas instrucciones, para así crear el programa que luego la computadora utilizará.


El lenguaje que las computadoras actuales comprenden es el código binario, por lo que los programas corresponden a un conjunto de instrucciones escritas en este lenguaje.


Entonces, ¿cómo se programa?


¡Ya lo veremos!, a partir de la próxima entrega los artículos tomarán un tono más práctico. Las tres primeras etapas cumplieron una función introductoria, además de aclarar los conceptos básicos fundamentales detrás de lo que estudiaremos más adelante.


Si estás interesado en entender cómo funciona la programación, y cómo se construye un programa, no te pierdas la siguiente etapa.


Gracias por leernos y participar de esta fantástica comunidad. ¡Saludos!.
Sort:  

La programación es todo un arte y toda una ciencia. Yo estudié con mucho empuje y sacrificio Análisis de sistemas. Me reventé el coco y quemé las pestañas horas de horas, en laboratorios helados e intensas madrugadas seguidas sin dormir para que el usuario final siempre esté mas cómodo y complacido con sus sistemas digitales. No es nada sencillo, aunque existen muchos patrones que facilitan la vida. Y como dijo alguna vez un sabio programador: "Debemos aprender a subirnos en los hombros de los que ya han hecho lo que nosotros queremos hacer para subir mas alto y alcanzar las metas; no vale de nada reinventar el agua tibia, vale más usar lo que preexistente y mejorarlo".
Es por eso que me inclino mucho por lo códigos abiertos, como es el caso del código de la criptomoneda bitcoin y que a partir de este se han creado múltiples criptomonedas, como el Steem.
Que vivan los programadores locos que hacen la vida cada vez más fácil y que viva la programación....

Viva el código abierto, tienes toda la razón. Para mi es una clara representación de la libertad de acceso al conocimiento y la información, legado de toda la humanidad.

Se agradece tu comentario, ya continuaremos escribiendo contenido de este tipo, un saludo.

que buen material.

Excelente información Cervantes. Siempre ofreciendo cosas utilies para las masas y más cuando estamos tratando en un entorno precisamente digital que cada día avanza más y más y muchas personas se quedan desactualizadas de información.

Mucho más las personas de mayor edad que no nacieron en este mundo tecnológico.

En base a este mismo hilo me gustaría observar de su parte un abordaje hacia la seguridad en medios digitales. Es decir, correcto uso de redes y software ante el espionaje y phishing que cada día está más fuerte en este mundo y atenta contra el desarrollo de las actividades de los usuarios.

Saludos.

Gracias por el aporte. Gran idea!, mas adelante tomaremos esto en consideración para publicar.

Un saludo

Buenas tardes, el artículo me ayudo a comprender y aclarar algunas dudas referente a la programación. Saludos @cervantes

Muy bien, no pude esperar para comentar y votar este post, voy al revés primero el ultimo...

Excelente trabajo, FELICIDADES!... En la actualidad soy programador web y esto que has dicho es la base de

gran parte de mi vida en este momento
.
Sinceramente GRACIAS!

Muchas gracias!, seguiremos publicando este tipo de contenido con regularidad.

Saludos

amazing post....i know some new from your post....and i waiting for your next post

Gracias, ya quiero comenzar a dar instrucciones. ¡Gracias!

Ya publicaremos la parte más práctica jeje. Gracias a ti.

Un saludo

Que bueno que regresaron, muy buena info, la verdad que me gusto mucho y me ayudo entender más sobre la programación, que tanto me llama la atención.

Que bien!, esa es la idea, lograr ilustrar a toda la gente que no necesariamente se dedique a este tema.

Saludos

Excelente material. Me gusta mucho y me apasiona este tema. Gracias por las valiosa información... Saludos

Interesante propuesta de enseñar por esta vía. Hay muchos chicos en la comunidad que estarán felices de interactuar. Felicidades @cervantes, con cada nuevo granito de arena que aportan para enriquecer el conocimiento.

Especial por nada me perdería la próxima. Gracias

excelente trabajo

Me encanto, sobre todo ver citada a Ada Lovelace, es curioso que en el mundo de la programación existen grandes mujeres; y no sé las ha dado nunca el reconocimiento adecuado. :)