0% found this document useful (0 votes)
5 views7 pages

Week 5

The document outlines a 7-day training program for C# developers focusing on key topics such as memory management, ASP.NET Core lifecycle, dependency injection, Web API design, async programming, EF Core fundamentals, and exception handling. Each day includes time blocks for learning, hands-on coding exercises, and interview questions to reinforce understanding. The program aims to equip participants with essential knowledge and practical skills to excel in C# development and prepare for technical interviews.

Uploaded by

hawarit.tanvir
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views7 pages

Week 5

The document outlines a 7-day training program for C# developers focusing on key topics such as memory management, ASP.NET Core lifecycle, dependency injection, Web API design, async programming, EF Core fundamentals, and exception handling. Each day includes time blocks for learning, hands-on coding exercises, and interview questions to reinforce understanding. The program aims to equip participants with essential knowledge and practical skills to excel in C# development and prepare for technical interviews.

Uploaded by

hawarit.tanvir
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Day 1 – C# Internals & Memory (Very High ROI)

⏰ Time Blocks

 Morning (45 min)

 Evening (90 min)

📌 Topics

 Value vs Reference types (real behavior, not definitions)

 Stack vs Heap (what actually goes where)

 Garbage Collection (Gen 0/1/2, LOH)

 IDisposable, using, finalizers

 Struct pitfalls & immutability

🎯 Learning Objectives

 Explain why GC pauses happen

 Know when memory leaks occur in .NET

 Justify struct vs class in interviews

🛠 Hands-On

 Write code to:

o Allocate large objects → observe LOH

o Create memory leak via event subscription

o Fix leak using Dispose + weak events

 Use dotMemory / PerfView (even basic usage is enough)

❓ Interview Questions

 Why is struct dangerous when large?

 What happens if Dispose() is not called?

 Does using guarantee immediate cleanup?

 Can GC collect objects with circular references?

Day 2 – [Link] Core Request Lifecycle (Must-Know)


⏰ Time Blocks

 Morning (45 min)

 Evening (90 min)

📌 Topics

 Kestrel → Middleware → Routing → Filters → Controller

 Middleware vs Filters (auth, exception, logging)

 Model binding & validation pipeline

 IActionResult vs concrete results

🎯 Learning Objectives

 Debug any request behavior confidently

 Decide where logic belongs (middleware/filter/controller)

🛠 Hands-On

 Create custom:

o Exception handling middleware

o Action filter for logging request duration

 Trace a request step-by-step with breakpoints

❓ Interview Questions

 Middleware vs Action Filter?

 Where should global exception handling live?

 How does model validation work internally?

 Why is middleware order critical?

Day 3 – Dependency Injection & SOLID (Interview Favorite)

⏰ Time Blocks

 Morning (45 min)

 Evening (90 min)

📌 Topics
 DI lifetimes: Singleton, Scoped, Transient

 Captive dependency problem

 SOLID principles (backend-focused)

 Anti-patterns: Service Locator, Fat Services

🎯 Learning Objectives

 Detect bad architecture instantly

 Explain why something breaks under load

🛠 Hands-On

 Break an app using:

o Singleton depending on Scoped

 Refactor:

o Fat service → smaller abstractions

 Write unit tests proving DI correctness

❓ Interview Questions

 Why DbContext must be Scoped?

 When is Singleton safe?

 Explain SOLID with real backend examples

 What is the captive dependency issue?

Day 4 – Web API Design & REST (Senior Signal)

⏰ Time Blocks

 Morning (45 min)

 Evening (90 min)

📌 Topics

 REST constraints (not just HTTP verbs)

 Resource modeling

 Idempotency
 Status codes (beyond 200/500)

 Versioning strategies

🎯 Learning Objectives

 Design APIs that scale and evolve

 Defend design decisions under questioning

🛠 Hands-On

 Redesign an existing API:

o Fix routes

o Improve status codes

o Add pagination & filtering

 Add proper error contracts (ProblemDetails)

❓ Interview Questions

 PUT vs PATCH?

 When is POST idempotent?

 How do you version APIs?

 Why not return exceptions directly?

Day 5 – Async/Await, Threading & Performance

⏰ Time Blocks

 Morning (45 min)

 Evening (90 min)

📌 Topics

 async/await internals

 ThreadPool vs async I/O

 Deadlocks

 [Link] misuse

 Scalability vs performance
🎯 Learning Objectives

 Explain why async improves scalability

 Avoid classic async bugs in production

🛠 Hands-On

 Create:

o Deadlock example

o Thread starvation scenario

 Refactor sync controller → async end-to-end

❓ Interview Questions

 Why async doesn’t create new threads?

 When NOT to use async?

 Difference between concurrency and parallelism?

 Why async void is dangerous?

Day 6 – EF Core Fundamentals & Pitfalls

⏰ Time Blocks

 Single Deep Session (3–4 hrs)

📌 Topics

 Change tracking

 AsNoTracking

 N+1 problem

 Lazy vs Eager vs Explicit loading

 Transactions & concurrency

🎯 Learning Objectives

 Prevent hidden performance disasters

 Understand EF behavior under load

🛠 Hands-On
 Profile queries:

o Introduce N+1 → fix it

 Compare tracking vs no-tracking

 Implement optimistic concurrency

❓ Interview Questions

 Why EF Core is slow sometimes?

 When to use raw SQL?

 How does EF track changes?

 How do you handle concurrency conflicts?

Day 7 – Exception Handling, Logging & Final Review

⏰ Time Blocks

 Single Session (3 hrs)

📌 Topics

 Global exception handling

 Logging levels & correlation IDs

 Structured logging

 Retry & resilience basics

🎯 Learning Objectives

 Build production-grade observability

 Answer “how do you debug prod issues?”

🛠 Hands-On

 Implement:

o Global exception middleware

o Correlation ID propagation

 Add structured logs (Serilog-style)

❓ Interview Questions
 What should NOT be logged?

 How do you trace a request in microservices?

 Difference between exception handling & error handling?

You might also like