Why Python

Programming is more accessible than it used to be. Open source tools, free learning resources, and LLMs that can explain code in plain language have lowered the barrier considerably.

Origins

Two pivotal figures in the history of computation are Alan Turing and John von Neumann.

Alan Turing introduced the concept of the Turing machine in 1936. Turing’s machine can, in theory, simulate any other machine’s computation process, providing a universal model for computing. His wartime work breaking the Enigma code had a profound impact on cryptography and, arguably, the outcome of World War II.

John von Neumann helped design the architecture that modern computers still use and was instrumental in building some of the earliest computing devices. He had a prodigious output and dabbled with fascinating ideas along the way, such as Cellular Automata. For an engaging account of this early history, see Turing’s Cathedral.

Python

Early programming languages were “low-level”: they operated close to the hardware, directly managing memory and processor instructions. Early computers had very limited processing power, so this was necessary. Low-level languages are still used for specialised or performance-critical work, but for most purposes they make coding harder than it needs to be.

Python, created by Guido van Rossum and released in the early 1990s, sits at the other end of the spectrum. It reads close to plain English and handles memory for you. Over time it has built up a vast ecosystem of third-party packages, making it the standard language for data science, geospatial analysis, and scientific computing.

A few things worth knowing:

  • Performance is rarely the issue. People will talk about how one language outperforms another, but for data analysis the bottleneck is almost never the language itself. Fixating on performance is a bit like wanting a Formula 1 car for an off-road course. Python wraps highly optimised code (C, Fortran) under the hood, so you get usability where it matters and performance where it counts.
  • Python vs R. R is popular in statistics and some academic fields. Both are capable tools. This course uses Python because it’s more versatile and more widely used outside academia. You’re welcome to learn R too, but don’t feel you need to.

LLMs

Python wraps lower-level languages so you don’t have to deal with them directly. LLMs are starting to do the same for programming itself. They’re becoming the way a lot of people interact with code, and even experienced programmers are writing less by hand than they used to.