Огрызки от собеседований

От собеседований, которые я недавно проводил, у меня осталась масса листочков с заковыристыми вопросами. Например, если человек говорил, что знает PHP на 10 из 10, то я ему давал, например, такой тест:

var_dump((bool) print_r(${strrev('SLABOLG')} = 1, $GLOBALS[1]{1} == (unset) b"1") == "00");

Сказать есть ли тут ошибки, если нет, то что получим и что вообще тут происходит.

P.S. Я в Самаре, «Holiday Inn» отличный отель.

Читайте также

Комментарии 18

Дмитрий Фантазеров (Смирнов) (fantaseour.ya.ru) № 4
Комментарий для hshhhhh.name:

Это наш уважаемый автор проникся возможностями приведения типов в 5-ке :)
http://ru2.php.net/manual/en/language.type … ypecasting

там есть
(binary) casting and b prefix forward support was added in PHP 5.2.1
$binary = b"binary string";

и про unset тоже там же
(unset) — cast to NULL (PHP 5)

повозишься с UTF-8, еще не так заговоришь :)

однако на собеседовании такое давать, это круто. это комплекс неполноценности растить в программере -- на 5 знает Б-г, на 4 — преподаватель, остальное в руках студента.
Дмитрий Фантазеров (Смирнов) (fantaseour.ya.ru) № 5
На такое трудно ответить, не поковырявшись минут 5 с мануалом и тестовым скриптом. А так интересная задачка, да. Действительно заставляет задуматься, но в жизни так писать не стоит, и именно по этому она и вызывает затруднение -- так не пишут.

а вот про '00' это уже из жизни, поскольку
echo var_dump((bool) «0»); //false
echo var_dump((bool) «00»); //true

и это противный подводный камень, бо строку на пустоту надо проверять явно, а не
if ($myNotEmtyString) …

$GLOBALS=1 тоже вызвал мысль, неужели так дадут сделать? Но и правда дали. Можно ли у числа воспользоваться устаревшим (deprecated since 5.3) синтаксисом доступа к строке по индексу для числа? Сконвертится ли число в строку? Нет конечно:
Accessing variables of other types (not including arrays or objects implementing the appropriate interfaces) using [] or {} silently returns NULL.

Действительно бездонна глубина мануала, и велика мудрость его.
Евгений Степанищев (bolknote.ru) автор № 7

Комментарий для hshhhhh.name:

Почему собеседования по пхп? Ты же на питоне был.

У меня была вакансия со знанием PHP

Евгений Степанищев (bolknote.ru) автор № 8

Комментарий для fantaseour.ya.ru:

Это наш уважаемый автор проникся возможностями приведения типов в 5-ке :)

Когда я ещё активно следил за языком, я читал changelog каждого релиза, так что я просто в курсе :)

однако на собеседовании такое давать, это круто. это комплекс неполноценности растить в программере -- на 5 знает Б-г, на 4 — преподаватель, остальное в руках студента.

Просто если человек говорит, что знает на 10/10, то это либо правда так (что маловероятно), либо он ощутил, что достиг вершины знаний без повода (что более вероятно).

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

Евгений Степанищев (bolknote.ru) автор № 9

Комментарий для fantaseour.ya.ru:

Действительно заставляет задуматься, но в жизни так писать не стоит, и именно по этому она и вызывает затруднение -- так не пишут.

В жизни как только не пишут, а затруднение она вызывает, потому что собраны несколько тонких или малоизвестных вещей.

Некоторые штуки могут и случайно получаться, вроде if (!$str) {}, где в $str оказалось сначала «"0"», потом «"00"».

Дмитрий Фантазеров (Смирнов) (fantaseour.ya.ru) № 10
Комментарий для Евгения Степанищева:

про 0 и 00 согласен, место тонкое и надо его знать.

меня тут спросили на собеседовании на сколько я оценю себя. сказал, -- ребят, я пишу на этом 10 лет каждый день и пытаюсь скрупулезно все читать. Тем не менее оценить свои знания затруднюсь, они точно не 100%. Поскольку в баллах не просили, я и не сказал. Себя вообще сложно в баллах оценивать, поскольку ты не знаешь этих 100%. Можешь лишь оценить уровень владения «неуверенный» — «хороший, но осторожный, много еще белых пятен» — «уверенный, если есть белые пятна, легко прочту и разберусь». А вот 100% только про hello world могу сказать.

ченьдж-логи это конечно правильно, но я вот ощущаю, что от того, что я пытаюсь быть уверенным в себе и читаю все досконально, тормозится моя работа, как программиста. Т.е. надо как-то балансировать чтение и производственную деятельность.
Евгений Степанищев (bolknote.ru) автор № 11

Комментарий для fantaseour.ya.ru:

А вот 100% только про hello world могу сказать

Вот и я тоже, несмотря на то, что читаю changelog :)

но я вот ощущаю, что от того, что я пытаюсь быть уверенным в себе и читаю все досконально, тормозится моя работа, как программиста

Я обычно это делаю в «минуты отдыха», есть куча запланированных мелочей, которые можно сделать, если выдалась свободная минутка. Например, сейчас она выдалась, вот, я отвечаю на комментарии.

Азат Разетдинов (razetdinov.ya.ru) № 13
Комментарий для fantaseour.ya.ru:

Особенностью 00 я время от времени пользуюсь на сайте http://spritegen.website-performance.org/ Там требуют задать отступы, хотя при правильной вёрстке они не нужны. Ввод нулей приводит к сообщению, что обязательные поля не заполнены. 00 работает как надо.
guest № 14

Комментарий для Евгения Степанищева:

Она проверяет знания языка.

Она проверяет с человеком ты говоришь или с интерпретатором

Евгений Степанищев (bolknote.ru) автор № 15
Не понял вашей фразы. Если человек утверждает, что знает язык идеально, не грех бы эти знания проверить. Это — способ.
Евгений Степанищев (bolknote.ru) автор № 16

Комментарий для nudnik.ru:

Так у них в Яндексе только 20% на работу уходит. Волож разрешил.

Вводишь людей в заблуждение :) Они ж твою шутку могут за правду принять :) 20% времени можно использовать на личные проекты или пинание балды.

CTAPbIu_MABP (ctapbiu.mabp.myopenid.com) № 17
вообще не понимаю на собеседовании два типа вопросов
— поработый компилятором
— реши задачку на логику

по певому пункту складываеться впечатление что в конторе придеться писать в блокноте (нотпаде) и никаких IDE не предусмотрено. что работа состоит в том чтобы писать сразу обфусцированый код который никто не поймет и поддерживать не будет, потому что если на проекте есть куски такого кода то можно смела вешаться. а так же что все работающие там писатели такого кода дикие задроты и ботаны (гики и нерды)

по второму — 10-20 собеседований и книжку с задачами можно не покупать ;)
Евгений Степанищев (bolknote.ru) автор № 18
вообще не понимаю на собеседовании два типа вопросов
— поработай компилятором

интерпретатором

по певому пункту складывается впечатление что в конторе придется писать в блокноте (нотепаде) и никаких IDE не предусмотрено.

Странная точка зрения. Должно было сложиться впечатление, что придётся читать много кода.