Коли ви йдете на співбесіду на роботу програміста то бажано відчувати свій рівень, знати свою ціну. Тому можу запропонувати два реальних тестових завдання:
-----------------------
Мета
-----------------------
1. задание на алгоритмическую смекалку. язык разработки - php|perl на выбор
дан многомерный массив, например
1 2 2 3 4 5 5 6
1 2 2 8 9 9 1 1
1 3 4 5 6 7 7 6
необходимо на основании этого массива построить и вывести таблицу. При этом объединить ячейки (colspan,rowspan) с совпадающими цифрами.
2. Задания на знание mysql
1) Дана таблица, id - первичный ключ. По заданному id найти предыдущий и последующий элемент.
2) Дана таблица.
CREATE TABLE `tbl` (
`id` int(10) unsigned NOT NULL auto_increment,
`x` float unsigned NOT NULL default '0',
`y` float unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_ukrainian_ci
одним запросом по заданному id поменять значения x и y местами
3) дана таблица
CREATE TABLE `tbl` (
`id` int(10) unsigned NOT NULL auto_increment,
`x` varchar(100) NOT NULL default '0',
PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_ukrainian_ci
выбрать пары элементов, которые повторяются по полю x, при этом исключить повторения самого с собой,
т.е. для значений 1-а,2-б,3-а должно выбрать пару 1-3
3. Задание на знание регулярных выражений
1) В строке выбрать последнее слово после запятой в предложении. Предложением считается фраза, заканчивающаяся на точку, если она не заканчивается на точку - это не предложение
к примеру строка "я,мы,они,оно. пиво, водка, вино" должно вернуть "оно"
2) найти предпоследнее слово в предложении.
"они" в примере 1
Максимальний срок: 1 день
-----------------------
-----------------------
І завдання в Ідеус:
-----------------------
Нужно разработать на базе code igniter следующий функционал:
Админ часть:
- Модуль "редактор новостей", в котором выводится табличка простенькая из новостей, выводятся:
1. заголовок новости - обрезание на каком-то символе чтоб не выводилось сильно много
2. дата новости
3. пейджер - разбивка скажем по 20 записей за раз
4. ссылки на удаление, редактирование
- Каждая новость представляет собой:
1. Заголовок новости
2. Краткий текст новости (textarea)
3. Полный текст новости (визивиг)
4. Заливка фотки (создание тамбнейла скажем 100х100 пикселей (то есть кроп картинки в квадрат + ресайз до 100х100), ресайз заливаемой фотки по формуле "если больше 1000 пикселей по какой либо стороне то уменьшаем")
5. Связь новости с тегами - теги отсюда же добавляются в облако тегов, или если уже существуют в облаке - то просто линкуются
6. Дата новости (в админке - яваскриптовый выбор даты)
- Возможность добавления новости
- Возможность просмотра облака тегов (только просмотр, больше ничего не нужно отсюда)
Фронт-енд часть:
- Вывод новостей - полотно включает в себя дату, фотку, заголовок новости, краткий текст новости. при клике - попадаем на:
- Детальная страница новости - дата, фотка, полный текст новости, теги, вывод "Также вам будет интересно:" и выводим все новости которые связаны по тагам (связь первого уровня) с данной новостью - выводить последние 5 новостей (по дате)
Всё. всё по максимуму реализовать встроенными библиотеками, классами из code igniter. Результат предоставить в любом удобном виде - либо архив с кодом и дампом, либо в онлайн куда-то выложить и по запросу показать несколько страниц кода.
Максимальний срок 5 днів.
-----------------------
Ось такі завдання. Доречі нещодавно зняв скрінкаст про деякі теоритичні частини ЗендФрейворка, http://vimeo.com/3999454, але цей скрінкаст трохи не вийщов... Теорію важко розповідати, тому в наступних скрінкастах теорії буде мінімум, а все буду показувати на прикладі якогось проекта.