Useful links:
- Metanit C# tutorial
- Metanit patterns
- Metanit algorithms
- Microsoft tutorials
- Metanit ASP.NET
- Metanit ASP.NET MVC
- ASP.NET roadmap
Most important things to know:
- Fundamentals (data types, method signatures, loops types, conditionals, types conversion and casting)
- Understanding how it works, what difference, etc
- Language paradigm
- All about how to use the provided tools, how to write code in the context of the chosen language
- Understanding of namespaces, inheritance and polymorphism in context of C#
- Code decomposition and creating of efficient abstractions (access modifiers, interfaces, encapsulation, etc)
- Data structures and algorithms
- Especially data structures, understanding of the principles, when and why to use a particular data structure
- Language features
- Lambdas
- LINQ
- Asyncronous and multithreading (threads, tasks, async/await, task scheduling, parallel task execution)
- Generics
- Reflection
- Object life cycle
- Seriallization
- Immutability
- Exceptions
- Attributes and AOP in C#
- Nullable and optional data types
- Patterns
- Basic and most popular pattern, why and when use them
- Testing
- Just basics, what tools and when and how use
- Unit testing (One of the testing frameworks, asserts, mocks)
- E2E
- Integration tests
- Basics (framework workflow, configurations, HTTP request types, request/respone)
- Middleware
- MVC
- IoC and depency injection
- Routing
- Data validation
- Logging
- Exception handling
- Authentication and authorisation, states, sessiong, cookies
- Caching
- ORM (Entity Framework, object mapping, only basics for now)
- Realtime communications (websockets)