Tutorial Hell For DotNet Developers

Published on 11 July 2024
Updated on 11 July 2024
3 min read
.NET Development
Backend Development
Learning Challenges

Introduction

Most of .NET backend courses are bad for beginners, instead of teaching you the principles of backend development, you just follow the instructor writing CRUD projects with best practices, and you do not really learn anything.

The Problem with Current .NET Backend Courses

This type of courses are great for people moving from other technologies, having the concepts in head, but for people learning backend for the first time, it is a nightmare because best practices, SOLID principles, Design Patterns … are solutions to common problems that you mostly did not face yet.

Let’s take an example, you are starting an ASP.NET Web API course. The instructor gives you some historical information about .NET and tells you about the prerequisites, which is “C# basics & SQL basics”. However, while starting, you will be confused with a lot of concepts and tools like dependency injection, IoC container, controllers, MVC, DbContext, Repository Pattern. You will ask yourself:

  • What is he doing?
  • Why is he using an interface instead of the class directly?
  • What does he mean by registering the repository into IoC container?
  • Why is he using DI singleton instead of just using a static member on the class?
  • What is Entity Framework?

(Remember that the prerequisite is C# basics; I do not think that ORMs are considered as a language basic.) How can this model be transferred into a database table? He did not explain anything, and it works! Then, how can I customize it? If you suffer from that, I will try to help you get out from the hell.

Identifying the Real Prerequisites

There are a lot of people who do not find a problem with this. Most of them enjoy getting results without understanding what is happening, but for people trying to understand things from the ground up, web development is a nightmare. It is a great mindset, but it will only hold you back in this case.

So, from what I explained previously, one of the main causes is that instructors do not tell you the real prerequisites because they are trying to get more views. Most people prefer less effort and more results, so they target them. The real prerequisites that I see are:

  • SOLID Principles: Never start a backend course without it. It is good to read books about OOP/OOD and how they can be applied in the right way through SOLID. Knowing SOLID and using it in some projects is very helpful.
  • Design Patterns: All frameworks use design patterns. Take a look at the most used patterns (e.g., Repository Pattern, Chain of Responsibility …).

Notice that SOLID and Design Patterns are ways to solve common problems that, at your level, you mostly have not faced yet. However, since all tutorials use them, you have to adapt to them.

  • Learn the Language Well: The basics are not enough (learn LINQ, Extension Methods …).
  • SQL & ORMs: Start from Dapper or Entity Framework.

Starting Your First ASP.NET API Course

Now you should be ready to start your first ASP.NET API course (start with Minimal API, not MVC).

Conclusion

Note that learning backend for the first time is like learning to speak for the first time. You learned your first language by listening and speaking it. This is a sad truth until someone introduces a new way of learning. It may already exist, but if you are reading this, you mostly did not find it. Do not waste more time, just start and be patient.