Python Learning Route (2022)

Original link: Python learning route (2022)

A few days ago, I compiled a Go learning route (2022) , which was widely praised. So take advantage of the fire, no, it is to strike while the iron is hot, and organize a Python learning route.

The content is still from entry to advanced, including tutorials, classic book recommendations, and actual open source projects.

insert image description here

There are still many development directions for Python, such as server-side development, crawler, data analysis, machine learning, etc. The content recommended in this article is all about server-side development and web development.

It is mainly divided into the following parts:

  • Documentation tutorial
  • Book Recommendations
  • web development
  • open source project
  • Utilities
  • Technical Communities and Blogs

insert image description here

Documentation tutorial

Official Python Documentation

Website address: https://docs.python.org/zh-cn/3/

insert image description here

The official documentation of Python, supports Simplified Chinese language, you can switch Python versions, and see the corresponding content according to different versions, including tutorials, standard libraries, installation and use, etc. What could be better than official documentation?

Liao Xuefeng Python Tutorial

Website address: https://www.liaoxuefeng.com/wiki/1016959663602400

insert image description here

Many programmers should not be unfamiliar with the name Liao Xuefeng, nor should they be unfamiliar with his personal website. This Python tutorial is very beginner-friendly, basic, comprehensive, and complete with examples.

In fact, it can be seen from the reading volume that this tutorial is really read by many people.

Rookie Tutorial - Basic Python Tutorial

Website address: https://www.runoob.com/python/python-tutorial.html

insert image description here

This website does not need to be introduced, many introductory tutorials for programming languages ​​can be found here. In the process of writing code, if you forget a certain knowledge point, you can also check it here.

Python Online Manual

Website address: https://docs.pythontab.com/

insert image description here

A navigation learning website, in addition to Python, there are Django, Flask, etc., you can choose the technology you are interested in to learn.

The Hitchhiker’s Guide to Python

Website address: https://docs.python-guide.org/

This is a tutorial that both novice and advanced personnel can read. The content starts with installation and virtual environment construction, and then introduces Python best practices and actual combat, such as how to build projects, network development, and web development.

The physical book is out now, but I think this tutorial is enough. After all, bleaching is cool.

learn-python

Website address: https://github.com/trekhleb/learn-python

A free tutorial explaining Python in code and comments.

Each Python program is classified according to different topics, and each basic syntax and knowledge point is explained by taking runnable code as an example, coupled with appropriate comments and reference materials, so that you can get started quickly.

Book Recommendations

It is better to teach a man to fish than to give him a fish. First of all, we recommend a website:

Website address: https://pythonbooks.org/

This is a website dedicated to recommending Python books, ranked by their popularity and grouped by different features. For example, introductory books, advanced books, or Web development books, machine learning books, etc.

The content of the website is updated once a month. If you have free time, you can go shopping and choose books according to your level and learning direction. It is quite good.

The following are the books I recommend. Although they are divided into introductory and advanced, many books include these two parts. When you look at it, you can lay the foundation first and then advance according to your own situation.

getting Started

Programming in Python: From Beginning to Practice (2nd Edition)

This book is a very basic Python introductory book.

The book is divided into two parts:

The first part introduces the basic concepts that Python programming must understand, including powerful Python libraries and tools such as matplotlib, NumPy, and Pygal, as well as lists, dictionaries, ifstatements, classes, files and exceptions, code testing, etc.;

The second part puts the theory into practice, explaining how to develop three projects, including simple Python 2D game development, how to use data to generate interactive infographics, and create and customize simple web applications, and help readers solve common programming problems and confused.

"The "Stupid Way" to Learn Python 3

This book is an introductory Python book, suitable for readers who don't know much about computers and have not learned programming, but are interested in programming.

This book guides readers to learn programming step by step in the form of exercises, from simple printing to the realization of a complete project, allowing beginners to start with basic programming techniques and finally experience the basic process of software development.

"Python Basics Tutorial (3rd Edition)"

insert image description here

The prestigious Python introductory classic, the Chinese version has sold more than 200,000 copies. This version is a new upgrade for Python3.

This book covers all aspects of Python programming:

First, start with the installation of Python, and then introduce the basics and basic concepts of Python, including lists, tuples, strings, dictionaries, and various statements.

