REA repair

Demand for the python language. Jobs as a Python programmer: requirements, vacancies and salaries. Important Personal Qualities

How can a beginner choose a programming language for future work? Assess the level of salaries? Demand? Based on what is easier to learn? Or carefully study the trend lines of popularity?

In fact, you can spend a lot of time choosing the best programming language. But as soon as it comes to personal acquaintance, there will be a need to change the favorite. Today, your attention will be offered a choice that should appeal to the vast majority of novice geeks - a combination of ease of study and demand in the labor market. These two arguments are relatively easy to reliably verify, so the result will be close to objectivity.

Criteria

We will arrange in places based on the demand rating. We will take a number of foreign articles ( , , ) as a base, while we will confirm the Russian reality with the help of hh.ru and trud.com aggregators. The statistics, of course, are relevant on the day of writing the text, and are unlikely to change much by publication.

What we will not take into account is the level of salaries and the self-sufficiency of the language, simply because of the relativity of these criteria.

Swift

Formally, Swift, of course, is not yet as in demand among employers as Objective-C, and getting into this rating is largely due to the common platform. But it is categorically impossible to ignore the prospect in this rating. Therefore, we recommend that you start studying now. We invite you to a free two-hour.

Let's take a look at the numbers of Russian HR agencies - 471 vacancies in Russia and neighboring countries on hh.ru and 410 on trud.com. Pretty good for a 3 year old. If you add Objective-C, you can safely multiply numbers by 3.

C/C++

Calling C or C++ easy to learn is not entirely correct, especially when compared to Python or Ruby. But in this case, it is worth talking about the huge amount of high-quality educational literature, about the fundamental nature and the useful residue that will remain in your head, even if you do not connect your future life with them.

But if you still like the languages, then there are already 2,325 vacancies only in Russia on hh.ru and 12,543 on trud.com. At the same time, it is important for you to understand that if, in the case of the Swift language, these were vacancies exclusively for developers, then with C ++ you may need the language not only in the familiar IT field, but also as a CNC operator and an auto electrician.

JavaScript

Not only is JavaScript extremely in demand in the modern world due to the crazy development of Internet technologies, but thanks to modules and libraries, its zone of influence has begun to spread to all other IT areas.

Throw in the fact that JavaScript is relatively easy to learn. Borrowing the basic things from C and gradually developing from a bonus element for HTML and CSS to an independent force, he received a digestible syntax and an extremely understandable logic for a beginner.

And now to the demand: 6,365 vacancies only within Russia on hh.ru and 5,565 on trud.com. These are quite good numbers for those who are determined to find a job after graduation.

Python

When it comes to the combination of ease and demand (in that order), most developers think of Python first. It is a language proven by time and millions of students, saving valuable time both at the stage of learning and application. At the same time, the number of IT areas where you might need Python is not limited by anything at all. Thanks a lot fans enthusiasts and the Python Software Foundation.

It is important to note that the demand for Python specialists is much higher abroad than in Russia. However, it will not be difficult to find a job here either: 2,325 vacancies in open access according to hh.ru and 2 537 - trud.com.

Java

Java is a great language in every way. This is confirmed both by TIOBE statistics, and by the most popular OS in the world, and simply by the fact that it is a fairly simple language with a very powerful ecosystem.

If expressed in figures of Russian reality, then the relevance of Java is 4,628 points according to hh.ru and 4,490 - trud.com. Yes, these are not impressive results compared to some previous contenders, but, firstly, this is due to the specifics of our IT market, secondly, the growth trend is strictly positive, and thirdly, Java will still be simpler than C/C++.

SQL

You probably didn’t want to see such a leader, but formally there’s nothing to complain about here. It is very difficult for you to avoid using a database in modern realities, and no one has yet come up with a more universal tool than SQL. It is this fact that allows this language to sit firmly in first place in almost all such ratings.

The language of domestic figures here does not reflect the real demand too clearly, but it will not make you doubt the leadership of SQL in this rating. In fact, he got 8,303 internal vacancies on hh.ru and 8,933 on trud.com.

