Knowing Enough C# to be Dangerous
Awkwardly wondering what to do after you get through your first C# tutorials?
Learned the C# syntax, but now what?
Intermediate C# Developer
This post builds off my last to help direct you on your path to becoming a professional C# developer. This material will be right for you if you have been working with C# for about 3-6 months. There is some wiggle room in those numbers, as there always is, but if you are entirely unfamiliar with C#, please go here : Learning C#.
Being an intermediate developer can be tough. You know how to get a project started and you can Google search your way through Stack Overflow well enough to do most things, but when can you consider yourself a “professional”? Yes, that elusive term that even many with it don’t even feel that they deserve. Even great developers like Scott Hanselman say “I’m a phony!”. So when can you feel confident in your skills??
If you are here, I would say you should feel some confidence! You are doing the most important thing, you are working to be better. Now you won’t likely be Senior Software Engineer material after finishing just these videos, but you will definitely have a deeper understanding of how C# works.
Again, this post will be made up of a series of PluralSight courses. You should know that I don’t get any credit for directing you there, I just seriously believe it is one of the best places for C# learning! The only thing they lack is a little guidance, so hopefully my series of posts will guide you on your journey of learning C#.
Intermediate Level C#
Being A Better Coder
Duration : 8 hours 25 minutes
These two courses are by Deborah Kurata, and are an excellent place for the aspiring C# developer to continue their learning. Early tutorials and courses tend to focus on syntax and just the basics of how things can be laid out, and how they work together. What those courses are lacking is the important aspect of what makes good code. These two courses cover everything from what makes a good class, to how to create good methods, and introductions to collections, generics, and LINQ.
Pro Tip : If you are planning on doing the following deep dive videos, you could skip the second course here, as these topics will be covered in-depth in the following series.
Intermediate Level C#
Language Deep Dive
Duration : 27 hours 51 minutes
I debated including this course in my previous post on C# Advanced Foundations. This course covers the differences between interfaces, abstract classes, and concrete classes; and when to use them. Interfaces are taught not just from a C# perspective, but through the important Object-Oriented Programming concept of inheritance.
Pro Tip : Understanding interfaces will help you with all of the following series!
This course spends about 20 minutes on each of the main types of C# collections. It explains the pros and cons of each and in which situations you would want to use them.
Eventually you are going to want to compare objects that are more complicated than the standard C# value types. How will your code know if your cat object > dog object? The answer is false, but that’s another story… You need to be able to define how objects are compared, there are a couple of interfaces which will help you with this, and they are all explained in this series.
Pro Tip : These above three courses will expand your knowledge of how to structure your code, what existing C# structures you can start using now, and finally how to make the most of your custom classes.
Events are a very powerful feature of C#. You will often want to write code that only executes when something happens. This course will teach you how, and how to keep your code clean when you only need to use a function once, with anonymous functions.
You’ve been probably using generics since the collections course without fully realizing it. Upon completion of this series you will be able to use generics with your custom collections, classes, APIs, and more.
Pro Tip : The above two courses really fit together. Generics are a critical part of higher level anonymous functions (Action and Func), but are used in many other places, particularly collections.
Another course by Deborah Kurata, and this one will get you up to speed on the great power of LINQ. You will learn the two methods for using LINQ, declarative and implicit, and when to use each one.
After the LINQ course you will know that they are built using extension methods. This course will further your ability to not just use LINQ methods, but to write your own. You will also learn how to work around many restrictions, such as restrictive access modifiers through various compiler tricks.
Pro Tip : These final two courses on LINQ and Extension Methods will allow you expand (no pun intended) on the libraries you may use, and to interact with your programs data with ease!
Think you can handle the deep dive?
I do! Getting through the deep dive will give you a really solid knowledge of a large chunk of C#. Not only that, but you will have a great understanding of when to use what. Knowing the strengths and weaknesses of different collection types and the use of lambda functions, especially when used with LINQ or your own extension methods will make you a much better programmer. You will not only be able to tackle harder problems, but will be able to do so much more efficiently.
I hope my outlines are helping you navigate the great PluralSight courses! I have one more coming up shortly.
Thanks for reading,
Thomas