4

Sure, we all have written tons of C# code. So walking into an interview for a .NET job should be a no-brainer, right? And then you read some stackoverflow posts and it hits you: You don't know squat!

Remember that site with the cram sessions to go through, before taking an exam? I think stackoverflow could be used to make a sorted (voting) list of topics to know about.

Please only put one topic per post. Please also add some information about the topic. Links, reference material etc.

EDIT: I guess some of you misunderstood the reason for the post - I'm hoping to generate a list of stuff to know about .NET, a sort of cram session that can be reviewed by everyone on the planet to regularly review. This should help us all remember arcane stuff we never really use.

Daren Thomas
  • 67,947
  • 40
  • 154
  • 200
  • I wouldn't really say it is a duplicate. But this question definitly was inspired by 365489. I am hoping to use the voting features of SO along with the constraint "one post per topic" to create a nice list. – Daren Thomas Mar 02 '09 at 14:27
  • What's the point of "remembering arcane stuff we never really use"? – ChrisA Mar 02 '09 at 15:13

14 Answers14

7

They are likely going to ask you questions that are based more on Object Oriented Design and Programming more than questions that are explicitly geared towards C#. So if you can explain abstraction, polymorphism, interfaces, etc. You should be good to go.

TheTXI
  • 37,429
  • 10
  • 86
  • 110
  • 3
    This hasn't been my experience. Way too many people ask esoteric questions about c# that you'd only really know if you looked it up just before going to the interview. – NotMe Mar 02 '09 at 14:57
  • 1
    @chris: I've had the exact opposite in terms of experience. All the recent job interviews I've gone to (.NET specific) never focused on exact features of the language or the framework but were almost entirely focused upon standard OOD/OOP principles. – TheTXI Mar 02 '09 at 15:03
7

Reference vs value types.

Szymon Rozga
  • 17,971
  • 7
  • 53
  • 66
  • 1
    My favorite: After replacing in one place class with struct an application compiles, but does not work correctly any more. What might have happened? The more conjectures, the better. Surprisingly enough, a lot of people did not pass this. – eugensk Mar 02 '09 at 14:30
5

Know your delegates. Every .Net interview I've been on has asked me about delegates. Know why they exist, know how to declare them, and how to consume them, understand what multicast delegate is. Understand how to use a multicast delegate when one of the handlers throws an exception. Know what the compiler does with a delegate. Understand how delegates can give you "automatic" asynchronous APIs. Get familiar with the newer more convenient generic delegates - Action and Func.

Bonus: delegates vs events. What are the differences? When would you use one over the other?

Szymon Rozga
  • 17,971
  • 7
  • 53
  • 66
Scott Weinstein
  • 18,890
  • 14
  • 78
  • 115
4

I don't see how this question is valuable to your situation. The result of this question is going to be 30 posts listing features of the C# language.

I think you need to refine your question by giving us a hint about what type of job you are applying for. Or your skill set level or what areas your familiar with. Otherwise this post won't really contain a valuable answer.

EDIT

[OP] That (30 posts listing features of the C# language) is precisely what I am after

Then I suggest the C# language spec. http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx

JaredPar
  • 733,204
  • 149
  • 1,241
  • 1,454
4

Generics. (also - don't try to cram and pass yourself off as an expert on something. A good interviewer will figure that out very, very quickly.)

plinth
  • 48,267
  • 11
  • 78
  • 120
4

ScottHa has two great lists of interview questions:

Portman
  • 31,785
  • 25
  • 82
  • 101
  • Lists like that make me feel really stupid. 6.5 years developing in .NET, and I can't answer but a handful of those questions without some serious studying. I do mostly business crud work, and most of those questions just don't apply to my job. They're all good-to-know, but not imp. to my roll. – John Kraft Mar 02 '09 at 14:46
2

Generics, why generic lists are prefered rather then arraylist or hashtable. Performance issues and strongly typed added by the way.

Bonus: benefits of generic non-collection types. Why would one use these? How?

Szymon Rozga
  • 17,971
  • 7
  • 53
  • 66
Canavar
  • 47,715
  • 17
  • 91
  • 122
2

Reflection. and the power of custom attributes in reflection.

Canavar
  • 47,715
  • 17
  • 91
  • 122
2

Stack vs Heap: What goes where, what caused a StackOverflowException and what causes an OutOfMemoryException.

C. Ross
  • 31,137
  • 42
  • 147
  • 238
1

I hope the job interview is about coding itself. c# is just a syntax of programming. To be sure read about some specific C# things like reference vs value types

RvdK
  • 19,580
  • 4
  • 64
  • 107
1

I'd start by looking at the latest c# enhancements. Also, it really depends on what type of job it is as there are a lot of things an ASP.Net developer won't know about Winforms and vice versa.

Assuming asp.net, I've been asked the following in interviews over the past 18 months:

  • Page Life Cycle
  • Generics
  • Interfaces / basic OO design
  • SQL; e.g. joins, updates, inserts, etc. Also, how to use DataReader and sqlcommand.
  • LINQ syntax; not because anyone is really using this, rather because they read about it.
  • Web Services ( asmx and wcf )
  • basic html / css
  • Session strategies for single server / load balanced
  • Differences between gridview, repeater, etc.

What I've found is that most .net "web" dev's don't know diddly about sql or html. If you can prove you know more than just how to "drag and drop" controls on a web form then you're already better than 90% of the guys you'll run into.

NotMe
  • 87,343
  • 27
  • 171
  • 245
1

If you've been writing code in one discipline (.NET in this case) that long, you should have a pretty standard answer to the technical questions that you don't know:

Q: So, what do you know about [technobabble]

A: Well, I haven't used that particular aspect in my previous projects, however, I have a small Volkswagen full of on-line resources that I check for answers like that. In other words, if I don't know it, I know where I can learn about it.

Optional addendum: "And here's an example of me dooing just that when I had a project that required [technobabble-2]..."

David
  • 892
  • 4
  • 16
  • 41
0

You know, if you just plummet through the ECMA-334 specification you should be all set. That's the language... but in away, you'll still be limited by your knowledge of the framework and that's experience. Hard earned experience.

John Leidegren
  • 59,920
  • 20
  • 131
  • 152
  • Sure, but the spec won't be sorted based on the crowd's opinion of what is important and what not! – Daren Thomas Mar 02 '09 at 14:23
  • A lot to take in, YES, but if your uncomfortable with dealing with this type of challenge? Then maybe you should consider a different line of work. It always boils down to diligence and experience. – John Leidegren Mar 03 '09 at 06:08
0
  • OOPS Concepts
  • ADO.NET
  • Session mgmt and Caching
  • SQL Server distributed transactions management
  • New features in .NET 2.0
Canavar
  • 47,715
  • 17
  • 91
  • 122