Fundamentos esenciales de Programación

Hola amigos lectores,

en este articulo aprenderemos los conceptos teóricos y fundamentales para desarrollar todo tipo de aplicaciones informáticas en cualquier lenguaje de programación de la manera más clara y directa posible. Y conocer los componentes comunes o elementos básicos de cualquier lenguaje y entender cuáles son los pasos correctos que se tiene que dar para convertir cualquier idea ingeniosa que pase por nuestra cabeza en una aplicación informática.

¿Que es Programar?

Bien como en muchos casos me imagino habrán leído o escuchado esta definición en varios lados.

“Un programa de computadora es un conjunto de instrucciones que cumple una tarea especifica.”

nota

Pues bien este concepto no esta del todo claro y por lo tanto no nos ayuda a entender del todo por que si vemos existen programas complejos como Adobe Premier, Office, etc. no es posible comprender que estos es un conjunto de instrucciones como la definición mencionada.

Por lo tanto programar es la capacidad de tomar una idea o concepto grande, compleja en convertirlo en piezas pequeñas que dichas piezas son instrucciones que cumple una tarea especifica y concreta con un orden correcto y juntando todas esas piezas tenemos el resultado final.

Y para eso existen los lenguajes de programación y obvio cada lenguaje tiene su propias instrucciones y sintaxis dependiendo también el numero de instrucciones que escribamos varia con la magnitud del proyecto grande o pequeño que realicemos.

¿Que es un lenguaje de Programación?

Bien a lo largo de la era informática hasta hoy existen cientos de lenguajes de programación, pero lo mas populares en esta época actual pueden variar por varios factores como el numero de software escritos en tales lenguajes, el numero de desarrolladores para tal lenguaje o también la comunidad detrás que tiene.

Pues bien un lenguaje de programación es un conjuntos de instrucciones que la maquina o ordenador entiende para ejecutar determinadas tareas, pero en realidad el chip o procesador es el cerebro principal encargada de leer, ejecutar las instrucciones una vez convertidas a código maquina.

Pero hay lenguajes de bajo nivel y alto nivel. El lenguaje código maquina que es de bajo nivel esta conformada por unos y cero (1 y 0) lo que el procesador entiende. Pero para los programadores nos hace mas fácil aprender y escribir algún lenguaje de alto nivel como Java, C#, Python, JavaScript entre otros pues de igual forma al momento de compilar son convertidos a código maquina que es en realidad lo que el procesador entiende e interpreta.

El lenguaje que mas se acerca a código maquina es de bajo nivel Assembler aunque es un poco difícil de aprender y escribir. Por esa razón los lenguajes de alto nivel es mas fácil y rápido y la curva de aprendizaje es super sencilla.

Código Fuente

El código fuente es un texto plano sin formato escrito con la sintaxis, comandos y sentencias de lenguaje de programación y pueda ser compilado o ejecutado por el ordenador.

Lo cual podemos escribir nuestros programas desde un simple editor de texto sin texto enriquecido, y para esos existen herramientas ya creadas como editor de código que nos facilita, agiliza y nos hace mas productivo como el Editor de Códigos y IDEs.

Lenguajes Compilados e Interpretados

Pues los lenguajes compilados lo que hace es convertir tu archivo del código fuente escrito en algún lenguaje de programación en un archivo ejecutable (código maquina) para poder distribuirlo a otras maquinas y lo ventajoso es que no tienes que pasar el archivo del código fuente solo pasar el archivo ejecutable.

VentajasDesventajas
Preparados para ejecutarseNo son multiplataforma
Usualmente mas rápidosPoco flexibles
El código fuente es inaccesibleSe requiere un paso extra

Los lenguajes interpretados en este caso tendrías que pasar una copia del archivo de tu código fuente escrito en algún lenguaje de programación a la persona que requiera ejecutar tu programa, y lo interpreta en tiempo de ejecución en la maquina del usuario.

VentajasDesventajas
Son multiplataformaSe requiere un interprete
Son mas sencillos de probarA menudo son mas lentos
Los errores de detectan mas fácilEl código fuente es publico

Lenguajes Híbridos (Aproximación intermedia)

Es una mezcla de los dos tanto como compilados y interpretados la rapidez de los lenguajes compilados y la flexibilidad de los lenguajes interpretados.

Es decir que una vez compilado se crear un archivo intermedio que contiene un poco de ambas (lenguaje y código maquina) o también llamados bytecode que en la maquina del usuario el programa es interpretado y ejecutado dependiendo de la plataforma también se le conocen just in time.

Ejemplos de Lenguajes

CompiladosC, C++, Objective C
InterpretadosPHP, JavaScript, Ruby
HíbridosJava, C#, VB.Net, Python

El núcleo de la sintaxis de Programación

Como todo lenguajes de programación que existen en bajo nivel y alto nivel, tienes sus propias características es decir su sintaxis, comandos, sentencias e instrucciones dado que algunos instrucciones para finalizar utilizar el ; (punto y coma).

Pero en realidad la programación consiste en manipular datos, ingresado datos de entrada, procesarlo y como resultado la salida. Un ejemplo muy simple seria ingresar A y B (5 y 8), luego procesar como sumar y como resultado obtenemos la suma que seria 13).

Código modular de Programación

Consiste en agrupar todo el código en pequeñas piezas o bloque de código que serán reutilizados pues en otros otros lenguajes lo llaman subrutina, rutina, método pero en JavaScript que estamos viendo el ejemplo lo llamamos función.

Esto hace muy fácil de comprender nuestro código y hacerlo mas legible y entendible a medida que escribimos códigos en cientos y cientos, o miles de lineas pues eso ayuda a tener el control de nuestro programa a medida que se hace mas complejo.

