Last week, I had the pleasure of giving a talk at The Flatiron School loosely based on this old post. The talk is about the challanges of the early days of learning to code, and in particular about the process of learning to answer coding questions on the Internet (slide deck). This can be an excruciating process, because you need to know a lot to ask the right question and even more to understand the answer. When you first start out, you have lots of questions and limited ability to get them effectively answered.
And, to make matters worse, you sometimes encounter bad attitudes when you ask “stupid” questions.
In the talk, I share three techniques for coping with being stuck that I’ve picked up from more experience developers over the years:
The 30 Minute Rule. Don’t post a question on Stack Overflow, or bother your friend or colleague, until you’ve spent some time wallowing in your misery. Google around. Read documentation. Write a script or dummy app to try to isolate your problem. Maybe you’ll find the answer yourself, which feels awesome, or maybe you won’t. Even if you don’t, these periods of stuckness are productive in the long run. This is how you build your research skills. (Obviously, the 30 minute figure is arbitrary; figure out what works for you in the context.)
Rubber Ducky Debugging. This is a well-known technique, of course, but it bears repeating. I think the reason that explaining a bug to another person helps you fix the bug is that it provokes your epistemic empathy. When you think through a problem in your head, you tend to skip steps because you know what you’re talking about – or so you fool yourself into thinking. Explaining the issue to someone else forces you to consider what someone who isn’t intimately familiar with the problem would need to know, and in doing so, you fill in the gaps. Often, the piece of the puzzle you were missing was hiding in one of those gaps.
What did you Google? I’ve sometimes had the experience of asking a more experienced colleague for help with a problem I’ve been laboring over, only to receive, less than a minute later, a link to a page that answers my question. When this happens, I get excited. My colleage didn’t jsut know something I didn’t know; she knew how to find information I didn’t know how to find – and now I can learn her secrets. When someone finds your answer when you couldn’t, debrief them. Try to disect their thought process so that next time you can do it yourself.
I’d love to hear about other techniques along these lines that you’ve picked up over the years.