проходил сегодня собеседование

Wicked

Новичок
Ну там было перечислено, что они оценивают. Если не ошибаюсь, список был такой:
- кол-во ошибочных попыток (неясно, учитывают ли они нотисы/ворнинги)
- объем кода
- объем потребляемой памяти
- время

Про стиль оформления кода, соотв-но, не было ни слова.

-~{}~ 13.05.10 13:26:

Splurov
это круто, но, например, в другой задаче - распарсить и вывести xml вида "<Address><name>Vasya Pupkin</name>...</Address>" - оказалось, что рутовый элемент может называться по-другому. Так что лично я не уверен, что они подразумевают, что всегда будет 10 чекбоксов :)
 

Splurov

Новичок
Я почему-то уверен, что производительность и читаемость кода важнее объёма :)
 

Wicked

Новичок
если допускать нотисы/ворнинги...
PHP:
for($a=0,$i=1;$i<11;$i++)if(isset($_POST["checkbox_$i"]))echo$a=$a?" $i":$i;
for($a=$i=0;++$i<11;)if($_POST["checkbox_$i"])echo$a=$a?" $i":$i;
for(;++$i<11;)$_POST["checkbox_$i"]&&print$a=$a?" $i":$i;
 

shark_255

Новичок
ну про куки - да, это как из пушки по воробьям, если ответил - о да, чувак ты крут, глубоко вкуривал rfc - респект и уважуха.. имхо - это не приоритетный вопрос, но знание дает весомый бонус при практически равных раскладах других участников отбора )
 

zerkms

TDD infected
Команда форума
shark_255
рфц не накладывает ограничения сверху. ограничения накладывают реализации этого рфц, т.е. клиенты.
 

magic

lancer
Автор оригинала: pilot911
до пенсии ?
Заработаю на пенсию и уеду на Таити :D

-~{}~ 13.05.10 14:28:

Мой вариант:
Код:
$result = array();

foreach ($_POST as $k => $v) {
    if (strpos($k, 'checkbox_') !== false) {
        $digit = str_replace('checkbox_', '', $k);
        array_push($result, $digit);
    }
}
asort($result);
echo implode(' ', $result);
Рейтинг 98 из 100. Top 5%
 

Wicked

Новичок
magic
тогда у меня еще больше вопросов возникает :)

ошибок 0, время выполнения - суммарно 30 минут, с запасом по всем заданиям, по памяти вроде не проседали, по объему коду - все было лаконично, но достаточно читабельно, а-ля:
PHP:
function GetUniqueOnes($arr) {
  return join(',', array_unique($arr));
}
PHP:
function MaxArray($arr) {
  $max = 0;
  foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)) as $n) {
    $max = max($max, $n);
  }
  return $max;
}
PHP:
function SplitEmailAddress($address) {
  $split = explode('@', $address);
  return array('user' => $split[0], 'domain' => $split[1]);
}
баллы - 87 из 100, top 20%
ЧЯДНТ? :\
 

Доктор

Новичок
Автор оригинала: magic
Заработаю на пенсию и уеду на Таити :D

-~{}~ 13.05.10 14:28:

Мой вариант:
Код:
$result = array();

foreach ($_POST as $k => $v) {
    if (strpos($k, 'checkbox_') !== false) {
        $digit = str_replace('checkbox_', '', $k);
        array_push($result, $digit);
    }
}
asort($result);
echo implode(' ', $result);
Рейтинг 98 из 100. Top 5%
>>if (strpos($k, 'checkbox_') !== false) {
Ошибка. Должно быть ===0
Кроме того, оптимальнее не strpos, а substr($k,0,9)=='checkbox_'


>>$digit = str_replace('checkbox_', '', $k);

$digit = substr($k,9);

Если не нравится 9, то сделай перед этим $n=strlen('checkbox_');
 

Sherman

Mephi
>как в шестнадцатеричную систему переводить


Написать dec2hex или что-то подобное - это типичный вопрос.
 

Krishna

Продался Java
Написать dec2hex или что-то подобное - это типичный вопрос.
Был за всю жизнь на более чем 30 собеседованиях, никогда не встречал такого идиотского вопроса. На месте Триумвирата послал бы их ... в ман.

Первый вопрос обычно задаётся с намёком на рекурсию, у них же это феерический П. Видимо знали, что такой вопрос есть, но не знали с какой целью его задают )

Вообще, походу там тех. дир. неадекват, так что ТС может не расстраиваться. А писать запросы на бумажке надо. Точнее, хотя бы объяснять план запроса. Я обычно отказываюсь полностью выписывать на бумажку, ибо лень. Устно только объясняю как буду его строить.
 

akd

dive now, work later
Команда форума
ко всяким бумажкам ... обычно пофиг чего человек на ней напишет. на 90% я составляю мнение о человеке по тому Что и Как он мне отвечает и рассказывает. :) так что лучше на собеседованиях старайтесь расслабиться и нормально общаться, если вы расскажете человеку то, что он хочет услышать, на бумажки никто смотреть даже не будет.
 

Sherman

Mephi
2Krishna

Ну вот а я встречал и слышал, что и других спрашивали что-то подобное. Так сказать, разминка.

А чем дурацкий-то? Аналогом его для sql является что-нибудь простое с left join, например.

Я могу объяснить зачем задают конкретно этот вопрос и вообще подобные.

1. Это показывает, что ты знаешь, хотя бы, что такое системы счисления. Это важно для программиста.
2. Решение требует проектирования и реализации простого алгоритма. Это тоже важно.

Почему это важно? На этот вопрос ответить не легко. Чтобы понять, что это важно нужно разделять определенные взгляды на профессию, вообще. С этой точки зрения программист работает прежде всего с алгоритмами и структурами данных. Наверное это не везде так. Но в компаниях, где действительно сильные программисты и интересные задачи, это именно так.
 

Fortop

Новичок
Аналогом его для sql является что-нибудь простое с left join, например.
Чего? :)

Вот гарантию даю, половина считающих себя программистами не справится с этим вопросом :D
 

Sherman

Mephi
В смысле? Я имел в виду, что по сложности эта задачка эквивалентна чему-то типа: Напишите запрос, который выбирает из двух связных таблиц все записи, для которых нету связи.
 

Вурдалак

Продвинутый новичок
А мне было бы стыдно, очень стыдно, если бы я не ответил на этот вопрос (dec2hex).
 

Krishna

Продался Java
Sherman
А, я под пивом протупил. Вручную написать - это нормально.
Я думал спрашивали название функции dec2hex.
 

akd

dive now, work later
Команда форума
писать на собеседовании функцию dec2hex - глупость. или человек знает как ее написать или он найдет как ее написать за 5 минут в гугле или он тупой и действительно сядет и будет в муках ее рожать. :)
если мне вместо писания этой полезной функции скажут что, "просто разобью двоичный код по 4 битам и заменю нужными знаками" || "хм, думаю, там есть какая-то закономерность, дайте мне гугл и пять минут и я напишу." - я считаю человек уже успешно ее написал.
 

zerkms

TDD infected
Команда форума
"хм, думаю, там есть какая-то закономерность, дайте мне гугл и пять минут и я напишу." - я считаю человек уже успешно ее написал.
это значит, что человек ничего не знает о системах счисления. ни о двоичной, ни о десятичной, ни и какой другой. такой человек тянет максимум на работу какого-нибудь стажёра или кто там в касте программистов самый низший в конторах есть.
 
Сверху