Python is a general purpose programing language that is dynamically typed and has a simple syntax that beginners tend to find easy to pick up. The language has many popular libraries which make it easy to develop a diverse set of applications.
Some common tasks I've seen python used for:
So as you can see there is a very diverse set of applications you can build with Python. It's probably one of the most generally useful and least specialized languages there is in terms of the different kinds of tasks people commonly use it for.
Most commonly right now I'm seeing Python job postings for the following things:
One point: when most companies say anything about "Artificial Intelligence" they are likely just talking about machine learning applications. And a lot of times when companies are talking about data science they are also
In web development python is definitely not the most common (probably either Java or PHP still is), but it's still popular enough you see it used quite frequently (or maybe in just one part of a larger system). In these roles this would be something the backend engineer would be using and you would be looking for a backend focused engineer normally.
There are various Python based web frameworks such as Django and Flask. Python is also commonly used as part of the Serverless framework which is a framework that deploys applications onto AWS Lambda or other serverless hosting systems.
In general, Python here is being used as the backend application tier (middle tier), it will be serving up REST or GraphQL endpoints and connecting to a database. Python can also be used as a microservice.
There are quite a few well known python data science tools, applications and libraries that you will see in job descriptions. I'll describe some of them below:
These above libraries are often used together and these make a "stack" of tools you can use together to do data science analysis work.
Machine learning is what people are talking about most of the time when they say "Artificial Intelligence".
Machine learning typically refers to a large family of algorithms that can improve as they are fed more data. Using this they "learn". They are generally classified into two groups at a very high level - "Supervised" and "Unsupervised".
I linked an article above and you can read more about these distinctions if you like (you should, it's interesting) but it's not crucial to understand all of the details here.
Machine learning algorithms are how we are building self driving cars, google translate, and how Amazon knows what to recommend.
A lot of building machine learning applications is dealing with data. You need to prepare high quality ("clean") data in the correct format to your system, this can be so much work that it requires a team of engineers to do it.
There a lot of moving parts to some of these system sometimes, but generally speaking the flow goes something like this:
You may only have one data scientist or team of data scientists directing the development of a machine learning system but many more engineers involved doing the "grunt work" of passing around, cleaning, storing and providing the data. Then you need more engineers to take the machine learning algorithm that was developed and "productionize" the application (meaning make it work at scale in the real world with real input data and integrate it with the rest of a larger application).
So if you are hiring a "Machine Learning Engineer" your hiring manager could be looking for a lot of different things. They could simply want a backend engineer that is good at making Python code fast and managing databases and talking with data scientists. But, it could be that they actually do expect some machine learning domain knowledge.
Here are some examples of Python machine learning libraries you might see in a JD or resume.
There are many of these libraries for developing machine learning systems but these are some of the most common you will happen across.
Python is one of the most popular and most diversely applied programming languages. It is beginner friendly and has simple easy to read syntax.
Something interesting? I'd say almost every developer I know has probably touched python for something at one point, whether for professional or hobbyist use.
Python has a specific stack of tools that make it great for data scientists, and it has a large variety of libraries for building different types of machine learning applications.
And of course, you can use it for plain old web application development as well.