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.
You can't ask questions about things you don't know exist. Don't let your current knowledge limit your possible solutions.