Archivo de la categoría: Codigo

Python: qué es y por qué deberías aprender a utilizarlo

¿Sabías que existen más de 700 lenguajes de programación? De hecho, algunas fuentes indican que incluso podrían existir… ¡cerca de 9000 lenguajes de programación! Aprenderlos todos sería imposible pero, por suerte, los más utilizados en la actualidad son solo 50, y entre ellos, se encuentra Python. ¿Quieres saber qué es Python, para qué sirve y por qué es uno de los lenguajes más demandados en el mundo del desarrollo de software? ¡Sigue leyendo!

¿Qué es y para qué sirve Python?

Python es un lenguaje de programación de alto nivel que se utiliza para desarrollar aplicaciones de todo tipo. A diferencia de otros lenguajes como Java o .NET, se trata de un lenguaje interpretado, es decir, que no es necesario compilarlo para ejecutar las aplicaciones escritas en Python, sino que se ejecutan directamente por el ordenador utilizando un programa denominado interpretador, por lo que no es necesario “traducirlo” a lenguaje máquina. 

Python es un lenguaje sencillo de leer y escribir debido a su alta similitud con el lenguaje humano. Además, se trata de un lenguaje multiplataforma de código abierto y, por lo tanto, gratuito, lo que permite desarrollar software sin límites. Con el paso del tiempo, Python ha ido ganando adeptos gracias a su sencillez y a sus amplias posibilidades, sobre todo en los últimos años, ya que facilita trabajar con inteligencia artificial, big data, machine learning y data science, entre muchos otros campos en auge. 

Para que puedas ver lo sencillo que es Python, a continuación tienes un simple programa escrito en este lenguaje, que podrás entender fácilmente incluso si no sabes nada de programación. Se trata de un pequeño aplicativo para calcular un sueldo por horas, algo muy sencillo pero que podría ser perfectamente funcional:

horas = float(input(«Introduce tus horas de trabajo: «))

coste = float(input(«Introduce lo que cobras por hora: «))

sueldo = horas * coste

print(«Tu sueldo es», sueldo)

En las dos primeras líneas se le pide al usuario que introduzca cuántas horas ha trabajado y lo que cobra por hora. En la tercera se hace la operación para calcular el sueldo total y se guarda en una variable. En la última línea de código se imprime por pantalla el resultado. Si, por ejemplo, ponemos que hemos trabajado 8 horas a 15 €, en pantalla se imprimirá “Tu sueldo es de 120”.

Origen de Python

Ahora que ya sabes qué es Python, puede que también quieras saber cómo surgió este increíble lenguaje de programación. A pesar de que pueda parecer algo muy nuevo, Python remonta su origen a principios de los años 90, cuando Guido Van Rossum, un trabajador del Centrum Wiskunde & Informatica (CWI), un centro de investigación holandés, tuvo la idea de desarrollar un nuevo lenguaje basándose en un proyecto anterior, el lenguaje de programación “ABC”, que él mismo había desarrollado junto a sus compañeros.

Su filosofía fue la misma desde el primer momento: crear un lenguaje de programación que fuera muy fácil de aprender, escribir y entender, sin que esto frenara su potencial para crear cualquier tipo de aplicación. En aquellos años, el hardware que había no permitía tal cosa, y es por eso por lo que Python ha resurgido durante los últimos años, porque el avance de la tecnología ha permitido alcanzar el objetivo inicial de este lenguaje de programación adelantado a su tiempo.

¿Dónde se utiliza Python?

Como ya has visto, Python es un lenguaje de programación multiplataforma, algo que permite desarrollar aplicaciones en cualquier sistema operativo con una facilidad asombrosa. Una gran cantidad de tecnologías se llevan muy bien con Python debido a su sencillez y a su gran potencia para el tratamiento de datos, algo que sin duda ha hecho resurgir este lenguaje a nivel laboral, donde cada vez son más las empresas que solicitan expertos en Python.

  • Data analytics y big data: El uso de Python está muy extendido en dos áreas que han estado, y estarán, en boca de todos: el análisis de datos y el big data. Su simplicidad y su gran número de bibliotecas de procesamiento de datos hacen que Python sea ideal a la hora de analizar y gestionar una gran cantidad de datos en tiempo real.

