Python, Data Science and Machine Learning For Recruiters

Python, Data Science and Machine Learning For Recruiters
Post Author: Aaron Decker | Image by Pexels from Pixabay
Date published: May 05, 2021

Python has grown in popularity to a surprising degree over the last few years. If you didn't know, it's actually a pretty old language - older than Ruby, Java and JavaScript. In my opinion it's recent surging popularity in the last decade has a lot to do with new applications in data science, machine learning and artificial intelligence.

Check out this google trends chart of Python vs Ruby vs JavaScript. You can see Python's search trends have powered higher over the last decade and a half.

python ruby and javascript

Python: the basics

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:

  • Automating ops tasks on servers
  • Small console applications
  • Backend web application servers
  • General desktop applications (Dropbox is written in Python)
  • Doing general data science work
  • Building machine-learning based applications
  • Doing artificial intelligence research
  • Building backtests & live stock trading systems

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.

Python Jobs

Most commonly right now I'm seeing Python job postings for the following things:

  • Machine learning engineer roles
  • Backend web developer engineer roles
  • Data Scientist roles

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

Python web development systems

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.

Python Data Science tools

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:

  • Jupyter Notebooks: a unique development environment that makes it easy to tinker with small snippets of code and display results.
  • Pandas: a library used for data analysis and manipulating data
  • Numpy: a library with many math utils, especially including statistics tools.
  • Matplotlib: a library used to create graphs and charts.

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 basics

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.

Python machine learning system development

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:

  1. Prepare data
  2. Train system
  3. Test & validate system
  4. Productionize & Deploy
  5. Iterate & evolve

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.

Python machine learning libraries

Here are some examples of Python machine learning libraries you might see in a JD or resume.

  • Sci-kit Learn - a large variety of tools for cleaning data & building machine learning algorithms. Has many off-the shelf tools, easy to get started with.
  • Tensorflow - developed by Google, used for constructing deep learning neural networks.
  • PyTorch - developed by Facebook, similar to Tensorflow (deep learning neural networks).

There are many of these libraries for developing machine learning systems but these are some of the most common you will happen across.

Summary

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.


Want updates?

Want new posts about tech topics emailed to you? Sign up to the list below 👇

Also, if you are interested in learning technical topics through a video course specifically created for recruiters, don't forget to check out the courses I offer.

The main course "How to Speak Software Engineering Jargon for Recruiters" is specifically designed to help tech recruiters get up to speed fast on technical topics.


Written By Aaron Decker

I'm currently a co-founder and head of engineering at a venture backed startup called Bounty. I tend to think of myself as a backend engineer that can work up and down the stack in Typescript. Previously, I have worked as a Tech Lead and hired teams, and as a Senior Software Engineer at multiple fortune 500 companies building large products. I also did a brief stint teaching programming courses as an Adjunct Instructor at a local community college, which taught me a lot about breaking down complex things into understandable chunks.