Por qué los principiantes deberían aprender Python

P

En algunas de mis otras publicaciones probablemente hayas notado que soy un gran fan de Node.js. Si bien esto es cierto, y ha sido mi idioma preferido por un tiempo, no siempre lo recomiendo a todos.

Comenzar en programación e informática puede resultar un poco abrumador. ¿Qué idioma debes elegir? ¿Qué IDE debería utilizar? Y lo que es más importante, ¿por qué?

En mi opinión, lo más importante que debe hacer al programar es elegir la herramienta adecuada para el trabajo. Lo segundo más importante es elegir la herramienta con la que se sienta más cómodo. Si le dijera que debería usar C ++ ya que es uno de los lenguajes más rápidos que existen, puede que no sea un buen consejo si nunca ha tenido que lidiar con la administración de memoria o escribir sus propias estructuras de datos. Probablemente lo superes y tengas una mala experiencia.

Python, por otro lado, resuelve muchos de estos problemas por ti. Funciona mucho más lento que C ++, pero también es mucho más fácil de escribir. Y como principiante, probablemente no te importe lo rápido que sea, solo quieres hacer algo genial y aprender los conceptos básicos.

Entonces, la primera decisión que debes tomar es qué idioma quieres aprender. De los cientos de idiomas que existen, ¿por qué los principiantes deberían aprender Python? Bueno, hay algunas razones…

Sintaxis simple

Parte de filosofía central del idioma (resumido por PEP 20, “El Zen de Python”), incluye lo siguiente:

  • Hermoso es mejor que feo
  • Lo simple es mejor que lo complejo
  • La legibilidad cuenta

Entonces, como puede ver, Python fue diseñado desde el principio teniendo en cuenta la simplicidad. Este fue un soplo de aire fresco en el momento de su creación, ya que algunos de los lenguajes más dominantes en ese momento eran C y C ++, que no son muy fáciles de usar.

Comparemos la sintaxis de Python con la de C ++ usando un ejemplo simple de ‘Hola, mundo’:

C ++:

#include stdout
 
int main() {
	std::cout << "Hello, world!n";
}

Python:

print('Hello, world!')

Hay una gran diferencia allí, y todo lo que hicimos fue imprimir una cadena en la consola. Por si acaso, hagamos otra comparación de sintaxis, pero esta vez con PHP:

Python:

x=1
while x <=5:
    print 'x is less than 5:' + str(x)
    x += 1

PHP:

<?php
$x=1;
while($x<=5) {
    echo "x is less than 5: $x";
    x++;
}
?>

Python realmente intenta deshacerse de la ‘pelusa’ y solo requiere lo que realmente es necesario, lo cual es una gran razón por la que fue diseñado para usarse sin llaves y punto y coma al final de la línea. Eche un vistazo a la diferencia que hace (última comparación de sintaxis, lo prometo):

Python

def foo(x):
    if x == 0:
        bar()
        baz()
    else:
        qux(x)
        foo(x - 1)

C:

void foo(int x)
{
    if (x == 0) {
        bar();
        baz();
    } else {
        qux(x);
        foo(x - 1);
    }
}

Realmente no estoy tratando de criticar otros idiomas aquí. Todos estos otros lenguajes mencionados son realmente geniales y tienen toneladas de usos, pero simplemente no son muy buenos para principiantes.

Con palabras clave como is, noty with, un script de Python bien escrito casi se puede leer como en inglés simple. Esto es especialmente cierto para if condiciones de la declaración, que pueden ser difíciles de leer si crecen lo suficiente:

a = None
b = None

if a is not None and b is not None:
    print 'Foo!'
else:
    print 'Bar!'

La declaración condicional anterior es mucho más limpia que la típica if ((a != null) && (b != null)).

Fácil de configurar y ejecutar

Muchos principiantes que intentan aprender un idioma fallan incluso antes de escribir una sola línea de código. Con algunos lenguajes, como Java, debe instalar y configurar directorios de proyectos complicados y luego compilar su código.

Con Python, todo lo que tiene que hacer para comenzar es descargar y ejecutar el instalador, y correr python <your-script>.py. No hay que crear ni compilar una estructura de directorios complicada.

Aunque se está volviendo cada vez más raro en los lenguajes modernos, compilar su código puede ser mucho más difícil de lo que cree (aunque es un mal necesario). Solo eche un vistazo a este pequeño archivo MAKE para C:

CC = gcc
CFLAGS  = -g -Wall

TARGET = myprog

all: $(TARGET)

