Cómo mejorar en Python

Creo que el proceso de dominio de Python fue algo así como:

  1. Descubrir lista de comprensiones.
  2. Descubrir generadores
  3. Incorpore map, reduce, filtre, iter, rango, rango a menudo en su código
  4. Descubrir decoradores
  5. Escribir funciones recursivas, mucho
  6. Descúbrelo en artículos y funciones.
  7. Lee Real World Haskell (lee gratis en línea)
  8. Reescriba todo su antiguo código Python con toneladas de funciones de orden superior, recursión y todo eso.
  9. Molesta a tus compañeros de cubículo cada vez que te presentan una clase de Python. Afirmar que podría ser “mejor” implementado como un diccionario más algunas funciones. Abrazar la programación funcional.
  10. Redescubre el patrón de Estrategia y luego todas esas cosas del imperativo código que intentaste olvidar después de Haskell.
  11. Encuentra un equilibrio.

Tengo una lista de buenos proyectos que afilan habilidades en Python.

1. Dice Rolling Simulator

El objetivo: como sugiere el título, este proyecto implica escribir un programa que simule los dados rodantes. Cuando se ejecuta el programa, elegirá aleatoriamente un número entre 1 y 6. (O cualquier otro número entero que prefiera, la cantidad de lados en el dado depende de usted). El programa imprimirá cuál es ese número. Entonces debería preguntarte si te gustaría rodar de nuevo. Para este proyecto, deberás establecer el número mínimo y máximo que pueden producir tus dados. Para el dado promedio, eso significa un mínimo de 1 y un máximo de 6. También querrá una función que tome aleatoriamente un número dentro de ese rango y lo imprima.

2. Adivina el número

El objetivo: Similar al primer proyecto, este proyecto también usa el módulo aleatorio en Python. El programa primero generará aleatoriamente un número desconocido para el usuario. El usuario necesita adivinar cuál es ese número. (En otras palabras, el usuario debe poder ingresar la información). Si la suposición del usuario es errónea, el programa debería devolver algún tipo de indicación de qué tan mal (por ejemplo, el número es demasiado alto o demasiado baja). Si el usuario adivina correctamente, debería aparecer una indicación positiva. Necesitará funciones para verificar si la entrada del usuario es un número real, para ver la diferencia entre el número ingresado y los números generados aleatoriamente, y luego comparar los números.

3. Mad Libs Generator

El objetivo: inspirado en el proyecto Summer Lib’s Mad Libs con Javascript. El programa primero solicitará al usuario una serie de entradas a la Mad Libs. Por ejemplo, un nombre singular, un adjetivo, etc. Luego, una vez que se haya ingresado toda la información, el programa tomará esos datos y los colocará en una plantilla de historia prefabricada. Necesitará indicaciones para la entrada del usuario y, a continuación, para imprimir la historia completa al final con la entrada incluida.

4. TextBased Adventure Game

El objetivo: ¿Recuerdas la aventura? Bueno, vamos a construir una versión más básica de eso. En un juego de texto completo, el programa permitirá a los usuarios moverse a través de las salas en función de los comentarios de los usuarios y obtener descripciones de cada sala. Para crear esto, deberá establecer las direcciones en las que el usuario puede moverse, una forma de realizar un seguimiento de la distancia que se ha movido (y, por lo tanto, en qué habitación se encuentra) e imprimir una descripción. También deberá establecer límites en cuanto a la distancia que puede moverse el usuario. En otras palabras, cree “paredes” alrededor de las habitaciones que le digan al usuario: “No puede avanzar más en esta dirección”.

5. ahorcado

El objetivo: a pesar del nombre, la parte real del “ahorcado” no es necesaria. El objetivo principal aquí es crear una especie de juego de “adivina la palabra”. El usuario debe ser capaz de introducir conjeturas de letras. También se debe establecer un límite de cuántas conjeturas pueden usar. Esto significa que necesitará una forma de captar una palabra para adivinar. (Esto se puede obtener de una lista prefabricada. No es necesario que sea demasiado sofisticado). También necesitará funciones para verificar si el usuario realmente ingresó una sola letra, para verificar si la letra ingresada está en la palabra oculta (y si es así, cuántas veces aparece), para imprimir letras y una variable de contador para limitar las conjeturas.

LEER LIBROS

En mi experiencia, muchos tutoriales en línea son escasos e incompletos. Algunos están escritos por usuarios que son malos en la escritura y la comunicación, mientras que otros no tienen el conocimiento suficiente para enseñar el contenido.

Por otro lado, los libros están escritos por expertos acreditados (los buenos al menos). En su mayoría están completos, con los conceptos y técnicas que necesita para aprender a dominar el tema.

No todos los temas tienen un libro, por supuesto. Pero como eres un principiante, estoy seguro de que hay buenos libros de los que puedes consultar y aprender. Además, hay muchos libros para usuarios intermedios y avanzados. Simplemente busque Python en Amazon, y verá la gran cantidad de libros solo en Python. (De hecho, he observado que los libros sobre Python tienen la mayor diversidad de temas)

A diferencia de los tutoriales, leer un libro requiere mucho más tiempo y paciencia. Pero a largo plazo, tendrá una mejor comprensión y una base más sólida.

Puedes probar una de las muchas competiciones de codificación en línea:

  • Google Code Jam
  • SPOJ
  • Proyecto euler
  • Hackerrank
  • Codigo Chef

Podrías intentar hacer algo avanzado con el lenguaje. Como escribir un analizador para las instrucciones MIPS para convertirlas a binario. O la visión por ordenador utilizando OpenCV. Las posibilidades son infinitas.

  1. Lee y entiende el código de otras personas.
  2. Intenta arreglar / mejorar el código de otras personas.
  3. Escribe más código.

Eso es básicamente eso. Encuentra un proyecto que te guste, lee su fuente. Vaya al rastreador de errores e intente descubrir cómo corregir errores o implementar las características exigidas. O agrega el tuyo.

Esto no solo le enseñará cómo mejorar en Python y la programación en general, sino también sobre cómo contribuir a otros proyectos, cómo tratar con otros programadores e incluso cómo trabajar con un equipo de personas en el mismo código.

Bueno, lo primero es lo primero, hiciste un excelente trabajo si te hiciste con lo básico. Ahora puedes mejorar tus cosas existentes. Hacker Rank puede ser una buena opción para explorar otras cosas y desafiar tu mente. Personalmente, estaba bastante interesado en el campo de las matemáticas y preferí el Proyecto Euler por el mismo.