The table has turned and the wind has changed. Microsoft has been making bold moves with all the open source projects that run multi platforms. Once known as the “evil” of software industry, Microsoft is changing their image to be good again. And with Xamarin being free – C# is the language to learn now – if you have not already. Being a very good OOP language with powerful functional programming features, and built on a mature platform and excellent tools and library, you can use C# for almost everything these days – mobile, desktop, server, and even client.
Visual Studio Community:
Visual Studio is simply one of the best IDEs out there, and while missing some of the features, Visual Studio Community is free – so it’s perfect choice if you are a student or simply learning the language. It can be downloaded from here:
C# 6.0 in a nutshell
This is the bible for C# programming – it covers almost everything, from the language basics to the framework functionalities. The contents are written in a very concise style, while still give you covered, accurate information. If you want to get up to speed – this is the book. And it should be kept for later reference.
The authors also provide a chapter from the book for free – make sure to read it, even if you are not into .NET programming, you’ll learn something about threading, concurrent and parallelism http://www.albahari.com/threading/
C# in depth – 3rd edition
Written by Jon Skeet – if you have heard of StackOverflow, you probably have heard of him. He’s like C#’s god – he’s available everytime, and can answer every question like he knows it by heart. When StackOverflow was still fun – there was even a topic dedicated to his facts.
He’s just that good.
Jon explained the language in a great detail – what is it – how to use it – why is it that way – and how can it be better. It’s important that you not only know the language, but also you understand it, and think out of the box.
This is the book if you really want to understand C#, in depth. Read it from cover to cover and re-read after a while.
CLR via C#, 4th edition
If C# in depth is the book to learn about the language, then CLR via C# is the book to learn about the framework and what is underneath. Albeit of being a language, C# coupled tightly with .NET framework and you can’t fully understand the language without knowing the framework behind. The book explains all the framework components – AppDomain, Assembly, Thread, Generics … in a detail yet easy to understand way. Jeffrey Richter is a great teacher, and this book is not only way to learn from him – we will get back to that later.
That’s it. That’s the “only” 3 books you need to learn the language and the framework it’s built on. If you read these three books the way they should be read, you should have a pretty decent knowledge on the topics. Still – it takes practices to master a language, and in that matter – I would suggest to follow the guides here: http://www.asp.net/mvc
The next post will be about – how to be a good C# developer.