One of the best resources out there is a user group. I work very closely with all of the .NET focused user groups here in Canada. It's a blast to work with people who are so passionate about technology and building and architecting applications that will solve problems in all areas of business, academia, etc.The analogy I like to use, is that a user group is like a knowledge bank. Members of the group make deposits of knowledge into the bank, so that the overall balance of knowledge is always on the rise. Other members can make withdrawls to top up their own personal knowlege balance. When the balances of individuals, approaches that of the group as a whole (i.e. when everyone knows what everyone else knows) then you inject new knowledge from outside of the group into the group, it may be from Microsoft, or from the INETA speaker's bureau or from any one of our business partners, or academics, whoever. It might also be from a book, website, blog, etc. From that point, certain members are going to pick up the concepts faster than others, and the cycle of knowledge transfer begins again. Don't get me wrong, I'm not suggesting that every member has to present everything they know to the group, that wouldn't work, there aren't enough meetings in the year, and many are not comfortable speaking in front of the group. There are many many ways to share knowledge! Through your user group website, email list-serve, discussion groups. As a user group member, there are definetly some best practices for getting the most out of the group. Overall, the value you derive from a user group will be proportionate to how involved you are with the group.
Following these steps will identify your own expectations and objectives, which is half the battle, and often overlooked. If you figure out what you want to get out of the group, then you'll be able to make it happen.Happy Coding,Craig.