I have read many books and found that there is actually not much good advice about interview tips for programmers.
We also find that many talented programmers always mess up at interviews. This is probably because they spend most of their time on technical development and neglect the importance of learning interview skills.
Isn't that a tragedy? Effective interview skills can help you successfully get the job, even if you are not very familiar with the field.
1. Write a very professional resume for yourself
My suggestion is that if you want to increase your chances of being selected, it's best to spend some money on a professional resume. Compared to the huge gains you may get in the future, this is really just a small investment.
2. Research the interviewer
When I contact programmers for interviews, I always send them an email beforehand with my name and blog URL. But surprisingly, when I interview them, they still know nothing about me.
To give a positive example, I have also met developers in interviews who can even talk eloquently about the content of a blog post I wrote or a teaching video I made.
Which one do you think I would recommend?
Interviewers are also human and have human weaknesses and traits. Dale Carnegie once said that the easiest way to make others interested in you is to first show interest in them.
Whether this method is unfair or not, if you want to succeed in the interview, I suggest you first do thorough research on the company you are applying to and the interviewer (if known).
Information is so developed in today's society that we can easily find information about anyone on Facebook, Twitter, Weibo, and blogs. Even just skimming through it will benefit you greatly.
3. Get an internal referral
Do you know the easiest way to find a job? It is to get an internal referral.
This not only increases your chances of getting an interview, but also boosts your hiring odds by 40%.
A while ago, I found a company I liked. Then I directly submitted my resume? No no, guess what I did?
First, I found a developer who shared the same thoughts and opinions as me, and then started following his blog.
Then I left comments on his blog, shared my suggestions, and showed great interest in his work and his company. In the end, I successfully obtained that valuable internal referral.
Many programmers will say, "But I don't know anyone in that company." If you want to give up just like that, then forget I said anything. If you are willing to try, I bet you can always find a way to achieve your goal.
But there is a secret: first you need to create your own "business card" online—giving others the chance to get to know you—so do it now.
4. Learn to solve algorithmic problems
This is an important skill every developer should have, and it is not that hard to master.
In many interviews, there will be questions that require you to solve programming problems on a whiteboard or computer. But many programmers, even the excellent ones, will suddenly have their minds go blank and be unable to figure out a train of thought.
If you can take the time to learn how to solve these types of interview questions, you won't be as nervous the next time you encounter such a scenario.
Our nervousness actually has nothing to do with stage fright; it's mainly because we are not familiar with these problems and are not confident we can solve them.
Once you build up confidence in this area, you will never be nervous again.
5. Answer questions with enthusiasm
Answering with just a word or a sentence, reading from a script in a flat manner, might be technically correct, but you forget that you should use this opportunity to show your passion—that is the greatest positive energy a developer can bring to the team.
For example, if I ask you what polymorphism is, I don't want you to repeat the definition from a textbook; I want you to elaborate on the topic, and then we can discuss it more deeply.
6. Beware of "trap" questions
Why do you want to change jobs?
Tell me about your greatest strengths and weaknesses.
How did you resolve a technical disagreement with a colleague last time?
Before answering, you'd better understand the purpose of the interviewer asking these questions, and master the techniques for answering them.
Let's start with the first question: "Why do you want to change jobs?"
In most cases, the interviewer wants to know if you are someone who gossips and habitually slanders or attacks employers. So don't fall for it.
7. Never lie
The worst thing is to lie during an interview.
If you know, you know; if you don't know, you don't know. If you really don't know, never be clever and fabricate an answer.
Instead, you should honestly say that you don't know or you're not 100% sure, but you're willing to give it a try, and then talk about your thoughts. After that, you can also ask the interviewer what the correct answer is, to show you are very interested.
To tell you the truth, most interviewers ask questions they know the answers to; otherwise, if they let you pass by pretending to be competent, it would make them look like fools. So never rely on luck. Once they find you are lying, the interviewer will immediately question your character.
8. Don't be too honest
Many programmers reveal too much about themselves. Don't think that honesty and full transparency are the best policy; too much is as bad as too little.
It is certainly true that you shouldn't lie as mentioned in point 7, but there is no need to tell the interviewer all the details of your life and all your shortcomings.
Having personality is good, but exposing character flaws is a bad thing.
Imagine if you said you like gambling or are addicted to World of Warcraft; I bet the interviewer would definitely reconsider you. So be cautious when sharing your information, because it not only exposes your flaws but also makes you seem to lack proper judgment.
9. Master the fundamentals of computer science
Yes, many programmers even assert during interviews that they don't know linked lists and stacks because they didn't have formal education or have long forgotten them.
I admit that we don't use those deep computer science concepts at work, but as a professional software developer, you should at least know some basics.
For example, if you hire an electrician to rewire your house, but the electrician knows nothing about the basics of electrical engineering, would you still hire him? The same applies to us.
10. About experience
This is the last point, but not the least important. Many developers, especially newcomers to the field, often lack relevant experience and don't know how to gain so-called work experience.
It's a bit like the chicken-and-egg problem.
So how can you gain experience?
The key is to use creative methods. There are many ways to gain work experience without actually working at a company.
Here are some tips for you:
- Participate in open source projects
- Start an open source project
- Build a mobile app and put it on the App Store
- Write a small web application
- Participate in code exchanges and user groups
These methods can all be written on your resume as work experience. As long as you have ideas, you don't need to worry about lacking experience.
Conclusion
I hope these tips are helpful to you. If you have different ideas, please don't hesitate to share them.
Source: http://www.codeceo.com/article/10-skills-programmer-interview.html