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: