Have you ever been asked some puzzles during an interview for a programming job? I met it. The question I was asked was:
How many of your favorite brands of soda are consumed in this province?
Please, the correct answer cannot be "What is my concern" unless you do not want to get the job. I had no clue about this problem at the time, and later I learned that it was a "Fermi question ).
Note: Enrico Fermi, an Italian-American physicist, won the Nobel Physics Award in 1938. He can get a good estimate through very small or inaccurate data. Therefore, he is named after the estimation of the fermion or fermion. A classic example of the fermion problem is: "How many piano tuning masters are there in Chicago ?"
As a new thing, puzzles became popular in the interview with programmers in the 1990 s. How wocould youmove Mount Fuji? (How to move Mt. Fuji ?) There are good records in this book, which also emphasizes that Microsoft uses puzzles during recruitment.
If you already know that the company you are going to apply for will ask such puzzles, it is wise to study common interview puzzles in advance. If you think you are already familiar with General puzzles, I will test you to see the most difficult interview puzzles in history below:
N words are omitted here... there are a lot of puzzles: http://www.cartalk.com/content/puzzlers/2011
In other words, I hate puzzles! (I hope those puzzles will be answered by enthusiasts ......) Unexpectedly, I did not pass the interview. I was very disappointed at the time because the job was cool!
It doesn't mean that the suggestions I give in the "Interview with programmers" section will be more popular, but I do think that is much better!
In the previous section, I introduced you to my own method, which is also the best way to interview programmers: ask the candidate to give a 10-minute chat speech on something they have done in front of your team. Of course, you can also use some hands-on programming tests as a supplement to ensure that the candidate is not in a scam-although I firmly believe that, if you do not really understand what you are talking about, you cannot confuse a group of colleagues in a technical speech. (If you are so confused, you should have become the CEO of a startup company now !)
What I want to emphasize here is the communication capability.For most programmers, after they pass the fizz-Buzz level capability test, they seem quite good. But it is not enough to write only the code. To grow from excellence to excellence, you must develop effective communication skills: communicate with your colleagues, communicate with your boss, communicate with users, and ultimately communicate with the world.
Because of the birth of our first child, my wife and I stayed in a hospital for five days. During our stay, we were assisted by many nurses-at least two different nurses each day, sometimes more because we were going to different departments for a visit, in addition, nurses change their shifts every day. The quality of care in this hospital is generally quite high, but we are also confused by the gap between the worst nurses and the best nurses. A few days later, I finally found a commonality-the worst nurse's communication skills must be the worst! These nurses cannot communicate effectively with us, for example:
- Why do they need to do something?
- Options
- Suggestions
- Resolve our problems
This makes us feel that they are rigid people who only know what to do. They do not take care of people, or they do not have the opinion (they must constantly ask their superiors ). Of course, this is not the case. I believe they are all qualified professional nurses. But when necessary communication is missing, they do look terrible! I have to say that these nurses often (and not always) are not local people (their mother tongue is not English ).
Even under the best conditions, recruitment is not easy! However, it would be too risky to make the interview process too much dependent on puzzles. Of course, programmers may eventually solve the bad puzzles you threw to them (I guess they just remember the answer ). However, isn't that equally important to explain those solutions to others in the team? For many programmers, that is the most difficult part of the puzzle.