Ask HN: .Net syllabus
5 comments
C# is the lingua franca of .NET so you would be best off studying that first. It's still a simple language, especially if you know C++. I recommend "Pro Visual C++ 2005 for C# Developers" (it maps C# concepts to C++ but you can go the other way), "The C# Programming Language 4th Edition (with annotations)" and "C# in Depth". Then, of course, just solving problems with the language.
Next you want to get the latest edition of "CLR via C#" to get a very in depth look at how the CLR works.
Once you're comfortable with C# and the CLR, you can pretty much figure out how the major frameworks must work. For instance, you can understand about 90% of ASP.NET just by learning two classes and two simple interfaces.
Some other good online resources are:
http://stackoverflow.com/questions/9033/hidden-features-of-c
http://stackoverflow.com/users/88656/eric-lippert
http://stackoverflow.com/users/22656/jon-skeet
https://msmvps.com/blogs/jon_skeet/
http://blogs.msdn.com/b/ericlippert/
Oh, if you really want to accelerate your C# learning, try writing code without using `if`, `while`, `for`, `switch` and `goto` (obviously).
Next you want to get the latest edition of "CLR via C#" to get a very in depth look at how the CLR works.
Once you're comfortable with C# and the CLR, you can pretty much figure out how the major frameworks must work. For instance, you can understand about 90% of ASP.NET just by learning two classes and two simple interfaces.
Some other good online resources are:
http://stackoverflow.com/questions/9033/hidden-features-of-c
http://stackoverflow.com/users/88656/eric-lippert
http://stackoverflow.com/users/22656/jon-skeet
https://msmvps.com/blogs/jon_skeet/
http://blogs.msdn.com/b/ericlippert/
Oh, if you really want to accelerate your C# learning, try writing code without using `if`, `while`, `for`, `switch` and `goto` (obviously).
+1 for "CLR Via C#"
The best way I've found to learn a language is to use it for some non-trivial project. A good place to go for varied programming challenges is http://projecteuler.net/. The problems are generally math-related, but lend themselves nicely to programmed solutions. These help get you familiar with the syntax, and once you've got that out of the way learning the libraries is only a matter of using them.
I first learned C# at an internship last summer, and I did it by spending a solid week making a 'music database', basically a toy application that was a GUI front end to a SQL database. I learned how C# interfaced with databases, its threading model, the event system, the go-to data structures, etc. With a bit of time, a non-trivial goal directed towards your area of interest, and access to Google and Stack Overflow, there's little reason to effectively take a course in a programming language.
This approach may not be as structured as what you're hoping for, but for me it has been the most practical. I took a course on C++ at my university a year or so ago, programmed some trivial applications for it, passed, and came out with little practical knowledge or understanding of the language. Maybe that has soured me on PL courses though, so your mileage may vary :)
I first learned C# at an internship last summer, and I did it by spending a solid week making a 'music database', basically a toy application that was a GUI front end to a SQL database. I learned how C# interfaced with databases, its threading model, the event system, the go-to data structures, etc. With a bit of time, a non-trivial goal directed towards your area of interest, and access to Google and Stack Overflow, there's little reason to effectively take a course in a programming language.
This approach may not be as structured as what you're hoping for, but for me it has been the most practical. I took a course on C++ at my university a year or so ago, programmed some trivial applications for it, passed, and came out with little practical knowledge or understanding of the language. Maybe that has soured me on PL courses though, so your mileage may vary :)
TekPub does screencast series for programmers and have some really good microsoft stuff (especially web). http://tekpub.com/channels/microsoft.
The Essential C# book is very good.
But why do you need structure? Learning by doing is a good approach to begin with, followed up a bit later on with deliberate study of the seemingly important bits you've managed to avoid so far because the payoff of learning them on the fly wasn't worth it.
But why do you need structure? Learning by doing is a good approach to begin with, followed up a bit later on with deliberate study of the seemingly important bits you've managed to avoid so far because the payoff of learning them on the fly wasn't worth it.
It is vast. The libraries and frameworks are being added at a dizzying pace by MS. Not all are good. Do you have a particular stack you wish to learn? Choices are web, desktop Winforms, desktop WPF, silverlight, jquery, SOA.
My background: I have worked a little in c++ and have good understanding of the programming concepts(like OOP etc.)
Essentials: The topics that I essentially need to study are - understanding the technicalities of the framework, c#, asp, ado.