Dubrowsky
Хроники одного дупла
Блогово  →  WebDev  → 

Тестовое задание для PHP-программиста (Junior)

23 Января 2013 года

Замечательная компания NetCat, где я по прежнему работаю, в данный момент ищет стажеров-пыхарей. Это не совсем моя епархия, однако попросили поучаствовать в эйчар-процессе. Я наколбасил небольшое тестовое задание. Давайте запостю сюда, вдруг кому пригодится :)

Идея такая: приходит юноша в офис, рассказывает, как он работал с кучей разных фреймворков, как он знает по именам разные шаблоны проектирования, эмвиси и так далее. Мы это все слушаем, киваем, радуемся.

А потом даем ему ноут с редактором кода, в котором открыт файл следующего содержания:

<?
/**
вот реквизиты доступа к БД:

$config = array(
	'db_user' => 'root',
	'db_password' => '',
	'db_host' => 'localhost',
	'db_name' => 'stazher'
);

в БД лежат такие таблички:

CREATE TABLE IF NOT EXISTS `authors` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

CREATE TABLE IF NOT EXISTS `news` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `publish_date` bigint(20) NOT NULL,
  `title` varchar(255) NOT NULL,
  `text` text NOT NULL,
  `author_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;

а вот что должно получиться: 
http://www.blogovo.ru/files/01.13/stazher/example.php

смотреть можно так:
http://tools.loc/stazher/
*/
echo "Hello, world!<br />Сейчас я выполню тестовое задание!";
?>

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

Включается таймер на 15 минут, дается напутствие: "Показывать супер-изысканный код не нужно, нужно успеть сделать как можно больше за отведенное время, а потом можно порефакторить".

На выдумывание и конструирование всего вместе (включая фантастическую верстку, копипаст десятка новостей с портала, найденного по запросу "пойман снежный человек", перенесение работающей реализации на сервер в вебе) у меня ушло около 40 минут, а сама реализация являет собой около 100 строк яростного быдлокода :)

Есть надежда, что кто-нибудь за 15 минут успеет сочинить 2 запроса к БД и вставить результаты в скопированную верстку :) Как считаете, реально?

Кстати, раз уж я никак не могу отвертеться от HR-функций, надо бы получше разобраться в трудовых документах. Например, я до сих пор понятия не имею, что такое журналы по охране труда - а это, наверное, важная штука!

И да, приходите к нам на собеседование :)

Камменты

gadok23.01.2013, 18:15#
зачем выкладывать это? теперь кто-то может подготовиться заранее!
Дуброн самый28.01.2013, 19:46#
gadok, если кто-то внезапно найдет этот пост и подготовится заранее, это будет ему однозначным плюсом, потому что умение искать и находить нужную информацию в интернете - это основа всего, так-то!
Какой-то Вася03.04.2013, 01:58#
За 15 минут сложно даже понять суть задачи, не то, что написать решение.
Антон20.04.2013, 13:58#
А где кнопочка вернуться на страничке просматриваемой новости?))
Хожу на курсы пхп сейчас-как раз закончили изготавливать именно такую задачу)База делается пхпмайадмин:D...Но еще добавляли кнопочки обновить и удалить новость по id.не суперсложное задание,если учесть что БД уже создана и описана,НО за 15 минут-я не сделаю)мало практики......но и понтов нету,вроде как--знаний полно)
проще такие новости сделать сразу на движке...вордпресс например.Конечно если не требуется четкий синтаксис
FrancNet11.06.2013, 14:57#
Для решения этой задачи достаточно ручка, бумага, закурить (это успокоит нервы, не дающие сосредоточиться =) и 30 мин. =)
Михаил23.06.2013, 19:10#
Я еще не работал в компании - только фриланс, но даже для меня это задание очень легкое. Или вы проверяете навыки верстки? И я не согласен со сложившейся ситуацией с заданиями на собеседованиях. Это очень неприятно, когда тебе дают письменное задание. Ты начинаешь переживать что не успеешь, нервничать, тебя все ждут и это не дает тебе вспомнить название функции, из-за этого время решения увеличивается вдвое, ты начинаешь путаться и т.п. Какой в этом смысл? Я считаю, что задание должно быть устным - нужно обрисовать ситуацию, поставить задачу, и спросить как бы он эту задачу решил. И тогда, если человек действительно разбирается в этом, по его рассказу это будет понятно, причем можно будет узнать глубину знаний. Это будет и быстрее, и главное - вы увидите его знания, да и приятнее проводить такое собеседование - есть что пообсуждать.
Антон01.08.2013, 11:16#
Да, письменное задание-это всегда полная глупость. Никогда вы не узнаете истинные знания человека исходя из письменного да и вообще практического задания на собеседовании. Обстановка не та. Так возможно проверять только психологические качества и выдержку кандидата, но для ИТшников это далеко не всегда необходимо и объективно, ну разве что проверять в комплексе, не на знания, а просто на саму реакцию человека к такой обстановке. Но напряженность скорее всего не даст возможности большинству кандидатов решить задачу правильно и в срок. Так что как проверку именно знаний, а не психологической и моральной устойчивости, такие задачи неэффективны.
Прверять надо в общении живом, причем желательно не экзаменовать и не давить на человека, а свободно и непринужденно с ним общяться, и все станет вполне понятно, а практику выполнения реальной задачи в работе-все равно не избежать, бывает "семи пядей во лбу" ничего толком сделать в бою не могут, так как все равно руки из жопы растут, или применить теорию к реальной практике человек не способен, хоть внешне и кажется умным и прилежным.
Дуброн самый01.08.2013, 23:33#
Антон, спасибо за развернутый комментарий. Безусловно, эта задачка не была единственным критерием для выбора. Но полезную дополнительную информацию она все-таки давала. Особенно учитывая, что искали джуниора, которому надо уметь не на умные темы непринужденно общаться, "а код писать блеать" © ^)
Alexander04.12.2013, 15:48#
и какая же зарплата программиста, выполнившего это задание?
Дуброн самый10.12.2013, 20:31#
Alexander, кажется, стоял ценник в районе 40-50. Точно не помню.
Ильсур28.12.2013, 00:21#
А сейчас ещё набор идёт?
Anton07.08.2014, 13:34#
Не удержался от отзыва - очень повеселила возможность выбора скрыть или показать нецензурные слова. Обалдеть!!! )))
"Жопа есть а слова нет..." - это я для проверки скрипта.
Ай да молодцы!! ))
Дуброн самый07.08.2014, 14:26#
Новобранец28.09.2014, 13:57#
Действительно простое задание, которое просто покажет, что кандидат более 5 раз в жизни использовал SELECT. Такое вообще бывает, при условии "кучей разных фреймворков"?

Да и зачем 2 запроса, если можно смело выкидывать таблицу authors, если уже совсем писать за 15 минут. По сути, главное быстро сообразить попасть сюда - http://php.net/manual/ru/function.mysql-fetch-array.php . Hо если проходишь собеседование(тестирование, экзамен...), всегда волнуешься и думаешь не так.

Расскажите, чем закончились поиски кандидата и как народ делал задание.
Дубр08.10.2014, 16:49#
Новобранец, таблицы в БД уже были заведены, это часть вводной.

Народ делал по-разному. Были совсем начинающие, которые делали ошибку в синтаксисе и тупили над ней больше половины времени. Или залипали в доку по INNER JOIN на dev.mysql.com =) Были идеалисты, пытавшиеся за 15 минут написать MVC-фреймворк. Был кто-то, написавший грязное, но работающее решение - думаю, его и взяли, хотя точно не помню, потому что искали не ко мне в команду.
cx28.11.2015, 06:33#
Хуй такое задание за 15 минут джуниор сделает!
XX01.03.2016, 00:00#
Блять ребята 3 минуты!
Алексей04.04.2017, 17:05#
Вы чё угораете 2 селекта, fetch_assoc, я такое за 10 мин сделаю, хотя я ещё даже не джун
Дубр06.04.2017, 11:56#
Алексей, если реально сделаете - считайте, что уже джун )))
Но вообще 4 года прошло, сейчас я бы может чего-нибудь посовременнее придумал )
Дмитрий20.05.2017, 13:02#
А джуны ещё нужны у вас в компании?

Написать коммент: памятка постеру

 

Крутые посты wtf??? →

02.10.2012 · 90 камментов · рейтинг 18.51
15.02.2013 · 24 каммента · рейтинг 9.92
28.04.2008 · 44 каммента · рейтинг 9.51
30.01.2013 · 13 камментов · рейтинг 7.27
19.01.2008 · 20 камментов · рейтинг 6.32

Последне камменты

18.11.2017  JohnКак закрыть окно Skype / свернуть нафиг в трэй: Спасибо, добрый человек! Неимоверно раздражало.
10.11.2017  NikПочему не работает form.submit(): Автор, спасибо за статью 5-летней давности. Подари...
27.10.2017  ДенисОбработка кликов и цели в Яндекс.Метрике, улучшенный вариант: Блин. А для не в зуб ногой - можно код целиком выл...
17.10.2017  ДубрDenwer - настройка алиасов (ServerAlias): Ахуенно не это, ахуенно то что кто-то пользуется Д...
29.09.2017  Maxтам же: Спасибо, чувак! Это ахуенно, оно заработало!!!

Статсы