Red de conocimiento informático - Conocimiento informático - Cómo aprender sistemáticamente el lenguaje Python

Cómo aprender sistemáticamente el lenguaje Python

Sin conocimientos básicos, aprendiendo un lenguaje para enriquecerse, Python, que es simple, hermoso y fácil de usar, es una buena opción. Entonces, ¿cómo aprender Python por tu cuenta de forma sistemática?

Algunas personas realmente quieren aprender bien Python. Por un lado, están enredadas en asuntos triviales y nunca han podido comenzar. Por otro lado, les preocupa el costo del aprendizaje. ¿Demasiado alto y se están dando por vencidos en silencio?

Afortunadamente, Python es un lenguaje de programación apto para principiantes y no es necesario dedicar demasiado tiempo ni energía para dominarlo por completo.

Una de las filosofías de diseño de Python es que es simple y fácil de aprender, lo que se refleja en dos aspectos:

La sintaxis es concisa y clara: en comparación con Ruby y Perl, su Las características de sintaxis no son más ni menos. Todo es simple y directo, sin metafísica involucrada.

Hay muchos puntos de entrada: Python te permite hacer muchas cosas, incluyendo computación científica y análisis de datos, rastreadores, sitios web, juegos, utilidades de línea de comandos, etc. Siempre hay uno que te interesa a ti y a Willing. para invertir tiempo.

Sin más preámbulos, sólo hay un atajo para aprender un idioma: Primeros pasos

1 Etapa inicial

Cualquier lenguaje de programación contiene dos partes: conocimiento duro. y el conocimiento blando. La tarea principal en la etapa inicial es dominar el conocimiento duro. Cualquier lenguaje de programación contiene dos partes: conocimiento duro y conocimiento blando. La tarea principal en la etapa inicial es dominar el conocimiento duro.

1. Conocimiento duro

El "conocimiento duro" se refiere a la sintaxis, algoritmos y estructuras de datos de lenguajes de programación, paradigmas de programación, etc., como: variables y tipos, declaraciones de bucle. , ramas, función, clase. Esta parte del conocimiento también es universal. Parece haber dominado una especie de gramática, pero en realidad ha establecido una especie de pensamiento. Por ejemplo, si a un programador de Java se le pide que aprenda Python, puede asignar rápidamente el conocimiento orientado a objetos aprendido en Java a Python, de modo que pueda dominar rápidamente las características orientadas a objetos de Python.

Si eres nuevo en la programación, un libro de gramática confiable es muy importante. Puede parecer tedioso, pero es esencial para desarrollar una mentalidad de programación sólida.

La siguiente es una lista de algunos materiales didácticos adecuados para principiantes: "Aprende Python de la manera más difícil": http://learnpythonthehardway.org/book/

Este libro explica Python También viene con una gran cantidad de ejemplos prácticos, lo cual es muy adecuado para comenzar rápidamente. "¡La guía del autoestopista de Python!": ¡La guía del autoestopista de Python!

Esta guía se centra en las mejores prácticas de Python. Ya seas un experto en Python o un novato, puedes obtener una gran ayuda. "Documentación oficial de Python": nuestra documentación

Las respuestas a la mayoría de las preguntas en la práctica se pueden encontrar en la documentación oficial. Herramienta auxiliar: Python Tutor

Un proyecto de visualización de objetos de Python que utiliza gráficos para ayudarlo a comprender varios conceptos en Python.

Filosofía de Python:

Utilice un método, preferiblemente solo un método, para hacer una cosa.

Lo mismo ocurre con el estudio, aunque se recomienda una variedad de materiales de estudio, a la hora de estudiar, lo mejor es elegir solo uno de ellos y ceñirse a él.

Cuando sea necesario, es posible que necesites leer libros que expliquen estructuras de datos y algoritmos. Este conocimiento es de gran ayuda para comprender y utilizar el modelo de objetos en Python.

2. Conocimiento blando

El "conocimiento blando" se refiere a las habilidades gramaticales en un entorno lingüístico específico, el uso de bibliotecas de clases, la elección de IDE, etc.

Incluso si no comprende esta parte en absoluto y no puede usarla, no le impedirá programar. Es solo que el programa que escriba parecerá "tonto".

