July 4, 2023•655 words
I got back to Python recently - you can track my progress here on Github. Here's why I'm doing it, and why I'm enjoying doing it.
It teaches me to think strategically: with almost all kinds of computer code, I enjoy trying to work out what I want the script to do. Learning to code means I get to flex my planning/strategising muscles a little more often.
It keeps surprising me: almost every other day, a line from my textbook or an example I find online makes me think, "hang on, you can do that with Python?"
It gives me hope for the future of tech: another billionaire idea won't save us. A better iPhone won't turn things around. But somehow, Python makes me optimistic - one person with a few lines of code means that a machine now listens to you, and does what you want. Which doesn't happen all that often otherwise.
It fits my multipotentialite, scatter-focus lifestyle: Python is good enough for many things, instead of being the absolute best choice for one or two things. This means that a few years down the line, when I'm busy working on Something Completely Different, it will still be useful for any coding I can throw into the mix for the new projects.
It seems to have a nice community around it: I know a few of my old friends are into Python, and keep building networks of Pythonistas. I have also started following some folks online, and I haven't gotten the smug superiority vibes yet! Maybe there aren't any?
The Python bloggers know what nice RSS looks like: Have a blog. Have an RSS feed. Put the entirety of your post up in the RSS feed. Make the feed easily findable. Job's done. RSS matters, y'all.
It is a tech skill with low system requirements: your grandma's computer could probably run Python. You don't need a gaming PC, you don't need a fancy GPU. Sure, some things you can do with Python are going to be expensive - but to start with, it doesn't take much.
It's (mostly) readable: You use your own language to provide a huge chunk of it - then English for the rest - and the syntax doesn't try to be obscure. This means that after a little while, you're ready to look at a piece of code and kind-of guess what it's trying to do.
It comes with kind, generous error messages: I remember my early BASIC attempts, and the frustration at the "SYNTAX ERROR" message I would get. Python does what it can to help you out. The error message points to the line number, and to the part of the line which tripped Python up - it even suggests what the problem might be!
Python is a good candidate for human/machine coding: as a result of some of the above, I've had some success using Python in collaboration with AI. I found it easy to suggest what the code should do, and to break it down into classes / components (because of Python's readability and general-purpose ethos). Then I found that the machine gave me back some generally sane code. And then, when the code broke down or refused to work, I found it was possible for me to go back in and try to fix it. This will only get better as I get better at debugging and describing exactly what I want the next piece to look like.
(Bonus idea) it lets me move away from the web: Python scripts now let me do things which I used to need websites for. Merging PDFs, doing batch edits on images - I used to have websites which did these jobs for me. The more I learn Python, the further away from the internet I can go. And, these days, that is a good thing.