Soy un programador con muchos, muchos años de experiencia en C y C ++; Alguna experiencia en lenguaje ensamblador; y fui una de las primeras personas en escribir un programa en Visual Basic cuando se desarrolló por primera vez; y experiencia en muchos otros idiomas, incluidos Pascal, Fortran, Java y otros.
También he pasado gran parte del año pasado aprendiendo los puntos finos de Python. Y debo informar que aunque Python tiene la reputación de ser un “lenguaje fácil”, hay situaciones en las que esto no es así. En pocas palabras, algunas cosas que requieren mucho código se pueden hacer con solo unas pocas líneas de código en Python; Pero algunas cosas que son fáciles en otros idiomas son difíciles de hacer en Python, al menos no son obvias.
Para mencionar algunos detalles:
- Aunque tener que declarar variables puede parecer un trabajo extra, al menos el proceso de declaración de variables deja en claro sus programas. Python no tiene ninguna declaración de variable, en términos de cómo funciona en otros idiomas. En su lugar, en Python, se enlaza un nombre a un valor de datos. Esto lo cambia todo.
- Por ejemplo, la declaración “x = 1” está bien, porque vincula el nombre x con un valor, 1. ¿Pero es legal “x = y”? La respuesta es: es legal si y ya ha estado vinculado a un valor, pero es ilegal de lo contrario. Esto tiene sentido solo cuando estás acostumbrado a ello.
- Puede pensar que está usando una variable global en Python, cuando en realidad creó una variable local involuntariamente porque la vinculó a un nuevo valor dentro de una función. Este es un error sutil pero común que puede causarle muchas, muchas horas de depuración a menos que sea un usuario experimentado de Python.
- No hay paso por referencia ni paso por valor en Python de la forma en que funciona en otros lenguajes como C, Basic, Java, etc. En vez de eso, debes entender la diferencia entre objetos mutables e inmutables, y Cómo eso afecta las cosas. Esto requiere una nueva mentalidad.
- Y, por supuesto, la sangría precisa tiene una importancia inmensa en Python. Esta es una salida radical de otros idiomas, especialmente la familia C, en la que todos los espacios en blanco son iguales. Pero en Python, tener inadvertidamente caracteres de tabulación en tu espacio en blanco puede causar grandes dolores de cabeza. Lo único seguro es desactivar la capacidad del editor de texto para producir pestañas.
En resumen, si se sienta a aprender Python pensando que va a hacer “la forma Python de hacer las cosas” simplemente cambiando la sintaxis de C o Basic e intercambiando el equivalente de Python, tendrá algunas sorpresas desagradables.
- ¿Aprender a gustar algo solo te convence progresivamente de que te gusta?
- Cómo empezar a aprender Unreal Engine 4
- ¿Cómo empiezo a aprender a invertir?
- Cómo aprender algo que es extremadamente difícil para ti.
- ¿Cuáles son algunas de las cosas cotidianas que todos deberían hacer para obtener más conocimientos?
No estoy diciendo que Python sea ilógico o que no haya buenas razones para la forma en que todo funciona en Python. Lo que estoy diciendo es que Python, aunque parece un código de programación indirecto, en realidad se basa en un enfoque que replantea la forma en que todo funciona en un lenguaje de programación.
Irónicamente, si eres completamente nuevo en la programación, es posible que tengas menos tendencia a cometer errores que un programador experimentado que está acostumbrado a hacer las cosas a la manera “C” o “Básica”.
En el lado positivo, es cierto que algunas cosas son mucho, mucho más fáciles de hacer en Python. UNA VEZ que entiendes los aspectos fundamentales. Sin embargo, vale la pena dominar Python, ya que Python tiene características integradas que le permiten hacer lo que requeriría muchas veces la cantidad de código en otros idiomas. Algunas de estas características incluyen: enteros “infinitos”, diccionarios de datos incorporados, listas superflexibles, manipuladores de listas súper potentes y funciones de fácil acceso a archivos. Poner todos estos elementos juntos puede permitirte hacer cosas increíbles en solo una página o dos de código.