El aprendizaje de estos conocimientos depende del campo y profundidad del problema que se intenta resolver. Para los principiantes, es fácil perderse en la etapa inicial, o dudar al elegir una versión de Python, mirar 2.7 por un tiempo y luego cambiar a 3.0 por un tiempo, o vagar en el mar de bibliotecas de clases, incapaz de liberarse, incluidos Scrapy, Numpy y Django. Pruébelo, o participe en actividades sin sentido como la yihad del editor, la exploración de sangrías de llaves, concursos de debate sobre sistemas operativos, o arrodíllese y lama el azúcar de sintaxis todo el día, siempre pensando en cómo. hacer todo con una línea de código, o concebir una solución santa con puntuaciones perfectas en términos de rendimiento, seguridad, versatilidad y robustez.

Muchos "grandes" advertirán a los principiantes que utilicen esto y aquello, y evitarán desvíos. Esto empujará a los principiantes a tomar desvíos reales.

Es mejor decirles a los principiantes que el aprendizaje es un proceso que requiere que tomes desvíos y cometas errores, y que solo puedes tener los pies en la tierra. No hay milagros, solo mierda.

Elige primero una dirección a seguir, incluso si está sucia y fea y ya no puedes caminar, luego mira si hay una solución mejor.

Sólo cuando te desvíes podrás conocer los beneficios de hacerlo y entender por qué las personas pueden inventar expresiones regulares cuando pueden escribir a mano máquinas de estados que coincidan, por qué tienen que estar orientadas a objetos cuando se trata de procesos. Las soluciones orientadas se pueden resolver y por qué puedo manipular cada puntero pero tengo que administrar automáticamente la memoria. ¿Por qué tengo que usar Promise cuando puedo anidar devoluciones de llamada?

Más importante aún, lo entenderás. que las soluciones de alto nivel son todas Es una encapsulación de bajo nivel, que no es la más efectiva y adecuada en todas las situaciones.

La afluencia de tecnología es como una ola. Aquellas viejas tecnologías que han estado selladas durante mucho tiempo se desvanecerán y tarde o temprano volverán. Al igual que la popularidad actual de las aplicaciones móviles, los juegos móviles y HTML5, ¿no se repiten algunos aspectos la historia de las PC en el pasado?

Por lo tanto, no te preocupes por tomar el camino equivocado y perder la vida. La persistencia y el progreso son los caminos correctos.

La tarea principal en la etapa inicial es dominar el conocimiento duro y comprender adecuadamente el conocimiento blando. Sólo con raíces estables y ramas fuertes podemos cultivar hojas gruesas y dar frutos dulces.

2. Etapa de desarrollo

Después de completar el aprendizaje de los conocimientos básicos, definitivamente sentirás una sensación de vacío y dudarás de si este conocimiento gramatical es realmente útil.

Sí, tu sospecha es muy acertada. Para que Python ejerza su valor, por supuesto no puede detenerse en el nivel de sintaxis.

La tarea principal en la etapa de desarrollo es “salir de Python y abrazar el mundo”.

Habrá múltiples ramas frente a usted: informática científica y análisis de datos, rastreadores, sitios web, juegos, utilidades de línea de comandos, etc. Estos no son problemas que puedan resolverse con solo conocer la sintaxis de Python. .

Tome los rastreadores como ejemplo. Si no sabe nada sobre redes informáticas, protocolos HTTP, HTML, codificación de texto y JSON, ¿podrá hacer bien esta parte del trabajo? Y su conocimiento básico en la etapa inicial es igualmente importante. Si necesita consultar la documentación sobre cómo escribir bucles y recursiones, y ni siquiera sabe cómo implementar BFS, es como un artesano que hace un banco de piedra. Pensar en cómo usar el martillo cada vez que lo levanta. Lo mismo, muy ineficiente.

En esta etapa, es inevitable entrar en contacto con una gran cantidad de bibliotecas de clases y leer una gran cantidad de libros.

Biblioteca de clases °1

"Awesome Python Project": vinta/awesome-python · GitHub