Python está siendo utilizado en la actualidad por muchísimas empresas, tanto de forma directa, como indirecta, ya que detrás de los distintos software de data analytics, muchas veces está este lenguaje interpretado de alto nivel. Analizar una gran cantidad de datos para transformarlos en información útil para el big data es una de las especialidades de Python. 

  • Data mining: La minería de datos o data mining es un proceso que permite analizar grandes bases de datos con el objetivo de predecir futuras tendencias. Se trata de un proceso complejo al que Python puede arrojar luz a través de la limpieza y organización de datos y del uso de algoritmos de aprendizaje automático que simplifica el análisis de datos.
  • Data science: Tras la creación de los motores numéricos como “Pandas” o “NumPy”, Python está desbancando MATLAB, un lenguaje utilizado por científicos a la hora de trabajar con un gran número de datos. La razón es la misma que en los anteriores apartados; la sencillez y la potencia para trabajar con un gran número de datos, unidos al gran número de bibliotecas existentes, hacen que Python sea ideal para este tipo de tareas. 
  • Inteligencia artificial: Seguro que durante los últimos años has oído hablar muchísimo de la inteligencia artificial (IA). Gran parte de su avance se debe a Python. Su facilidad de escritura y su robustez han convertido a Python en el aliado perfecto de la IA. Su capacidad de plasmar ideas complejas en pocas líneas, unidas al gran número de frameworks existentes, han hecho que Python sea uno de los lenguajes de programación que están impulsando a la IA.
  • Blockchain: La base de datos distribuida Blockchain, conocida mundialmente por ser la base sobre la que se sustentan las criptomonedas, también funciona muy bien junto a Python. Como lenguaje versátil, seguro y rápido, es muy útil para formar cadenas de bloques, e incluso permite a los desarrolladores crear una cadena de bloques sencilla en menos de 50 líneas de código, haciendo sencillo algo muy complejo.
  • Machine learning: El machine learningo aprendizaje automático es otra de las tecnologías que está cambiando el mundo tal y como lo conocemos. La robótica y la IA son ahora capaces de aprender por sí mismas a medida que van procesando más y más datos. De esta forma, obtienen información cada vez más relevante que les permite tomar las decisiones adecuadas. Por supuesto, Python es también muy eficaz en este campo, en el tratamiento de datos eficaz es esencial.
  • Desarrollo web: Python también permite desarrollar webs complejas en menos líneas de código, lo que permite que estas sean más ligeras y optimizadas. Django es uno de los frameworks de Python más populares de la actualidad, que puede ser utilizado para crear webs dinámicas y muy seguras. Python es también muy utilizado para hacer scraping, es decir, para obtener información de todo tipo de webs, tal y como lo hacen Netflix, Instagram o Pinterest.
  • Juegos y gráficos 3D: Python también posee una gran capacidad para manejar gráficos 3D gracias la gran cantidad de marcos de trabajo y herramientas existentes. PyGame, Blender o Arcade son algunos de los más conocidos. Uno de los juegos más populares desarrollado con Python es Battlefield 2, un juego de acción bélica lanzado en 2005 en el que el motor gráfico, las animaciones y sus distintas funcionalidades fueron desarrolladas con Python. 

¿Por qué Python es uno de los lenguajes de programación más demandados en el mundo laboral?

Ahora que ya sabes qué es Python y para qué se utiliza, seguro que ya habrás deducido por qué es uno de los lenguajes de programación más demandados en el mundo laboral. Debido a su relación con algunos de los campos con mayor relevancia de la actualidad, como la IA, el Machine Learning o el análisis de datos, se necesitan un gran número de programadores expertos en Python para desarrollar nuevas y emocionantes funciones. 

A pesar de que este lenguaje lleva 30 años en el mercado, las empresas se están encontrando con grandes dificultades para encontrar programadores con conocimientos avanzados de Python. Según el Informe de Empleos Emergentes 2020 de LinkedIn, la demanda de desarrolladores Python ha crecido un 48,73 % respecto al 2019. Los puestos de empleo, como no podía ser de otra forma, están relacionados con las tecnologías de la  información (TIC), las telecomunicaciones y los servicios financieros.

que-es-un-bootcamp

Aprender Python y reorienta tu carrera laboral

