Coding, is? Fun!

Sunday, September 09, 2007

Technical Interview Preparation - Essential Skills

Over the years I have interviewed hundreds of candidates for technical positions as well as project management. It is frustrating to see how ill-prepared candidates are for such interviews. For clearing a technical interview for a developer or a senior developer, it is important that a candidate be knowledgeable in a few subjects.
I will first list what are essential skills and then we will cover what makes you an expert. The focus mostly is on Microsoft technologies.

Essential Skills
1. HTML - it is a must, to know HTML. It is pointless in this day and age to say you only know desktop apps.
2. Javascript - atleast to the extent of the standard way of getting the value of a text box; to handle a click event.
3. Regular Expressions - most people do not know regular expressions. Try to find out how to validate strings using regular expressions in Javascript, and a server side language such as Java, C# or VB.NET.
4. XML, XPath, Parsers - Know something about well-formed XML; about parsing XML documents; and querying XML documents using XPath. Try using a client side parser and a server side parser.
5. XSLT - is good to know.
6. Object Oriented Programming (OOP) - Polymorphism, Inheritance, Encapsulation, Overloading, Interfaces, Abstract Classes. You should be able to create a simple class model.
7. Collections - Arrays, Hashtables, Vectors, Dictionaries; whatever they are called, learn how to use a list of objects of same type or different types and how to use them in any language of your choice.
8. Database Access - in any framework of your choice; .NET, Java or PHP.
9. SQL - It is essential to know how you can query a set of related database tables.
10. Table Design - for a typical scenario such as online shopping or student registration or an address book. You need to be able to design tables and relate them using keys.
11. Tools - such as source control.
12. Deployment - you need to understand how the servers are laid out in a production system. You need to know how your development code is transferred to QA.
12. Concepts such as what a web server is; what a database server is; what is QA; the role of a client and a server and so on.

If you knew all of the above, a company will consider recruiting you and training you. You can learn most of these with Open Source tools.
Of course, for real expertise, you need to know a lot more in web applications and desktop applications. I will list that out in subsequent posts.



Post a Comment

<< Home