Where You Can Apply The Knowledge Of Python In Practice
In this article, we will discuss the list of Python directions that we single out the most promising for the application of our forces and time for young specialists. This conclusion is based on our analysis – the study of areas and tools of the python and compare their effectiveness with analogs on other platforms.
What can you do on Python
Although the python is a general language, all the doors are open for you, in fact, the use of language is greatly limited by the tools and technologies that were developed in the course of the evolutionary struggle with other technologies. Therefore, we proceed to the review.
Microcontrollers (very doubtful)
The list of microcontrollers that are supported by Python tends to zero, commercial efficiency and the availability of job offers is practically zero. Given that there are more traditional ways of programming tools, while some big company does not invest in this direction, there’s nothing to do.
Although Python has many attractive features, its current implementations are not suitable for embedded systems, such as microcontrollers and small systems on a chip. The reason is that Python uses an awful lot of RAM – both for the stack and for the heap – even in simple operations like adding up integers
Market analysis shows that about a third of all jobs where Python is mentioned belong to the sphere of DevOps. However, Python is not the main tool, but the technology that it is desirable to know. This is due to the fact that Python practicality completely dislodged Perl for Linux, and so well moved Bash in the area of writing large scratches and larger server components. Also, the fact that the interface of many tools accepts Python as a scripting language is added to this.
- If you want to develop in the sphere of DevOps, knowing Python will be a big plus for you, all the rest pass this side by side.
As for the commercial perspective (start-up) of this direction, it is difficult to imagine a person who could write and monetize a tool without having 5+ years of experience in the Developing field.
Although the main tool for testing automation is bloody Java, which has a huge set of frameworks and ready-made solutions, sometimes small companies use Python for full testing or writing scripts for tools.
- Practice shows that although Python can fully cope with the testing task, the use of Java is a more straightforward and reliable solution.
But speaking in general, an adequate testing specialist should equally well use Python and Java for their field.
Jobs under testing are also about a third of the total mass, often in vacancies indicate knowledge and Python and Java at the same time.
Desktop development (doubtful)
At the moment, Python has 5 cross-platform tools that allow you to write “full” applications for Windows/Linux/Mac:
However, practice shows that none of the tools makes a 100% cross-platform application, which would look natively on each of the platforms. Here and there-there are various schools, inconsistencies, broken controllers and other dirt.
- Therefore, we can say with certainty that writing a commercial Desktop to a python is a very doubtful undertaking, and companies rarely do this (or rewrite at the first opportunity, as DropBox did).
As for internal tools, the use of small GUI-applications is applied, but the search for targeted Desktop Python developers will not.
Mobile Development (very doubtful)
Everything is bad, as pet projects can be used Kivy, for real development is very doubtful, there are no vacancies on Kivy.
Those. as I personally talked to a number of people who had their own web project in Python and to capture a large audience they wrote applications on Kivy and they even used it, but it looks like “The programmer writes what he wants.”
Machine learning and Data science (adequately and prospectively)
This is one of the most high-tech areas of the modern IT world, where Python is used as an approbation tool. Python has a number of convenient libraries of machine learning and scientific calculations:
which allow you to quickly build working models. And they are actually working pretty well.
As for usage, Python is used as an approbation tool, or on small tasks. If the project is large, then the model is usually written in Java/Scala/C ++, and the training specialist already acts as a consultant/analyst.
- The complexity of this direction lies in the fact that you must have high knowledge in the field of mathematics and statistics, almost always will be asked for a higher technical, mathematical education.
Everything is quite good for job vacancies, but in such opportunity, you do not need knowledge of Python, but your head.
Web-scraping (possible, but doubtful)
Python has three things that make it very effective in the field of web scrapping, requests of the library, beautifulsoup and the API for Selenium. If you connect libraries for computer vision and machine learning, then you get very effective tools.
The problem is that there is not enough opportunity in this area, the main clients are in freelance, who offer to fix for them fix to parse scripts for their shit sites, spam machines, and occasionally generators of feedback.
The area is interesting, but there is not enough money in it.
Computer vision (doubtful)
In the python, there are a number of tools that allow you to write computer vision tools, they are even used in places in commercial products, or as components, for example, for web-scrapping. However, Python clearly cannot be called suitable tools, so the user is extremely limited, there are practically no vacancies.
Virtually every discussion of the development of the game in Python is cited as an example of eve online and WarGaming. However, in the first case stateless python is used, and in the second case, everything is limited to the scripting language.
As for the real use, then you have three engines Kivy, PyGame, Panda3D, if the first two are more suitable for pet projects, then the third one was actually used on combat projects of good quality, although these projects were in 2004. That seems to hint that the use of proven engines in other languages such as Unity or Game Maker looks more convincing.
- However, stealthily the engine Ren’Py sneaks up here, which suddenly became the best engine for writing visual novels.
Jobs in GameDev for python of course not, but you can raise money on the “start-up” with proper skill. But it is more reliable to take another language and tested engines.
Web development (adequately and prospectively)
The key platforms here are:
- Django (monolithic synchronous framework)
- Flask (micro synchronous framework)
- Tornado (monolithic asynchronous framework)
- Twisted (monolithic asynchronous framework)
- Aiohttp (micro asynchronous framework)
At the moment, most of the market is occupied by the Django framework, but with the advent of the ideas of micro-services, Flask gradually began to gain momentum. As for asynchrony, then everything is complicated, as Tornado and Twisted are considered obsolete, and Aiohttp is very raw, and its use is being questioned.
- The power of Python is that it allows you to quickly develop complex web applications, has a huge number of quality modules, perfectly suited for statistics and analytics services (where, in general, most of the vacancies go for it). This direction occupies the remaining third of all vacancies.
Separately, I’d like to note the writing of GIS services in Python, which, although they have quite adequate tools for working with geo-data, still using Java for these purposes looks promising.
- As far as the sphere of DevOps and Testing is concerned, Python is the key tool of the profession, which is mandatory for every adequate specialist. Python, in this case, is not taught, it comes as necessary.
- The most promising are the areas of web development and machine learning (analytics), which clearly distinguish the python against its competitors in the form of PHP and Ruby. And if you want to study the python, then you should concentrate on these areas and do not waste your time on something else. Under this there are vacancies, on this, you can build a start-up.
- All other areas, although they offer certain tools for solving problems, the prospect of using these tools looks very doubtful. And most importantly, it is almost impossible to find paid work for these spheres.