P.S.

Looking at the rating published at the very beginning, you probably have a reasonable question: “Where are Perl and C #?”. It's all about the very projection onto Russian reality. For example, Perl has 581 results for hh.ru and 577 for trud.com. This, of course, is better than Swift, but the apple language has an obvious prospect, and the demand for Perl in Russia will most likely only fall.

Regarding C#, the situation is better here: 906 vacancies on hh.ru and over 16 thousand on trud.com. However, the second figure should not mislead you: almost half of the vacancies are C / C ++ developers with knowledge of C #, therefore, in terms of aggregate and fundamental importance, it was the first group of languages ​​that was placed in the title, and the second was modestly mentioned at the end.

Python is a high-level programming language that is used in various areas of IT, such as machine learning, application development, web, parsing, and others.

In 2019, Python became the most popular programming language, overtaking Java by 10%. This is due to many reasons, one of which is the high wages of qualified specialists (about 100 thousand dollars a year).

Python programming language

Various programming languages ​​usually dominate some industry (or several) for which they are well suited. But that doesn't mean that a programmer is limited to using a strictly defined tool, so any general purpose language like Python can be used to build anything.

Python was able to capture a small part of the web development market, is sometimes used to write desktop applications and, of course, totally dominates the field of machine learning. In addition, many prototypes are created on it, which allow you to quickly sketch out the functionality and appearance future project.

origin of name

This TV show allowed the author to relax and take his mind off the development of the language. However, despite the real origin of the name, it is more obvious for people to associate Python with the word “snake”. This is also facilitated by the logo, which depicts a reptile.

And although the creator of the language has repeatedly said that the name has nothing to do with snakes, it was not possible to influence the opinion of society.

Python or Python?

Whether it's the name of a British TV show or the English sound of the word "snake", Python to pronounce correctly like Python. However, about 80% of the Russian community is used to using the word "Python".

It cannot be said that it is definitely correct to use one of the options, many names adapt to the pronunciation of a particular language, and it is very difficult to change the established habits of society. However, it is appropriate to use the variant of the name “Python” only in a conversation with Russian-speaking interlocutors, because at any international conference the meaning of the word “Python” simply will not be understood, because in English language it is not there, there is only “Python (Python)”.

Logo

The logo depicts two snakes forming a square with a bulging center, which often misleads users into associating the name of the language with a reptile.

History of creation

The language was developed by a programmer, Guido van Rossum, in the late 1980s. At that time he worked in the center of mathematics and computer science in the Netherlands.

Guido van Rossum has been fond of working with hardware since his school years, and although he did not find support and approval from his peers, this did not stop him from developing a programming language on his own.

Rossum worked on Python in his spare time, building on the ABC programming language he once helped develop.

Stages in the history of the Python programming language:

  • In February 1991, the source code for the language was published on alt.sources. Even then, the language adhered to an object-oriented approach, could work with classes, inheritance, functions, exception handling and all basic data structures.
  • In 2000, the second version of Python was released.. Many important tools have been added to it, including Unicode support and a garbage collector.
  • On December 3, 2008, the third version of Python was released, which is still the main one.. Many features of the language have been reworked and made incompatible with previous versions. And although the functionality of the third version is in no way inferior to the second, the development of the language was divided into two branches. Someone continued to use Python 2 to support old projects, someone completely switched to the third version.

The date of death of the second version was set for 2015, however, fearing not to have time to transfer all existing code to Python 3, Python 2 lifetime extended to 2020.

Python is a simple language

Python's syntax has always set it apart from other programming languages. It does not suffer from redundancy, the similarity of the syntax with ordinary English allows even an ordinary user to understand the code, in addition, the programmer writes fewer lines of code, because there is no need to use symbols: ";", "(", ")". Nesting is indicated by indentation, which increases the readability of the code and teaches beginners how to format correctly.

