Being a self-taught "amateur" programmer, I do most programming in my spare time, for relatively small projects, or for small study-related utilities. I greatly enjoy it, though, and have learned a great deal over the past couple of years. Through various weblogs and websites, I've become acquainted with version control, bug tracking, unit testing etc.
The languages I'm currently working in are mostly Delphi (2007 for Win32), as well as some PHP. I've been very happy with both (actually, I'm using Delphi for a rather large side-project), but the things I've seen of .NET (especially C#) seem very, very interesting. I haven't really had the time to dive into .NET, though; also, it seems like there are some serious financial burdens one needs to overcome before one can get started with it (the whole VS stack is quite an investment for someone who doesn't spend his whole work day programming).
So my question boils down to, actually, a couple of related questions:
- What strengths of .NET would make a switch to it worthwhile for an amateur programmer like me?
- What are good resources to get started with .NET/C#, esp. books?
- How would you build a relatively cheap development stack for .NET?
I realize this is a rather open question, but I haven't really found a good web resource that covers these topics. Also, advice from experienced programmers like you guys around here tends to be invaluable!
Thanks a lot!