
Job interviews and programmers
Independently of what is the difference between a programmer, developer, software engineer,… (Engineers vs Programmers) when someone apply for a software related position which involves mostly create code, the standard preparation for the interview involves:
- Research a little bit (very little in fact) about the company.
- Go to google and search for “job interview developer questions XXXX” (where XXXX is Java, Spring, C#, SQL or whatever other topic) and try to memorize the maximum number of answers even if you do not really understand it.
- Have a few questions prepared to “prove you are interested”, even if everything is clear and there is no need for that questions.
But how is the preparation of the interviewer? Even if your company have a Human Resources Department, someone has to interview the candidates from a technical point of view. Research a little bit on google you can find debates (more or less intense) surrounding this topic, like:
– How to recognize a good programmer?
– The worst programming interviewing questions.
– Why programmers can not code?
The last post is well known and I recommend to read not only the text of the author so the comments. In all these types of posts there is one common factor: they are focused on the negative results of the interview, they think they are not responsible at all of the results, they are all developer with a lot of experience.
Most of the people have been in both sites of the interview at some point, but the people who claim they can not find programmers are normally people whose last experience as applicant for job happens many years ago. Then you forget things like:
- In an interview the applicants are more stressed than in real world
- The interviews talk about theoretical solutions
- In an interview you cannot use google or ask for help, in the real life you will use that daily.
- In an interview a fail is definitive, in the real world we are humans and we make mistakes which can be solved.
- In an interview I am limited in the programming environment, in real world I can use Eclipse, Visual Studio,… and then it is easy to rename variables, change loops, ….
The fact that you are a good developer does not mean you are good hiring developers. If the world is divided between you as interviewer and the rest as applicants and most of the applications, so most of the world, are failing maybe you are doing something wrong and not the rest of the world is failing. And there is one simple thing that interviewers never take care off: the job position itself. If the description of the job position is something like “We look for an enthusiastic programmer with 10 years of experience in Java, C#, .NET… you have to be able to work independently and as part of a team….”, you rarely will attract the attention of a good programmer. Good developers will avoid unpromisingly job positions and don’t be surprised if they never call to your door, if you really want a good developer you have to search actively for him/her. Another aspect that many managers also do not understand is: good developers need to be retrieved also with a good salary and employment conditions. There are many managers in IT companies who think that offering a job to developer is a favour they make to the community of developers and not a service they need to improve their company.
I have been in both sides but I have one interesting particular experience. When I move from Spain to the Netherlands I apply for a Java Software Developer position in a company and I fail on the screen interview. It was my first screen interview by phone (and the first one in English which is not my native language and it was also not the native language of the interviewer) and I could not explain myself very well because explaining by phone how to write a program is hard and confusing and also because I am not an excellent developer. But I know my limitations so I accept the result and invest some time in preparing myself for next interviews. A few months later I start to work in Genetwister Technologies, a company which give me the possibility to prove me in a real world and not a list of questions. After three years, I am still working on the same company and BOTH parts (the company and I) are satisfied with my performance. At some point during these three years I gave a small talk in a developers meeting group about the benefits and how to apply certain technology and after the talk someone from the company which rejected me, approach to me to offer a Lead Developer Position. Then I explain to him my history whit his company, the answer I get from him was: “we received too much applicants and we have to screen them”. Then I told him that if I have to made the interview maybe I will not pass it again, so why are you are offering me a Lead Developer Position if I cannot fulfil the requirements for a developer position?
To detect “good programmers” you can find resources on the net like phone screen questions (like this) or recommendations about interviews (5 rules to hire great developers) and many more but at the end the developers are still humans and they should be treated like that.