First off let me say there is no formula or true time table that I am providing. Since chronicling my pursuit of software development I have made multiple references to certain books and videos along the way, but now I'd actually like to come back to those books in more detail and discuss how they can play an important part in a new developers journey. I suppose it may look like an in detail book review at first. But I'm really not reviewing the authors work per se but sharing how it has affected my learning process in hopes that reading them the way I did would help someone else. I follow a lot of social media and I saw some ridiculous comments. For instance one said something like "I want to start programming one day. So bad. I want to learn how." Surely, I thought everyone knew how to utilize their resources and dissect the vast dimension of information that surrounds us. That person most likely had a smartphone or tablet. There. They can learn to program. At some point it hits that person how badly they really want to learn something, then they'll stop at nothing, collecting resources and asking for help, until they're satisfied. Which for development - may be never. I think it will take about ten years to learn C# effectively. Maybe longer. Maybe my entire career. The technologies a developer will be exposed to, at the pace they will be exposed to them, should reinstate the need to live in a state of constant learning.
"I can't learn from books. It's not my learning style."
That's a shame.
If you've been following my blog at all you'll know my two main sources for learning are books and Pluralsight. Books help me tremendously. I can have text in front of me with code laid out and follow the code line by line while the author explains what each piece does. I have never seen such a thorough style, other than that of Adam Freeman. This author starts off by giving you a high level overview of the technology you will be learning. Then he blasts you with building a fully functional application, that of course you have limited knowledge of, and then he goes throughout the other half of the book explaining in detail why you typed every line of code you just produced. If that seems odd .. it is - but you should really give it a try. Because it's less about a book and more about doing. I feel that books allow you to do a great deal. At least that's me. However, I use Pluralsight to fill in the gaps. Pluralsight is helpful because it provides you with a visual representation of what you should be doing. You get to see an actual person write out code and explain to you what they're doing. If you use this in conjunction with a book and in conjunction with building your own projects while following the examples of these materials - then you are spinning through a trifecta of learning goodness. So maybe you could benefit from my next few paragraphs.
If you are a BEGINNER to C# and Object Oriented Programming - Get started with these books and in this order:
This is a lengthy introduction to the absolute fundamentals to the C# language, Object Oriented Programming, and the .NET framework. Mr. Sharp lays out each example in exquisite detail, providing sample source code to follow along with, and everything you do builds upon the previous lesson. Detailed chapters, in depth coverage of the language, and exercises to practice with. This book was truly the turning point for me. I really understood in depth of what I was doing and things were finally clicking.Look, about what I said above earlier - I am not out to discourage a learning style or disrespect those who cannot use a particular style. Really, a lot of what I am saying has to do with some of the negative things people on forums say about books as a learning resource compared to just diving in code without knowing what you're doing .. maybe reading an MSDN article here and there. (<-- Which you really should do everytime you don't know what something is!)
So if you're a beginner, just start here and stop thinking about getting started! Yeah and another thing. These books cost money. Oh no!!!
Yeah - your career is worth money. Your passion is worth money. You will find money. If you want a Pepsi bad enough, you'll find a dollar. My Pluralsight subscription is 30 dollars a month plus about two new books a month which is usually about 80 bucks. There will be more money spent on on my passion/hobby/career down the road. So lets just not get into how wrong I am for asking you to spend money. Only about 20% of this process even costs anything - if that! Learning resources are just one piece to this puzzle. Now we're moving on.
Just give these a try - I want you to be successful. There are reasons why new developers fail. You can avoid this just by being aware of how learning works. I am finally getting better with structure and am making lesson plans and goals each week. I would highly recommend this. Your journey will be long. So now that I've made sure to defend books as a viable learning option for beginners - let's get back to the specifics: C#
After going through Visual C# 2013 Step by Step you should be able to scroll through the exercises and be able to reproduce whatever you see. Even if you don't understand it all at its absolute core yet - you should be able to fully comprehend C# syntax and program flow. You should be learning how things fit together and always open up Linqpad or a Console app and try everything you just learned! Please don't forget that part! Actually code! The title said "Three books - three months" Depending on your motivation, comprehension, and life schedule - these books may and very well will take less than a month to complete. However, I am using a month as a solid reference for the time to go through these pages time and time again - strengthening the concepts before moving on to something else. Just make sure you're comprehending. Read articles and forums, heck even start a Blog! To be honest with you, this blog is mostly for me so that I can look back and see how far I've come and compare my way of thinking about a subject to a previous point in time. It's a great way to track your progress. I can go back to my first post three months ago and then look at 60 days with C# and reflecting on what I have learned another month later, writing this post. So, get a blog. Get on Twitter. Get on Stack Overflow. Ask questions. Get involved and do whatever you can to figure something out!
While reading through the book above, reading articles, reading Microsoft documentation, and watching YouTube tutorials (this stuff is everywhere!) I would then recommend going in for a deep dive ... or filling in the gaps with this book here:

This book is a very well known -definitive reference - within the C# community. There are multiple editions out now as we are, of course, in C# version 5.0. This book is even more massive than the previous one an isn't quite a nutshell. I'm not of course going to tell you to hurry and read every word within a month. But as you are going through your other materials and you come across something you don't understand - it will be in this book. This book covers advanced -yet still ina a fashion of introduction- topics such as concurrency, networking, security, data serialization, native interoptability, and low level framework features. I would recommend you read as much as possible on a wide variety of topics. At least read through the first few chapters which covers, once again, the language basics and the more capable language features such as generics, lamda expressions, delegates and events. I will say though .. there is a partial alternative/supplemental solution to this big breadth of framework study.
Meet the ever so useful, much smaller, and much cheaper little brother to the nutshell:
C# 5.0 Pocket Reference
This little guy is worth your money! Yes, you could browse online to find a reference to any subject - but this book is directly linked to the one above, it's big brother, and is quite accessible and enjoyable for those of us who still like books printed on paper. The author describes it as "All the meat without the potatoes" I can see myself using this as a review before heading into a certain project. In fact, not only do I quickly look up certain features that I need to know more about at the time, I also read it cover to cover right before diving into ASP.NET MVC, to make sure at least some of the core language features were solidified. Great book.
**Note very important - the .NET framework is so big. It's very fun. There's a lot to get distracted by. After a month of learning C# I tried to start building web applications with Web API and Windows 8.1 apps. Yeah .. learn the language inside and out. Take baby steps. Still play with stuff. Maybe a WPF application or Console app to solidify a new topic or experiment. But steady your ground with this language before moving into any framework or programming model.
**
Now, after you know some C#. Have been exposed to the fundamentals of fundamentals and have been writing programs for a couple of months. You are then ready for the most famously comprehensive, yet readable, work on the subject:
This is for months later down the road. You may of course attempt to read it whenever you want. You may even recognize many things about the language and its evolving features. But to get the most out of this amazing book, it is recommended to have a working knowledge of C#. After you are comfortable with the language and have written C# programs there then comes a point in which you want to know why things are the way they are. You will want to see how things work in C# and the .NET framework/CLR. This book is a famous entry point for true master craftsmanship of the C# language. Jon takes you through C# starting at the end of its infantile days of version 1 and walks you through code, going through how each line has evolved, all the way up until version 5. Delegates, Lambda expressions, nullable types, Async/Await functions, LINQ, and much more. This author dives in depth and truly shows you how great and easy it is to appreciate such a beautifully designed language.
These books aren't mandatory. Many haven't read them. However, I think all C# developers who care about the history and evolution of their craft should read Skeets' book. Again, this is my blog. And here I share things that have helped me in hopes that it could help you - the one who thinks and learns like me. Start from the beginning. Utilize these great tools as well as other resources you have planned on using and truly want to understand the nature and your craft. Learn C# and learn it thoroughly .. not so you can become the greatest C# programmer who ever lived .. or the next great theoretical computer scientist .. no. Learn this language well so that you can move on to the next. You will need more tools than just C#. But if this is your first programming language ... then I don't think there is a better place to be or a better time to get started. Go to MSDN and start looking into things in depth as you come across them. Download source code and practice with free tutorials. Use everything! And keep track of it all. Show the world. Even if it is a Console app that says "Hello, World" .. blog about it. Show someone. You made it. Be proud. Read these books. I will keep posting more links to other great resources. This post just covered a few books for just C# alone. This had nothing to do with WPF, Entity Framework, Code First, SQL, MVC, etc..
**Update: Design Patterns**
One more thing that I would like to cover here is something that I'll be studying more in detail as the months go by is the concept of Design Patterns. Design Patterns provide us with common and reusable solutions to problems that have been encountered in production. Some are simple and others can become quite theoretical and usable on large scale. I have included some great and sufficient resources that I have come by thus far. I'm sure you could find many more but these are quite recent and practical.
Since I'm having you spend your precious money on all these books I'm going to stop speaking about Pluralsight in this mystical, optional, highly recommended way and just tell you to buy it already if you haven't. I really .. don't know what you're waiting for.
Design Patterns Library - Pluralsight
This course is actually a collection of courses - "library" - which contains almost 16 hours of design patterns and their history/implementations.
I would use this in conjunction with this book I found:

C# Design Patterns Essentials
There are many books out there about Design Patterns but this one has great reviews and was written quite recently and shouldn't be lacking any relevant features of the C# language. Remember that you should have at least a decent working knowledge of C# before trying to implement patterns and make use of them. It would just make sense to go through the books above and really be comfortable with a technology before trying to fully understand design patterns and software practices. (Agile, Dependency Injection, etc.,)
And if you want another great resource for those familiar with Java, then check out these great videos and code samples. To be honest, even though these examples are in Java, if you are familiar with C# before you begin watching these, you will be fine. Java and C# share a very large part of their syntax and programming structure. That and these videos aren't supposed to be a comprehensive introduction to the Java language, but instead are to teach and show the use of Design Patterns.
Happy Coding