The simplicity is partly due to the fact that Python is based on the ABC language, which was used to teach programming and the daily work of non-programmers.

Python simplifies writing code and makes development fast because it has the following features:

  • Dynamic typing. The programmer does not need to specify the type of variables, the language will assign it itself. operands different types, participating in one operation, is automatically reduced to the required one according to certain rules.
  • Convenient return of multiple values ​​by a function. They can be listed separated by commas and are automatically converted to . To return from a function, just write " return array_name ". No need to allocate memory and pass pointers to the function.
  • Automatic Memory Allocation. The programmer does not need to allocate memory for anything. On the one hand, this reduces the programmer's control over the program, on the other hand, development is significantly accelerated.
  • Garbage collector. If an object becomes useless (nothing refers to it anymore), it is automatically deleted by the garbage collector. The garbage collector allows you to optimize the use of memory and not delete useless objects manually.
  • a, b = b, a. This line swaps the values ​​of the variables, now what was in a is in b and vice versa. This is possible because Python first considers the variables to the right of the “=” sign and puts them in the list, it does the same with the elements to the left of the “=”, then it associates each element of the right list with the left one. In this way, you can exchange the values ​​of not only two variables, but also three, five, and so on.
  • Data Type Binding. The data type is bound to a value, not a variable. That is, a value is some kind of object with attributes that define its type and other characteristics, and a variable is just a reference to this object. This approach eliminated the need for explicit type definitions and greatly simplified the re-assignment of a variable value (especially if the type of the new value is different from the initial one).
  • for loop. Working with arrays, lists, and other containers in Python is easy and convenient. When it is necessary to iterate over all its elements, the construction looks like this: “for x in container:” (iteration goes from 0 to the last element, its index can be denoted as -1). If you want a certain number of loops to go through, write this: “for x in range(1,9):” (the loop will be executed with x values ​​from 1 to 8).
  • Interpreted language. The written code does not need to be compiled, it is enough to run it and get the result. Moreover, you can work interactively and get the result literally after each operation.

Python combines both simplicity and powerful tooling. It can be used to prototype almost any program.

To speed up development, part of the program (usually not greatly affecting the speed of work) is written in Python.

It is thanks to its simplicity that this programming language has been able to take a dominant place in the field of machine learning. People who are involved in science in one way or another prefer not to spend a lot of time on things like writing code, so Python was perfect for the implementation of the tasks assigned to them.

Code example:

Def what_bigger(a, b): if a > b: print(a, "greater than", b) else: print(b, "greater than", a) def max_arr(arr): max = 0 for x in arr : if arr > max: max = arr[x] return max def arr_to_2arr(array): array = array * 2 return array print("A simple Python program") a = what_bigger(1,5) r1 = max_arr(a ) r2 = arr_to_2arr(a) print("Return of function max_arr - ", r1) print("Return of function arr_to_2arr - ", r2)

Execution results:

Simple Python program 5 more than 1 max_arr function return - 6 arr_to_2arr function return -

Popularity

Even though the language is over 29 years old, it is popular among programmers all over the world. Python is used in almost every medium or large project, if not as the main development tool, then as a tool for prototyping or writing some part of it.

It has gathered a huge community of developers around itself, according to a poll on Stackoverflow, Python took 7th place with almost 39% of the votes.

TIOBE index

This index shows the popularity of programming languages, the information is updated every month. The popularity rating is based on the number of skilled professionals worldwide. All popular search engines are also used for analysis. It is important to understand that the index does not show the best programming language, it only shows their popularity.

According to the TIOBE index, Python ranked 3rd with 9 percent popularity. It was second only to Java and C.

PYPL

This index is based on the number of search queries related to language learning materials.

According to PYPL data, Python ranks first with over 29% popularity and 10% ahead of Java.

statista.com

The service provides various types of statistics, among which is the popularity of programming languages.

According to a survey of more than 85,000 respondents, Python is ranked 4th, behind languages ​​such as JS, markup languages, and SQL.

Work speed

