I believe that a beginner in Python must have learned basic programming knowledge, which is similar to other programming languages, basic data types, judgments, loops, functions, and maybe you have also learned object-oriented. However, after you have learned this, maybe you have finished learning an introductory python book, but you are beginning to feel confused. What should you do next?
#I have encountered these problems before. My solution is to look around for Python teaching videos and then learn them. Although I learned some things, it was not systematic. After learning for a while, I almost forgot about it. (Recommended learning: Python video tutorial)
After a year of study, I think the way to advance in python is to start with To start with network programming, start with the simplest socket. First, write how two machines communicate to find a sense of accomplishment. Then continue to learn the socketserver module and the http.server module. They are encapsulated. After reading these two modules, you will know the power of Python's object-oriented. Even if you can't write such good code now, you are still making progress.
Especially the http.server module. After reading its source code, you will start to develop in the direction of python's web server. You must know that python's web server code is based on socket encapsulation. , written line by line of code. A simple command
python -m http.server
At this time, your computer is a simple web server, and you can obtain the files on your computer through the browser. After understanding this, you can start writing the simplest web server. In fact, it only takes a few lines of code. But you find that your code can only serve one client at a time, and you start to think about how to make Python achieve concurrency.
There are three ways in Python, process, thread and coroutine. Let’s not talk about processes, let’s talk about threads and coroutines. Let's put it this way, threads and coroutines implement similar functions, but coroutines occupy fewer system resources and do not require the CPU to perform context switching. So the best solution is to add processes and coroutines.
At this time you have entered a new learning area and started to understand coroutines, starting from the simplest yield keyword, then understanding the asynchronous module in python, and then going to the ultimate asynchronous module asyncio, python author I started developing it because asynchrony is very popular now. During this period, you may use asynchronous writing to write some small programs, such as writing a chat room and concurrency under single thread. In the end, you combine the asynchronous and web servers you have learned to make it more powerful. If you just want to play, you can put it on your server to provide some simple web services. If you still want to continue developing, you can write a small web framework for fun.
At this time, you can learn about crawlers. After all, the server has been solved by you. There is an advantage to writing the server first. You can start from scratch and practice your coding skills. The crawler has been packaged very well. It is a little troublesome to write it from scratch. Again, learn slowly. If you are interested, you can also write a small framework to play with.
Then you can play some more advanced things. Some of the python-related programming I mentioned before can be done with a high school knowledge level. But if you want to do data analysis and machine learning, you need knowledge reserves from university, such as advanced mathematics, line algebra, statistics, probability theory and other mathematical knowledge. At this time, you should first combine your previous crawler knowledge to do simple data analysis. Then slowly go deeper step by step, I believe you should have your own clear goals. To achieve this, the most important thing is persistence.
For more Python related technical articles, please visit the Python Tutorial column to learn!
The above is the detailed content of What should I learn after learning the basics of Python?. For more information, please follow other related articles on the PHP Chinese website!