Interviewing is a funny thing. In order to get hired for a programming job it's most important to interview well. Getting hired usually doesn't have much to do with programming skills. This is typically a pain point for programmers. Many of us feel that the hiring process should be changed. Personally, I'm ok with the hiring process as it is. It could be improved, but I'm going to tell you how to get a job anyway.
It's a skill
Treat interviewing like a skill. It's going to require some practice. It's quite different from programming. Something I've noticed about over the years is that the inexperienced naive ones tend to think that they know everything whereas experienced programmers know more what they don't know. So as you grow as a programmer, you may even think of yourself as worse programmer because you grow aware of what you don't know. This is problematic when interviewing because you are essentially selling yourself to the company. If you don't feel the product is good how can you sell it effectively? The next step is to figure out how to sell yourself.
Practice your pitch
I firmly believe that you have to have a game plan for the interview. Be familiar with everything you wrote on your resume. Have answers for the most common questions. Be able to relate specific experiences in your career in away that shows your strengths. Have your own pitch ready in the case that the interviewer doesn't have much to say. I've had interviews where the interviewer simply asked open ended questions. It's good to have your pitch ready to hit these questions out of the park.
Code Examples
Programming during the interview is silly. It's not an accurate evaluation of a programmer's skills, and I'm not sure what it serves to show the interviewer. I find that an easy way to avoid doing coding during the interview is to have some code examples ready for the interviewer to see. It's important for the interviewer to both see the code and be able to run the app. Personally, I'll build a side project in rails and host it on heroku, which allows the interviewer to review code and easily try out the app.
All interviews are practice
Many programmers get nervous during interviews. I calm my nerves by remembering that all interviews are practice. If you don't get the job it's not a big deal. Simply apply for another job and interview for that one. In the meantime, I get real practice to hone my interview skills. However, before that next interview it's important to try to learn from the interview you just had.
Evaluate your performance
What went wrong in the last interview? Where could you have improved? What went well? It's important to critique your performance shortly after your interview. That way you won't miss anything since everything will be fresh in your mind.
But how do I GET an interview?
That's the subject of my next post. I'll go over resume and cover letter writing, and some other topics. Read it here