Then, a step-by-step introduction to some relatively advanced topics, including abstractions, exceptions, magic methods, properties, iterators.

After that, it discusses how to combine Python with tools such as database, network, C language, etc., so as to exert the powerful functions of Python, and introduces the knowledge of Python program testing, packaging, and publishing.

Finally, the author introduces the development process of 10 practical Python projects to readers according to the steps of actual project development based on the content described above.

"Python Learning Manual (4th Edition)"

This book provides a comprehensive and in-depth introduction to the Python language, whether you are a novice programmer or a Python beginner, it will help you quickly write high-quality code in Python that is easy to integrate with other languages ​​and tools.

Each chapter of this book is self-contained in the Python language, complete with exercises and tests, as well as numerous annotated examples and diagrams, making it easy to learn and suitable for getting started.

"Python Cookbook Chinese Edition (3rd Edition)"

This book covers many common problems in Python applications, and proposes general solutions. The routine of writing is to ask the problem first, and then solve it. The book contains a large number of practical programming skills and example codes, and tested in the Python 3.3 environment, which can be easily applied to actual projects.

It is very suitable for Python programmers with a certain programming foundation to read the reference.

Advanced

Python Core Programming (3rd Edition)

This book is a new and upgraded version of the classic best-selling book "Python Core Programming (Second Edition)". The author has completely rewritten the content of the book according to the various changes in the Python 3.0 version.

In terms of the overall chapter arrangement, there are many knowledge points involved and the content is relatively complex, including network programming, GUI programming, database programming, etc. It is suitable for people with certain programming experience to read for specific needs.

"In-depth understanding of Python features"

The more you know about the language, the easier it will be to use it. This book is less than 200 pages, which is rare in technical books and can be used as an appetizer for "Fluid Python".

This book will introduce the best practices of Python and the power of Python code through simple examples and step-by-step instructions. With this book, you'll focus on the practical skills that really matter, discovering the "hidden gold" in Python's standard library.

"Fluid Python"

This book is written by Luciano Ramalho, who has been in the Python development line for nearly 20 years. Victor Stinner, Alex Martelli and other Python experts serve as technical reviewers, analyze programming details from the language design level, and teach you to write authentic Python code.

For intermediate and advanced Python programmers looking to expand their knowledge, this book is a treasure trove of practical programming tips.

Effective Python: 59 Effective Ways to Write High Quality Python Code

insert image description here

It's a very thin book, but it will definitely be rewarding after reading it.

Writing programs in Python is quite easy, but it is quite difficult to grasp the unique advantages, charm, and expressiveness of Python, and there are many hidden pitfalls in the language that can easily lead developers to make mistakes.

This book can help you master the true Pythonic programming style, allowing you to fully utilize the power of the Python language and write robust and efficient code

"The Road to Python Experts"

insert image description here

This book is a book that is biased towards engineering practice. The author shares a lot of personal practical development experience.

Starting from how to start a new project, it starts with the structural design of the entire project, the management of modules and libraries, how to write documents, and then how to distribute and how to test the project through a virtual environment.

In addition, many advanced topics are covered, such as performance optimization, plug-in structure design and architecture, etc.

web development

When it comes to Python's web framework, the first reaction is the old three, Django, Flask and Tornado. If you rank by popularity, it should be in this order.

In 2016, a web framework was released called Sanic, which performed well and should be regarded as a rising star.

Django

Project address: https://github.com/django/django

The most popular web framework in Python, with very comprehensive functions, such as security authentication, URL Routing, template engine, ORM, and even Admin management background, all included.

Flask

Project address: https://github.com/pallets/flask

It is also a very popular Web framework, which is lightweight, flexible, and highly customizable.

Users can add corresponding functions according to their own needs, and realize the enrichment and expansion of functions while keeping the core functions simple. Its powerful plug-in library allows users to realize personalized website customization and develop powerful websites.

Bottle

Project address: https://github.com/bottlepy/bottle

A simple and efficient WSGI-compliant micro web framework. I say micro because it's only one file, and it doesn't depend on any third-party modules other than the Python standard library.

This framework is used less, but the source code is also very small. If you want to read the source code, it is a good choice to start with

Tornado

