El primer lenguaje de programación que aprendí de forma totalmente autónoma fue BASIC. Ya había probado cosas en batch de MS-DOS, pero con BASIC comencé a forjarme un poco.
Luego aprendí el gran C, y otras cosas feas como Visual Basic (que es la fea de la clase con la que tuvimos que bailar).
Cuando llegué a la universidad, conocí a un gran programador y amigo mío, quien entre alguna de nuestras primeras pláticas (que por cierto la tuvimos por que una cierta profesora no nos dejo entrar a clase por tonterías), mencionó a este extraño lenguaje de programación para mi (en aquel entonces 2005).
Investigue un poco y el lenguaje de programación me conquisto por su simpleza, su belleza y su elegancia.
Muchos programadores corren con la desgracia de aprender como primer lenguaje de programación lo que la escuela dicta, tales como Java, o C#.
Quiero aclarar que esto no significa que sean malos lenguajes, si no, por el grado de complejidad, tal vez no sean los mejores para empezar. Existe por tanto, mucha controversia al respecto sobre cual debería ser le primer lenguaje de programación que un novato debería aprender, y mi punto de vista va en respuesta a esto.
He aquí mis 5 razones por las que un novato debería elegir a python como su primer lenguaje de programación.
Tiempo de aprendizaje relativamente corto.
Entre los novatos y los ya experimentados hay una diferencia a la hora de estar aprendiendo un nuevo lenguaje de programación. El experimentado comienza a codear desde el primer momento en que prueba el nuevo lenguaje. Y el novato, tiene la misma intención pero muchas veces no lo puede hacer si no hasta después de varios intentos, y esto le puede frustrar.
Python ofrece aquí una buena opción, ya seas novato o experimentado, comienzas a codear desde el primer momento un "Hola Mundo" sin problemas. Si el aprendiz cuenta con un sistema operativo como MacOS o Linux, python viene por defecto instalado y solo basta abrir una terminal y teclear "python".
Puedes aprender los aspectos básicos de python de 2 a 5 horas fácilmente según la capacidad del aprendizaje. Las cosas son bastante sencillas resumiéndolas en:
1. Tipos de Datos. 2. Estructuras de decisión. 3. Estructuras de ciclado. 4. Funciones.
Lo demás, podemos considerarlo nivel intermedio y avanzado, pero para programación básica es mas que suficiente.
Código simple, elegante y limpio.
Cuando comienzas a programar en python, una de las primeras cosas que debes a tener en cuenta es la forma en como se definen los bloques de código. Es decir, en lenguajes como java o c, usualmente usan los símbolos de corchetes {...} para definir el inicio y final de un bloque.
Esto lleva a que los programadores desarrollen un mal hábito en su escritura, haciendo cosas como esta:
public function test(int v){ if(v>0){ return true; } return false; }
La ejecución de ese pedazo de código correrá sin problemas ya que no tiene errores de sintaxis. Sin embargo, para lectura humana será tediosa y espantosa.
Python define los bloques de código por identación, es decir, algo como esto:
def test(v): if v > 0: return true return false
Así que, el lenguaje obliga al programador a definir perfectamente sus bloques para mantener una estética visual y elegante.
El zen de python podría servirle al novato o experimentado recién allegado al lenguaje de programación a seguir un modelo o recomendaciones a la hora de programar. Cosas como 'Explicito es mejor que implícito' o 'Simple es mejor que complejo', pero si es complejo, que no sea complicado, etc.
La navaja suiza.
Python es extremadamente sencillo. Por lo que su uso se ha extendido a muchos lugares. Puede ser un lenguaje de scripting, como si de bash se tratase pero con todas las ventajas de la simpleza y el potencial que tiene python.
También es bastante usado a nivel de aplicaciones de escritorio, dado que su moldura permite programar ya sea programación lineal o programación orientada a objetos o ambos a la vez. Y el soporte de librerías gráficas es bastante completo. En linux por ejemplo, es usado en conjunto con librerías GTK+ o Qt. En MacOS existe PyObjc, o bien, para propósitos genéricos y multiplataforma (incluyendo Windows), existe wxPython.
En web también existe una basta variedad de opciones, entre los mas conocidos, frameworks como Django, Flask, Pyramid o Web2Py. Muchos de estos, con increíbles implementaciones con modelos multicapa, integración con ORM, Templates, vistas/acciones y manejo de múltiples bases de datos.
También hay opciones para desarrollo móvil, aunque no muy usadas, o bien, códigos embebidos en aplicaciones terceras como Gimp, Blender, SageMath, etc.
Aprender python es entonces, ahorrar tiempo en la enseñanza en desarrollo en otras plataformas.
Tu Programación será rápida. Hay librerías para todo.
El 80% de las veces, te toparas con que deberas programar cosas que probablemente alguien mas ya lo haya hecho, e incluso, de forma genérica, para que, alguien mas pueda usarla con tan solo importar el código como librería. Por lo que tan solo vas a preocuparte de programar solo ese 20% restante.
Supongamos que quieres programar un nuevo cliente Twitter. Por lo que tu misión será investigar primeramente el API de twitter, y como con python puedes comunicarte con ella. Pero no es necesario, ya que mucha gente ya se habrá topado con este problema y habrá hecho algo al respecto. Y es probable que existan mas de una solución. A esto le llamamos librerías.
Las librerías te solucionarán la vida, y existen una increíble cantidad de ellas para python. La comunidad es muy noble y amigable, muchos de los programadores que liberan sus códigos añaden documentación mas que basta para que alguien mas pueda usarlas. Algunos otros, aunque no escribe documentación, podrás leer su códigos y entender su funcionamiento. Recuerda que un buen programador tiene la capacidad de leer el código de otros.
Si algún día escribes una nueva librería para algo, siente libre de publicarla y hacerle la vida mas agradable a otros programadores.
Nunca perderás prática.
Un programador nunca debería perder práctica, sin embargo, es muy común que si el programador usa diferentes lenguajes de programación en su trabajo diario, termine acostumbrándose al que mas usa, y comienza a confundir aspectos de uno con otro.
Con python esto no sucede. Su simpleza y facilidad no te hará confundirlo con ninguna otro lenguaje de programación, y será complicado una vez lo aprendas, lo olvides.
Y es así como espero que mis 5 razones sirvan a aquellos que estén por tocar este lenguaje de programación y aun no se hayan decidido. Se de antemano que hay una gamma increíble de lenguajes en este momento que, para los curiosos, suene muy atractivo aprender los nuevos y extraños. Pero vale la pena darle un tiempo a Python ya que con el, tendremos habilidades multiples.
Jorge Hernandez :: http://jorgeluis.com.mx