Friday, December 19, 2014

Gaming is essential

I have written a lot about programming tricks and managing programmers here, but when I talk to people looking to learn programming there's some things I always emphasize to them.  The first of which is that programming is hard.

You're using all of your brain


In a world where nuclear physics and rocketry are discussed to lighten the mood, it should be obvious (but it isn't) that your brain is being pushed to it's limit.  I've mentioned it before, but it bears repeating that there are programmers who have gone crazy.  Your brain simply isn't designed to think this way 100% of the time.

You need to relax


That's why I always talk about finding ways to relax.  I tell programmers who work for me to get away from their computer during lunch.  If they're exhausted, I tell them to go take a nap.  I do it myself sometimes.  It's not a weakness.  Most of what we do is not on a keyboard but in our head, and your head doesn't turn off when you sleep, it defrags.  When you're thinking of other things your brain is exploring areas of memory that you may not realize contain the solution to your problem.  Programmers are working 24/7, so I don't think twice about taking them away from the code during the 8 hours that we've decided to pay them.

So I'm a gamer


I take gaming seriously.  I have a high performance Republic of Gamers Laptop.  My office has 4 4k tvs and an xbox on each.  Even my day-to-day work laptop is designed for gaming.  I find that by making my entertainment as easy to get and as immersive as possible means that I require less of it to relax my mind when I need to.  But there's more to it than that.  Identifying as a gamer tends to mean you're going to be a good programmer in my experience.  It means you're creative, good at puzzles, and unwilling to give up when things get tough.  As an example, Disney just put it's corporate IT into an office that can only be described as a geek paradise.   The walls are covered with Marvel characters painted by actual marvel artists.  The internet may not know it, but I do because I've spent the last few months working in this office.   It's beautiful and I'm not allowed to share pictures sadly.  The point is that these things (gaming, comics, cartoons) have always been a sign of geeks.  It's part of our culture.  To be honest, in an interview I'd put more weight on them than any arbitrary question they answered.

But gaming most of all


Because I know that they have a way to decompress after a hard day.  Because I know that they are interested in the end result of all this programming when things are said and done.  Because I know what a massive impact gaming has had on my life.  Gaming is essential.  There's nothing more important I can suggest to a new programmer than that.  Be a gamer.

Gaming isn't just about video games either.  I have a sad addiction to a MUD; I play MTG, and D&D. I enjoy taking apart source code, creating video game playing software, and even building my own games.  But the truth is that the same things that drive me to game drive me to do other things, like building custom electronics around my home, and experimenting with the latest languages and libraries.

It's about problem solving


Because, as I've emphasized in my last few posts about interviewing programmers, the most important skill for any programmer, regardless of their platform or level of programming knowledge, is problem solving.  In order to finish a video game, you need the dedication to keep trying, and the ability to figure out the right things to try.  When everything is said and done.  No matter what you code, that skill is used EVERY DAY.  I solve problems.  I program a little, but even when I'm working on my own stuff, most of my time is spent figuring out what went wrong and fixing it.