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:
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.
Ubuntu has been a target operating system for Docker since the beginning of the project. Here's a guide for how to install Docker on Ubuntu 14.04 LTS, one of the older operating system releases that supports containers.
My First 10 Minutes On a Server - Primer for Securing Ubuntu is based off an earlier post of the first five minutes on a Linux server. This one is specific to Ubuntu Linux and goes into user accounts, sudo privileges, SSH keys, security updates and 2-factor authentication.
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.