For me Python The application scenario of is mainly machine learning 、 Deep learning is related to , I don't dabble in other scenes . Therefore, the purpose of this article is not to list a series of small projects for you to practice , Instead, I hope to guide you to think about this problem , So as to find a suitable exercise project .
Python Misunderstanding
I don't know what beginners think of Python This language , What do you think of the skills of programmers , According to my understanding , There may be some misunderstandings . In fact, the application scenario of any language may not be just one direction , Often in multiple directions , In especial Python This relatively mature and popular language , It has made great achievements in many fields , And that leads to this Python There are many things that can be done , Accordingly, there are many things to learn .
Maybe a better one for novices Python Users ( For example, I ), It should be all technology through killing , about Python I know every aspect of . But I'm sorry , This is very difficult or almost impossible . The reason for the difficulty is also very simple , Because people's energy is limited , It's not easy to be good in a field , Need to learn a lot of technology and knowledge , Not to mention mastering all directions . So, for such a question , There should be a clear answer , about Python Such a language , What is your purpose of learning it ?
Maybe you have many answers , But unfortunately , For your future career development , You may only choose one of them .
Choice of direction
If you've played Diablo 、 World of Warcraft or something like that RPG Game words , Then you should know a lot about choosing a career . When we just entered the game or soon after we entered the game , We need to face a career choice , Once a career is chosen, it is often unalterable , You need to keep playing in this profession , If you want to change careers, you have to start from scratch , Play a new number again .
The workplace is very similar to the game , We finally need to choose our career , And we can only choose one position , It can't be changed easily . If you want to change , It needs to start from scratch , All previous accumulated experience will be cleared . Because different positions have completely different requirements for ability , So for beginners , In fact, it will face such a choice , But this choice is invisible , When you choose a position to send your resume , This choice happened imperceptibly .
Python There are not many basic grammars in common use , Almost half of our previous articles cover . When we finish this part of our study , Learning grammar alone has no way out . The next step is to learn some application content , That is to face a technology selection .
about Python for , There are several common directions :web Development 、 machine learning 、 Web crawler 、 Operation and maintenance 、 Game development .
Let me briefly introduce these directions , You can compare your interests , Choose one you are interested in or more suitable .
web Development
Web Development should be the most common programmer's job nowadays ,Python stay web The main applications are web Back end development of , That is, responsible for the logical processing of the server .
We all know that the most popular language in the back-end field in China should be Java, Almost half of the companies use Java As a back-end language .Java I can't tell the other languages after that , A brief list of emerging Go, There are ancient PHP, Of course, Python, And almost extinct C++ and C#.Python In this field, it should only be regarded as not a special minority , Generally speaking, it is still a minority .
Minority reasons and Python Its own characteristics are related to , because Python It's interpreted language , Not a compiled language . So and Java、Go Compared with this compiled language , In terms of performance, it is naturally inferior . And because of Python Restrictions on global locks , Led to Python Multithreading performs badly in computing intensive concurrency scenarios , So few big companies use Python As the main back-end language . As far as I know, there should be only Douban in China 、 You know , There are... Abroad YouTube, But it is said that some have moved to other languages , Some have corresponding migration plans .
Python The main advantage in the back end is agility , That is, the development efficiency is relatively high .Python Of Django、Falsk The framework is still very perfect and easy to use , We can quickly build a decent back end from scratch , And the iteration speed is also very fast . So for some small companies that need to run fast in small steps and do not require high performance , May choose Python, That is, big companies rarely choose Python As Web Back end development language , The technology stack must also be completely different .
If you need to choose this direction , Then you have to learn Python Knowledge of back-end development , such as Django、Flask Outside the framework , You also need to understand the computer network and front-end , These are also required courses for back-end Engineers .
On the whole ,Python The development direction of the backend is relatively flat , It's difficult to force in the later stage , The ceiling is low . Learning difficulty and Java It may be a little simpler than the back end , The employment pressure should also be good , Although there are not many related posts, there will not be too few .
If you want to choose this field , You can choose some regular projects as entry projects . For example, build a personal blog , Or is it XX Management system , When you are proficient, you can learn more other tool Libraries , Like databases ORM frame 、kafka、redis And so on . Combine these contents into web among , Create a new project . Wait for this one , Next, we can study the architecture design 、 Design patterns and other advanced contents .
machine learning
I know more about this field , For machine learning ,Python At present, it is the main language of toto . In the early years, we can still see some use R To be a machine learning Engineer , It's almost invisible now , Almost the same Python. But to be honest, in machine learning Python Just play the role of glue language , Almost all core implementation logic is not Python Supported by .
In machine learning, for Python Native content requirements are very common , Just know the basic grammar , Understand iterators 、 Generators are almost enough . Because most of the content is implemented through frameworks or tools ,Python Just glue these logic together . The skills of practitioners in this direction are Python There are very few , Most of them are related to the theory of machine learning 、 Use of some library tools 、 Use of deep learning framework 、 Experience in data processing .
And machine learning itself is a relatively large field , It also has many applications . For example, search 、 advertisement 、 These traditional application scenarios are recommended , as well as CV( Computer vision )、NLP( natural language processing )、 Risk control and other relatively new fields . So I chose the general direction of machine learning , And after learning the basic knowledge , Still have to face another choice , Because you still need to choose the small direction for further subdivision . According to my personal experience, their development prospects are recommended 、 Search for 、 advertisement > NLP > CV > Risk control , It's just my personal judgment , For your reference only .
The overall prospect of machine learning is very good , At present, almost large, medium and small companies have machine learning or in-depth learning positions . Although there are many jobs , But the competition is not low , Because there are so many people who want to come in . Especially these two years AI hot , A lot of people want to squeeze into this industry , So the recruitment threshold is still not low .
If you want to choose this direction , Just basic Python Grammar is fine , But we need to have a more in-depth study in the field of machine learning . For example, the core concept of machine learning 、 Some common models 、 Some methods of data processing 、 Evaluation criteria of model effect, etc . When the understanding of machine learning is enough , You can find kaggle、 Tianchi big data and other competitions to practice .
Reptiles
The direction of reptiles is no stranger to us , Many people should have seen some relevant negative news , For example, stealing user privacy or stealing the data of so and so company . In fact, the essence of a crawler is to use programs to simulate human access to web pages , So as to store the relevant valuable information in the web page .
Python Because the grammar is simple , And the network related tool library is very perfect , And it can run directly without compiling . More important Python The global lock is requested on the network IO Very suitable for dense scenes , It doesn't affect efficiency . and Python It can easily integrate the functions and features of other languages , bring Python It's very suitable to be a reptile , So that most reptile engineers on the market are based on Python Developed for the language . And now there are many distributed crawler frameworks and tools .
Because everyone uses reptiles , Some big companies don't want their relevant information to be obtained by competitors . for instance , Suppose an East crawled down all the commodity information of Taobao , Then targeted price reduction to forcibly attract users , So it's obviously a blow to Taobao . In order to prevent similar and other situations against the company , These big companies will set up some anti crawler mechanisms . For example, when the request comes, it will judge whether it is a robot , Or it will limit one ip The most visited products, etc .
Since there is an anti climbing mechanism , So naturally, there is a mechanism to break the anti climbing mechanism . Therefore, the daily work of real crawler engineers in companies is often to fight against the wisdom and courage of anti crawler engineers in some large companies . You set up this anti climbing mechanism , I just think of a way to get rid of . Tomorrow you found my way and mended it , I'll continue to find a way …… And before writing the crawler , Need to do a lot of web page analysis , Find the source of data in web pages or applications api. Some companies will put api hidden , Or you need some verification to access , Then you need to set some methods to break them before you can use the crawler .
Some people don't like this battle of wits and bravery. Many , Work with little development time , And some people enjoy it , You can make a choice according to your own situation . If you want to choose this direction , You can start with some public data without anti crawl mechanism , Learn some advanced crawler frameworks , Then increase the difficulty step by step , Try to break the anti climbing mechanism of large companies , Become an excellent reptile Engineer .
Operation and maintenance and game development
To be honest, I don't know much about these two fields , So be tough and simply say , Level co., LTD. , If there is any mistake, please forgive me .
As we all know, operation and maintenance is responsible for maintaining the machine environment in the computer room 、 Project release, online and other work , Because now the company uses more and more machines , The whole release and maintenance process is becoming more and more troublesome . In the past, it was very rare to do it manually one by one , Now that there are many machines, it is obviously unrealistic to use manual work . To solve this problem , So now advanced operation and maintenance will use Python Write a script , To operate the machine installation environment or release projects in batches .
To put it bluntly, it's actually Python Use it as a tool like scripting language , The core competence is still biased in Linux command 、 operating system 、 Distributed cluster . For the field of operation and maintenance , I personally feel like machine learning ,Python Just pure tools , If you want an introductory project , It may still focus on the skills related to operation and maintenance , Use Python As a tool aid .
I know a little about game development , I used to use Python I have played some simple games .Python In the middle of pygame Very easy to use , Writing small games is very suitable . also Python You can also access Unity,github You can find a lot of usage in Python Make a game . But is there a game company recruiting Python I don't know if programmers are going to develop games , After all, I'm not in this industry , But at least it's OK for everyone to play some games to entertain themselves . If you want to practice, you can consider doing 2048,doodle jump These relatively simple games .
summary
If you're just looking for Python Novice entry project , The results of a casual search on the Internet are very many . But it doesn't make much sense , Because these projects are not necessarily suitable for everyone . And before you know where you want to go , There is no way to talk about whether it is appropriate or not , So I hope everyone can clarify their direction first , Then it's much easier to find the corresponding advanced road . So if you just wanted to learn well before Python This language , But I haven't considered the direction related words , I suggest you think about this .
The above is all the content shared this time , Want to know more python Welcome to official account :Python Programming learning circle , send out “J” Free access to , Daily dry goods sharing