tutorial powered org library docs python documentation

powered - ¿Qué deberían saber las personas nuevas en Python sobre su comunidad y ecosistema?



python download (7)

"¿Qué fue lo que más te confundió cuando recién comenzaste con Python?"

Regla 1 de aprender Python: Usa la Fuente, Luke.

Hay preguntas sobre SO que solicitan una fuente "buena" de la cual aprender Python. Las mejores respuestas equivalen a "leer las bibliotecas que vienen con Python".

Se puede decir que las bibliotecas que vienen con Python son extravagantes. En lugares. Lo que los hace todo lo mejor para aprender.

  1. Hay una comunidad de personas de ideas afines que no son clones.

  2. El software de código abierto es el software de la más alta calidad con el que jamás podrás trabajar, pero no es creado por desarrolladores pagados que impongan rígidamente los estándares.

Estoy formulando una especie de introducción a Python, pero que se centra en la comunidad y el ecosistema que rodea Python en lugar de solo el idioma. Con How to Think Like a Computer Scientist y otros excelentes tutoriales, es fácil familiarizarse con el lenguaje, pero me tomó un buen rato antes de saber de qué se trata The Cheese Shop, o, err, PyPi, cómo funcionan pip y virtualenv y por qué debería usarlos, dónde debería acudir en busca de ayuda, los interesantes blogs que debería seguir, cómo debería verse su código (PEP 8, escribir código pythonic), etc. Las ''cosas blandas''.

¿Qué fue lo que más te confundió cuando recién comenzaste con Python? ¿Hay ciertas cosas que querría saber o recursos que desearía haber encontrado antes que usted? La gente a saber sobre?

Encontré algunas preguntas similares en StackOverflow (por ejemplo, here ) pero nada realmente cercano a lo que me gustaría escuchar de ustedes. Espero que esta pregunta no se sienta demasiado subjetiva a tu gusto :-)

(Y, si desea ayudar, no dude en enviar un mensaje).


"¿Qué fue lo que más te confundió cuando recién comenzaste con Python?"

Regla 2 de aprender Python: cualquier módulo o marco de propósito general que creas que quieres ya se ha escrito. Varias veces.

La parte difícil es darse cuenta de que tu idea es

  1. No es único.

  2. Ya he mejorado antes de que incluso comiences a pensar en ello.

  3. Ya publicado en alguna parte.

Entonces, codifica menos y busca más. Realice búsquedas amplias y flexibles hasta que encuentre cosas que sean similares a lo que quiere hacer.

  • Ten en cuenta que puedes tener un nombre que consideres descriptivo. Pero otras personas pueden llamarlo algo diferente. Únete a la comunidad, adopta sus nombres. Puede que no te guste la frase "ORM", pero así es como se llama.

  • Date cuenta de que tu idea, no importa lo buena que parezca, puede ser realmente mala. Cuando encuentra un marco que parece tener "características adicionales innecesarias", es posible que le falte algo a su idea.

  • Ten en cuenta que tu idea, no importa cuán "intuitiva" parezca, puede ser realmente mala. Cuando encuentre un marco que parezca "contraintuitivo", el problema podría ser suyo. Aprende el de ellos primero, luego compara y contrasta después de que hayas dominado el de ellos. Hasta que hayas dominado el de ellos, sigue buscando y aprendiendo.


Algunos puntos relacionados con el ecosistema e indirectamente la comunidad:

  • Ojalá me hubieran recordado más sobre las Batteries included . Creo que a la gente se le debe pedir que imprima la Tabla de Contenidos de la Biblioteca Estándar y la mantenga debajo de la almohada, para revisiones frecuentes (¡ese consejo, finalmente, lo tomé, varios años después, en una presentación de video de introducción / principiante en línea! ). La estabilidad [relativa], el contenido extenso pero relevante del Std Lib habla sobre la gobernanza reflexiva de los líderes de la comunidad y su querida BDFL.

  • Creo que los recién llegados también pueden ser "advertidos" (la palabra es quizás demasiado fuerte, demasiado injusta) sobre la variedad extrema de PiPy . Esto refleja el colectivo vibrante, inteligente y diverso (en términos de antecedentes, dominio de aplicación, intereses ...) de usuarios y contribuyentes. Sin embargo, esto puede ser abrumador y posiblemente arriesgado, ya que todos los paquetes no están "listos para el horario de máxima audiencia" (pero muchos lo son y "salvaron mi vida" muchas veces).

  • Incluso si te sientes demasiado nuevo en Python, no solo uses las bibliotecas, ¡echa un vistazo bajo el capó! Esto es cierto para muchos idiomas, pero tal vez particularmente para Python, hay mucho que aprender de la lectura de varios códigos fuente. Las razones por las cuales esto puede ser particularmente cierto para Python son intrínsecas al lenguaje en sí (multiprogramas, alto nivel de abstracción ...) pero también debido a la relativa uniformidad del estilo de codificación (y arquitectura) y por el nivel general de colaboración. dentro de la comunidad.


Creo que una de las cosas más importantes que un principiante debe saber sobre el ecosistema de Python es que es un lenguaje de propósito general rodeado de librerías especializadas. Pythonistas experimentados los conocen, pero un novato no puede:

  • No se detenga en tkinter: vaya wx , gtk o qt .
  • No devuelva el código web por las manos: use TurboGears , Pylons , Web.py o Django .
  • No analice HTML / XML con herramientas duras: use lxml o beautifulsoup .
  • No hagas syscall a imagemagik: usa PIL .
  • No hagas matemáticas avanzadas manualmente: usa NumPy y SciPy .
  • No acceda a bases de datos simples a mano: use ORM como SQLAlchemy .
  • No reinvente las ruedas de administrador de sistemas: use Fabric .
  • etc.

Los principales deben ser listados en un libro con guías para elegir entre ellos.


De la PEP 20:

import this

(también conocido como el zen de Python)


Explicar qué es un PEP, cómo está escrito y quién los escribió, dónde podemos encontrarlos. Los PEP ofrecen mucha información de fondo sobre una característica específica del idioma. también son la herramienta que muestra qué tan rápido está evolucionando Python.

(Ojalá hubiera leído algunos PEP antes, pero no estaba realmente al tanto de ellos, aunque están frecuentemente vinculados en el manual)


desarrollar un paquete de Python que se pueda instalar con easy_install, etc. ... Lo considero equivalente a desarrollar un jar o dll, etc.

en el mismo token, desarrollar dicho (s) paquete (s) con virtualenv o buildout

Si hubiera sabido esas cosas antes, probablemente habría usado python para algo más que las secuencias de comandos desde que empecé a usarlo.