I was recently working on a project for a friend of mine who’s a software engineer, helping him put together some 3D modeling stuff. Nothing outside of my scope, but it’s been a while since I’ve sent anything to a 3D printer, so there was some stuff I had to relearn. We ran into one major issue after I had built the first model. When we sent it off to the 3D printer, the 3D printer said the model was too small. It was so small, in fact, my model wasn’t even showing up at all.
Now, I’ve been doing this sort of thing for a while. When the printer balked at me, my first reaction wasn’t “What’s wrong with this stupid hunk of garbage”, it was “Okay, let’s simplify the problem”. Instead of checking the model (which I had spent hours on at this point), I sent a boring 3D cube to the printer. I ran into the same issue. The cube was too small. Huh! This instantly told me my model was probably fine, but the model and the 3D printer weren’t talking to each other correctly. Something was getting lost in translation. So I made the cube 100 times bigger. Success! The cube was being recognized. I made the model 100 times bigger, and the issue disappeared.
I told my friend, the one who contracted me to do this work, about the issue and how I solved it. He told me the process I went through, simplifying the problem then testing it, was the same way a coder would tackle the problem. Little did he know I’ve been teaching myself the ins-and-outs of coding for a while now! The philosophy of working with code is the same as the philosophy of generating 3D models, which is also the same philosophy of dealing with technology and computers in general; Test the easy, big stuff first so you can narrow down the solution. Also, your computer does not respond very well to yelling instructions at it.
Strangely, it doesn’t respond to hand gestures either.
Coding isn’t something that comes naturally to human beings. Unless the person has some sort of specific autism, coding is a skill everyone will struggle with. Learning how to code and making little programs has taught me an incredibly important skill, one I never got the hang of in grade school, at college, or anywhere before in the workplace. The skill of being miserable at something, and failing over and over again.
I was pretty good at school. I wasn’t an exemplary student, by any stretch of the means, but I didn’t struggle with any subject. There’s never been a time where I was overly challenged. The only challenge I ever faced was of my own doing, as I tended to procrastinate. Any problem can be made difficult if you wait until the absolute last minute to take it on. School and work never really put me in the path of failing. If it was school, I did well if I put the slightest amount of effort in, and work was basically showing up and doing the job.
Enter coding. I started coding, ever so slightly, a couple years ago. I was a lousy coder back then. These days, well, I’m still pretty awful at coding, but I can look at code and make some sort of sense of it. I can make little scripts to automate tasks. The truth is, I’m not sure if I’ll ever actually be good at coding. I think it’ll always be something I struggle with. That okay, though, because there’s few things I’ve found in life to be as enjoyable as solving problems, and a computer, well, that is basically a box full of problems that need to be solved.
The point I’m trying to make here is very few people are naturally good with computers. The rest of us nerds have to work for it. So if you’re trying to teach yourself how to code, there’s a trick that will keep you on track. The trick is learning to be happy with failing, over and over again. A computer doesn’t hand out participation trophies. Having code that is 95 % correct will still return errors. The computer will only recognize code that works. But when you finally do figure it out, there isn’t anything I’ve found that is quite as satisfying.
The Illustrious Mr. Charlton
p.s. Okay, an orgasm can also be satisfying, but anyone can give themselves one of those, so it’s a different kind of satisfying, I guess.