views:

81

answers:

4

I ran into a question today, where the author referenced the documentation for a particular framework but had questions about how a class actually worked. The documentation was not as clear as it could be -- turned out the information was there once you figured out that you needed to look at the parent class for a description of one of the arguments. I went to the link, dug around in the source code for the class (also linked on the page) and found the answer, I think, pretty easily.

It made me curious, what sources people use find answers to questions outside of StackOverflow, of course. What progression do you use? Does it matter how mature the framework is?

I'll add my own thoughts as an answer in keeping with the SO FAQ.

A: 

I generally use a four-prong approach:

  • Official documentation
  • Source, if available
  • Google based on keywords, often with site:stackoverflow.com
  • Blogs

The order of these options changes depending on the type of questions I have. If I'm looking for information on a method signature or what properties a class has I'll look at official reference documentation first. If I want to know how a class works, I'll check the reference documentation if it has good examples, but often will go directly to the source when available. This is especially true if the software is new or the documentation is poor. I use the source for ASP.NET MVC a lot since the documentation doesn't have examples yet. I also use the source a lot for jQuery plugins whose documentation can be very hit and miss.

If I'm looking for techniques rather than references, I'll usually go the Google route or look at blogs where I know that the author works in that area. I don't follow a lot of blogs, so that option is rarely used except for specific technologies -- like ASP.NET, MVC. Google can also be hit and miss, though I'm finding that much of what I need is now available via Google on StackOverflow. I've never really had much luck with the SO search functionality -- sorry.

My option of last resort is to ask around -- say if it takes me more than an hour to find any meaningful help on the web. This is probably unique to my situation since most of the other developers I work with work in different technologies. When I'm out of my element, working in one of their technologies this is often my first option.

tvanfosson
+1  A: 
  1. Any day of the week: the source code
  2. If the source code is not available as I only have the assembly : Red Gates Reflector
  3. Ask colleagues
  4. If that doesn't give the answer, then try google
  5. Try asking on StackOverflow
Kasper
+1  A: 

My primary source is Visual Studio's intellisense, unfortunately.

MusiGenesis
I love intellisense. One interesting thing is that it can help you find missing references -- like when an extension method doesn't show up when you expect it to.
tvanfosson
Intellisense is a double edged sword to me. On one side it's a fantastic tool that works extremely well and definitely speeds up coding. On the other it can often be used as a crutch and allows for coding things with only half an understanding of what you're really doing.
Phairoh
+1  A: 

My steps are arranged so:

  1. Google for keywords
  2. Check official documentation
  3. Ask a colleague
  4. Create a StackOverflow question
  5. Reflect it (.Net Reflector)

Sometimes Google will help you find the answer to your question much faster than the official documentation. Even just reading the page titles on a results page will often point you in the right direction. However, in those cases where it seems no one else has encountered the same problem or attempted the same approach as you, the documentation becomes handy.

I try to do as much as possible (without actually reverse engineering anything) before asking a colleague. I myself sometimes get irritated by coworkers who come and ask me something that 10 seconds of googling would have answered.

Joel Potter
I also use google site:msdn.microsoft.com quite a bit, too. There is fine balance between wasting your time and wasting a colleague's time.
tvanfosson