Why Every Programmer Needs a "Wilson"
What happens when you run into a coding issue and you're at Starbucks with no one around. Here are some ways to help you walk through a coding process when you're alone.
Growing up, I lived in the country and I was always programming.
It was kind of funny because my parents didn't like computers...at all. So I couldn't ask them for help when I ran into a coding issue. I didn't have anyone around me living in the country, so I taught myself by reading Compute! and Compute's! Gazette.
I was always learning about how to code and make myself a better coder as I grew up in the digital age.
The funny part about learning how to program by myself is that I would talk to myself.
Sounds funny, I know.
I hate to break it to you, but yes, most developers do that. They would say something under their breath like:
- "Why is that doing that?"
- "I didn't expect that to happen"
- "It worked?" and "it worked!"
When you code by yourself, there is a bigger picture of a system where you may not see the "forest through the trees."
So while you continue to code, you talk to yourself to play out the idea in your head to make sure that everything works as you expected.
This is what takes you a step further in your career with your experience as a programmer or developer (and no, not to a therapist's couch). ;-)
However, writing code can be done as either a single developer or with a team of developers. While a single developer could write an entire system by themselves, sometimes a reality check is required to make sure they are on the right track.
True, it can be done, but you still need to talk out the process...
If you haven't figured out my reference, it's from the movie Castaway (YouTube) with Tom Hanks. Instead of going absolutely bonkers, he creates a friend to talk to while stranded on this deserted island and uses a Wilson volleyball.
Now, most programmers aren't on islands (yes, some may feel like it), but you have other teammates to help bounce ideas off of them.
Here are a couple of ways to ask for assistance when you run into a problem with coding.
Give yourself a time limit
There are times when I try to figure out the problem myself instead of bothering someone.
I always try to put a time limit while straining my eyes on code that seems to work, but it doesn't.
Usually 30 minutes to 1 hour is my time limit. If I can't figure it out in that set time, I go ask someone for help.
Grab a "cardboard" developer
Recently, a developer mentioned this particular way of solving a coding issue. Have a developer sit behind you like a cardboard cut-out and walk them through the process.
9 times out of 10 you will either find the issue yourself or the developer will make you aware of the [dumb] mistake (trust me, I've made my share of dumb mistakes as well). ;-)
Find your "Wilson"
What do you do when you can't explain code to a real person when you are all alone?
Explain the process to an inanimate character on your desk as if they were a person in the room. When you step through the process and explain it, you may even uncover something that doesn't make sense and identify the issue relatively quick.
I have two advisors on my desk to help me with my coding: Ash and Coulson.
Get A Clear Head
If you've been hitting your head on the desk trying to figure out the problem for a while, it may be time to step away from the computer and go for a walk, go out for lunch, or head to the gym.
Just walk away to clear your head for a bit.
If you get stuck programming, there are a number of ways to attack a coding issue. Even one of the simplest ways is to ask a developer if they see anything wrong with the code on the screen.
You sometimes get screen blindness where the code is staring you right in the face and your eyes ignore the blatant issue even though you've been over it a million times and the bug is waving it's hands in front you saying, "Hey! HEY! I'M RIGHT HERE!! OVER HERE!!"
Finding your "Wilson" redirects the need to explain the issue to someone/something else as opposed to explaining it to yourself when you've been over it a hundred times and it seems like a sound coding path.
What do you have on your desk that you ask for coding advice when you are in a jam? Post your comments below. Share your ideas.