When you’re in the trenches slinging code, it’s very easy to become disillusioned about your skills. Without a frame of reference, tasks you think should be easy become mind-bendingly difficult and there’s no light at the end of the tunnel. That’s certainly been my experience developing for the web and also in designing games. In the latter case, it’s even harder because you can easily convince yourself that no one in their right mind will ever enjoy the gameplay you’ve devoted yourself to for months. I read a post today John Nunemaker that he succinctly titled, “I Have No Talent“. He says:
I am sick of hearing people say, “Oh, I love your code, I wish I could do that.” You can. The only reason you can’t is because you don’t practice enough. I used to think that I wasn’t smart enough. I was jealous of those that did crazy code stuff that I couldn’t even comprehend. Then, one day, I ran into something I did not understand and instead of giving up, I pushed through.
His blog post reminds me of a discussion I had with one of the programmers on Forza Motorsport. At one point, I made an off-hand coment about the complexity and difficulty of what he did in working with the Cambridge Research Center. His response was much the same as Mr. Nunemaker’s, albeit a bit more curmudgeonly. In short, where I perceived this baffling artifice of dazzlingly complex code, he saw it as something that anyone could learn to do with enough time and effort. His insight helped me to keep slugging away at writing my first C# application and not becoming discourage at the intricacies of serializing and deserializing XML.
Working with senior developers has given me insight into how to do some pretty amazing things with computers. Seeing the frustrations of junior developers has taught me how aptitude is different from knowledge. In some cases, things never click, but in the vast majority of instances, it’s just a matter of experience and learning. When I taught basic computer classes through the King County Library System (for those in the Puget Sound region, the KCLS computer classes are a great introduction for novices and they’re free), I got see many people who had never used a computer before gradually come to the realization that surfing the web or using Microsft Word wasn’t nearly as difficult as they feared it would be.
So if you want a more objective appraisal of your development skills, try teaching someone else what you know. And if you want to know whether your game is actually any fun, let someone else play it. But that’s a post for another time.