This morning a colleague of mine asked me for a list of questions to prepare for a .Net technical interview.
I thought it would be useful to share this list with everyone.
- Explain principles of Object Orientation?
- Can you use abstract classes in place of Inheritance ? What are the differences between these two concepts?
- Explain polymorphism and write an example in code (C#).
- What are Patterns?
- List some patterns you’ve already used.
- Explicit one pattern by writing a small example.
- Explain following patterns: Repository, Factory, Root Aggregate.
- What are the most useful UML diagrams? (list & explain at least 5) .
4) Net & C#
- What is .Net? (Managed Code – CLR – Runtime) ?
- Explain concepts as JIT, CLR, GAC, GC?
- Explain series of processing steps an ASP.NET page goes through (= page lifecycle of ASP.NET) ?
- Explain following c# keywords: Static, ReadOnly, Const?
- What is: a Webservice,WCF, WPF, Silverlight and how do these technologies/concepts relate to each other?
- Write simple query that joins 2 tables via a 1-to-N relation that contains a filter and a group by clause.
- Explain what is a Transaction.
- What are the properties of a transaction (-> ACID)
- Explain concepts as Primary Key & Clustered Index and how these concepts relates?
- Is a GUID a good Clustered index, explain why?
- List and explains the Enterprise Integration patterns, provide advantage/inconvenient for each of them? ->(Primary integration patterns: Database, WebServices, Messaging)
- What are non functional requirements, provide some examples (e.g. Accessibility, Availability, Security…)?
- Explain concept Authentication/Authorization how does these concept relates?
- What is Asynchronous Messaging – what type of infra do you need to set it up?
- Explain – what is an ESB?
- What is SOA & list and explain SOA Tenets?
C) Senior Developer / Team Lead
- What is IOC – What is the Goal – which frameworks do you know?
- Explain what are Unit tests and Integration tests, what differentiate these two types of tests?
- Provide a small list of programming practices that you would enforce/setup in your dev team?
- What is Waterfall/Prince2/RUP/Agile/XP/Scrum – how does these concepts relates ?
- What is DDD?
Some other useful/funny resources:
- C# design patterns:
- Techinterviews.com : http://www.techinterviews.com/interview-questions/net ***
- Megasolutions.net: http://www.megasolutions.net/
- Scott Hanslemann post on the same subject: http://www.hanselman.com/blog/CommentView.aspx?guid=d835178f-a649-45f5-907f-28ad1177d8d5
- Sample interviews: http://simasc.com/attachments/046_SampleInterviewQuestionBook(1).pdf
- The guerilla guide to interview: http://www.joelonsoftware.com/articles/fog0000000073.html
- Some funny Interviews @ Microsoft (this was for an advertisement for Ms technical certifications):
- Video of interview process @Microsoft (real one this time): http://channel9.msdn.com/shows/WM_IN/Zoe-Goldring-and-Gretchen-Ledgard-What-is-it-like-to-interview-at-Microsoft/