PHP pre-interview from Yahoo
Рубрика: Development, Работа | 14 August 2007, 08:43 |
Vadim Voituk
Nick Halstead опубликовал в своем “The Programming and Management Blog” список из 22 вопросов, которые задавались кандидату на должность PHP-разработчика в Yahoo.
C разрешения Ника, публикую их здесь.
1. Which of the following will not add john to the users array?
1. $users[] = ‘john’;
2. array_add($users,’john’);
3. array_push($users,‘john’);
4. $users ||= ‘john’;
2. What’s the difference between sort(), assort() and ksort? Under what circumstances would you use each of these?
3. What would the following code print to the browser? Why?
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
4. What is the difference between a reference and a regular variable? How do you pass by reference & why would you want to?
5. What functions can you use to add library code to the currently running script?
6. What is the difference between foo() & @foo()?
7. How do you debug a PHP application?
8. What does === do? What’s an example of something that will give true for ‘==’, but not ‘===’?
9. How would you declare a class named “myclass” with no methods or properties?
10. How would you create an object, which is an instance of “myclass”?
11. How do you access and set properties of a class from within the class?
12. What is the difference between include & include_once? include & require?
13. What function would you use to redirect the browser to a new page?
1. redir()
2. header()
3. location()
4. redirect()
14. What function can you use to open a file for reading and writing?
1. fget();
2. file_open();
3. fopen();
4. open_file();
15. What’s the difference between mysql_fetch_row() and mysql_fetch_array()?
16. What does the following code do? Explain what’s going on there.
$date=’08/26/2003’;
print ereg_replace(“([0-9]+)/([0-9]+)/([0-9]+)”,2/1/3,$date);
17. Given a line of text $string, how would you write a regular expression to strip all the HTML tags from it?
18. What’s the difference between the way PHP and Perl distinguish between arrays and hashes?
19. How can you get round the stateless nature of HTTP using PHP?
20. What does the GD library do?
21. Name a few ways to output (print) a block of HTML code in PHP?
22. Is PHP better than Perl? – Discuss.
Ссылка в тему 30 Java Interview Questions.
Tweet
Я думав що знаю php…
А вопросы-то легкие..:)
Тут к каждому вопросу можно ещё 3-4 дополнительных задать и таким образом полноценно пообщаться с кандидатом.
P.S. Кстати у меня вопросы ещё легче :)
Нормальные вопросы, только как-то их сложность неравномерна распределена по списку…
Саша: приведи пример
С удовольствием!
Первые пара вопросов довольно сложны: первый подразумевает немерянный опыт (я без мана не смог ответить), второй – знание алгоритмов сортировки, их плюсов и минусов (как человек, недавно готовившийся к собеседованию, могу сказать, что это требует сил и времени, чтобы разобраться).
А дальше идут обычные вопросы про @, === и прочие достаточно примитивные вещи на уровне знания синтаксиса языка.
В конце опять вечные вопросы, на которые можно отвечать долго: сравнить PHP и Perl, а также “как плохо, что HTTP – протокол без состояния, и как нам с этим жить”.
Имхо правильнее, когда сложность вопросов изменяется плавно в любую сторону (обычно повышается).
Согласны, сударь?
Не согласен. Исключая вопросы типа “что лучше Perl или PHP”, сложность достаточно равномерна. Единственное что они делятся на 2 группы: “энциклопедически-опытные” и “примитивно-разглагольствующие”.
Как по мне и те и другие больше склоняют собеседование к диалогу, чем сухому ответу на вопросы.
Ничего сверхъестественного…. особенно, когда в вопросах видна подсветка синтаксиса :) :)
Вот если бы я принимал собеседование, то я бы задавал вопросы в стиле:
1) “а что будет в результате вывода, если мы напишем вот так:
а)$a = “35test”; $b = “blabla87″; echo $a+$b;
б)$a = “35test”; $b = “87blabla”; echo $a+$b;
Объясните полученный результат.
2) Дан код:
$a = array(‘qwe’, 1=>’asd’, 35=>’zxc’, ‘rty’);
$a[] = ‘fgh’;
print_r($a);
Вопрос: какой ключ при распечатке будет у fgh?
Попробуйте не прибегая к проверке ответить на эти вопросы. Кто ответит на 2 из 2 – может считать себя не плохим специалистом в PHP и у меня бы он собеседование прошел бы :)
А тех кто не прошел – присылайте ко мне – у меня вопросы поражают своей простотой и искренностью :)
P.S. /me “может считать себя не плохим специалистом в PHP”
Anycolor, vadim, а остальных, не прошедших этот сноб-тест возьмут в Яху без экзаменов.
Давайте все-таки перед тем как говорить что вопросы очень легкие, учитывать что это только ПРЕ-интервью. Основное интервью будет дальше.
И почему когда принимают на работу php специалиста задают вопросы по синтаксису и языку, а не по фундаментальным знаниям?
У меня на это 2 варианта ответа:
1. Сам так делаю и в процессе обсуждения вопросов по синтаксису задаю дополнительные вопросы по фундаментальным знаниям. (Хотя при этом стараюсь “программистов, которые выросли из дизайнеров” до собеседования не допускать)
2. Это всего-то pre-интервью. Возможно фундаментальные знания будут проверяться дальше.
Например так проводит интервью Киевская компания Ciklum: Сначала беседа с HR-специалистом, проверяется знание английского, запоняются анкеты, + небольшой опросник по Java. Дальше в случае успешного прохождения первого этапа, уже беседа в техническими специалистами (предпологаемыми сотрудниками, тим-лидером или заказчиком)
Оказывается я тоже не знаю РНР
$date=”08/26/2003″;
echo ereg_replace(“08/26/2003″,200,$date);
echo str_replace(“08/26/2003″,200,$date);
здесь функции вернут разный результат.
Если ты хороший PHP програмист, независимо от пола и возраста, хочешь получать достойные деньги, не выходя из дома. Пройди успешно тест и получи интересную высокооплачиваемую работу.
http://www.corp.mamba.ru/1111111111111111111111111111111
Ромка, мы это уже проходили :)
2anycolor:
Я немного изменил ваш пример и получилась тоже неплохая задачка:
$a=array(‘one’ => ‘one’, 35 => ‘two’, ‘three’ => ‘three’, ‘four’);
print_r($a);
Какой индекс будет у элемента ‘four’?
>> Какой индекс будет у элемента ‘four’?
36 :)
Не сомневался, что она легкая :))
>Вот если бы я принимал собеседование, то я бы задавал вопросы в стиле:
1) “а что будет в результате вывода, если мы напишем вот так:
а)$a = “35test”; $b = “blabla87″; echo $a+$b;
б)$a = “35test”; $b = “87blabla”; echo $a+$b;
Слава Богу что такие как вы ничего не принимают, ибо если ты знаешь какой-нибудь мелкий неиспользуемый нюанс это не значит что ты серьёзный специалист. Такой ерунды можно сколько угодно накопать из мана и user comments и завалить любого специалиста. Хотя, если это нужно только для удовлетворения собственной похоти (мол ты не знаешь, а я знаю, так что ты ничтожество), то флаг вам в руки. Но любая стоящая уважаемая компания таких “собеседователей” выкинет с работы пинком под зад практически сразу, после того как вы парочку классных профи таким бредом отсеете.
Севр, вообще-то несмотря на грубость поста говорит вполне здравые вещи, на мой взгляд. Знание глубоких тонкостей языка напрямую не свидетельствует о талантливости программиста. Скорее только о педантичности или дотошности в характере.
Лично я считаю, что каким бы ты программистом не был, но как минимум понимать как происходит приведение типов языке программирования ты обязан.
А приведенный пример:
а)$a = “35test”; $b = “blabla87″; echo $a+$b;
б)$a = “35test”; $b = “87blabla”; echo $a+$b;
отлично эти знания продемонстрирует
Согласен. А вот мой пример с индексом элемента массива уже немного выходит за грань, мне кажется.
Вот еще здесь можно почитать о вопросах по PHP на собеседованиях.
>Лично я считаю, что каким бы ты программистом
>не был, но как минимум понимать как происходит
>приведение типов языке программирования ты обязан.
>А приведенный пример:
>а)$a = “35test”; $b = “blabla87″; echo $a+$b;
>б)$a = “35test”; $b = “87blabla”; echo $a+$b;
>отлично эти знания продемонстрирует
=======================
когда то где то читал, что при приведении стринга к инту если есть не цифровые символы, они не учитываются, должны ли они стоять в начале строки точно не помню, помойму да. Это я к тому, что за 7 с небольшим лет программинга на пыхе с такой ситуацией не встречался.