The whole team talked about algorithm recently, since we found some leaked written exam questions on Internet so that online test became meaningless soon. On one hand we're thinking about how to contribute to the question bank, on the other hand it caused debating on algorithm significance and form.

Here is a real example from Amazon online test. You can find it easily on Internet:

Given an array with positive integers and another integer for example {7 2 4} and 9, you are required to generate an equation, by inserting operator add ("+") and minus ("-") among the array. The left side of equation are consist of the array and the right side of equation is the integer. Here the result is 7-2+4=9.

I don't want to talk about the solution of this question. Suppose you're the candidate and please think about the situation you're facing. Yes… It does test your algorithm (with a little basic coding skills), so what?

I really like these algorithm desserts but I think algorithm is only one part of the whole interview. I don't know why it has been the *only* part in online test. I'm not quite sure how important it is that to be a good innocent algorithm issue resolver. AFAIK, Microsoft engineers will ask the candidate a lot of algorithm questions in interview, which takes over 80% of total… Is it a kind of *sick worship* to algorithm?

On the contrary, in my opinion a good algorithm question should be hidden in a specified and realistic issue, according to which OO design, system design, testing, engineering (e.g. code organization) and even communication should be involved together.

Furthermore, I believe a good question must be obscure (may be not fit for online test tho), and the candidate should complete the whole scenario by investigating a little and getting enough information from the interviewer. I have never looked down upon the effection of math on software, but I can't emphasis how important the skill is to abstract a realistic issue to be a math question (a kind of mathematical modeling skill?), and that's the real difference between a mathematician and an engineer. Think about Google father, why it's Larry Page, a classical engineer, rather than a mathimaticine?

Do we really need some brutal questions to torture the candidates? Many interviewers feel it's necessary since we want the best engineers, and we have top hiring bar there. This is from good original intention while it may cause unexpected result. Failure may affect the candidate negatively resulting in inaccurate evaluation.

A good question should be easily resolved for the first step, with its two or even three further and harder sub questions still waiting there. Good candidate can resolve them one by one and finnally dive into deep with a little prompting. Don't be afraid of giving the hints, b/c only the top ACMers can answer all these algorithm questions (I mean the algorithm part of the whole big question) without any prompt, and we've found that the best one on algorithm may still write terrible code. In addition, sometimes the pursuit of performance leads obscure code, too.

Finally, I want to put an ad here. :) Amazon is hiring, and our team is hiring. We're looking for the best engineers, and well-rounded problem resolver. There're different kinds of culture from different teams, I won't reveal too much here but I do believe we are doing one of the coolest work at least in Amazon Beijing.

**文章未经特殊标明皆为本人原创，未经许可不得用于任何商业用途，转载请保持完整性并注明来源链接《四火的唠叨》**

请问博主的团队招人有什么具体要求吗？比如编程语言什么的。

我有4年多的php开发经验，其中一年半在中国，两年半在澳洲。也有不错的网站前端能力。近些年一直是一个人独立完成各种系统。其实就是用各种开源的CMS,joomla,magento什么的，也和团队一起做过一些大公司的内部流程管理系统。之前在国内做过网页游戏的php编程。最近一直在为一些公司做数据挖掘和分析方面的工作。现在想找一个成熟点的团队，再学点东西。

没有编程语言类型的要求。你可以发邮件给我，RayChase1986#gmail.com

具体问题邮件联系。

是说中国人写的东西更符合中国人的思维习惯么？无论什么语言…

居然很流畅的看完了。。。