Como has podido ver, Python es un lenguaje de programación de código abierto versátil, flexible, multiplataforma y totalmente gratuito, En el presente y en el futuro tendrá una gran relevancia debido a su utilidad en campos tecnológicos en auge como la inteligencia artificial, el big data, el data science, el machine learning, el Blockchain o el desarrollo web. Su uso va en aumento y, por lo tanto, la demanda de programadores expertos en Python, también.

¿Quieres aprender Python y reorientar tu carrera profesional? Las Becas Santander Tech | Reskilling in Data Analytics – Ubiqum Code Academy te ofrecen la oportunidad de hacerlo. Con el objetivo de mejorar la empleabilidad de los jóvenes, Banco Santander impulsa 200 becas para cursar un programa formativo de iniciación al análisis de datos.

Este curso se dividirá en 2 etapas, un curso inicial de Introducción al data analysis, donde podrás aprender a utilizar Python con tareas de minería de datos o aprendizaje automático, y una segunda etapa, reservada para los 50 mejores de la primera, que consistirá en un bootcamp de data analytics y machine learning en el que podrás profundizar en tus conocimientos con el objetivo de reorientar tu carrera laboral hacia el mundo de la economía digital. Este bootcamp tiene una duración de 6 meses, se realiza en la modalidad de part-time y está totalmente centrado en que puedas conseguir un empleo cualificado como programador. En él podrás aprender todo lo que necesitas para incorporarte al mundo laboral del desarrollo de software, utilizando metodologías innovadoras que apuestan por el learn by doing.

¿Por que aprender C++?

Si están pensando en aprender a programar en C++,  te contamos los motivos por los que aprender C++ como lenguaje de programación. En este artículo vemos las ventajas y desventajas de este lenguaje tan versatil y comparaciones con otros lenguajes.

Ventajas de C++

Las ventajas que tiene C++ sobre otros lenguajes de programación son las siguientes:

  • Tiene un alto rendimiento.
  • Es un lenguaje que se está actualizando, y, por lo tanto, a pesar de tener más de 20 años es moderno.
  • Es multiplataforma.

Lenguaje de alto rendimiento

C++ tiene un alto rendimiento por varios motivos:

  • Permite hacer llamadas directamente al Sistema Operativo.
  • Es un lenguaje compilado para cada plataforma.
  • Tiene muchísimos parámetros de optimización.
  • Tiene un acceso directo a la memoria, que además controla el usuario.
  • Tiene una integración directa con el lenguaje ensamblador, tan directa que incluso permite escribir directamente en ensamblador con las diferentes directivas.

Lenguaje moderno y actualizado

C++ nos permite, entre otras muchas cosas:

  • Crear datos complejos.
  • Definir operaciones sobre los datos complejos.
  • Relacionar los datos complejos entre ellos.
  • Realizar programación genérica y templates, que es hacer una clase del mismo código que sirva para cualquier tipo que pase.
  • Implementar múltiples patrones de diseño

Comparativa con otros lenguajes

Podemos realizar una comparativa de C++ con otros conocidos lenguajes de programacion.

Imagen 0 en Por qué aprender a programar C++
  • Se considera a C++ como un superset de C. De hecho, cuando Bjarne Stroustrup lo creó, comenzó a llamarlo “C con clases”, porque permitía hacer un paradigma de orientación a objetos, a diferencia de C, que no permite objetos.
  • Java y C# tienen una sintaxis muy parecida a C++, porque se quisieron basar en ella para que a los programadores no les costara mucho esfuerzo cambiarse de uno a otro. Funcionan sobre una máquina virtual, con los problemas de eficiencia que eso conlleva, pero también teniendo la ventaja de que no tienen hay que compilar el lenguaje para cada para cada sistema operativo, sino que funciona todo en su máquina virtual.
  • Rust es un lenguaje muy moderno que está surgiendo con fuerza y que está generando grandes expectativas, ya que tiene muchas cosas de programación funcional, al igual que C++, que con el nuevo estándar se está actualizando cada 3 años, y permite hacer programación funcional.
  • Haskell permite una mayor programación funcional que C++, ya que es un lenguaje de programación pura.
  • Scripting es un lenguaje interpretado, parecido a Java y C#, pero que no funciona sobre una máquina virtual sino sobre un proceso.
  • Ensamblador es un lenguaje muy difícil de controlar, muy difícil de programar, muy largo y tedioso, que para ello salieron los lenguajes de alto nivel.

