Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
А нужно ли оно, такое собеседование. Во многих конторах... 21.10.08 11:58 Число просмотров: 3762
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 21.10.08 12:23 Количество правок: 1
|
> Нет. Собеседование (особенно на senior-позицию) не > олимпиада, в которой тебе добавят баллы за любое решение, > выдающее правильный результат. Я проводил немало > собеседований, но таких задач не задавал вообще, ибо > большинство претендентов не могут осилить даже > элементарнейшую задачу реверса односвязного списка за > O(const) памяти, не говоря уж о задачах, требующих знания > ШКОЛЬНОГО курса математики. На собеседованиях пытаются > оценить потенциал претендента. То бишь если он чего не > знает - научить не проблема, если мозги есть, а вот если > нет мозгов - сразу нахрен, даже если знает наизусть всю > стандартную библиотеку похапэ.
А нужно ли оно, такое собеседование. Во многих конторах подход другой - на собеседовании понять насколько человек приятен коллективу, а если не будет соответствовать занимаемому место по профессиональным данным - увольнение. Чтоб на собеседовании экзаменовать человека - дикость какая то. Порой кадровику достаточно почитать послужной список, чтоб определить сможет ли человек решать требуемый спектр задач. В крайнем случае на то он и испытательный срок, чтоб некоторые его выдержали.
> Суть таких задач не в том, чтобы ты ее решил любой ценой, а > чтобы продемонстрировал свою способность МЫСЛИТЬ. Причем
Ну не везде у нас любят мыслящих (слишком умных).
> некоторые задачи вообще не имеют "правильного" ответа > (круглые канализационные люки) или имеют ответ, который > можно только знать (узнать в каком нибудь справочнике), но > невозможно угадать (масса боинга, количество заправок, > прибыль телеком компаний). Здесь гораздо четче > просматривается цель этих задач. Ответить правильно, если > ты специально не заучил все цифры из справочников, у тебя > нет никакой возможности ПРИНЦИПИАЛЬНО. Поэтому расслабься и > начинай думать.
А подобные вопросы - вообще дурь. Взяли пример то ли с запада, то ли психологи друг у друга сдули такое тестирование, а зачем - никто не знает.
> Хехе. Просто перемножить все простые (число Эвклида) > недостаточно (к тому же ты выкинул двойку). Число должно > делиться не на 2, а на 16, не на 3, а на 9. С ростом N > число таких степеней возрастает.
Правильно, второпях перевернул все с ног на голову. Если уж идем с шагом 20, то нет смысла проверять деление на 10, на 5 и на 2. Причем в исходной программе именно этих чисел и не было. В принципе сократить IFы в несколько раз уже приятно, хотя бы те, что чаще всего выполняются (внешние). С другой стороны вложеные IFы это не вложеные FORы.
> Вот решение на C: > #include <stdio.h> > #include <gmp.h>
>
> int main(int argc, char **argv) {
> mpz_t res;
> mpz_init_set_ui(res, 1);
> for(int x=1; x<=1000; x++) {
> mpz_lcm_ui(res, res, x);
> };
> mpz_out_str (stdout, 10, res);
> }; ---
> > Как видишь оно считает решение той же задачи для N == 1000. > Давай на том же собеседовании это будет следующим вопросом > :-). Вполне обоснованный вопрос к профессиональному > разработчику: насколько легко твое решение следует за > изменяющимися требованиями (это, в общем, один из основных > вопросов, ибо требования меняются постоянно)
Есть конкретная задача, есть и конкретное решение. Если задача решается брютфорсом, причем время написания 5 минут и работать она будет ~5 микросекунд, то писать ее нужно именно так, а не убивать на разработку самого совершенного алгоритма 5 дней.
|
|
|