I’m leaving the country in four days, to go to an intensive missions training school for 3 months. After friends, one of the main things I’ll miss is programming. Yes it’s what I’ll do all day, yes it’s what I get paid to do, but I really do enjoy it. And this will be the longest stretch of time I haven’t really done any programming for at least 5 years. Here are some reasons why I like it, and why you should try it too.
Everyone has the potential to be creative, but many don’t take it much. The act of creation is taking something that isn’t, and making it. Making order where there’s disorder, and ending up with a thing, here let me show you this thing I made. Look at the cool thing it does (which might be why I enjoy drawing programming most of all as you can see it do things)
This is a huge part of programming. I heard a good quote recently (uncited because I’m writing this on the train without Internet) programming makes you switch between feeling like you’re the stupidest person and the champion of the world multiple times every hour. Programming is full of tiny victories - every time you bend the computer to your will just a little bit more.
Programming as a creative endeavour is different than much of art. It’s not commentary, it’s doesn’t make statements, it’s purpose is clear, and it gives a localised purpose to the programmer. Right now my task is to make this thing to solve this persons problem and everything is done in light of that goal, with TDD being a microcosm of that (the most annoying projects are those where you can feel you’re not helping anyone but a clients ego and poorly conveyed expectations)
A big part of programming is building this with people. Contrary to popular belief - it’s a social activity. I love creating things with people. And for other people to use (I’m terrible at making my own tools)
You’ll find programming easy to grasp if you’re good at logic and languages. Maths doesn’t matter - that’s what the computer is for. Programming is just breaking a problem into recognisable solvable chunks, and then telling the computer precisely what to do. Improving that precision is 90% of the work. The other 90% is making the code understandable for the people who will have to change it later even if that people is future-you.