Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I just got a position at a big, well-known C#/.NET company. The thing is that I don't know any C# or .NET at all (they know that) and I want to learn as much as I can before I start, to not waste time (and money).

How do I learn C#/.NET quickly and efficiently? Resources? Great tutorials? Videos?

EDIT: I forgot to mention that I have a couple of years experience with Java. So I am not new to programming - just new to .NET.

UPDATE: Thank you for all your replies. I have ordered "Essential C# 4.0" and until then, I will go through some of the guides / tutorials and the general documentation at MSDN.

share|improve this question
8  
Do you have any programming experience at all? – Mongus Pong Jun 28 '11 at 15:40
1  
You know Java already? s/toString/ToString and you're done. – Jordan Jun 28 '11 at 19:31
norvig.com/21-days.html it might help – user Feb 22 '12 at 17:56

closed as too localized by ChrisF Dec 10 '11 at 16:38

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, see the FAQ.

13 Answers

up vote 20 down vote accepted

Download Visual Studio Express (its free and comes with everything you need to get started) if you don't have any of the tools already and start by trying to accomplish something. Do a tutorial or three, but then go for a goal and build a project that does something. You may spend the next week searching non-stop on Google but hey - isn't that programming?

This will get your feet wet, get you familiar with the IDE and working with a database in C#, and will teach you how to solve problems in C# better than any set of videos or tutorials ever could.

share|improve this answer
3  
+1. Programmers learn by doing. For example, I only truly learned OOP and MVVM and other architectures/patterns by cutting my teeth on some real projects, writing some truly awful code, gradually improving on it, running up against various limits and corners that my initial rookie practices caused me to paint myself into, and finally realizing the usefulness of such patterns. – Aphex Jun 28 '11 at 19:04

There are some great books and online resources for you. I found these two to be excellent starting points:

Illustrated C#: http://www.amazon.com/Illustrated-2010-Experts-Voice-NET/dp/143023282X

and

C# Fundamentals at http://pluralsight.com

I have no affiliation with either of these, but these are great resources.

Update: While I was going through the C# Fundamentals videos the Illustrated C# book became extremely handy as a companion guide.

Also, depending on what you're going to be doing with C# (ie. ASP.NET, WinForms, WPF, WCF, etc.) you'll find that Pluralsight's website has a ridiculous amount of .NET related video training.

share|improve this answer
+1 on pluralsight – jcolebrand Jun 28 '11 at 15:58

Consider studying for a relevant MCP exam.

Presumably you can already program, these exams focus purely on .Net. The exam books that MS release have a chapter per technology along with labs and questions. Even if you have zero desire to sit the exam at the end this is a decent way to cover the frame work.

There are exams specifically for Web (70-518), Winforms/WPF (70-511), service architecture etc.

share|improve this answer
1  
-1 very bad idea. he will not learn. just waste his time memorising stuff – Ritwik G Jun 28 '11 at 16:04
1  
I disagree Scrooge, I looked into an exam some time ago and found myself discovering lots of parts of the framework I never would have discovered otherwise. If you actually do the labs in the books to learn the language, its pretty different from cramming for an exam. – Robert Anton Reese Jun 28 '11 at 16:09

I've found LearnVisualStudio.net to be very helpful. No affiliation.

share|improve this answer

Learn by doing. It's very easy in C#, especially if you're experienced with Java and IDEs like Visual Studio.

I've found that I'm terrible at self-motivating to start new projects, especially when I have a new tool I want to learn to work with in the process. If you're anything like that, then sometimes no amount of resources at hand will actually be the driving force that gets to writing code in C#. But that's alright.

I just started a C#/.NET developer position myself, and had never written a line of C# code before I started. My boss gave me a fairly straightforward project when I got there on day one, and I just dove right into it. Between Visual Studio, one or two books, and the resources at the MSDN Library and Stack Overflow, I'm already completely comfortable in the language. I wouldn't claim to be an expert, but I'm solid proof that all you need to learn C# quickly is to use it.

share|improve this answer

Do you know what learning style works best for you? That's something to consider as some people may do better with screen casts, some with transcripts, and others with just an audio feed guiding them on where to click and what to type.

Another side to this is to consider the tools used,e.g. what version control software do they have, what IDE do they use, what bug tracking system, what mocking framework, as these may also be worth reviewing.

share|improve this answer

If reading books works for you, Essential C# is an excellent place to start: http://www.amazon.com/Essential-4-0-Microsoft-NET-Development/dp/0321694694

share|improve this answer

I was in a similar situation and read the book Pro C# 2008 and the .NET 3.5 Platform. It was really helpful, I don't know how much time you have(it's a big book)

share|improve this answer

C# in a nutshell and start writing your own pet projects immediately.

share|improve this answer

If you know Java, you should pick things up quick.

Grab a copy of Express edition and check out making GUIs, MVC , Databinding, etc. Take a look at Linq and whatever else in the framework intrigues you.

share|improve this answer

If you prefer visual learning to reading I am a fan of TekPub http://shop.tekpub.com/products/csharp4

share|improve this answer

Learn by doing. You have to basic tools like like IDE and compiler to compile the code. Get some good books which can teach you in really good way. I'd suggest

share|improve this answer

head first c# is a nice book to get you started with the basics of the language.

share|improve this answer

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