Skip to content

l-white/c-sharp-path

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 

Repository files navigation

C# Learning Path

One of our students in the Zero to Mastery commmunity is studying C# at their university and asked for some resources. There is little else I like talking about than software development in C#, so I was more than happy to put this curated path together. I suggest taking it in the order, which involves taking one course on Udemy called ASP.NET Core 6.0 Course - MVC - Blazor - Razor - EF Core and then solidifying your knowledge with the learning paths from Microsoft.

This material up to the Next Steps section will give you a solid foundation in C# that is used in modern code bases. Completing the material starting with Next Steps requires purchasing additional courses but is included for those who want to go further towards becoming a full-stack engineer.

If you would like to create a copy of this repository for yourself so you can follow along, you can do so by forking this repository. See How to Fork a Repo in GitHub for instructions.

Learn .NET Basics

Learn HTML, CSS, and Bootstrap

Learn the MVC Pattern with Razor Pages

Learn about Entity Framework Core

There are two approaches to working with databases in EF Core:

  1. Code first approach
  2. Database first approach

For developers, I highly recommend learning the code-first approach, as this is what most development teams use. The resources below cover a code-first approach.

Learn How to Create Your Own API

In the course below, you will learn how to use Swagger to create an interface for your API so that you can test it.

Learn about Security and Authorization

Next Steps

At this point, you have some solid back-end skills. A logical next step is to ensure that you understand Razor pages well. If you do, and can modify them, then congratualtions! You can develop full-stack applications, especially after you've completed section Eight of the ASP.NET 6.0 Course. This is a huge first step. But to make yourself truly marketable, it is important to learn a popular library or framework.

Learn React

In most cases, if you want to become a full-stack developer, the logical next step is to learn React. You can do that through Yihua Zhang's The Complete React Developer Course from Zero to Mastery. In Yihua's course, you will build an app with Firebase. I recommend going through Yihua's course and then, as a special challenge for yourself, rebuild the back-end with C# and SQL server and deploy that to Azure DevOps.

Learn DSA in C#

I suggest getting a solid foundation in data structures and algorithms in C#. To solidify your knowledge, one or two Zero to Mastery courses on this subject and implement your solutions in C#.

Learn CI/CD, Unit Testing, and Microservices Architecture (in this order)

After you've done that, to get yourself closer to a senior-level developer, you can do the following, in this order.

CI/CD

Learn about CI/CD and create build and release pipelines for your apps in Azure DevOps. To get started, I recommend the course below, but with one caveat: the instructor does not appear to keep it updated. That said, what we are aiming for here is to understand the basics, such as understanding how to build and modify YAML pipelines, getting a basic introduction to Docker, and learning how to set up a release pipeline.

Unit and Integration Testing

Microservices Architecture

Note: It is perfectly valid to deploy to AWS instead of Azure DevOps, but most courses that cover C# will have you deploy to Azure DevOps. It is also a little easier for beginners, due to the GUI that Microsoft provides, but AWS is definitely more popular. If you want to learn AWS instead, you can take a look at this book: Developing on AWS with C# by Noah Gift and James Charlesworth

A Question You Might Ask

Why are we skipping the section on Blazor in the C# course? I'm glad you asked! The reason is that a number of large-scale applications are built with frameworks like Vue and Angular or with React (which is technically a library). As a full-stack software engineer, I am personally seeing much more demand for React skills than for Razor and Blazor. That said, it doesn't hurt to learn them so that you understand the trade-offs of using them versus a different framework.

In addition, the "headless" model is becoming more popular, but there are still plenty of apps that use MVC, and MVC is a great starting point to understand concepts like the separation of concerns.

Resources For Those Struggling with the Above Concepts

  1. C# 7th Edition - Anne Boehm and Joel Murach
  2. ASP.NET Core MVC - Mary Delamater and Joel Murach

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published