Aquí hay una lista de varios problemas prácticos que estás intentando resolver Cuando se trata de preguntas, la comunidad Python ya cuenta con bibliotecas de tipo herramienta, como se muestra en la siguiente figura:

Puede encontrar la biblioteca de clases que necesita según sus necesidades reales.

En cuanto a cómo utilizar bibliotecas de clases relacionadas, la habilidad que se debe dominar es leer la documentación. Dado que la mayoría de los documentos en la comunidad de código abierto están escritos en inglés, los estudiantes que no dominan el inglés deben compensarlo.

°2 Libros

Aquí solo enumero algunos libros que creo que son más útiles. Para obtener más detalles, lea las reseñas de libros de Douban:

Análisis de ciencia y datos. : "Programación de inteligencia colectiva": Programación de inteligencia colectiva "La belleza de las matemáticas": La belleza de las matemáticas "Método de aprendizaje estadístico": Método de aprendizaje estadístico "Reconocimiento de patrones y aprendizaje automático": Reconocimiento de patrones y aprendizaje automático "Práctica de ciencia de datos": Datos práctica científica "Introducción a la recuperación de datos": Introducción a la recuperación de información

Rastreador: "La guía definitiva de HTTP": La guía definitiva de HTTP

Sitio web: "HTML y CSS Diseño y Construcción de Sitios Web": Diseño y construcción de sitios web HTML y CSS

...

No es necesario continuar la lista aquí.

Si eres inteligente, definitivamente descubrirás que la mayoría de los libros anteriores no tratan sobre Python, sino más bien sobre conocimientos profesionales.

De hecho, el llamado "saltar de Python y abrazar el mundo" aquí en realidad significa descubrir que la combinación de Python y el conocimiento profesional puede resolver muchos problemas prácticos. Hasta dónde puedes llegar en esta etapa depende más de tu propio conocimiento profesional.

3. Etapa en profundidad

En esta etapa, ya sabes casi todo sobre Python, por lo que debes saber que Python está implementado en lenguaje C.

Pero ¿cómo se implementan las "características dinámicas" de los objetos Python utilizando el lenguaje C de nivel relativamente bajo que ni siquiera tiene administración automática de memoria? En este momento, ya no podemos quedarnos en la superficie. Debemos abrir con valentía la caja negra de Python, profundizar en el lenguaje, ver su historia y leer su código fuente, solo así podremos comprender verdaderamente sus ideas de diseño.

Aquí se recomienda un libro:

"Análisis del código fuente de Python": análisis del código fuente de Python

Este libro proporciona la parte central del código fuente de Python. Se proporciona una explicación detallada, pero leer este libro requiere una buena comprensión del modelo de memoria del lenguaje C y sus punteros.

Además, Python en sí es un lenguaje dinámico que combina múltiples paradigmas, es decir, en comparación con la programación procedimental de C, la programación funcional de Schema y Haskell, y la orientada a objetos basada en clases. La programación de Java no es lo suficientemente pura. En otras palabras, el "taoísmo" de los lenguajes de programación sólo se puede entender de forma limitada en Python. Al aprender un determinado paradigma de programación, comenzar con aquellos lenguajes que son más puros para este paradigma puede conducir a una comprensión más profunda y a comprender las raíces del lenguaje Python.

Aquí hay un curso abierto recomendado

"Paradigmas de programación": Curso abierto de la Universidad de Stanford: Paradigmas de programación

El profesor tiene un alto nivel de asesoramiento, desde Los lenguajes representativos de varios paradigmas de programación. Para empezar, se dan las ideas centrales de cada paradigma de programación.

Cabe mencionar que este curso tiene una explicación muy profunda del lenguaje C, como el paradigma y la gestión de la memoria del lenguaje C. Este conocimiento también es muy útil para leer el código fuente de Python.

Muchas de las mejores prácticas de Python están ocultas en marcos y bibliotecas conocidos, como Django, Tornado y más. Buscar oro en su código fuente también es una buena opción. Palabras finales

El camino de cada uno para aprender a programar es diferente. De hecho, la mayoría tiene el mismo destino. No hay personas que se pierdan, solo personas que no pueden persistir. Aunque suene un poco a caldo de pollo, es cierto.