Learning C# in 2024

Learning C# in 2024

If you are going to become a C# developer in 2024, you are in for an exciting journey! To help you navigate this landscape effectively, we’ve put together a detailed roadmap that outlines the key skills and technologies you need to master. Whether you’re new to software development or transitioning from a different technology stack, this roadmap will help you identify key areas to focus on.

t.me/csharp_ci – Tons of guides, libraries, and code examples in my Telegram channel for C# and .Net developers.

https://t.me/addlist/u15AMycxRMowZmRi – I’ve collected a huge folder of C# and .Net programmers channels here.

1. The beginning of the journey

a) To understand how the web works, Linux, how C# is arranged.

b) Learn version control tools

Courses:

  • Git Basics: The course describes the most frequently used git commands, taken from the experience of real projects. Examples and interactive exercises are provided: https://stepik.org/course/3145/promo

c) Learn to search for solutions online.

  • Google

  • Stack Overflow

  • Bing Search

  • ChatGPT

e) Learn Data Structures and Algorithms (useful free courses for learning data structures can be found here)

2. Dive into C#

Free courses to learn C#:

b) Learn .NET 8

Course: Creating .NET applications in C#

c) .NET CLI

Overview of the .NET CLI

3. Principles of SOLID

SOLID are principles of software development, following which you will get good code that will scale well in the future and be maintained in a working state.

Learn:

a) The principle of sole responsibility

b) The principle of openness-closure

c) Liskov substitution principle (good to know)

d) Principle of separation of interfaces

e) The principle of inversion of dependencies

f) DRY

g) YAGNI

h) KISS

4. Learn the basics of ASP.NET Core

Here are the main topics to study:

a) API web interfaces

b) Minimum APIs

c) Routing

d) Middlevar

e) Filters and attributes

f) Configuration

g) Authentication and Authorization

h) Dependency injection

a) Basics of RDBMS and database design

b) SQL syntax

c) Stored procedures (good to know)

Courses:

🌟 Application architecture patterns

Before starting software development, we must choose an appropriate architecture that will provide us with the desired functionality and quality characteristics.

The article talks about the main patterns of application architecture:

https://www.redhat.com/architect/14-software-architecture-patterns

d) Databases

Complete database studies curriculum

The plan is designed for 28 days, during which you must spend at least 1.5 hours per day.

SQL Roadmap 2024

5. Working with API

a) REST

DevDocs – all API documentation in one place

The main advantages of DevDocs include combining many official development documentation, convenient search and quick access to information.

The tool will be especially useful for IT students, but working professionals will also be able to find their benefit in it

Among the additional advantages: an intuitive interface, customizable bookmarks, and search autocompletion

b) GraphQL (good to know)

Introduction to GraphQL

c) gRPC (good to know)

Courses:

6. ORM

Object-Relational Mapping (ORM)
a) Dapper

b) Entity Framework Core

  • Learn the basics of EF Core

  • Migrations

  • Change Tracking API

  • Lazy Download, Accelerated Download, Explicit Download

We study development on .net and C#

How to use ORMs in .NET Core and C#.

7. Implementation of dependencies in .NET

Implementation of dependencies in .NET is a built-in part of the platform, as well as a configuration, logging, and parameter template.

Implementation of dependencies in .NET is an approach that allows classes to obtain their dependencies from an external source instead of creating them themselves. Using dependencies allows you to separate the process of creating objects from the code that uses them, resulting in a more modular and flexible system.

Why is this necessary?

Classes are decoupled from each other, so changes made in one place are reflected in all other places.

Three ways to apply dependencies:

  • Scope: An instance is created for each scope.

  • Transient: A new instance is created each time it is implemented.

  • Singleton: One object is created for all requests coming to the server of any user.

Course: Microsoft.Extensions.DependencyInjection

b) Scrutor (good to know)

a) Cloud databases

  • AWS DynamoDB

  • Azure CosmosDB

https://explore.skillbuilder.aws/learn/signin

b) Introduction to ElasticSearch – step by step #aspnetcore

c) Redis

d) MongoDB (good to know)

Docker – http://cognitiveclass.ai/courses/docker-essentials

8. Caching

a) Output caching

b) Caching answers (good to know)

StackExchange.Redis

to read

9. Keeping logs

a) Microsoft.Extensions.Logging – https://learn.microsoft.com/en-us/dotnet/core/extensions/logging

b) Serilog

10. Message brokers

a) Azure Service Bus

c) RabbitMQ (good to know)

b) AWS SQS/SNS

d) MassTransit

11. Data streaming

a) Apache Kafka –

https://developer.confluent.io/courses/

(good to know)