Programmers often ask themselves: “Won't using Python lead to performance degradation?”. Do not draw any conclusions without a detailed examination.

If we consider only the speed of code execution, then it becomes clear that Python is inferior to other programming languages ​​such as C. Indeed, dynamic typing, interpretability, and other features that make the programmer's job easier lead to performance degradation.

However, in modern IT, not only the speed of programs is important, but also the speed of their development. Development, testing, debugging and support - all this costs a lot of money. And if Python is inferior in the speed of the programs, then it has no equal in the speed of development.

For any project, it is important to choose the right tool and the best implementation. Improving one, the programmer sacrifices another, his task is to find the perfect balance, focusing on a specific technical task.

Python allows you to write fairly fast code, but it can fail in some “bottlenecks” that have the greatest impact on the performance of the entire project. In order not to delay the development and get a high-speed program at the output, its structure is designed in such a way that the “performance / development time” ratio is maximum.

Programmers use tricks to level out the insufficient speed of executing programs in Python:

  • Embedding C Code. Using this technique, you can noticeably improve performance, usually those sections of code that process many requests per unit of time are written in C. For example, a function that receives data from one database, processes it, and sends it to another would be better written in C if the amount of information passing through is large enough.
  • Using the best algorithms and tools. The same problem can be solved in different ways. Firstly, the programmer must choose the most efficient algorithm that provides the best performance, for example, to search for an element in a sorted array, you can iterate it from beginning to end, in the best case (element at the beginning of the array) the search will be performed quickly, in the worst (element at the end array) - slowly. It is more efficient to use the bisection method (binary search), which will find the desired element in the minimum number of iterations in an array of any length. Secondly, to implement the task, you need to select the right tools. For example, if the sequence of elements is strictly defined and does not change, it is better to use a tuple rather than a list. It requires less space, is processed faster and is protected from accidental changes.
  • Interpreter optimization. The speed of Python programs is highly dependent on the work of the interpreter, some constructs are faster, others are slower.
  • Modules for testing. To determine which sections of the code greatly reduce the overall performance, the programmer can use special modules for testing. Thus, you can understand which code needs to be optimized or replaced with C code.
  • Ready Tools. For most tasks, effective solutions have already been developed. It is better to use ready-made, debugged code of some library than to write your own solution from scratch, which will not be 100% as effective.

What can be written in Python

Python is used in many areas of programming, so you can write anything on it.

Website backend

For the development of the server side of the site, frameworks are used: Django and Flask. They turn Python into a server-side programming language with capabilities that rival other popular tools.

The programmer can easily work with URL links, database calls, and creating HTML files that the user sees in the browser.

And although PHP controls most of the server-side web development market, more and more programmers are giving their preference to development in Python.

blockchain

Blockchain is a sequential chain of blocks, where each block contains information and is always connected to the previous one. The technology can be used in any area and is especially popular in the financial sector and in the field of bitcoin cryptocurrency.

Blockchain combines the security and openness of information, it allows you to access data from anywhere in the world, at the same time it is almost impossible to hack, the data is stored on some main computer, and hacking each block is very costly and time consuming.

In Python, you can easily write a full-fledged blockchain, if it is correctly designed, then it will not lag behind solutions in other languages ​​in performance.

Bot

This is a program that automatically performs some action at a given time or in response to an incoming signal. Bots can primitively simulate human behavior, so they are often used to work in technical support (chat bots), search for information on the Internet (search bots), imitate the actions of a person or other creature in the virtual world (computer games).

Python allows you to quickly create feature-packed and relatively smart bots. It is important to understand that bots are not a simple program of 500 lines of code. An order to create a bot for a business can cost several million. The price is due to the fact that it is very difficult to design a bot that will be difficult to distinguish from a person. It is necessary to provide for many options for dialogues, analyze human behavioral factors and implement them in the program. Simply put, from a machine that understands only zeros and ones, you need to make a primitive “brain”.

Database

