I'm a junior c# web developer preparing for my first interview. What kinds of things/topics should I be expected to know?
If you're thinking of what you can cram to make yourself sound better for an interview, don't. Honestly acknowledging your areas of weakness, and showing a willingness to learn is a much better approach than trying to sound like you know things you don't. Trust me - the people interviewing you will know you're trying to fake them out.
Interviews are often more about your capacity to learn, ability to admit mistakes, how you think through problems, and your ability to work with people than they are about determining if you know enough of a particular language or not.
Of course, being a competent programmer in general is always important, and in some cases specialized knowledge may be required. But don't fake it.
Whenever I've interviewed "junior" developers, I don't expect them to know as much about Microsoft specific things, but I do expect them to understand programming concepts and general web concepts. All the other links to "popular .NET questions" are good, but if you focus on fundamentals of the web and programming then you should be fine.
With that in mind, here are three things that web developers should know:
Understand how the web works. You would be amazed how many "senior" web developers don't really understand the fundamentals of the web. Understanding the basics here will make you a much better web developer no matter what server side technology stack you use. It might also impress the people interviewing you. Tons of resources out there. A quick google search gave me this.
Understand what Asp.Net (insert technology) is doing for you. This is pretty broad I know, but take a little time to understand how Asp.Net works. Things like the Asp.net Page Life Cycle, Caching, and other details are great to at least have general knowledge of when you are starting out. There should be less "magic" in the tools you work with.
CSS and Javascript are your friends. Again, this isn't specific to Asp.Net, but I would much rather have a web developer be really good at Javascript then have years of experience creating server side controls in Asp.Net. If you don't know who Douglas Crockford is then you have some reading to do. It's also good to learn one or more of the popular libraries like, jQuery, Prototype, or MS Ajax. And get Firefox with Firebug installed!!!
Two points.
First, let me turn the question around on you. On a scale from one to ten, where one is my mom, who is a smart person with no knowledge whatsoever of computer programming, and ten is Anders Hejlsberg, chief architect of the C# language and Microsoft Technical Fellow, what are you?
I don't actually care what your answer is. Let's suppose you say seven, for the sake of argument. The real question is:
What is something about C# development that a seven understands, but a six would have trouble with?
The answer to this question will inform us as to where you believe you are at, and thereby suggest topics that you might want to learn more about.
Second, this is not an answer to your question, but rather, a word of advice. Do not attempt to snow your interviewer. There is nothing more obvious than an interview candidate trying to, for example, convince me that they precisely understand what the word "delegate" means when in fact they have only a vague idea of the concept.
Don't forget the flip side to this. You should have questions for the interviewer about the position and company as this helps to show interest in the position as well as make a good choice about whether or not to take the job.