Desventajas de C++

El uso de C++ tiene un coste:

  • Tiene que tener una compilación por plataforma.
  • Es un lenguaje muy amplio, ya que tiene muchos años y muchas líneas de código.
  • Su depuración es bastante complicada, debido a los errores que aparecen.

Resumen

A pesar de las desventajas, C++ es tan interesante porque permite programar en lenguaje de alto nivel, y en caso de necesitarlo, permite bajar incluso a lenguaje ensamblador.

Es decir, es un lenguaje que permite tanto alto, como bajo nivel de programación, para optimizar nuestro programa.

Hola mundo en Linux con g++

Programando c/c++ en Linux

Primero que nada nos vamos a ir a la terminal de Linux, para hacer esto podemos ingresar mediante Alt+Ctrl+T. Una vez dentro la forma más básica de comenzar a programar c/c++ es hacerlo mediante terminal. Esto principlamente por que aislamos todos los parámetros que se necesitan para programar, en otros programas donde se usa IDE o Compiadores extras se pierde un poco de información y la noción de lo que se esta haceindo pierde un poco de esencia.

Terminal en Lubuntu

Terminal de Linux

Vamos a comenzar con abrir la terminal y posicionarnos en la carpeta de trabajo, en este caso podemos crear una carpeta en el escritorio.


$ mkdir Desktop/Ejemplos

En la carpeta vamos a crear otra carpeta para el primer ejemplo


$ cd Desktop/Ejemplos
$ mkdir EJ01

Posteriormente vamos a crear un nuevo archivo de texto para poder comenzar a programar, este lo vamos a crear con extensión cpp. Vamos a utilizar el editor nano de la terminal.


$ nano ejemplo01.cpp

Aparecerá posteriormente un editor de texto en la terminal que nos servirá para escribir nuestro programa.

Primer ejemplo en c/c++

Vamos a comenzar a escribir un programa en lenguaje c/c++ lo más básico seria escribir Hola Mundo en la terminal, para esto vamos a ver qué es lo que necesitamos.

Primero que nada vamos a llamar la biblioteca principal iostream (cubriremos más información de esta biblioteca más adelante). Posteriormente creamos la función main. Por lo que el cuerpo principal del programa nos quedaría como sigue:


#include<iostream>
int main (void){
}

Ahora, para poder imprimir información necesitamos mandar llamar la instrucción para imprimir en terminal “cout”, la misma instrucción requiere un espacio de nombres (mas adelante veremos el espacio de nombres mas a detalle), en este caso el espacio de nombres seria “std” por lo que necesitamos poner la siguiente instrucción.


using namespace std;

Por ultimo mandamos llamar (ahora que tenemos el espacio de nombres adecuado) la instrucción “cout”.


cout << “Hola Mundo HeTPro” << endl;

El programa nos quedaría de la siguiente manera:


#include<iostream>
using namespace std;
int main (void){
cout << “Hola Mundo HeTpro” << endl;
return 0;
}

Ahora podemos guarder el codigo con Ctrl+x y seleccionando que si se quieren guardar cambios.

Compilar con g++  en c/c++ y ejecutar el codigo

Una vez de regreso en la terminal y lo que procede a continuación es compliar el código. Para poder compilar el código vamos a utilizar g++ que es el compilador libre por defecto de Linux, para este caso vamos a utilizar la siguiente instrucción:


g++ -Wall –o <Nombre_del_ejecutable> <nombre_del_archivo_a_compilar>

En donde g++ es como ya se había mencionado anteriormente, el compilador, -Wall activa las banderas para visualizar warnings o errores –o es para generar el objeto, <nombre del ejecutable> es el archivo que se va a generar y <nombre del archivo a compilar> es el archivo que acabamos de escribir, por lo que en este caso nos quedaría como se muestra a continuación


g++ -Wall –o Ejemplo ejemplo01.cpp

Si nos marca algún error o warning tendríamos que revisar y buscar que esta generando el error, aunque si el código se escribió correctamente no debería de mostrar nada. Si la compilación se realiza de manera exitosa podemos ver con el comando “ls” en terminal que se ah generado un nuevo archivo que se llama “Ejemplo”. Para poder correr el archivo “Ejemplo” en nuestra terminal escribimos en la misma:


