Aprendiendo a programar con Steemit: leccion 1. Conceptos Fundamentales
Hola mis Steemados, desde que comencé en esta plataforma la vi como el lugar idóneo para aprender, y con mucho gusto veo que la comunidad hispano parlante va en franco aumento y lo mejor es que somos una gran comunidad, más por el contenido de altísima calidad que por el número de integrantes dentro de la misma. ¡Somos referentes de Calidad, no de cantidad!
En este mar de contenido y con la responsabilidad a cuestas de labrarme una reputación dentro de esta comunidad me propongo realizar una serie de publicaciones para compartir parte del conocimiento que he adquirido sobre programación.
Lo primero que me propongo es abordar algunos conceptos fundamentales que todo buen programador debe poseer, antes de sentarse a escribir cualquier programa se deben estudiar y comprender estos conceptos ¿Por qué estos conocimientos son necesarios? Sencillo, porque independientemente del lenguaje de programación utilizado este conocimiento servirá de base para crear mejores programas y permitirá una vez escritos encontrar con mayor facilidad posibles las fallas evitando en todo momento los errores de fondo.
¡Aprendamos juntos de lo sencillo hasta lo complejo!
¿Qué es la Programación?
La programación es el proceso por medio del cual se diseña, codifica, prueba, limpia y protege el código fuente de programas computacionales. Estos programas son creados para darle solución y respuesta a problemas, que van desde los más sencillos hasta los más complejos, con la ayuda de un computador. La programación es una ciencia relativamente joven, muchos hasta hace poco la catalogaban como un arte. Lo cierto es que uno de sus objetivos principales es que se dominen los pasos para la creación del código fuente de los programas y que estos sean eficientes en su funcionamiento.
Lenguaje de programación
La programación tiene un conjunto de órdenes: instrucciones y expresiones que tienden a parecerse a una lengua natural acotada. Un lenguaje de programación es un conjunto de reglas o normas,compuestas por símbolos y palabras particulares empleadas en la creación de un programa.
Es el idioma de comunicación entre el ordenador y el usuario, para que este último pueda darle instrucciones al ordenador para la resolución del problema por el cual se está creando el programa.
Existes varios tipos de programación y estará determinada por el tipo de lenguaje elegido. Algunos de los tipos de programación mas comunes que podemos encontrar son:
- Programación secuencial: son aquellos programas que se diseñan con directrices que van en secuencia una detrás de la otra. Por ejemplo: Cobol, Basic.
- Programación estructurada: se considera así, cuando la programación es diseñada por módulos. Cada módulo realiza una tarea en especial, y cuando se requiera de esa tarea, sencillamente se le hace el llamado a ese módulo. Este tipo de programación es común cuando el problema tratado involucra varios profesionales trabajando. Por ejemplo: Turbo Pascal, Ada, Modula.
- Programación orientada a objetos: son aquellos lenguajes que permiten la implementación de objetos dentro del diseño del mismo y el usuario podrá pegar a cada objeto un código de programa. Este tipo de programación es utilizada a la hora realizar simulaciones o en sistemas de control y monitoreo. Algunos de estos son: Java, Xml, entre otros.
- Programación lógica o de lenguaje natural: son aquellos programas que se diseñan con interfaces, de tal manera que el usuario pueda darle órdenes a la máquina utilizando un lenguaje simple. Por ejemplo: Prolog.
- Programación de inteligencia artificial: son aquellos programas que buscan desarrollar capacidad de emular la capacidad de toma de decisiones del ser humano. Este tipo de programación requiere de la recopilación de gran cantidad de información que servirá a las maquinas como insumo para poder formar "criterio propio".
Algoritmos
Antes seguir adelante debemos tener bien claro una cosa: los programas están diseñados para resolver problemas. Con esto en mente podemos seguir, el lenguaje de programación es el medio utilizado para darle al computador las instrucciones para la resolución del problema. El paso a paso o el conjunto de órdenes suministradas al ordenador previamente diseñadas por el programador es lo que denominamos algoritmo.
Un algoritmo es un método empleado para resolver un problema. Normalmente consta de una serie de pasos o una descripción detallado del procedimiento que nos permitirá solucionar el problema en cuestión.
Con esta información ahora si podemos definir de forma clara y concisa un término al cual nos hemos referido anteriormente: Programa.
Un programa es la representación o transcripción de un algoritmo en un lenguaje de programación que permite la resolución de un problema en un ordenador.
Los algoritmos son el punto clave la programación, porque toda la programación se basa en la resolución de problemas. Si no tenemos claro cómo vamos a resolver los problemas, podríamos tener las mejores intenciones pero indudablemente nunca llegaremos a una resolución satisfactoria del problema en cuestión.
Características de los algoritmos
Las características fundamentales que debe cumplir todo algoritmo son:
- Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
- Un algoritmo debe estar bien definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
- Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un número finito de pasos.
Una de las caracteristicas que todo algoritmo tiene es que debe estar compuesto por tres partes:
Entrada: en esta parte del algoritmo se introducen los datos necesarios para la resolución del problema. Estos datos pueden ser temperaturas, fechas, saldos, volumen, flujos másicos, etc.
Proceso: una vez introducidos los datos, esta información se procesa dentro del algoritmo cumpliendo los pasos preestablecidos hasta llegar a la resolucion de la problema.
Salida: una vez culminado el proceso de resolución del problema, la salida o las salidas del algoritmo son sencillamente los resultados de haber aplicado todos los pasos a la información suministrada en la entrada.
Un buen ejemplo de un algoritmo es la receta de cocina, aqui tenemos un claro ejemplo de las tres etapas:
Entrada: Ingredientes y utensilios empleados.
Proceso: Pasos a seguir para llevar ejecutar receta en la cocina.
Salida: plato servido para los comensales (por ejemplo, pastel de chocolate ).
Diagramas de flujo
Un diagrama de flujo es una representación gráfica de un algoritmo o de una parte del mismo. Un diagrama es una representación de la serie de paso para la resolución de los problemas. Al igual que los algoritmos deben tener un punto único de inicio y un punto único de finalización.
Dichos diagramas se construyen utilizando ciertos símbolos de uso especial como son rectángulos, óvalos, pequeños círculos, etc.; estos símbolos están conectados entre sí por flechas conocidas como líneas de flujo. A continuación se presentan estos símbolos y su significado.
A continuación se presenta una lista de los principales símbolos utilizados en un diagrama de flujo:
Terminal | Indica comienzo o final de un programa, subprograma o módulo | |
Captura/emisión de datos | Entrada o salida de información desde o hacia el ordenador | |
Proceso | Proceso interno realizado como asignación de valor a variables, operaciones matemáticas, etc. | |
Decisión | Indica operaciones lógicas o de comparación. | |
Conector | Enlaza dos partes cualesquiera de un programa | |
Línea de flujo | Indica dirección de flujo del diagrama. Los diagramas se leen de arriba hacia abajo y de izquierda a derecha | |
Módulo independiente | Recibe distintos nombres como subprograma, subrutina, proceso, procedimiento, etc. | |
Salida | Es usado para indicar salida de resultados |
Se le presenta un sencillo ejemplo de un diagrama de flujo para la suma de dos numeros:
Ventajas de los Diagramas de Flujo
- Ayudan a ilustrar modelos y a conectar ideas para aumentar nuestra productividad en el entorno profesional incentivando la creatividad
- Favorecen la comprensión del proceso al mostrarlo graficamente. Si un diagrama es bueno ayuda a mejorar la compresión y reemplaza varias páginas de texto sin desmejora de calidad alguna del trabajo.
- Permitir a los programadores identificar posibles problemas y las oportunidades de realizar mejoras del proceso. Este tipo de representación permite identificar los pasos, los posibles flujos de los reprocesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
- Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.
- Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.
- Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos de programación puede ser ejecutado en un ordenador, con un IDE como Free DFD.
Compiladores
Un compilador es un programa que traduce los programas fuente escritos en lenguaje de alto nivel a lenguaje máquina. La traducción del programa completo se realiza en una sola operación denominada compilación del programa; es decir, se traducen todas las instrucciones del programa en un solo bloque.
El programa compilado y depurado (eliminados los errores del código fuente) se denomina programa ejecutable porque ya se puede ejecutar directamente y cuantas veces se desee; sólo deberá volver a compilarse de nuevo en el caso de que se modifique alguna instrucción del programa. De este modo el programa ejecutable no necesita del compilador para su ejecución. Los traductores de lenguajes típicos más utilizados son: C, C++, Java, C#, Pascal, FORTRAN y COBOL
En las proximas publicaciones hablare de los tipos de variables y sus operaciones, bucles y condicionales, funciones y creación de funciones. Seguiré compartiendo más conocimiento con toda esta grandiosa comunidad.
hola @krathos soy nueva en este mundo, steemit me ha parecido una plataforma excepcional, aunque todavia no lo logro comprender a cabalidad. Fijate programar me parece una de las herramientas esenciales, todos los de este mundo deberian tener nociones basicas. Fijate te estare leyendo con bastante atencion las siguientes publicaciones. saludos
@karlab las criptomonedas y la tecnologia de blockchain son un mundo complejo, tranquila que poco a poco podras ponerte al dia. Gracias por el apoyo, estare atento de sus sugerencias para las proximas publicaciones. Saludos
hola steemado @krathos, esta chevre esta iniciativa de enseañar algunos conceptos basicos de programacion saludos
siii vamos a seguir adelante, la idea es explicar claramente algunos conceptos para luego pasar a un lenguaje de programación y que la gente comience a realizar algunos pequeños programas
Saludos, me gusto mucho. Sencillo y muy claro. Espero que continues con tu curso de programación.
Tu post me recordo cuando estudiaba en la universidad cuando estudiaba química. Vi una materia llamada computación. Y todo lo que escribistes en este post fue lo que vimos en el semestra. Y luego progamamos en Basic. Tuve la suerte de tener un Casio progamable y practicaba ahi.
SALUTATIONS DU VENEZUELA
hola @soy-venezuelien, si el tema con la programación es que muchas veces la gente no maneja conceptos fundamentales y se lanza a hechar codigo. Voy a seguir publicando para desarrollar mas las ideas y me gustaria enlazar este curso a un lenguaje para las aplicaciones practicas. Si tienes alguna sugerencia, algo que te gustaria que se le añadiera solo hazmelo saber. Se despide @krathos
Gracias, esperare su segunda entrega...
hermano me parece interesante, ya manejaba esos conceptos me llama la atencion la parte de la elaboracion de pequeños programas. Saludos desde carabobo.
hey que genial otro venezolano mas. Si va mi pana cuando tenga listo algo de eso te aviso