$(TARGET): $(TARGET).c
	$(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c

clean:
	$(RM) $(TARGET)

Y considero que esto es un simple archivo MAKE. Elegiría Python sobre esto cualquier día.

Python le permite aprender los conceptos de programación primero antes de entrar en los detalles sucios de cómo el código de alto nivel se traduce en código a nivel de máquina, que debe aprender absolutamente, pero no cuando comienza.

Biblioteca estándar enorme

Una de las fortalezas más promocionadas de Python es su biblioteca estándar, y por una buena razón. Viene con más de 300 módulos (en la versión 3.5), que van desde un servidor HTTP mínimo (BaseHTTPServer) a bases de datos (sqlite3), a bibliotecas de compresión (gzip).

La gran mayoría de las cosas que querrá hacer con Python generalmente ya están hechas en estas bibliotecas estándar. Para que pueda comenzar a crear cosas interesantes con poco esfuerzo, como aplicaciones con Machine Learning.

De vez en cuando tendré que recordarme a mí mismo revisar los módulos y ver qué hay disponible para evitar volver a escribir el código.

Así que antes de irse y tratar de escribir un análisis de URL biblioteca, verifique si ya existe primero!

Una de las mejores partes de no tener que escribir todo este código usted mismo es saber que ha sido probado a fondo y sin errores. Gran parte de este código ha existido durante un tiempo y se ha utilizado en las principales empresas (de las que hablaremos más adelante), por lo que sabe que ha pasado por el timbre.

La comunidad

Una comunidad grande y activa significa dos cosas:

  • Muchas bibliotecas de terceros
  • Mucha gente para ayudarte

Estos puntos son posiblemente algunas de las razones más importantes por las que debería usar Python, independientemente de su nivel de habilidad. Esto significa que tendrá mucha más documentación, tutoriales y código para revisar y aprender mejor el idioma.

Python se ha clasificado constantemente como uno de los principales lenguajes de programación según varias fuentes, como por Redmonk (# 4) y Tiobe (# 5).

Incluso más importante que la popularidad del idioma es la demanda de los empleadores. Puede ver en el gráfico a continuación (por En efecto) que Python es el segundo lenguaje más solicitado por los empleadores, lo que significa que tiene más posibilidades de utilizar sus habilidades de programación como carrera.

Fácil de depurar

Como principiante, una de las habilidades más difíciles de dominar es la depuración. Aquí es donde realmente se llega a conocer un idioma y su funcionamiento interno. Ocasionalmente, tendrá errores fáciles que son solo errores de sintaxis, y otras veces tendrá errores realmente difíciles de encontrar que solo aparecen 1 de cada 100 veces que ejecuta su programa.

Aquí es donde realmente conocerá a su depurador y los errores comunes en un idioma.

Por suerte para ti, Python tiene muy buen manejo y reporte de errores, mientras que muchos otros lenguajes no lo tienen.

Por ejemplo, en C ++, si algo sale mal (como eliminar la cerca de un puntero no válido, acceder a un elemento de la matriz fuera de los límites, etc.), tendrá suerte si el programa falla. De esa manera, sabrá que hay un problema en algún lugar de su programa, pero probablemente no sepa dónde (y los depuradores no siempre son sencillos para un principiante). Si no tiene suerte, el programa no se bloqueará (o simplemente se bloqueará en momentos aleatorios) y, en cambio, le dará errores oscuros que no son muy obvios.

Lo que Python apesta

De acuerdo, no pensé que sería correcto escribir este artículo brillante sobre Python y no hablar de sus desventajas. Como cualquier otro idioma, está lejos de ser perfecto, hay muchas cosas para las que no debes usarlo.

Como he mencionado varias veces, Python es lento. Realmente lento en comparación con lenguajes compilados como C / C ++ o Go. Esto se debe a que tiene bastantes características que lo ralentizan, como escribir dinámicamente y recolectar basura.

Lo que esto significa para usted es que no debe usar Python puro para procesar muchos datos, sino que tendrá que agregar enlaces C ++ (de los que hablaremos otro día).

Y gracias a la recolección de basura de Python, no puede usarla para sistemas en tiempo real. Esto se debe a que la recolección de basura hace que el código se ejecute en un período de tiempo no determinista, por lo que no sabrá si su función tardará 1 ms o 100 ms en ejecutarse. Hay demasiadas incógnitas. En cambio, para estos programas en tiempo real, normalmente tendrá que utilizar un lenguaje con gestión de memoria manual como C o C ++.

En esa misma línea, dado que Python depende de tantos recursos del sistema y tiene un intérprete, normalmente puede (digo ‘normalmente’ porque hay otras opciones) solo ejecutan código Python en la parte superior de un sistema con un sistema operativo (es decir, sin microcontroladores u otros sistemas integrados).

Conclusión

Estas son solo algunas de las razones por las que Python es ideal para principiantes. Hay tantos recursos en estos días para comenzar que será una pequeña inversión de tiempo comenzar a programar con Python.

¿Qué idioma aprendiste primero y por qué? ¡Háznoslo saber en los comentarios!

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad