This falls into the social engineering tools category...
I've been programming for over 20 years now, and I'll never forget what a mentor of mine taught me when I was just starting: If your stuck trying to figure out something for more than 5 minutes, start asking questions.
Of course back then it was in person, asking the lead, or a senior developer a question. Now I google.
I never could understand why some of my peers would spend months trying to figure out something all by themselves w/o even letting other people know what problem they were trying to solve.
Of course asking the question doesn't always get an answer, but at least you'll know if what your trying to figure out is novel.
Another frequent benefit to asking questions: by the time you've explained what your trying to solve, the answer pops into your head!
As far as tools,
App Logging is a frequently overlooked tool, extremely useful.
and debuggers are crucial. Become an expert at all of them (WinDBG, VS)