Applying for a technical job is, in many ways, a unique experience. The interview process is unlike any
other. Applicants who do not know what to expect are at a severe disadvantage. The purpose of this
chapter is to acquaint you with the process so that, instead of being surprised, you will have an
advantage over your competition. By understanding the process, you will be prepared for even the
toughest interviews and have the opportunity to let your talents dictate your success.
Types of Interviews
It is often a long journey before a candidate receives an offer. Typically, a phone interview is the first step in the process. If it goes smoothly, a candidate may receive an invitation for one or more rounds of on- site interviews.
Sometimes voices are not very clear over phones. If candidates cannot hear interviewers' questions
or requirements clearly, they should feel free to ask the interviewers to clarify. Providing answers
irrelevant to the question should be avoided. Actually asking for more clarification is a good way for
candidates to show their communication skills. In some cases, it can also buy time to think of a good
response. During real software development, requirements are usually ambiguous at first, and engineers
have to ask end users for clarification. Therefore, the skill of asking for clarification is an important
component of the communication skills set an employer is likely to appreciate.Candidates should communicate their thoughts in sufficient detail during phone interviews so that they
are convinced interviewers understand their responses.
It is often a long journey before a candidate receives an offer. Typically, a phone interview is the first step in the process. If it goes smoothly, a candidate may receive an invitation for one or more rounds of on- site interviews.
Phone Interviews
During the phone-interview phase, interviewers examine candidates via phone calls. Many interviewers discuss time frames with candidates and schedule a specific time for the interview in advance, but others do not. In some areas of the world, such as India, it is even possible for a candidate to receive an unexpected phone call and be expected to perform an interview at that moment.
Whether the interview comes at an expected time or not, it is a good practice to find a comfortable and quiet place to take the call. The place should be free of distractions so that the candidate and interviewer can hear each other.
Compared to on-site interviews, during the phone interview the two sides on the phone can only communicate via voice. It is more difficult for candidates to describe their ideas without auxiliary tools, including body language and facial expressions, especially when describing complex data structures and algorithms. For example, it is quite easy for a candidate to describe a binary tree during an on-site interview because he or she can draw it on paper. However, interviewees on the phone can express a clear idea about a binary tree only after describing the binary tree itself in detail, including what the left child and right child of each node are. This kind of explanation can make for an awkward interview or perhaps make it bog down in unnecessary detail.
During the phone-interview phase, interviewers examine candidates via phone calls. Many interviewers discuss time frames with candidates and schedule a specific time for the interview in advance, but others do not. In some areas of the world, such as India, it is even possible for a candidate to receive an unexpected phone call and be expected to perform an interview at that moment.
Whether the interview comes at an expected time or not, it is a good practice to find a comfortable and quiet place to take the call. The place should be free of distractions so that the candidate and interviewer can hear each other.
Compared to on-site interviews, during the phone interview the two sides on the phone can only communicate via voice. It is more difficult for candidates to describe their ideas without auxiliary tools, including body language and facial expressions, especially when describing complex data structures and algorithms. For example, it is quite easy for a candidate to describe a binary tree during an on-site interview because he or she can draw it on paper. However, interviewees on the phone can express a clear idea about a binary tree only after describing the binary tree itself in detail, including what the left child and right child of each node are. This kind of explanation can make for an awkward interview or perhaps make it bog down in unnecessary detail.
Phone-Screen Interviews
To facilitate phone interviews, many companies utilize online word-processing tools, such as Google Docs and Collabedit, which allow candidates to easily share and collaborate with interviewers in real time. Even though the two parties participating in the interview do not physically sit together, interviewers can examine how candidates write code on their desktop screens. An interview that occurs on the phone and uses these word-processing tools is often referred to as a phone-screen interview.
Interviewers pay a lot of attention to candidates' programming skills and habits. In most cases, they look for the following programming habits:
To facilitate phone interviews, many companies utilize online word-processing tools, such as Google Docs and Collabedit, which allow candidates to easily share and collaborate with interviewers in real time. Even though the two parties participating in the interview do not physically sit together, interviewers can examine how candidates write code on their desktop screens. An interview that occurs on the phone and uses these word-processing tools is often referred to as a phone-screen interview.
Interviewers pay a lot of attention to candidates' programming skills and habits. In most cases, they look for the following programming habits:
-
Thinking carefully before programming. It is not usually a good idea for a
candidate to begin coding hastily once he or she hears an interview question.
Without reflecting on the process, a candidate will be prone to write buggy code.
Remember that the interview situation puts more pressure on the candidates than
they feel when they are doing their day-to-day work. Candidates usually are
fearful, and sometimes panic, when their bugs are pointed out by interviewers. If
they have answered in too much haste, their code might be modified to create an
even bigger mess in such situations. A much better strategy for candidates is to
implement code after they have clear ideas about their solutions, including data
structures and algorithms to utilize, time and space efficiencies, cases requiring
error handling, and so on. Generally, the interviewer will respect the
thoughtfulness taken to arrive at the best result.
-
Readable naming convention and indentation. Meaningful names of variables and
functions as well as clear, logical indentation improve code readability
dramatically, and they help interviewers to read and understand code. They also
help if you have to debug your code as it will be read more simply.
More advanced collaboration tools are used in some interviews, such as Microsoft Lync and Cisco WebEx. Candidates share their desktops with remote interviewers to show their programming and debugging processes in an IDE, such as Visual Studio or Eclipse.
What interviewers usually require is an ability to develop a function in order to solve a certain problem. Candidates demonstrate their professional developing skills if they write unit test cases immediately after they finish implementing functions. It is a good practice for a candidate to ask his or her interviewer to review code only after all unit tests pass. It is more impressive if a candidate writes test cases before functional code since test-driven developers are somewhat rare.
On-Site Interviews
If a candidate performs well during a phone interview, it is quite possible for him or her to receive an invitation for an on-site interview.
A day or two before the on-site interview, a candidate should consider the following items:
-
Scheduling. Candidates need to plan how they will get to the interview, estimate
how much time is needed, and leave about half an hour or more for unexpected
situations such as traffic jams.
-
Wearing comfortable clothes. The dress code in most IT companies is quite casual,
so usually it is not necessary for engineer candidates to be formally dressed. They
can choose whatever is comfortable within reason.
-
Paying attention to the interview process. On-site interviews often contain several
rounds. For example, there are usually five rounds of on-site technical interviews
for Microsoft. It is quite common to feel fatigued after long interviews. Candidates
may wish to bring some vitalizing drinks or food.
-
Asking a few questions. Interviewers generally leave a few minutes for candidates
to ask some questions before a round of interview ends. Candidates would be wise
to prepare some questions in advance.
On-site interviews are the most important part of the whole interview process because interviewers examine candidates' programming skills as well as their communication skills, learning skills, and so on.
-
Scheduling. Candidates need to plan how they will get to the interview, estimate
how much time is needed, and leave about half an hour or more for unexpected
situations such as traffic jams.
No comments:
Post a Comment