Mike Lindegarde... Online

Things I'm likely to forget.

Lessons Learned: Always Present the Problem When Asking for Help with a Solution

This is a series of short posts that outline some important things I've learned over the years.  While most of these should be obvious to a seasoned developer, a lot of them aren't so obvious to those just getting started.  You can find other posts in this series here.

Avoid the Rabbit Hole

I'm as guilty as anyone of this:  you're trying to solve a problem and you're convinced you're going down the right path.  Eventually you come to a sticking point and off to Stack Overflow and/or Google you go to find the answer to your very specific question.

Inevitably you get a response or find a solution that answers your question.  However, somewhere in that answer is the suggestion that what you're attempting to do is a bit odd.  Your immediate reaction is something along the lines of "don't tell me I shouldn't be doing this, just tell me how to do it."  Or, "trust me, I'm solving a unique problem in an ingenious way."

Present the Complete Picture

If you've ever find yourself in that situation, odds are there is a better solution.  The problem is that the solution requires a completely different approach than the one you've taken.  If you don't present the problem you're actually trying to solve no one can point out that there is a better solution.

Don't let your current knowledge limit your possible solutions.

When asking for help (be it from the Internet or a colleague) always start with the big picture.  Describe the problem you originally set out to solve.  Don't just ask how to ensure that the HTTP request you're sending via JavaScript doesn't get cancelled before the browser closes.  Instead explain that you have concerns about user session length and security, then outline your current approach and the problem(s) you're having with it.  Odds are you'll learn something.

You can't ask questions about things you don't know exist.  Don't let your current knowledge limit your possible solutions.