Thursday, August 4, 2011

A philosophical difference in hiring processes for software engineers between US and Japan

A person currently working in US suggested me reading a book named "Cracking the Coding Interview". He told me that the book was one of the most famous books that let software engineers prepare for their recruiting interviews. I was so impressed and excited because the way US software companies hire engineers is so rational.

It says that interviewers can ask very intricate technical questions that relate to algorithm and coding. Sounds great! That's the way it should be.

In Japan, interviewers rarely test candidates with coding questions, odd as it might sound. Japan's IT industry was dominated by a few big software "general contractors" such as NTT Data and they usually don't look into candidates' technical skill set scrupulously. Instead, they rather attach greater importance to candidates' "communication skills", a vague concept that allegedly guarantees a candidate to be a good "team player".

However, I think that this is an absolute nonsense. A software engineer is supposed to be hired to code, not to chat. If a candidate is a very likable nice guy, but is unable to code even a line, he is useless in the workplace of software production. No wonder that Japanese IT industry has lost its competitive edge.

I feel very encouraged. I have finally found a reason to study computer science in earnest. If nobody really cares about proper knowledge on algorithm, who is willing to make serious efforts to learn it, after all?

2 comments:

pico said...

A friend of mine, an American, had interviews with Google and Youtube nearly one after another. He did well at the Google interview, but did horribly at the Youtube: they asked detail programming questions which he did not handled well.

Google told him that they liked him but they could not ignore the bad review of Youtube. So he was not hired. And he had another chance at Google but he failed again.

In North America, UK and Europe, they asked real technical questions. One occasion, I had a phone interview with people in UK and Belgium, and I had to explain my codes over the phone: no one on the other side was a programmer.

We did several interviews for programmers and actually asked some task a week in advance to present at the interview. At one interview a colleague asked to speed up since the candidate went too slow.

Any case, you will likely have phone interviews against 2-3 people at the other end.

Interview style is very different in each country and company: so it is nearly impossible to prepare. But I never had an interview with Japanese so I really cannot compare. North American interviews involve many people and European interviews involve only a few. I often did not know about an interview whom I may work with in EU.

Also EU prefers more inbreeding than the US which often prohibits internal promotion at higher level.

Any case, depending on the job, American company can ask extremely or impossible questions: in these cases, they are checking how a candidate handle these questions...

t said...

I'm a Japanese senior software engineer working for a small manufacturing company in mid west in the U.S. I have been involved in the hiring process for some years now in this company, but I have never asked computing algorithm related questions to the candidates.

The most important question I always ask is this – what kind of software process did you use in your last software project? Whatever process – CMMI, ISO9001, IEEE, or Agile – he or she uses doesn’t matter. I ask the details of the process the candidates actually used. Processes like requirements, architecture, design, and coding must always accompany with review sessions. This single question can easily tell if the candidates are "programming cowboys".