Моё легкое любопытство
Автор: inpost
Увидел я как-то на Хабре тестовое задание для трудоустройства крутым кодеров в Лондоне с переездом. И что из этого вышло...
Короткая предистория, зашел на Хабру, увидел вакансию и требование пройти тесты. Открыл тесты, пролистал их и закрыл, а часовой таймер начал тикать. Ушел я на кухню кушать, говорю с женой, а у самого мысли о том, что задания ведь интересные, а оценят ли меня если я их пройду... В общем вернулся к компу и оставалось 30 минут на прохождение 6 заданий. Не сложно догадаться, что я не успел сделать все.
Знаете, я не собирался трудоустраиваться и менять своё место, но мне хотелось увидеть "понравлюсь ли я им". Конечно, из-за того, что я не успел их выполнить я не был рассмотрен как кандидат, а может быть из-за моего английского для Лондона, а ещё там не было привязки к языку, можно было сделать и на Питоне, и на ASP.NET, и даже на С++, поэтому может быть и вакансий по PHP не так уж и много, но вот написать о том, что такие задания были - я всё же решился. Итак, приступим:
Задание №1 на проверку, корректно ли заполнена структура, нет ли не закрытых тегов:
text <b> text <i> text <s> text </s> </i> text <s> text </s> </b>.
Вложенность может быть любая. На самом деле регулярку для выполнения данной задачи я уже видел когда-то, но под отрез забыл. Гуглить не было времени, сделал жесткое решение с циклической очисткой тегов начиная с глубины, начала убрал <s> text </s>. Что-то вроде #<s>[^<]+</s># . В конце проверил не осталось ли тегов каких-либо и получил 100% решение. Авто-тесты дали 6/6 прохождения, задание выполнил на отлично. Выбранный алгоритм при стресс-тесте может был не оптимальный, но куда там думать за 30 минут :)
Задание №2: распишите на английском, что вы будете делать если придет жалоба, что у посетителя ошибка 500 или 502 в связке nginx + php-fpm. Я на этом собаку съел :) То база отвалится, из-за этого PHP кидает ошибку, а из-за display_errors ошибка не показывается и отдаётся 500 ошибка, то php-fpm отвалится, то ддос. Не то это место, где расписывать как правильно реагировать на эти ошибки, но механизмов поиска ошибки я обозначил около 8 или 9.
Задание №3: почему нам остановиться на вас, а не на других работниках. Опишите ваши лучшие стороны. I dont know english, ХА-ХА-ХА !
Задача №4: на сортировку. Там простое знание функции http://php.net/manual/ru/function.uasort.php . По определённым правилам какие-то элементы отправлять в начало, а какие-то в конец. Работал - сделаешь быстро, не работал - долго.
И ещё парочку с MySQL, но там ничего интересного.
==============================================
Никаких ООП, никаких фреймворков или CMS, никакого знания администрирования. Мне задания очень сильно понравились.
Будут ещё когда-нибудь такие экспресс-тесты для штурма мозга, я буду продолжать тренироваться, чтобы когда-нибудь стать "хорошим программистом".
Комментарии о School-PHP (0):