When I grew up in Germany as a kid there was this craze about “desks that can grow with you.” The idea was you’d buy your kid an adjustable desk and then they’d be able to use it throughout their whole education career.
As your kid grows taller, so does his or her desk. Just turn the little crank handle every few months… And voila, you’re right on track for raising the next Albert Einstein or Marie Curie.
Python is a great
“adjustable desk” language.
With the small but important difference that Python is also a much prettier desk. One that you wouldn’t be embarrassed of using past elementary school. And one you’d be okay with showing to your girlfriend/boyfriend. (Okay, time to stop with that desk analogy.)
My point is this:
What I love about Python is how it scales so well (no pun intended)—from writing simple prototypes to validate an idea, all the way to building “production grade” systems.
Sure, sometimes it would be nice to have a compiler and static type checks to lean on—but often I realized that I would’ve never come this far in so little time with Java or C++. And with optional type hints in Python 3 and type checking tools like
mypy this gap is starting to close.
But not only does Python scale and grow with the project at hand, it also scales and grows with your skills as a developer.
It’s relatively easy to get started with Python—but it’s not going to prevent you from growing as a developer and getting impressive real-world work done with it. My friend and fellow Python wrangler Michael Kennedy refers to it as a “full spectrum” language. And I really like that as an analogy.
Python spans the gamut from
print('hello, world') all the way to running the back-end infrastructure for massive applications like Reddit, Instagram, or YouTube.
Now, is using Python
always the right choice?
No single programming language is.
For example, it’s unlikely you’re going to write a real-time operating system kernel in Python. Neither will id Software use it to implement their next-generation rendering engine…
But millions of developers around the world are using Python to build web applications, write data-crunching pipelines, generate reports, automate tests, conduct research, and do all kinds of other amazing work in a multitude of domains.
By learning Python you’re not limiting yourself to a specific niche.
And that’s what I love about this adorable, “adjustable desk” of a language.