b) AWS Kinesis (good to know)

c) Azure Event Hubs (good to know)

12. Testing

a) unit testing

The “QA Bible” is an updated knowledge base of 560 pages:

  • Answers to the most popular questions of beginners about the profession and the start of a career;

  • The largest selection of links and useful resources;

  • Synopsis of all kinds of theory and answers to questions from real interviews.

https://github.com/VladislavEremeev/QA_bible

13. Real-time communication

a) SignalR https://learn.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-8.0

b) Web Sockets (good to know) – https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_server

14. API Documentation

a) OpenAPI/Swagger – https://swagger.io/specification/

b) AsyncAPI (good to know) – https://www.asyncapi.com/tools

15. SDK API Libraries

a) Refit

b) RestSharp

c) Flurl (good to know)

https://github.com/microsoftgraph/msgraph-sdk-dotnet

16. Task planning

a) BackgroundService

b) PeriodicTimer

c) HangFire (good to know)

https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskscheduler?view=net-8.0

17. Monitoring and telemetry

a) OpenTelemetry – https://t.me/Golang_google/1597

Jeager (good to know)
b) Prometheus

c) Grafana

d) ELK Stack

e) Datadog (good to know)

18. Containers

a) Containerization

Docker – https://learn.microsoft.com/en-us/dotnet/core/docker/build-container
Podman (good to know) – https://developers.redhat.com/articles/2022/03/21/hello-podman-using-netb) Orchestration

Kubernetes

19. Cloud technologies

a) Cloud providers – https://www.youtube.com/watch?v=TCuxXg0AUao

-Azure
– AWS
b) Serverless technologies

Azure Functions
AWS Lambda
c) File storage

AWS S3
Azure Storage

Free Courses:

AWS →http://explore.skillbuilder.aws

Azure →http://learn.microsoft.com

DevOps →http://edx.org/learn/devops

Docker →http://docker-curriculum.com

Kubernetes →http://kubernetes.io

20. Continuous Integration and Deployment

a) GitHub Actions

b) TeamCity

c) Octopus Deploy

d) Azure Pipelines (good to know)

e) Gitlab CI (good to know)

f) Jenkins (good to know)

g) Automation of collection (good to know)

Cake (good to know)
Nuke (good to know)

Jenkins

http://mygreatlearning.com/academy/learn-for-free/courses/jenkins-tutorial

Puppet

http://simplilearn.com/free-course-to-learn-puppet-basics-skillup

Chef

http://simplilearn.com/chef-in-devops-basics-free-course-skillup

Ansible

http://simplilearn.com/learn-ansible-basics-free-course-skillup

Selenium

http://mygreatlearning.com/academy/learn-for-free/courses/selenium-basics

VirtualBox & vSphere

http://openclassrooms.com/courses/7163136-set-up-virtual-machines-using-virtualbox-and-vsphere

21. .NET libraries

a) Polly

b) FluentValidation

c) Humanizer.Core

d) Benchmark.NET

e) MediatR (good to know)

f) Units.NET (good to know)

g) NodaTime (good to know)

Awesome-C# A large list of useful frameworks, ready-made scripts, libraries and software.

22. DevOps

Free online DevOps course

b) Terraform (good to know)

c) Pulumi (good to know)

23. Write code every day”

Congratulations on reaching this stage of the roadmap!

In 2024, learning C# .NET remains important and relevant for several reasons:

  1. Wide application: C#. NET is one of the most popular programming languages ​​and development platforms used in the industry. It is widely used to create various types of applications, including web applications, mobile applications, games, enterprise software, and more.

  2. Support from Microsoft: C# .NET is developed and supported by Microsoft, which is heavily invested in its development. This means that the language and platform will continue to evolve and be updated to meet today’s development requirements.

  3. Career opportunities: Learning C#. NET can provide excellent career development opportunities in the field of programming. Demand for professionals who know this language remains high, and employers value knowledge and experience in C#.

  4. Variety of tools and frameworks: C# .NET has a rich ecosystem of tools and frameworks that make application development easier. For example, ASP.NET allows you to create powerful web applications, Xamarin – mobile applications for various platforms, and Unity – games.

  5. Compatibility and Portability: Applications developed in C# .NET can run on a variety of operating systems, including Windows, macOS, and Linux. This makes the language and platform flexible and portable.

All in all, learning C# .NET in 2024 provides excellent prospects for developers and can be useful for success in the field of programming.

Remember that constant learning and coding is the key to mastering the developer profession. Do not lose curiosity, learn new technologies and continue to create interesting projects. Your .NET developer journey is just beginning, and the possibilities are endless.

Related posts