A database is information systematized according to common features and special rules. In any large project, databases are used, they store information about users, changes in the program, etc.

The database management system can be written in Python.

augmented reality

Augmented reality complements the physical world with the help of virtual technologies. That is, virtual objects are projected onto the real environment, and imitate the features and behavior of ordinary physical objects.

Augmented reality can be seen in films such as Iron Man. In the real world, it is used, for example, in combat fighters (aiming system).

The work of augmented reality is based on interaction with labels. An electronic device receives information and analyzes the surrounding space; with the help of computer vision, it “understands” what a person sees in front of him. The device then overlays a "virtual layer" over the real world.

Professional augmented reality applications cost about half a million rubles, it is not easy to design and write them, various specialists are involved in the development process, from 3D designers to programmers.

Python is a great tool for creating augmented reality projects.

BitTorrent Client

BitTorrent is a unique technology that allows you to quickly exchange large amounts of data over the Internet.

Prior to version 6, the BitTorrent client was written entirely in Python. And although it was later completely rewritten in C++, this shows that Pyton can be used to implement these kinds of tasks.

Neural network

The concept of “neural network” came to programming from biology. In biology, a neural network is a sequence of neurons connected to each other. Programmatically created neural networks are capable of not only analyzing and storing information, but also reproducing it from memory.

They are used to solve complex problems that require calculations that are performed by the human brain. Usually, neural networks are used to classify something by features, predict, recognize, for example, a person from a photo or video.

Python is the clear leader in neural network development. In addition to standard tools, he acquired a huge number of libraries for machine learning. Thanks to this, even a large and complex project can be written relatively quickly in Python.

Parser

This is software for collecting and processing information. You can parse information such as the dollar exchange rate, or you can monitor and analyze changes in the shares of various companies.

The parser can be written in many languages, Python is not the only good tool for this, but its capabilities are enough to write an application that collects information quickly and efficiently.

Calculator

This task was carried out, perhaps, by every student of the Faculty of Informatics. can be written in any programming language, and Python is no exception.

It is important to understand that the calculator requires 100% calculation accuracy. Therefore, all errors related to rounding and binary representation of numbers can be critical. However, libraries have been written for Python that completely solve this problem.

The game

Large games are not created in Python, it is either used to develop a prototype or to implement some part (for example, the server logic of a game or a modding system).

To write a small project, you can use the Pygame library, which provides all the necessary tools to create a small 2D game.

Text editor

It can be used to write and edit not only text but also code. Many text editors are able to detect the programming language being used and highlight its syntax. Some of them even resemble a full-fledged IDE.

Writing a small text editor is not difficult, but creating a large project requires a lot of knowledge and effort. Despite the speed of development in Python, creating text editor with sufficient functionality by modern standards - this is work for a whole team of programmers.

Programming language

A computer is always a layered device. Using the most complex and inconvenient tool, the programmer creates a simpler one, and from it an even simpler one. Although this reduces performance (if everything was written in assembler, programs would run tens or even hundreds of times faster), but it also significantly reduces development time, its convenience and complexity.

Python is a fairly high-level language, so writing another programming language based on it is impractical, although it is possible. It would be more useful to develop an interpreter for Python itself or another programming language. You can also create a compiler (a program that converts programming language code into machine code).

Such projects are not suitable for commercial purposes, but creating your own compiler, interpreter or language will give you a lot of invaluable experience.

The field of programming has been in demand for several decades, as it is constantly necessary to create various programs, scripts, and so on. This article talks about one of the most popular programming languages ​​- Python.

Python - what is it?

Python (pronounced in Russian as Python) is one of the most popular and in-demand programming languages. The first version was released in 1991 and has been periodically updated every 2-3 years.

Python is suitable for various areas of programming:

  1. System programming: searching for electronic catalogs, launching other programs.
  2. Graphical programming: development of applications with a web interface.
  3. Web scenarios: searching, receiving, transmitting, extracting information, downloading web pages, transferring and processing files, etc.
  4. Creation of prototypes.
  5. Creation of programs for calculations.
  6. Development of robot programs, games and more.