Colecciones para Programar

En diferentes lenguajes de programación reciben diferentes nombres a veces se llaman Array, matrices, colecciones, diccionario o arreglos pero en definitiva todos tratan del mismo concepto que consiste en tener colecciones de valores agrupados mediante un mismo nombre osea un nombre de variable.

Lo cual podemos acceder al elemento mediante su indice numérico, en este caso de JavaScript un Array puede contener varios tipos de datos mientras en en otros lenguajes solo puede ser un solo tipo de dato.

También es mutable quiere decir que puede variar el tipo de elementos mientras que en otros lenguajes estos son inmutables se define una cantidad de elementos por consiguiente tiene ventajas.

Los mutables son flexibles pero no tan rápido en comparación de lo inmutable es mas rápido el tiempo de ejecución por que solo se preocupa en leer, interpretar un solo tipo de dato y el limite de elementos que contenga.

Así como las variables lo Arrays también poseen propiedades y métodos que permiten la fácil manipulación de sus elementos en acceder y modificarlas.

Estilo de Programación

Pues es la manera, forma, estilo, convención, o reglas que nos dicen como escribir nuestro código para que sea muy legible, fácil de entender, y seguir las buenas practicas.

Por ende nos sugiere la forma de darle nombres a la variables, nombre de clases, como agrupar el bloque de código con llaves, o en que orden se deben declarar las funciones.

Pues la forma mas estándar para dar nombres a variables y funciones es la nomenclatura Camel Case (si tiene un nombre solo va minúscula, si va palabras compuestas la primera letra de la segunda palabra va mayúscula).

  • Tu código debe ser fácilmente legible.
  • Tu código debería se consistente.
  • Deberías sabes cuales son las buenas practicas aceptadas.

Recapitulando los estilos de Programación

  • Usa camelCase para variables, funciones y métodos.
  • Abre las llaves en la misma linea.
  • Define tus funciones ANTES de llamarlas.
  • Siempre usa punto y coma (;) para finalizar las instrucciones.
  • SIEMPRE usa la palabra var para crear una variable en javaScript.

Pseudocódigo

No es precisamente un código de algún lenguaje de programación, mas bien es como un código intermedio tanto el lenguaje humano y algún lenguaje de programación pues tiene la finalidad de ser comprendido por un humano para entender la lógica de nuestro programa que deseamos realizar.

Y recordar que sea legible y entendible por un humano o personas que puedan comprender estas instrucciones en Pseudocódigo.

Veamos un ejemplo:

  • Crear un variable de email
  • Preguntar al usuario por su email
  • Guardar el email en la variable
  • Si la dirección cuadra con un patrón determinado
    • Pon lo en la lista de email
  • si no cuadra
    • Muestra un mensaje de error

¿Que es el DOM en JavaScript?

Viene de la siglas de Modelo de objeto de documento, es la relación que tiene un documento con las piezas que la conforman en este caso lo elementos son como objetos lo cual poseen propiedades y métodos que permiten poder acceder y manipularlas.

Así el DOM es una API Web que con JavaScript podemos acceder a ese elemento (Objeto) poder manipular, modificar, eliminar para que se mas interactiva nuestro documento HTML.

Que podemos hacer con el DOM

Podemos acceder y manipular los elementos que conforman el documento HTML.

  • Tomar el texto de un titulo.
  • Tomar un determinado parágrafo.
  • Tomar el tercer elemento de un menú y hacerlo invisible
  • Cambiar el el color de fondo de un titulo o parrado.
  • Obtener los elementos de una lista
  • Agregar estilos CSS a cualquier elemento

Programación orientada a Eventos

Es la interacion que el usuario hacer con la App web/móvil/desktop y hay muchos lenguajes que lo soportan en este caso de ejemplo usamos JavaScript que también lo soporta lo cual podría ser lo siguiente:

  • Al hacer click
  • Cuando mueve el ratón
  • Cuando pulsa una tecla
  • Cuando hace Scroll

Y antes esos eventos deseamos reaccionar y para eso hay una cosa llamada Listener o escuchadores que escuchan los eventos y ejecuta una determina función que deseamos al tipo de evento determinado.

Nombres de Eventos

Los nombres de eventos en JavaScript tipicamente empieza con la palabra “on” como por ejemplo:

  • onclick
  • ondblclick
  • onmouseover
  • onkeydown
  • onfocus
  • onblur

Tratando con los Eventos

Por lo tanto tenemos que definir el evento que queremos capturar y el Listener que queremos ejecutar con una función.

Tiene el sgte formato:

element.event =
window.onload // cuando el documento carque
nameField.onblur // cuando salgo del foco del elemento input

// Veamos un ejemplo
// Declaramos una función que responde al click del ratón
miElemento.onclick = function() {
 // mi codigo
 // ..
 // .. 
};

Streams

Lo podemos interpretar como el flujo de información porque al final cualquier programa que maneje datos o contenidos de otros programas externos.

Lo que al final termina es tomar una serie de datos por tramos como si de un rió de datos pasara por dicho flujo va leyendo poco a poco los datos binarios, textos que van llegando al programa.

Algoritmos

Vamos a describirlo de forma simple y sencilla, pues un algoritmo es una serie pasos para resolver una determinada tarea, mas bien es un modelo conceptual en lo cual te indica los pasos que hay que hacer para resolver dicho problema.

Puede parecer que es igual a la definición de un programa pero no es así, mas bien un programa es la implementación concreta de como resolver un problema aplicando un algoritmo preciso y conciso.

Ejemplos de Algoritmos de ordenamiento:

  • Bubble sort
  • Heapsort
  • Quicksort
  • Insertion sort
  • Selection sort
  • Merge sort
  • Comb sort

Deja una respuesta