Ubuntu is one of the most commonly used Linux distributions for both local development and server deployments. Some platforms-as-a-service such as Heroku run Ubuntu as the base operating system, so as a Python developer you'll often have to work with Ubuntu or a similar Debian-based Linux operating system.
Every two years Ubuntu releases a Long-Term Support (LTS) version that receives five years of updates instead of only two years for non-LTS releases. However, there are some issues with the current LTS model, in that you must only use packages from the main repository unless you're going to manually handle security updates for non-main repository system packages.
Get your Python development environment set up with one of these quick tutorials for Ubuntu 16.04 LTS:
There are also walkthroughs for configuring relational databases and Redis on Ubuntu:
How to Use the Command Line for Apple macOS and Linux is a fantastic guide relevant to Ubuntu users who should be able to use the terminal to accomplish their tasks.
Linux System Mining with Python shows how to use Python libraries to gather Linux system information and work with it programmatically in your applications.
Canonical, the organization that produces Ubuntu, typically pushes the boundaries on non-LTS releases, but occasionally rocks the boat with major changes for an LTS release. 16.04 LTS was one such version, which is described in this article about how Ubuntu 16.04 proves even an LTS release can live at Linux's bleeding edge.
What I learned while securing Ubuntu explains how difficult it can be just to find correct information on how to secure an operating system. In this case, the author goes over how he went about securing package management, security standards and file integrity on Ubuntu 14.04 LTS.
In Beaver We Trust: A Lengthy, Pedantic Review of Ubuntu 18.04 LTS examines the latest Ubuntu Long Term Support desktop release in detail.