pros

The advantages of Python include:

  • Simplicity. It is often recommended as a first "basic" language as it is very easy to learn and practice. In the process of writing a program, the use of curly braces is not required, as in other languages, which allows you not to be distracted by switching between keys and pay more attention to program development.
  • Extensiveness of application. Python is used almost everywhere: to create websites, games, development software, 3D modeling and even photo editing. To do this, there are different tools and programs of the language. Many large companies (Google, Instagram, Facebook) use Python.
  • License and free. The main advantage of this language is the availability of a license, its availability and free of charge. This allows you to use Python without restrictions, even in schools. You can also learn to speak this language absolutely free of charge with the help of various courses and video lessons.
  • Support. Python is maintained by developers and the programming community (ordinary users), so if there is any problem, you can always find out how to solve it directly.
  • Extensive Libraries. Python has standard libraries in which you can work with electronic resources, databases, Internet protocols, and other tools.
  • Suitable for most types of modern operating systems . Scripts written in Python are suitable for iOS, Android, Windows and other types of OS. This allows you to apply the programming language in a variety of areas.
  • perspective. This is one of the main factors for learning Python - the language will be in demand for a few more years, thanks to its merits. Therefore, if you want to learn programming, you should not think that Python is not at all suitable for this, since it is already “obsolete2” - this is not so.

Minuses

This programming language also has disadvantages:

  • Unusual syntax. If you learn Python as a non-first language, then it will be difficult to get used to it due to the lack of brackets and some signs. But if the language is studied as a basic one, then this problem is solved.
  • Slow program execution speed. Programs written in Python are slower than similar programs written in other languages. But this problem can be solved with the help of special virtual machines.
  • Incorrect code copying. If you copy the program code from another resource, then it will be inserted into the text without indents and will not work. You will have to spend time adding spaces.
  • Convert program to exe. Programs written in Python have a “py” extension and must be converted to exe to be used on Windows. After that, the amount of memory occupied by the program increases several times. The problem of increasing memory can be solved by removing unnecessary libraries, but after this action, the program can work worse.
  • Impossibility to write drivers. Some programmers have pointed out that Python is not intended for writing software drivers because it does not have the tools to do so.
  • Incompatibility between different language versions. Python 2.x and Python 3.x on this moment and for the next several releases will exist in parallel, with the second version being used for version compatibility. However, the third version is not backwards compatible with the second, and writing Python 2.x version codes on Python 3.x will generate an error.

Is it worth studying and how promising is it?

If you want to learn programming, then Python is for this. ideal option. Its simplicity and conciseness allow you to quickly master the basics of programming and start developing your own programs and scripts. Python is also suitable for use in system administration, due to the presence of libraries that give access to the management of the entire computer system.

Python will not lose its relevance and relevance in the coming years. It can be used both as the main tool for developing programs and applications, and for creating extensions of ready-made applications. Despite the shortcomings, Python is the most convenient and understandable tool for writing programs. Python's shortcomings are an inconvenience, mainly for experienced programmers.

You can learn how to program in Python on your own with the help of Internet resources. But to get started, it is best to take special courses (not online format) to better understand the basics and study the programming language in more depth. If it is impossible to attend “live” courses, you can take individual distance learning with the ability to communicate with the teacher.

Every novice developer is faced with the question “Which language to learn first?”. 10 programmers can give 10 different answers to it.

At the same time, all of them can be authoritative people who have taken place in the profession and strongly argue their choice. After all, each developer has his own way of mastering the profession, which depends on personal preferences and projects on which he had to work.

How can a novice developer choose the best option for himself if he does not know what specific type of programming he wants to do? To answer this question, let us turn to the experience of American universities.

Top 40 US Universities Choose Python

Higher education institutions in the US often teach Python in introductory Computer Science courses. According to the 2014 Association for Computing Machinery survey, this language was chosen by 27 of the top 39 American universities. There are several reasons for this:

