Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Like anything in life, what you don't know doesn't help you and as a new developer, I know that the more I learn about the different .NET classes out there and their uses, the more I have in my toolbox.

However, sort of like an ocean where you just not sure where to start, I thought I would asked the community, does anyone know:

  • any recommendations on breaking down a .NET library per class (or smaller), where to start?
  • A site that might do just that per article/blog

Or any other recommendations on making it a regular (i.e. daily/weekly) practice to learn a new class in .NET? Which Library to start with...etc?

NOTE: I read allot or regularly, but I thought an effort geared directly at learning about a new class and its uses on a regularly bases would help.


share|improve this question

migrated from Aug 18 '11 at 13:43

This question came from our site for professional and enthusiast programmers.

Take a look at this older question: - I know you're not saying you want to learn from scratch, but want a more gradual approach to deepening your knowledge, but I feel like the input on this question is still relevant to you. – asfallows Aug 18 '11 at 13:42
possible duplicate of How to learn the .NET Framework – Kerrek SB Aug 18 '11 at 13:43
up vote 3 down vote accepted

I don't think learning the names of classes/methods implemented in a framework is something enjoyable and useful for your future career. It is especially true for .NET Framework which is, today, really huge, not counting the set of additional Microsoft libraries you can install.

The drawback of this approach is also the fact that you'll quickly forget the most stuff you learned. Can you really retain hundreds and hundreds of names?

Another drawback is that you'll have to learn stuff you never need. For example why would I learn how to extend Visual Studio, if I'm not ready to create Visual Studio extensions? It's even worse when it comes to obsolete code.

Instead, search for the appropriate classes when working on a project. Object Browser, in Visual Studio, has a good search capability which is very helpful for that. In addition you have Google, and of course Stack Overflow.


  • you learn one day that there is a JavaScriptSerializer class in System.Web.Script.Serialization. So what? Can you remember it forever? Will you try to understand why and when is it useful? Do you really understand immediately that this has something to do with JSON?

  • you're writing an application which must parse JSON. You open Object Browser and search for JSON. You find that there is an implementation for MVC projects, and also a JavaScriptSerializer class in System.Web.Script.Serialization with Serialize and Deserialize<T> methods. Now you can really appreciate those classes and choose what is more appropriate for your project: the MVC implementation or the JavaScriptSerializer class.

share|improve this answer

Pick a class and write tests for it. Writing a test forces you to learn how it works because you have to learn what you can input and what output you will get.

Not only do you learn how it works you also now have a body of work that you can use to determine if new versions/patches change the expected bahavior.

I would first pick classes that should be fairly easy to understand based on you passed experience. Such as the string or maybe a stream.

I think as you write the tests for each class you will naturally find other classes that are interesting and useful.

share|improve this answer

Give yourself a project to do, some sort of software application you would like to write. With that goal in mind, you should implement as much of the functionality as possible by using the classes, interfaces, enumerations, etc. that are available in the .NET Framework. This way, you force yourself to discover whether some functionality you need already exists and by doing so you learn more about what the framework offers.

share|improve this answer

The best way that I've found is to turn into a sort of religion. They have a piece called, "Better know a framework" that is featured on every podcast they do, or close to every one, and it's always getting into weird-but-useful ones that you'd probably not see otherwise. You can take it from the same level that they do, and explore the classes they mention more fully. This is a really simple and fun way to do it, and to generally learn more about .NET, because the people they interview are often quite good at it. I've always been impressed with them, anyway. I hope this helps.

share|improve this answer

I have a disc with the MSDN library for Visual Studio 2005. I just enable the index and there you have choices by which language to filter it, i.e. Visual Basic, C#, C++ and many others too.

So what you can do is go down the list, which is alphabetical, and start reading up on the classes starting with the more commonly used functions. There is an online version on Microsoft's website(just Google for MSDN Library) but I recommend to download the library, its interface is more user friendly.

It doesn't matter if you use a 2005 library for 2010, all the basics stay the same. Everything I know about programming in .Net came from there with very little coming from other sources.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.