A software package a day: LINQPad
If you are doing virtually anything with LINQ, you owe it to yourself to get LINQPad. The basic program is free and makes experimenting with LINQ actually fun. For a few dollars you can register it and get auto-completion as a bonus. Frankly, I would have registered it without any perks because it is just so addictive.
What does LINQPad do? It is an interactive querying tool that can connect to your data sources and allow you to quickly try various queries and dump the results out. In a way it is to LINQ as SQL Management Studio is to SQL. It provides that instant feedback that makes building SQL queries easy in Management Studio, and allows you to see the “plumbing” that you are creating in the form of the results (obviously) of your query, but it goes farther and shows the expression trees, SQL (if used) and IL dump.
These are in some ways like the SQL Management Studio’s “show estimated query plan”, but go farther into the details while remaining easy to use. Seeing the exact SQL syntax makes it easy to confirm your line of thinking in a query while the expression tree will help you understand what is going on “under the covers” when you use the natural language LINQ style.
However, it goes farther than this in that it provides an interactive experimenting environment for creating classes quickly and testing various expressions that don’t involve LINQ to SQL. I highly recommend it for anyone who deals with LINQ, especially when you are learning.