

Ask HN: .Net syllabus - kang

I have been trying to study .net but cannot find a structured way of going about studying it. The index of various books is varied, and only scares me with its vastness. Can anybody suggest me a ordered syllabus (course plan) to study.<p>My background: I have worked a little in c++ and have good understanding of the programming concepts(like OOP etc.)<p>Essentials: The topics that I essentially need to study are - understanding the technicalities of the framework, c#, asp, ado.
======
noblethrasher
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).

~~~
tunaslut
+1 for "CLR Via C#"

------
fendrak
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 :)

------
lukencode
TekPub does screencast series for programmers and have some really good
microsoft stuff (especially web). <http://tekpub.com/channels/microsoft>.

------
math
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.

------
teyc
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.

~~~
kang
Yes. My particular interests are C# for desktop and ASP and javascript for
web.

~~~
moomin
I'd start by learning ASP.NET MVC, then start to work outwards from there. You
could do a lot worse than reading the examples on Scott Guthrie's blog.