Project address: https://github.com/tornadoweb/tornado

Tornado is a Python-based web services framework and asynchronous networking library that can host thousands of active connections by leveraging non-blocking network I/O. The effect will be better when used in scenarios that require a long connection.

Sanic

Project address: https://github.com/sanic-org/sanic

The first version released in May 2016, the overall performance is still good, and more and more people use it.

Sanic is a Python3.7+ web server and web framework designed to improve performance. It allows to use the async/awaitsyntax , which can make the code effectively avoid blocking and improve the response speed.

open source project

Reading open source projects is very helpful to improve the level of programming. Some of the open source projects recommended below are ones I have read, and some are about to be read.

To be honest, sometimes I feel very inferior when I see a good open source project. Why can others write such elegant code, but my own is so rubbish. Maybe this is the only way for programmers to grow up.

alive-progress

Project address: https://github.com/rsalmei/alive-progress

A very cool progress bar project implemented in Python.

python-patterns

Project address: https://github.com/faif/python-patterns

Examples of implementing some design patterns in Python.

You can learn some design patterns while learning the language, and using appropriate design patterns in the development process can make your code more elegant.

peewee

Project address: https://github.com/coleifer/peewee

Peewee is a small ORM project that is small overall and easier to learn.

If you want to see the Django source code, you might as well start with Peewee.

flask-sqlalchemy

Project address: https://github.com/pallets/flask-sqlalchemy

Flask-SQLAlchemy is a Flask extension that simplifies the use of SQLAlchemy in Flask programs.

awesome-django-cn

Project address: https://github.com/haiiiiiyun/awesome-django-cn

I saw awesome again. This project collects a large number of Django-related excellent applications, projects and other resources, which are convenient for Django users to refer to.

500lines

Project address: https://github.com/aosabook/500lines

This is really a divine book, and it is also recommended by many people on the Internet. It contains more than a dozen different chapters, such as ci, crawler, ocr, etc., each chapter is completed by a big man in the field.

The great thing about it is that each chapter tries to use 500 lines of code, or even less, to implement the corresponding function. If you study the code in each chapter carefully, you will definitely have a deeper understanding of Python.

requests

Project address: https://github.com/psf/requests

Kenneth Reitz's famous work, if you want to read Python source code, you must read it and feel what real Pythonic code is.

Here we recommend another Requests source code reading list, which can be used as a reference.

https://github.com/wangshunping/read_requests

awesome-python

Website address: https://github.com/vinta/awesome-python

Let me share a little trick with you. If you see awesome in the project name, it means that this project must not be easy.

awesome-python is a list of Python resources initiated and maintained by vinta, including: web framework, web crawler, web content extraction, template engine, database, data visualization, image processing, text processing, natural language processing, machine learning, logging, code analysis Wait.

After reading this project, you will definitely sigh that there is too much knowledge to learn.

Utilities

insert image description here

Python Tutor

Website address: http://www.pythontutor.com/

Python Tutor is a free educational tool developed by Philip Guo that helps students overcome fundamental barriers to programming learning and understand how each line of source code goes through the computer as the program executes.

With this tool, you can write Python code directly in your web browser and run the program visually step by step.

If you don't know how the code runs in memory, you might as well copy it into Tutor and execute it visually to deepen your understanding.

This tool is used in the article A Puzzle About += .

IPython

Website address: https://ipython.org/

IPython is a Python interactive shell for Humans, after using it you don't want to use the built-in Python shell anymore.

IPython supports variable auto-completion, auto-indentation, built-in many useful functions and functions, and it is also the best platform for scientific computing and interactive visualization.

online-python

Website address: https://www.online-python.com/

Not much to say about this, edit and run the code online.

Technical Communities and Blogs

Learning to program is not done overnight, but requires long-term persistence and training. To organize this learning route, I hope to make progress together with everyone. Whether it is a novice programmer or an experienced programmer who needs to be advanced, I believe that everyone can gain something from it.

The resources and mind map source files involved in this article are open sourced on GitHub , and you can take them yourself.

The above is the whole content of this article. If you think it is not bad, please like , forward , and follow . See you in the next issue.


Recommended reading:

Guess you like

Origin blog.csdn.net/zyx6a/article/details/123364488