Wild Card Blogging
Everyone should learn to program at least to a basic degree.
This is what I am passionate about and this is my wildcard, programming is no longer a niche requirement for a subset
of jobs. Programming can make any job or hobby that involves computers just a little bit easier and more fun. It’s a
force multiplier, it can make everything you do have more impact, free your time for doing more interesting and important
things and generally just give you more time to do things that make a difference.
There’s a sort of belief out there that programming is, to all intents and purposes, just something people who are
highly technical or nerdy do. That “normal” people don’t need to know how to program and that it’ll never affect you in
real life. This is a pervasive and pernicious lie, programming isn’t just useful, many people do it already but don’t
realise it!
Here’s a few examples of how people might already program, but not realise it:
- Excel. Lots of people use Excel, but every formula, every macro and every vlookup or pivot table is programming! Just
because you’re not in a traditional IDE doesn’t mean you’re not programing.
- If This, Then That: IFTTT. This one’s not even hiding it, it’s programming, plain and simple and lots of people use it
to hand things like texting them when someone scores in a game, integrating smart lighting with their calendar
(integrating! It’s really not hiding it!)
- Setting up mailbox filters and rules (conditionals and logic, plain and simple)
Here’s things they’re probably doing by hand that they really shouldn’t need to:
- Using a web browser and their own eyes to sort though lists. I’ve had this where I was considering moving to New
Zealand (one day!) and the list of visa sponsors was only accessible in web pages with 10 per page, for a few thousand
companies. Fifteen minutes of scripting later, I had a sortable list scraped from the website which could be used to
target my applications. It saved literally hours of inefficient manual work. It did not require any great programming
knowledge, just a couple of web tutorials on Beautiful Soup.
- Downloading or building a latest release (for testers!) This was the first thing I did when I learnt Python. I wrote
a simple (<100 lines) script that went to Hudson* and grabbed the latest build, downloaded and installed it. I used that
script every day for 4 years, though it was a bit of a Ship of Theseus by the end. It’s here that the real wins came
from automation, that script took me 1 days to write as a newbie, and saved me about 40 minutes a day for four years,
or to put it another way, from the 20th week on, it was pure gains.
- Setting up an environment. From if you’re a lab tech who needs a specific jupyter notebook template creating every
day, past the art historian who needs something that aggregates and timestamps notes at the end of the day, through the
tester who needs to set up 26 environments for regression testing every sprint (Did this one too, went from 2-3 days a
sprint of effort just on creating the environments to about 40 minutes, most of which was waiting for the VMs to create)
, to the office administrator who spends a few minutes each day updatig the daily spreadsheet based on things like
orders. Everyone who needs to do this kind of thing can save a lot of time just by learning some simple programming
But the benefits aren’t just in time, there’s also the fact that programming is just a way of formalising how to break
a problem down into small steps. There’s a lot of wrapping around it, you’ll see talk of “Big O N squared” and algorithms
and cylcomatic complexity but don’t let them distract you. The core of programming is just getting things done in a way
the most stupid thing around, a computer, can understand. Programming is a tool, but it’s a tool you can use in so many
places. Sure there’s the problem that when you have a hammer, everything looks like a nail, but programming is a hammer
with a screwdriver attachment, and a blasting rig, and an umbrella. In today’s digital world, so much is a nail to the
programming hammer.
Also I wouldn’t be me without saying that if you really want to learn to program, you should look int Python. Easy to
read, fast to learn, very powerful and complete standard library!
*Yes it was that long ago.