1. "Low" entry threshold. English-speaking people quickly get the hang of Python and write their first programs easily. In addition, many American students learn this language in computer science classes.

2. Wide scope of use. Knowledge of Python can be useful for students to study other subjects. This language is used for data analysis and scientific research.

3. High popularity of the language in "real development".

Popular all over the world services for online education - Coursera, Codecademy, Udacity, edX - are also recommended to start learning programming with Python.

The popularity of Python compared to other languages

According to the annual rating of the IEEE Spectrum magazine, Python is the first most popular programming language. To compile the rating, journalists analyzed public developer chats, job postings, Github, StackOverflow, and dozens of other sources.

In August 2017, Python was ranked fifth on the Tiobe Index. It is compiled on the basis of the results of queries like "programming" in popular search engines.

Where is Python used?

Python is used in:

How much do Python developers earn?

As mentioned above, the scope of Python is wide. Therefore, the demand for programmers working in this language is very high.

According to the American portal gooroo.io, the highest “salary ceiling” among developers in popular languages ​​is for Python programmers. The maximum annual remuneration indicated in the vacancies is 148 thousand dollars.

Python developers are also in demand in Russia. The salary of a senior developer reaches 200 thousand rubles a month.

How to learn to program in Python

Rate.

Due to the simple syntax, the abundance of training materials and the high speed of code execution, Python allows all efforts to be directed directly to machine learning. Helper code is easy to write.

This is supported by a recent study by hackerrank.com. According to their data, it is Python that leads in such an indicator as Love Hate Index (employers at the same time gave preference to JavaScript). The dedication of programmers proves the simplicity and efficiency of working with this programming language.

The figure above shows a forecast of the demand for different languages ​​until the end of the current decade. As you can see, the prospects for Python are excellent.

Simplicity of code

The figure below summarizes the philosophy that the creator of Python adhered to. Generally speaking, code should be as simple, efficient, and fast to execute as possible.

Machine learning algorithms cannot be called simple, so it is important for the developer not to scatter attention, to minimize the solution of problems associated with AI training. Python syntax, its conciseness, modularity and scalability allow you to quickly prepare the base for AI training.

Libraries and frameworks

This is another argument in favor of the popularity of Python. There are a lot of libraries and frameworks focused on working with artificial intelligence in the public domain. At work you will need:

  • Numpy - suitable for scientific calculations. Makes it easy to work with large multidimensional matrices/arrays, and Numpy contains a library of complex mathematical functions to work with these arrays;
  • Sci-Py - the basic data structure in it is a multidimensional array. Used to work with special functions, genetic algorithms, signal and image processing;
  • SciKit-Learn is a well-documented library used for data extraction/analysis. Note that there are a lot of out-of-the-box machine learning algorithms;
  • Matplotlib - used for data visualization (only in 2D).

From the frameworks, we select:

  • TensorFlow is developed by Google. It is used to build and train neural networks, allows you to reach almost the level of human perception and image classification;
  • Apache Spark - through it it is convenient to implement distributed processing of semi-structured / unstructured data;
  • CNTK - developed by Microsoft, easily scalable, bypasses TensorFlow in terms of speed, very accurate.

As you can see, there is no shortage of tools.

Community support and documentation

The entry threshold is quite low. In addition to the fact that the code is not overloaded with complex structures, Python is also well documented. There is a good set of materials in Russian. The same goes for third-party libraries and frameworks.

Do not discount the huge community of programmers around the world. Even if you encounter an unsolvable problem, most likely you will find the answer to your questions on specialized resources.

Conclusion

At the beginning of the material, we called Python almost no alternative for machine learning, this is not an exaggeration. If we consider the language from the point of view of teaching artificial intelligence, then it has no drawbacks. The code is extremely simple, the language is well documented, libraries and frameworks make it easy to write code.

These conclusions are confirmed by the demand for Python. By 2020, it may take the lead compared to other programming languages.