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

От собеседований, которые я недавно проводил, у меня осталась масса листочков с заковыристыми вопросами. Например, если человек говорил, что знает PHP на 10 из 10, то я ему давал, например, такой тест:
var_dump((bool) print_r(${strrev('SLABOLG')} = 1, $GLOBALS[1]{1} == (unset) b"1") == "00");
Сказать есть ли тут ошибки, если нет, то что получим и что вообще тут происходит.

P.S. Я в Самаре, «Holiday Inn» отличный отель.
9 октября 2010 00:15

hshhhhh.name (hshhhhh.name)
9 октября 2010, 04:46

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

hshhhhh.name (hshhhhh.name)
9 октября 2010, 04:52

забавный тест, не знал что можно делать (unset).
и что значит это чудное b"1"?

nudnik.ru (nudnik.ru)
9 октября 2010, 06:50

Очень хорошая задача, реально применимая в реальной жизни!

Дмитрий Фантазеров (Смирнов) (fantaseour.ya.ru)
9 октября 2010, 07:44, ответ предназначен hshhhhh.name:

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

там есть
(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)
9 октября 2010, 08:03

На такое трудно ответить, не поковырявшись минут 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.

Действительно бездонна глубина мануала, и велика мудрость его.

bolk (bolknote.ru)
9 октября 2010, 08:14, ответ предназначен nudnik.ru:

Очень хорошая задача, реально применимая в реальной жизни!
Она проверяет знания языка.

bolk (bolknote.ru)
9 октября 2010, 08:15, ответ предназначен hshhhhh.name:

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

bolk (bolknote.ru)
9 октября 2010, 08:22, ответ предназначен fantaseour.ya.ru:

Это наш уважаемый автор проникся возможностями приведения типов в 5-ке :)
Когда я ещё активно следил за языком, я читал changelog каждого релиза, так что я просто в курсе :)
однако на собеседовании такое давать, это круто. это комплекс неполноценности растить в программере -- на 5 знает Б-г, на 4 - преподаватель, остальное в руках студента.
Просто если человек говорит, что знает на 10/10, то это либо правда так (что маловероятно), либо он ощутил, что достиг вершины знаний без повода (что более вероятно).

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

bolk (bolknote.ru)
9 октября 2010, 08:45, ответ предназначен fantaseour.ya.ru:

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

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

Дмитрий Фантазеров (Смирнов) (fantaseour.ya.ru)
9 октября 2010, 09:11, ответ предназначен bolk (bolknote.ru):

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

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

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

bolk (bolknote.ru)
9 октября 2010, 10:48, ответ предназначен fantaseour.ya.ru:

А вот 100% только про hello world могу сказать
Вот и я тоже, несмотря на то, что читаю changelog :)
но я вот ощущаю, что от того, что я пытаюсь быть уверенным в себе и читаю все досконально, тормозится моя работа, как программиста
Я обычно это делаю в «минуты отдыха», есть куча запланированных мелочей, которые можно сделать, если выдалась свободная минутка. Например, сейчас она выдалась, вот, я отвечаю на комментарии.

nudnik.ru (nudnik.ru)
9 октября 2010, 11:39, ответ предназначен fantaseour.ya.ru:

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

Азат Разетдинов (razetdinov.ya.ru)
9 октября 2010, 12:14, ответ предназначен fantaseour.ya.ru:

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

guest (инкогнито)
9 октября 2010, 14:13, ответ предназначен bolk (bolknote.ru):

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

bolk (bolknote.ru)
9 октября 2010, 17:07, ответ предназначен guest

Не понял вашей фразы. Если человек утверждает, что знает язык идеально, не грех бы эти знания проверить. Это — способ.

bolk (bolknote.ru)
9 октября 2010, 17:18, ответ предназначен nudnik.ru:

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

CTAPbIu_MABP (ctapbiu.mabp.myopenid.com)
15 октября 2010, 15:27

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

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

по второму - 10-20 собеседований и книжку с задачами можно не покупать ;)

bolk (bolknote.ru)
6 февраля 2011, 15:54, ответ предназначен CTAPbIu_MABP (ctapbiu.mabp.myopenid.com):

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

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)