Квалификационный тест на соискание должности веб-разработчика

HTML и CSS

1. Имеется следующая HTML-разметка страницы и изображение logo.gif:

<body>
  <div>SEO-продвижение и оптимизация сайтов</div>
</body>

Необходимо с помощью каскадных таблиц стилей сделать, чтобы этот блок (div) находился по центру окна браузера, имел фиксированный размер 300×300px, изображение (logo.gif) было выровнено по центру блока, а текст в блоке — по левому краю.

2. Заверстать форму авторизации — поля «Логин», «Пароль», ссылка для восстановления пароля, кнопка «Вход». Предложенная верстка должна позволять максимально гибко изменять внешний вид формы с использованием таблиц стилей.

3. Есть ссылка, при нажатии на которую пользователю в новом окне должна отображаться схема проезда.

<a href="#" onclick="popup('/map/', 300, 300, 'map'); return false;">Схема проезда</a>

Расскажите, почему не стоит использовать ссылки подобным образом? Приведите аргументы. Каким образом можно исправить ситуацию.

JavaScript

1. Расширить объект Array, реализовав метод, который будет определять, находится ли искомая величина в массиве.

2. Определить, почему данный код приведет к ошибке. Как эту ошибку исправить?

var foo = function()
{
  var write = function() {
    document.write(this.rnd([1, 3, 5, 7]));
  }
  write();
}
foo.prototype.rnd = function(array)
{
  return array[Math.round(Math.random() * (array.length - 1))];
}
var f = new foo();

PHP

1. Написать результат и описать последовательность выполнения кода интерпретатором.

<?php
$i = 5;
echo −−$i + $i++;
?>

2. Написать результат и состояние массива на каждом шаге выполнения программы.

<?php
$arr = array(1, 3, 5, 7);
echo array_pop($arr);
echo array_shift($arr);
echo $arr[0];
echo $arr[2];
?>

3. Каков будет результат работы этой программы. Напишите последовательность вызова конструкторов.

<?php
abstract class Foo_A {
  public $var;
  public function __construct()
  {
    $this->var = 10;
  }
}
class Foo_B extends Foo_A {
  public function __construct()
  {
    parent::__construct();
    $this->var = 20;
  }
}
class Foo_C extends Foo_B {
  public function __construct()
  {
    $this->var = 30;
    parent::__construct();
  }
}

$Foo = new Foo_C();
echo $Foo->var;
?>

4. Что такое «интерфейс» в ООП. Зачем они нужны?

5. Шаблоны проектирования. Что это такое? Описать несколько.

SQL (MySQL)

1. Есть таблица в которой две колонки: сотрудник и его должность.

Таблица `employers`
employee post

Составить запрос который выведет список должностей, на которых числится более 10 сотрудников

2. Рассказать, как вы будете хранить и получать связанные N:N сущности и почему. Приведите примеры запросов.