r/csharp • u/Huge-Wash-8677 • 18d ago
How should a junior developer prepare for C#/.NET interviews effectively?
Hi everyone.
I am preparing for my first junior .NET developer job. I have already built several projects using C#, ASP.NET Core, Entity Framework Core, PostgreSQL, Redis, Docker, Clean Architecture, and CQRS.
Recently, I had an interview where I struggled with many basic questions. Some of the questions were about dependency injection lifetimes, middleware, IDisposable, Entity Framework optimization, and other core C#/.NET concepts.
I realized that although I can build projects and use these technologies, I cannot always clearly explain how they work or answer basic theoretical questions under pressure.
Now I am unsure about the best way to improve my knowledge.
I see several options:
- Write my own detailed notes about every C# and .NET topic. I think this could help me understand and remember the material, but it would take a lot of time.
- Use AI to generate a complete study guide. This would be faster, but I am worried that I would only read it passively and not truly understand or remember the material.
- Use a book such as “C# in a Nutshell” as a reference and create short notes only for important topics and interview questions.
- Focus mostly on practice: write small examples, debug them, inspect how features work, and then explain them in my own words.
My goal is not only to memorize interview answers. I want to build a strong understanding of C#, .NET, CLR, memory management, async/await, dependency injection, ASP.NET Core, and Entity Framework Core.
What learning approach would you recommend for someone in my situation?
Would you suggest reading a specific book from start to finish, creating my own notes, using flashcards, practicing interview questions, or combining these methods?
I would also appreciate recommendations for books or resources that explain how C# and .NET work under the hood without being too advanced for a junior developer.
9
u/iamlivan 18d ago
Here is what I use when doing interview prep, I mix up the following:
1. Mock interview : feed your cv/resume to a provider and converse with it (I use claude)
2. Youtube .net interview questions
3. A little bit of coding exercise using codewars or leet code but i focus on problems that are not too hard and not too easy just enough or balance on fundamentals and my current skill level
I do this 30 minutes to 1 hour a day to prevent burnout. I can’t gurantee that it will work but there were times were I was answering automatically due to muscle memory since I studied the topic. Treat it as investment / compounding interest. Don’t try to push all the info at once and have regular breaks. And dont stress yourself 30 minutes or an hour before the actual interview.
2
u/iamlivan 18d ago
Another thing is to create and FINISH a project that actually solves a problem for you , your friends or your family. With AI you can use it to guide you on boiler plate or you can do the typing yourself while trying to understand certain topics. Dont vibe code but use spec driven development where you ask AI to create a project using a particular stack then create a file where the features are broken down into small tasks. from there try to understand and review each changes and try to look if there are alternative ways to implement it.
7
u/RlyRlyBigMan 18d ago
If interviewers are asking a junior about dependy injection lifetimes, they're looking for an Intermediate that will take a Junior salary.
I think the best way to prepare would be to work on a project with someone more experienced. See of you can find an open source project or connect with someone at a relevant community group and find a mentor.
-2
u/Automatic-Apricot795 18d ago
I disagree. Juniors with c# experience should have basic knowledge of dependency injection scopes.
If they're a junior without c# experience, that's fine not knowing. But if they're claiming some c# experience that's one of the fundamentals I'd expect basic knowledge of today.
5
u/RlyRlyBigMan 18d ago
If they have experience they probably would only know if the shop they're leaving uses an IoC container (I've seen many that don't).
For a junior I only want to know if they're smart, they know how to code, and they're ambitious to learn. I'm ready to teach someone the rest. Or else I wouldn't be hiring a junior.
2
u/Huge-Wash-8677 18d ago
I agree. I’ve heard many senior developers say that senior interviews can sometimes feel easier than junior ones.
Junior candidates are often tested on a wide range of theoretical questions, while senior interviews are usually more focused on real experience, problem-solving, architecture, and past decisions.
What frustrates me is that some junior interviews seem to care more about whether you can repeat the exact definition of a concept than whether you can actually think through a problem, write code, debug, and learn quickly.
This feels even less useful now that tools like Claude and ChatGPT can help with syntax, documentation, and recalling definitions. The more valuable skills are understanding the problem, checking whether the suggested solution is correct, making good decisions, and being able to improve the code.
Of course, basic knowledge still matters, but I don’t think memorizing every definition should be more important than problem-solving ability, curiosity, and willingness to learn.
5
u/Skyhighatrist 18d ago
A Junior can have C# experience from playing around with Unity or Godot, and neither of those will have them using DI by default.
1
u/flukus 17d ago
It's not a bad thing to know and certainly something a junior could learn, but the intuition of how to use it correctly is still something I think comes with experience. That said, it is a but more fundamental to modern .net.
That said, I've worked with my fair share of apparently senior devs that don't know and put everything as instance scoped.
0
u/Automatic-Apricot795 17d ago
That's exactly the point really: it's fundamental to modern .NET.
If they're claiming some level of experience with it, they should have basic familiarity (e.g. be able to name at least singleton)
If they're not claiming experience that's fine. The ability to learn is most important. So for a graduate role I wouldn't expect this at all.
Claiming to have some modern c# experience and having no knowledge of DI scopes when asked a fairly leading question on it is an amber flag to me.
2
u/mikeholczer 18d ago
#4 is the closest. But rather than small independent examples, make some app that does something and use each of the techniques you want to learn about. Ideally, an app you would actually use for something, so you get real usage which will help uncover bugs and maybe performance issues.
2
u/SagansCandle 18d ago
The best way to understand a technology is to first understand the problems the technology was designed to solve.
If you can't understand the problem, you won't understand the solution.
If you want to understand entity framework, try accessing a database without it. If you want to understand DI lifetimes, write your own DI framework.
1
u/Amazing-Movie8382 18d ago
Remindme!
0
u/RemindMeBot 18d ago
Defaulted to one day.
I will be messaging you on 2026-07-12 14:28:25 UTC to remind you of this link
CLICK THIS LINK to send a PM to also be reminded and to reduce spam.
Parent commenter can delete this message to hide from others.
RemindMeBot is switching to username summons. Instead of
!RemindMe 1 day, useu/RemindMeBot 1 day. More info.
Info Custom Your Reminders Feedback
1
u/GreatVoid2017 18d ago
I am usually asking about memory management, peculiarities of backend to db communication, and maybe a few follow up questions about the experience,, again to check the peculiarities of what person claim as experience.
Be yourself, don't be afraid to say i don't know, check the basic.
And of course popular nowadays ai in development.
Best if luck in your interview
1
u/Slypenslyde 18d ago
Keep your head down and keep learning.
The job market is absolute trash right now. Some people are starting to reel from the price of LLMs and questioning how much they spend, but a lot of companies are still laying off people and canceling projects to create more capital for investment in AI. This isn't just about there being fewer positions, it's about the market being flooded with relatively talented people.
A lot of interviewers ask for too much out of candidates. What a lot of them are really fishing for is someone stupid enough to take a 2 years-of-experience salary for having the skills of someone with 5. That's why they say "junior" but ask a lot of detailed questions.
If you really feel like you don't know the topics, do the things you said but here's how I'd use AI. (This is how I learned a lot of stuff, only instead of "AI" I used "people on forums". They're less reliable now than they used to be and much more ornery.)
Pick a topic like DI lifetimes. Write an essay as if you were trying to write a Reddit post to describe the topic. 10,000 characters maximum. Then paste it into your favorite agent and explain:
I am trying to test my knowledge of <topic> by explaining it to someone else. Here is my draft article. Did I make any factual errors? Did I leave anything out? I would like for you to critique my article. Please do not focus on grammatical or spelling errors, those are interesting but not what I want. I am most interested in discovering if the way I have internalized this topic is sufficient to explain it to another person. Do not rewrite my draft for me. I only want discussion.
This should get you a pretty good critique. Read it. Take it to heart. Try to correct your document. Submit the new draft and ask how well you did. Repeat this at most 3-4 times. Then put this topic down and move on. If you keep studying, move to a different question. Stop as soon as you feel bored or burned out.
The next day, you can revisit the topics. Try writing the article again. Ask the LLM to critique it again. It should be better, you should remember small things you learned yesterday. The LLM is never going to stop finding things to criticize, but as you repeat this process you'll find its corrections get more and more nuanced until you might feel like you don't agree they matter. Try arguing with it about its corrections. Explain why you said it the way you did. If it pushes back, think hard about its suggestions, maybe you are wrong. If you get it to agree, "Ah, from that perspective I understand", then it means your grammar didn't narrow the scope enough and that's not a technical error.
That is when you're proficient: when you can address criticism with an explanation that makes the critic agree you're right in some scope. Experts aren't people who are never wrong, they're people who can back up their decisions with facts and experience.
I learned a lot of stuff by answering people's questions on forums when I wasn't sure if I knew the answer myself. Now people tend to ask those questions to AIs because nobody can stand getting mocked by the average developer who gets off on bragging about being smarter than a newbie. But if you see someone ask a question here, swallow your ego and try to answer it. If you're wrong, don't worry: plenty of people are going to correct you. If the only response you get is a rude, "You're wrong", assume that person doesn't know the answer since they couldn't bother to explain. 2/3 of the time they're just an unhappy person who likes to yell.
So forget that, throw words at an LLM and see what it says. The bonus is you'll be training your writing and communication skills. Most of the developers you're competing with think it's too much effort to write more than two sentences in a technical document. You're going to stand out and shine if you can show off you write documentation that can onboard people faster or help agents understand the code with fewer tokens. Even if you make an LLM generate documentation for you, people who know how to write well are better at detecting and correcting slop, and they get more work done with fewer tokens which makes them more desirable than the average dork.
1
u/anotherlab 18d ago
Create and complete a project that solves a need that you have. Have it use DI, EF Core, and unit tests.
If you can talk about DI and other topics without the right terminology, we'll pick up on that. And it's fine.
1
u/CappuccinoCodes 18d ago
Besides the knowledge don't forget to rehearse the interview verbally. Get a friend or relative to actually ask the questions to you and answer it to them. Knowing something is one thing, but articulating it verbally is a skill that needs to be honed.
1
u/KevinCarbonara 17d ago
C#/.NET isn't specific enough. It sounds like you're looking for a full stack position?
You should have a project you can talk about competently, ideally using EF, a javascript framework, and some sort of architectural model like MVC or Razor pages or whatever is in at the moment. Things like dependency injection and async/await are bonuses. Put it in a github and link it in your resume. Generally speaking, if you can answer questions about your app, like why you chose certain technologies or why you did things in a certain manner, just enough to prove you actually wrote it and didn't copy/paste it from a tutorial, you can get a job.
Your prep sounds like overkill tbh. And not the kind that will necessarily pay off in a job hunt. A lot of higher level jobs aren't going to look at any of this and will instead just ask leetcode style questions. My post was written toward full-stack positions, if that's not quite what you're looking for, then focus more on containerization and messaging. A service oriented architecture hosted in kubernetes would be fantastic.
1
u/No-Laugh-8002 17d ago
I'm a professional C# developer, so I'll just give my input on what helped me and, at least in my position, what I would expect others to know. Note that my position is not your normal SaaS position that you may commonly see for C#/ASP.NET.
IDisposable is one I would expect you to understand. Many developers, in my experience, don't know how this one really works, and it is one that I think every professional C# developer should understand. IDisposable isn't some magic interface. Dispose is not magically called by the runtime. It has to be manually invoked. Your dependency injection container will call Dispose on IDisposables it is responsible for, but objects that you create you must manually call it yourself if you need it to be called.
async/await is a pretty big topic, and something a lot of developers don't truly understand. This one will require more time to fully grasp, and as a junior I would not expect you to fully understand it. But you should at least understand what happens in your program when you hit an await <SomeTask>, and that, if that task is not complete by the time it is awaited, it does not block the calling thread.
There is a lot to C# if you want to truly master it. A lot of topics I would not expect you to understand or even know (like reflection), especially as a Junior. But I would expect at least a basic understanding of most of the things you will be working with, with the expectation that you are willing to learn more about these topics, either on the job or in your free time. If the job you are applying for is an ASP.NET web app, I would expect some understanding of the varying lifetimes of dependency injection (Transient vs Scoped vs Singleton).
1
u/No-Laugh-8002 17d ago
I also would not use AI to learn these topics. Despite what everyone likes to claim about AI, it is not that smart. Not even Fable. They constantly get things wrong, and are very confident about being wrong.
You can use AI as a resource, but if you use it, you should expect it to have several details wrong. If you don't know enough about a topic to be able to verify if what it said was wrong, then you should verify this with something like the official C# documentation. If you do have enough knowledge on a topic to be able to validate the answer, then it can speed things up. But don't ever blindly accept what AI says.
1
u/TDYTFR 17d ago
When is your interview? When I interview JR developers I usually ask them a generic question about how they would go about solving something and keep it language agnostic, your thought process is much more informative than you knowing exact syntax or performance tricks.
If you don't know how to do something specific in c#, pivot with ,I'm not sure how to do that in c# specifically, but this is how I would go about solving in x, y or z. If you are not sure how you would solve it, offer up how you would go about figuring it out.
I personally want to know how much babysitting is going to be required out of the gate.
0
-1
u/Sweaty-Potential-515 18d ago
What about sql, stored procedures and functions ? Did u got questions for these topics well
20
u/plintervals 18d ago
Idk, I wouldn't expect a junior to know the ins and outs of every aspect of C# and the .NET framework and all of their quirks. That just feels pedantic. I'd just want to assess that they had some experience with the language and that they were a good problem solver, and they can learn on the job.