Приветствую героев, дочитавших эту тему до шестнадцатой страницы.
Несколько комментариев от автора вопросов:
1. Поскольку вопросы до сих пор используются для предварительного отбора кандидатов, дать "правильные ответы" или указать на конкретные ошибки я, увы, не могу.
2. Единственно верных ответов на эти вопросы не существует. На шестнадцати страницах обсуждения есть несколько вариантов, которые нас вполне устроили бы. Есть и такие, которые нам не нравятся.
3. Фактически, на каждый из вопросов нас устраивает любой ответ, который в каком-нибудь плане лучше предложенных фрагментов кода, и при этом не создаёт больше проблем, чем решает.
4. К сожалению, нам очень часто приходилось сталкиваться с ситуацией, когда явная глупость, написанная кандидатом, обозначала именно саму себя. Мы оцениваем то, что написано в ответе, не приписывая кандидатам свой взгляд на мир.
5. Большинство хороших программистов трудоустроены. 99% не трудоустроенных нам не подходят (прежде всего речь идёт о людях, у которых за спиной — один семестр "основ программирования на C/C++" и больше ничего). Мы хотим отфильтровывать 90% кандидатов на уровне предварительного отбора, и 90% оставшихся — на уровне очного собеседования. Это очень жёсткие фильтры, и не удивительно, что они иногда отбрасывают хороших разработчиков. Ничего страшного, такие разработчики найдут работу где-нибудь ещё.
6. Мы хотим увидеть хорошие ответы на оба вопроса.
7. Мы, увы, не можем задавать более сложные вопросы: хорошие разработчики на них не отвечают, а плохие нам не нужны.
8. Учитесь и развивайтесь, но не ломайте себя. Не пытайтесь подогнать ответ под то, что мы, якобы, хотим услышать. Руководствуйтесь своим здравым смыслом, своим чувством прекрасного, и вы найдёте команду единомышленников. Может быть, это будет наша команда. Но даже если нет, — может, оно и к лучшему?