http://www.developer.com/tech/article.php/3675081/Application-Developer-Interview-10-Steps-to-Success.htm
The national IT job market has been on the rise the past two years. The hiring statistics over these years have revealed an interesting trend: Companies prefer to hire strong application developers onshore and junior/entry-level developers offshore. Furthermore, hiring managers are looking for "all-around" knowledgeable employees—self-starters, independent, technically proficient, business savvy, and so on. What does it mean for us, the local developers? It means that the current interviewing process is more vigorous than ever. Technical interviews are only a part of the whole interviewing process. Do not get me wrong; the technical interview is still an essential part, but it is not a sole factor in the ultimate decision making. The contemporary onshore developer is a programmer plus business analyst, designer, architect, DBA, and often, project coordinator. If you are just a programmer, you must re-evaluate your current situation and start evolving with the evolving job market because your job might be at risk. If you are looking for a new position in IT, here is what hiring managers are looking for: During the interviewing process, you must show at least three of the seven traits listed below. If you feel you do not possess any of the traits listed above, you should come up with a plan of action to acquire them. There are a number of great books you can read that will help you acquire these skills. Please consider the following books: Furthermore, during your interview, you should be ready to discuss your previous professional experience where you had shown your proficiency in the skills above. You also should be prepared to explain what each skill means to you personally. When I conduct interviews, I always ask several elementary questions. Why do I do that? I want to make sure that candidates have done their "due-diligence." I want to know if they came prepared. For example, I ask senior Java Developers relatively easy questions such as the following: You should always be ready to answer these questions. Remember, your interviewer cannot assume that you are senior only because you say so; you have to be ready to prove it. If you are a senior application developer, you must be ready to discuss advanced topics of the language. The following list highlights advanced topics for Java developers (skip to the next section if you are not a Java developer). There is no doubt that knowledge of the business is a great supplement to your technical skills. No employer would pass up an opportunity to interview a candidate who has previous experienced working in the same business area. Unfortunately for employers (and fortunately for you), it is very hard to find a technically proficient person with good communication skills and with specific business knowledge of the job. Furthermore, employers look for candidates who have general experience in the underlining industry (brokerage, banking, manufacturing, publishing, and so on). What can you do if you are interviewing for a position that belongs to an industry that you have no previous experience with? One way you can distinguish yourself from the rest of the candidates is by depicting your interest and knowledge of the organization's line of work. Try finding out about the specifics of application development for this particular industry and, more specifically, for the department at which you are interviewing. For example, if you are interviewing at a publishing company, show the interviewer that you understand the challenges of the industry and the rewards of working there. If, for example, the department you are interviewing at is responsible for maintaining client and product data and allowing users to view and modify this data, try to explain that you understand the challenges related to creating and maintaining such applications. Name one application that is not connected to a relational database. Let me think ... I can't come up with one. Almost all modern applications work with a relational database. That is why it is essential for a candidate to have advanced database knowledge. What are some of the things you must know? Basics Topics include SQL, Entity Relationships, Data Type, and Table Definition Language. Advanced topics include Optimization, Stored Procedures, PL SQL, Triggers, Tuning, and DBRM Commands. I am not advocating that you should become as proficient as a database administrator, but you should be able to freely discuss advanced topics. If you failed to acquire advanced databases knowledge during your previous work engagements, you can acquire it by reading technical literature on the subject. What is your area of expertise? Mine is web-based application development using J2EE. You have to choose your area of expertise in application development and cultivate it—become an expert. I am skeptical when a candidate claims that he is an expert in web-based, asynchronous, and fat-client applications. If a job requires a web-based application developer, I would prefer to find one that has mostly web-based application development experience. If you are a subject matter expert in a given area, you have a far greater chance of getting the job you want. Forgive me for stating the obvious: Your résumé is the first impression of you. So, beside the fact that your résumé must be neat and informative, it must also have two characteristics: Almost every job posting on Monster.com (a popular job posting site) contains this line: "Candidate must have experience with all software development life cycle phases." It means that hiring managers place premium value on full development cycle experience. Let me review the system development phases: What do you take away from actively participating in a full development life cycle? You take away the working knowledge of all the processes of a project—stakeholder relationships, implementation and testing team dynamics, integrated change control processes, business requirements, time/cost/budget constraints, risks, and resource/procurement/communication management. Most of all, you start understanding the success factors of a project. It took three years of my professional career as an application developer before I could claim that I had completed one application development life-cycle. The odds of successfully completing a project (on time, under budget, according to scope) are not great; in the year 2000, only 28% of all projects were considered a success. You should ask at least three questions during/at the end of your interview. When you ask questions, you let your interviewer know that you are interested in the position. It also lets you make a more educated decision about whether this job is right for you. Avoid vague questions in favor of specific ones: "If you can't beat them, join them." Offshoring and outsourcing plans are in motion in every organization and in every aspect of application development. If the company you are working for is not outsourcing some parts of application development today, it will most definitely do so tomorrow. But there is good news: When it comes to outsourcing, certain equilibrium between onsite and offshore resources exists; an organization can not fully outsource all of its work. In application development, there are processes that are unwise and/or impossible to outsource. Outsourcing is about cost cutting. But, what happens when you cut cost? The project scope and timeline suffer. You have to understand (and sometimes argue) what it is that separates you from an offshore resource. But also, you absolutely must understand (and sometimes argue) the benefits of offshored/outsourced application development. This article highlighted ten things to know for a successful application development interview. Such interviewing tips as self confidence, proper dress code, eye contact, and being on time are outside of the scope of this publication, but they must not be overlooked. It is the overall impression that will land you a job. Aleksey Shevchenko has been working with object-oriented languages for over seven years. For the past four years, he has served as a technical lead and a project manager. Aleksey has been implementing Enterprise IT solutions for Wall Street and the manufacturing and publishing industries.
Application Developer Interview: 10 Steps to Success
May 1, 2007
1. People Skills
2. The Basics
3. Advanced Topics
4. Business Knowledge
5. Relational Database Knowledge
6. Area of Expertise
7. Résumé
8. Full Application Development Cycle
9. Ask Questions
10. Offshore and Onshore
Conclusion
About the Author