Cómo aprender Python sistemáticamente
¿Realmente quieres aprender bien Python, pero por un lado, estás enredado en asuntos triviales y nunca has podido empezar? Por otro lado, ¿te preocupa el coste del aprendizaje? ¿Es demasiado alto y te estás rindiendo 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. Todas son simples y directas, sin metafísica involucrada.
Hay muchos puntos de entrada: Python le permite hacer muchas cosas, incluida la informática científica y el análisis de datos, rastreadores, sitios web, juegos, utilidades de línea de comandos, etc. Siempre hay uno que le interesa a usted y a Willing. para invertir tiempo.
Sin más, solo existe un atajo para aprender un lenguaje: Primeros pasos.
Cualquier lenguaje de programación contiene dos partes: conocimiento duro y conocimiento blando. La tarea principal de este. La etapa es dominar el conocimiento duro.
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., tales como: variables y tipos, declaraciones de bucle, ramas. , funciones, tipo. 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:
El tutorial de Python de Liao Xuefeng es el líder en tutoriales de Python en chino, especialmente creado para principiantes que acaban de ingresar al mundo de la programación. .
Aprender Python de la manera difícil Este libro explica los componentes gramaticales de Python y 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! 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.
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.
Conocimientos blandos
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 del 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 muy 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, sin poder. para liberarse, incluidos Scrapy, Numpy y Django. Pruébelo o participe en actividades sin sentido como la yihad del editor, la exploración de sangría 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 encuentres errores. 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 conocerás los beneficios de hacerlo y comprenderás 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 Las soluciones orientadas a procesos 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, usted. Comprenderá que las soluciones de alto nivel lo son todo. Es una encapsulación de bajo nivel, que no es la más efectiva y adecuada en cada situación.
La afluencia de tecnología es como una ola. Aquellas tecnologías antiguas que han estado suspendidas durante mucho tiempo volverán tarde o temprano después de que desaparezcan. 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 perseverancia y el progreso son el camino correcto.
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. 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 se dé cuenta de 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.
Bibliotecas de clases
"Awesome Python Project": vinta/awesome-python · GitHub
Aquí hay una lista de cosas que puedes hacer al intentar resolver varios Problemas prácticos, una biblioteca de clases de herramientas ya disponible en la comunidad Python, como se muestra a continuación:
Haga clic para ingresar la descripción de la imagen
vinta/awesome-python
Puedes seguir las necesidades reales y encontrar la biblioteca de clases que necesitas.
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.
Libros
Aquí solo enumeraré algunos libros que creo que son útiles. Para obtener más información, lea las reseñas de libros de Douban:
Ciencia y análisis de datos: ". Programación de inteligencia colectiva": Programación de inteligencia colectiva (Douban) "La belleza de las matemáticas": La belleza de las matemáticas (Douban) "Método de aprendizaje estadístico": Método de aprendizaje estadístico (Douban) "Reconocimiento de patrones y aprendizaje automático": reconocimiento de patrones y aprendizaje automático (Douban) ) "Ciencia de datos en la práctica": Ciencia de datos en la práctica (Douban) "Introducción a la recuperación de datos": Introducción a la recuperación de información (Douban)
Rastreador: "Guía autorizada HTTP": Guía autorizada HTTP (Douban)
Sitio web: "Diseño y creación de sitio web HTML y CSS": Diseño y creación de sitio web en HTML y CSS (Douban)
...
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. 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 (Douban)
Este libro explica la parte central de Python. código fuenteDa 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 Haskell y la programación orientada a objetos basada en clases de Java, no es puro. suficiente. 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 conduce al mismo destino por caminos diferentes. No hay personas que se pierdan, solo personas que se pierden. ¡No puedo perseverar!
Espero que los estudiantes que quieran aprender Python y programación no duden en leer este artículo
¿Recién estás empezando? ! !