$ ./Ejemplo

Calculadora en Java

En este tutorial aprenderemos a usar la propiedad de la herencia de clases de Java mediante el pequeño ejemplo de una calculadora.

¿Qué es la herencia de clases?

La herencia de clases es la posibilidad de una clase de poder usar los atributos y métodos que ya existen en otra clase distinta, en la Programación Orientada a Objetos (POO) se hace heredando de la clase que contengan los elementos necesarios para tal fin.

La herencia está fuertemente ligada a la reutilización del código en la POO. Esto es, el código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada de ella, o bien una subclase.

Para poder entender mejor estos conceptos veremos un ejemplo sencillo como lo es el desarrollo de una calculadora con las 4 operaciones básicas (suma, resta, multiplicación y división). Para empezar vamos a definir nuestras clases a usar.

Como podemos observar todas las clases tienen tanto atributos como métodos iguales, esto es perfecto para usar herencia, definimos una nueva clase que contenga todos los atributos y métodos de nuestras 4 clases, a esta nueva clase la llamaremos operación y tendríamos ahora el siguiente esquema:

Como podemos observar ahora tenemos la clase Operacion la cual es una superClase porque contiene atributos y métodos que serán heredados por otras clases, y las clases Suma, Resta, Multiplicacion y division que son las subClases porque heredan atributos y métodos de la superClase Operacion.

Ahora que ya entendimos lo que es herencia vamos a implementarla, para este tutorial vamos a trabajar con el lenguaje de programación Java y el entorno de desarrollo NetBeans.

Primero implementaremos la superClase Operacion que es la que contiene los atributos y métodos a heredar

.public class Operacion { double n1; double n2; double res; char operacion; public Operacion(double n1, double n2, char operacion) { this.n1 = n1; this.n2 = n2; this.operacion = operacion; } public void mostrarResultado(){ System.out.println(this.n1+" "+this.operacion+" "+this.n2+" = "+this.res); } }

La herencia en Java (y en otros lenguajes de programación) se declara con la palabra reservada extends seguida de la clase de la cual deseamos heredar.

Para la clase Suma quedaría así:

public class Suma extends Operacion{ double suma; public Suma(double n1, double n2) { super(n1, n2, '+'); this.suma = n1 + n2; this.setRes(this.suma); } }

Resta:

public class Resta extends Operacion{ double resta; public Resta(double n1, double n2) { super(n1, n2, '-'); this.resta = n1 - n2; this.setRes(this.resta); } }

Multiplicación:

public class Multiplicacion extends Operacion{ double multi; public Multiplicacion(double n1, double n2) { super(n1, n2, '*'); this.multi = n1 * n2; this.setRes(this.multi); } }

y por último División:

public class Division extends Operacion{ double div = 0; public Division(double n1, double n2) { super(n1, n2, '/'); if(n2==0) System.out.println("No se puede dividir entre cero"); else this.div = n1 / n2; this.setRes(this.div); } }

Como podemos apreciar en las cuatro clases utilizamos la palabra reservada extends y seguida la clase de la cual se está heredando en nuestro caso Operacion, esto permite tener acceso a los métodos y atributos de esta clase, además hacemos uso del método super que hace una instancia de la superClase Operacion enviando como parámetros los números con los cuales se realizará la operación  y el símbolo de esta, luego ejecutamos la operación y enviamos el resultado a la superClase.

En nuestro programa principal instanciamos a cada una de las clases para realizar las operaciones y hacemos uso del método de la superClase Operacion para mostrar los resultados.

double n1 = 10; double n2 = 5; //suma Suma sum = new Suma(n1,n2); sum.mostrarResultado(); //resta Resta res = new Resta(n1,n2); res.mostrarResultado(); //multiplicacion Multiplicacion mul = new Multiplicacion(n1,n2); mul.mostrarResultado(); //division Division div = new Division(n1,n2); div.mostrarResultado();

Como resultado obtenemos el resultado de las operaciones y las podemos observar en la consola de salida de NetBeans, así que la herencia funciona correctamente.

Puedes encontrar el código de este ejemplo en mi repositorio de GitHub.