tags:

views:

816

answers:

10

Duplicate

Which books are considered classics for .Net?

Learning .NET

What are some good resources for learning asp.net?

Learning .NET if you already know several languages

How to stop worrying about using the best materials and just start learning .Net?

Hands on asp.NET learning recommendations

I am gradually moving away from c++ and going into C#/.NET world. I am already writing production level code in C#,even employing CLR, yet far, far away from being an expert in C#, and NET in general, amateur at best. However, I want to become the expert in all aspects (most important ones) of .NET; I can skip on VB and asp for now. This is my goal!

Many of you here are already at that level. Hence, I want to know about your experiences getting there: books you have read/recommend, time it took, suggestion how to get there faster, what should my learning curve be and contain, etc.

Thanks Guys, I found my answers... sorry for being overtly blunt!

+3  A: 

This question has been answered numerous times.

Which books are considered classics for .Net?

Learning .NET

What are some good resources for learning asp.net?

Learning .NET if you already know several languages

How to stop worrying about using the best materials and just start learning .Net?

Hands on asp.NET learning recommendations

GregD
This is not an answer. It is a comment.
Geoffrey Chetwood
Dupes belong in the comments or the question, not the answers.
Geoffrey Chetwood
Jesus you people are a fickle bunch. This question is sooo much a duplicate that if the OP would have simply searched, he'd have the answer.
GregD
I don't think it was answered specifically in regard to C# and .NET. At least, rudimentary search didn't reveal anything. thx
@GregD: And all anyone is asking from you is to not pollute the answer pool. Use the appropriate means to express your hunch.
Geoffrey Chetwood
@RichB: Don't pollute the comments with your terrible hair and hall monitoring
Jim
@Jim: DON'T YOU DARE INSULT THE HAIR! DON'T YOU DARE!
TheTXI
@RichB: Actually he did answer the question by providing links to other duplicate questions. Which I've seen done many times on this site. This is the same as answering a question with outside links.
AaronS
@AaronS: First of all, that is not what was in the initial revision. Second of all, just because something is done elsewhere does not mean it is right.
Geoffrey Chetwood
How am I polluting the answer pool anymore than dupes?
GregD
@RichB - yeah sorry for the initial post. I accidentally submitted before I posted my links. That being said, I don't have the ability to close questions as dupes, which is why I've posted links to questions/answers in the past.
GregD
@GregD: Duplicate /questions/ would be polluting the question pool. Not the answer pool. But regardless, your answer is a dupe as well. I assume you will do the right thing and delete it though, right?
Geoffrey Chetwood
@RichB My answer is no more a dupe than everyone else who answered this duplicate question.
GregD
@GregD: I disagree. The exact same content is /in/ the question.
Geoffrey Chetwood
@RichB So because you're editing the OP and adding the information that I've gathered in my answer, I should have to close my answer as a dupe?
GregD
Exactly where does it say you can't say a question is a dup as an answer? I think it's just as much of an answer as adding links to outside sites. I also don't see it mentioned on the official FAQ, or in any previously answered questions.
AaronS
@AaronS: I am just using GregD's reasoning here...
Geoffrey Chetwood
@Rich B: I'm referring to your first two comments, and then your comments to me later.
AaronS
@AaronS: And I am not.
Geoffrey Chetwood
+1  A: 

The number 1 tip I can give you - don't leave C++ behind. It will always have a place in this world, and anyone who writes distributed applications will tell you that C++ is absolutely priceless to have.

In terms of learning C#, there are basically three things you need:

  1. Visual Studio with Code Completion enabled
  2. Google
  3. http://msdn.microsoft.com/

Number 3 is extremely useful as it is a copy of the documentation, API and otherwise, that is always up to date.

The final piece of advice is that where C++ is heavily procedural when using the Win32 API, C# is heavily object-oriented with everything organised into neat little namespaces. For example, there is no more _beginthread() et al., but the System.Threading.Thread class with Start() and Abort() member functions.

Fritz H
of course NOT, I love C++, and we still are, at work, heavily involved.
Heheh, fair enough. :-) C++ just feels like a real man's language. In terms of learning .NET, another tip, by the way - it is EXTREMELY exception-happy. C++ will return NULL, C# will go down in flames. try{}catch{} is your friend, but only if you can do something about the exception.
Fritz H
DO not leave assembly behind! You won't feel like a real man if you do.
Joe Philllips
A: 

Well I would probably start by reading the one from Jon Skeet. He's seems to be able to answer just about any C# question here, so I would say that he's a good person to learn from.

Kevin
Thanks, I am reading his book now, C# in depth... but AFAIK, he is not specializing in .NET framework per se, but in CSharp, correct me if I am wrong...
@Sasha: What would you use C# for if not .NET??
Geoffrey Chetwood
@Rich B: there's an enormous difference between learning the language features of C# (even learning about the classes that support them) and learning about, say, the classes in the System.Messaging namespace. You can do either independently of the other.
Jeff Sternal
+1 to jester/Sasha. CLR via C# is great to learn the runtime, and C# 3.0 in a Nutshell has good coverage of the "core" .NET framework, as does Accelerated C# 2008.
Jon Skeet
Is there an updated version of the CLR via C#? If I remember correctly this covers .net 2.0, and I didn't know if there were significant updates in 3.0 and 3.5 that would make this book outdated.
Kevin
+6  A: 

Read, code, test, repeat.

JaredPar
A: 

If you want to become "expert in all aspects" of .Net I recommend following the certification route. Certification gives you broad exposure to all aspects of .Net -- much broader than you will learn from any given job or by reading a couple books.

Certification involves taking a series of tests; each test has a companion book published by Microsoft Press. These books include excellent coverage of the test material and sample tests. There are several levels of certification, see this page for more info.

Certification also looks good on your resume. It shows you have been exposed to the breadth of .Net, and while you are not an expert in every area, you at least know what's out there and where to learn more.

I got an MCSD certification about 4 years ago and found it to be an excellent investment of my time.

Tom A
+1  A: 

READ

The .NET framework, like any framework, is easy to get started with and become complacent with once your requirements are met. If you ever want to become a "master", you will need to continuously improve yourself. The easiest way to do that is to push your boundaries by exploring areas you aren't familiar with. Reading blogs, books, and magazine articles go a long way towards doing that.

Kevin Pang
A: 

I can tell you how I did it...basically by deciding I wanted to pass the certification exams. I bought books on them, and worked through them. Now, while the value of certification is disputed, it worked well for me because it provided a good structure for me to follow, and a definite goal to work towards.

By the time I was finished working through the book I took and passed the exam...which basically meant that I'd learned enough to start to understand what was possible, and how to approach solving problems. At that point, you'll be more on your own, but at least you'll have an idea of how to approach learning more.

Beska
+1  A: 

MSDN docs for making quick progress

Books to be read to gain in-depth knowledge -
1. C# in depth
2. CLR via C#

Programming blogs/forums are also a great source, especially to get different POVs.

Mohit Chakraborty
A: 

Nobody is an expert in .NET, not even the guys who write it. .NET is just too big to know it all. You will find many people know more than you, but that will always be the case, and it will always be a matter of perspective.

Anyone who claims to be an expert is lying to you and themselves.

That said, read blog posts, read questions and answers here on StackOverflow, and mostly be prepared for it to take time.

Russ
A: 

Everybody has great answers. One thing that I would add is to spend some quality time with Reflector. I think Red Gate distributes it for free now.

Basically when you have a question about what the .NET BCL does or how it works, open it up and look inside the framework and read the code (or at least a decompiled version). The docs aren't that great anyway and this is a fantastic way to see what's really going on under the covers.

Eric Nicholson