Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Qué se necesita para dominar Python?

¿Qué se necesita para dominar Python?

Creo que "competente" debe cumplir las siguientes condiciones:

Estar familiarizado con los sistemas de hardware convencionales (x86, x64)

Estar familiarizado con la implementación específica de CPython y, si es posible, al menos leerlo Leer el código fuente más de tres veces

Estar familiarizado con cómo se interpreta y ejecuta cada código de bytes de Python

Estar familiarizado con cómo cada declaración de Python se compila en código de bytes

Estar familiarizado con las principales estructuras de datos utilizadas en los métodos de optimización de Python

Estoy familiarizado con JIT y bajo qué circunstancias PyPy tendrá una mayor mejora de rendimiento que CPython, y a qué precio

Por eso siempre me he atrevido a llamarme "Pythonista intermedio". Para aquellos que se atreven a decir que son "competentes" solo porque saben usar Python: los expertos no son tan fáciles de hacer y no hacen trabajos de porcelana sin diamantes. No se limite a decir que es "competente" si no comprende tantos detalles de bajo nivel. No será menospreciado si dice que es "bueno".

Las condiciones enumeradas anteriormente en StackOverflow citadas por @米佳 son las condiciones básicas requeridas para usar Python como lenguaje de trabajo principal. Atrévete a llamarte "competente en Python" porque esto hará reír a mucha gente. Perder dientes grandes. Además, hay varios problemas serios con esos elementos:

Punto 3: Si es posible, intente evitar map/reduce/fitler y use list/generator/setcomprehension. El código es mucho más claro, tal como está. GvR. La diferencia entre xrange y range desaparecerá en Python 3, así que no uses xrange mucho a menos que sea necesario.

Punto 5: Atreverse a utilizar la recursividad de forma extensiva en CPython es un insulto flagrante a la implementación de CPython. Múltiples implementaciones estables de Python no tienen TCO y la recursividad degrada el rendimiento rápidamente. Recuerde una cosa: las llamadas a funciones en Python son muy costosas. Cuando la legibilidad y el mantenimiento tienen poco impacto, expanda las llamadas a funciones tanto como sea posible y convierta la recursividad en bucles tanto como sea posible. La recursividad tampoco es la forma natural en que piensan los humanos.

Punto 7: Leer libros es correcto, pero no trates a Python como un lenguaje funcional clásico, porque no lo es. Das por sentado que será doloroso ("¿¡Por qué abusaste de mí así!?") y te sentirás miserable ("¿¡Por qué no hiciste esto, bla, bla!?"). SICP es un buen libro, pero no dejes que te convierta en dogmático. Debe saber claramente cuándo usar funcional, cuándo usar orientado a objetos, cuándo usar orientado a procesos, cuándo usar orientado a tareas y cuándo usar orientado a resultados. Colgarse de un árbol es una señal de la mayoría de los intransigentes irracionales.