Cuando se inicia en el mundo de la programación web, a veces leemos tantas cosas y escuchamos tantos conceptos que como principiantes al fin, no entendemos o pasamos por alto, pero que son muy importante que conozcamos, como todo buen desarrollador de software.

 

He decido hacer un you must know, sobre conceptos muy importantes en programación, obviamente no abordaremos todos en este primer artículo, sin embargo, no dejará de ser un buen comienzo. Algunos de estos conceptos, serán especialmente útiles para los desarrolladores en tecnologías web, no obstante, son conceptos generales que los desarrolladores deberían conocer aunque no sea su área de experiencia.

 

Lo primero que debemos saber independientemente, del lenguaje de programación que vayamos  a usar o si vamos a programar web, desktop o videojuegos, es que los lenguajes de programación son de propósito general, podemos hacer lo que deseemos en cualquier lenguaje. Lo que si es cierto es que, algunos están orientados a ciertos escenarios y por ende son más eficientes en determinadas áreas, sin embargo, eso no implica que no podamos usarlos en otros.

 

Lo primero que debemos adquirir, antes de empezar a aprender un lenguaje determinado es el razonamiento lógico, que implica?

 

El razonamiento lógico es el proceso mental que implica poner en práctica la lógica para analizar si cierta premisa es verdadera, falsa o posible. Hay dos tipos de razonamiento lógico: el razonamiento deductivo (en el que sólo interviene la lógica) y el razonamiento inductivo (donde puede intervenir la probabilidad).

 

Sin embargo, el razonamiento lógico, no es algo que podemos adquirir de la noche a la mañana, requiere de lectura y estudio, lamentablemente, aún entre programadores es algo que no todos poseen. hay algunas fuentes disponibles gratis, que podemos usar para estos fines.

 

Paradigmas en la programación Orientada a Objetos

 

El paradigma orientado a objetos (OO) define los programas en términos de comunidades de objetos. Los objetos con características comunes se agrupan en clases (un concepto similar al de tipo abstracto de dato (TAD)). Los objetos son entidades que combinan un estado (es decir, datos) y un comportamiento (esto es, procedimientos o métodos). Estos objetos se comunican entre ellos para realizar tareas. Es en este modo de ver un programa donde este paradigma difiere del paradigma imperativo o estructurado, en los que los datos y los métodos están separados y sin relación. El paradigma OO surge para solventar los problemas que planteaban otros paradigmas, como el imperativo, con el objeto de elaborar programas y módulos más fáciles de escribir, mantener y reutilizar. Entre los lenguajes que soportan el paradigma OO están Smalltalk, C++, Delphi (Object Pascal), Java y C#.

 

Los Cuatro pilares en Programación orientada a objetos:

 

  1. Abstracción
  2. Herencia
  3. Polimorfismo
  4. Encapsulación

 

Qué es un compilador?

Un compilador es un programa informático que traduce un programa que ha sido escrito en un lenguaje de programación a un lenguaje común,​ usualmente lenguaje de máquina, aunque también puede ser traducido a un código intermedio (bytecode) o a texto. Este proceso de traducción se conoce como compilación.​.

 

Qué es un intérprete?

Intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas. Los intérpretes se diferencian de los compiladores o de los ensambladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).

 

Patrones de diseño

 

En resumidas cuentas un patrón de diseño es un “boceto, base o esqueleto de soluciones a problemas comunes o recurrentes en desarrollo de software”. En otras palabras, es una solución probada que se ajusta a las necesidades de determinado tipo de sistema o aplicación.

Hay tres tipos de patrones de diseño:

  1. Creacionales
  2. Estructurales
  3. Comportamiento

 

Qué es un IDE?

Entorno de Desarrollo Integrado (IDE).

Un entorno de desarrollo integrado, es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI).

Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto.

  • Multiplataforma
  • Soporte para diversos lenguajes de programación
  • Integración con Sistemas de Control de Versiones
  • Reconocimiento de Sintaxis
  • Extensiones y Componentes para el IDE
  • Integración con Framework populares
  • Depurador
  • Importar y Exportar proyectos
  • Múltiples idiomas
  • Manual de Usuarios y Ayuda

Que es un framework?

Un framework, según wikipedia, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Suelen estar orientados a un determinado lenguaje o escenario. Tales como, Asp.Net framework de Microsoft, para desarrollo web. Como Microsoft lo define es un framework open source(código abierto), para crear aplicaciones web basadas en HTML5, CSS y Javascript.

 

Que son protocolos?

En informática, un protocolo es un conjunto de reglas usadas por computadoras para comunicarse unas con otras a través de una red. Un protocolo es una convención o estándar que controla o permite la conexión, comunicación, y transferencia de datos entre dos puntos finales.

 

Protocolos Http

El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un sencillo protocolo cliente-servidor que articula los intercambios de información entre los clientes Web y los servidores HTTP

HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actúan; cada objeto Web (documento HTML, fichero multimedia o aplicación CGI) es conocido por su URL.

 

Que es Rest?

Transferencia de Estado Representacional, Rest es un estilo  Arquitectónico para sistemas distribuidos. Podemos considerar un sistema distribuido a una aplicación cliente/servidor. Puede constar tanto de una o varias aplicaciones que se comuniquen a través de la red.

 

Que es SOAP?

 

SOAP (Simple Object Access Protocol, Protocolo Simple de Acceso a Objetos) es un protocolo de mensajes entre computadores. SOAP especifica el formato de mensaje que accede e invoca a los objetos, más que un objeto en particular. Es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML

 

Que es el control de versiones ?

El control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante.

 

Algunos de los sistemas de control de versiones más famosos son:

  •  Subversion(también conocido como Svn)
  •  Git
  • Mercurial.

Business

 


Conclusiones

Los desarrolladores necesitamos manejar muchos conceptos propios de las tecnologías que usamos o el área a la que nos estemos orientando. Esta es una tarea que no podemos dar por terminada, pues «lo único constante, es el cambio».