Course Information
Course Overview
Design principles, patterns and advanced C#. Built on 250+ tech interviews I conducted. Do not memorize, understand.
Why this course?
I've conducted over 250 technical interviews as a .NET Technical Lead. I know what interviewers ask, how they evaluate answers, and what separates a "good enough" response from one that actually impresses.
This course teaches you exactly what you need for a mid-level C# interview. We go through 50 essential questions in depth, plus 100 bonus questions — 150 real-world questions total. Each one is explained so you understand why the answer is correct, not just what to say.
What makes this course different?
Most interview prep courses are question dumps — here's the question, here's the answer, memorize it. This course takes a different approach:
We learn by coding. Topics are explained with hands-on examples, and the course includes 10 in-browser coding exercises to reinforce your understanding.
We go deep. Each topic is broken down so you can handle follow-up and trick questions with confidence.
We cover what actually gets asked. The questions in this course are based on real interviews, not pulled from a textbook.
What's inside?
8 hours of video covering the advanced topics interviewers expect mid-level candidates to know:
Advanced C# mechanisms — reflection, the dynamic keyword, pattern matching, nullable reference types
Design principles and best coding practices — with real-world reasoning, not just definitions
5 popular design patterns — when and why to use each one
C# collections in depth — differences, trade-offs, and the follow-up questions interviewers love to ask
Events, lambda expressions, and more — the topics that separate junior answers from mid-level ones
Included with the course
Two free e-books — one with all mid-level questions and answers, one reviewing 15 essential junior-level topics (just in case you need a refresher)
Printable flashcards + Anki deck — study on the go, anywhere, anytime
Full Git repository with all the code from the lectures
10 in-browser coding exercises to practice as you learn
Coming from the junior level?
No problem. This course picks up where junior-level knowledge ends. And just in case there are any gaps, a free e-book reviewing 15 essential junior-level topics is included — so you can get up to speed before diving into the advanced material.
Not preparing for an interview right now?
That's fine too. Many students take this course to deepen their understanding of C# and fill knowledge gaps. Interview questions are a great framework for learning — they force you to think about the "why" behind every concept, which makes you a better programmer regardless of whether you have an interview coming up.
This course is covered by Udemy’s 30-day Refund Policy, so you can try it out risk-free.
Course Content
- 52 section(s)
- 59 lecture(s)
- Section 1 Introduction
- Section 2 What is the difference between Tuples and ValueTuples?
- Section 3 What is the difference between "is" and "as" keywords?
- Section 4 What is the use of the “using” keyword?
- Section 5 What is the purpose of the “dynamic” keyword?
- Section 6 What are expression-bodied members?
- Section 7 What are Funcs and lambda expressions?
- Section 8 What are delegates?
- Section 9 How does the Garbage Collector decide which objects can be removed from memory?
- Section 10 What are generations?
- Section 11 What is the difference between Dispose and Finalize methods?
- Section 12 What are default implementations in interfaces?
- Section 13 What is deconstruction?
- Section 14 Why is “catch(Exception)” almost always a bad idea (and when it is not?)?
- Section 15 What is the difference between “throw” and “throw ex”?
- Section 16 What is the difference between typeof and GetType?
- Section 17 What is reflection?
- Section 18 What are attributes?
- Section 19 What is serialization?
- Section 20 What is pattern matching?
- Section 21 How does the binary number system work?
- Section 22 What is the purpose of the “checked” keyword?
- Section 23 What is the difference between double and decimal?
- Section 24 What is an Array?
- Section 25 What is a List?
- Section 26 What is an ArrayList?
- Section 27 What is the purpose of the GetHashCode method?
- Section 28 What is a Dictionary?
- Section 29 What are indexers?
- Section 30 What is caching?
- Section 31 What are immutable types and what’s their purpose?
- Section 32 What are records and record structs?
- Section 33 Why does string behave like a value type even though it is a reference type?
- Section 34 What is the difference between string and StringBuilder?
- Section 35 What is operator overloading?
- Section 36 What are anonymous types?
- Section 37 What is cohesion?
- Section 38 What is coupling?
- Section 39 What is the Strategy design pattern?
- Section 40 What is the Dependency Injection design pattern?
- Section 41 What is the Template Method design pattern?
- Section 42 What is the Decorator design pattern?
- Section 43 What is the Observer design pattern?
- Section 44 What are events?
- Section 45 What is Inversion of Control?
- Section 46 What is the “composition over inheritance” principle?
- Section 47 What are mocks?
- Section 48 What are NuGet packages?
- Section 49 What is the difference between Debug and Release builds?
- Section 50 What are preprocessor directives?
- Section 51 What are nullable reference types?
- Section 52 Bonus!
What You’ll Learn
- Design principles, patterns & advanced C#. 250+ interviews conducted — I know what's asked. Don't memorize, understand., Learn what's really asked in C# interviews — based on 250+ real technical interviews, not textbook theory., Master advanced C# topics that interviewers love: events, reflection, pattern matching, nullable reference types, and more., Apply design principles and 5 popular design patterns — understand when and why to use each one., Understand C# collections in depth — know the differences and trade-offs interviewers expect you to explain., Practice with 10 in-browser coding exercises to reinforce what you've learned — no setup needed., Get two free e-books — one with all mid-level answers, one reviewing junior-level fundamentals just in case., Study on the go with printable flashcards and an Anki deck — review key concepts anywhere, anytime.
Skills covered in this course
Reviews
-
IIlkin Koc
I think all of her courses are extremely good. You learn a lot from her. The only downside is that she offers only a few courses. I would be very happy if she also offered courses on Blazor, WPF, MAUI, etc., or on topics such as class libraries (SignalR, Hangfire, FluentValidation, AutoMapper, Protobuf, etc.).
-
AAaron Lemus
This course rally helped me understand the bases I did not cover with previous professional experiences. It helped address those job listing with general filters.
-
RRama Krishna
Learning all new things. thanks for your coding exercises also.
-
AAvinash M
It’s definitely worth reviewing. Good questions and answers should focus on being more engaging and interactive.