22 найпоширеніших запитання і завдання на співбесіді для претендентів на посаду веб-розробника


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Якісна підготовка – один з ключових елементів, необхідних для успішного проходження співбесіди, якою, до речі, часто нехтують.

Попри те, що ця стаття не претендує на об’єктивність, вона охоплює всі основні питання, які можуть бути задані за темами PHP, JS, JQuery, CSS, HTML, MySQL і ТОП, а також подає розгорнуті відповіді на них.

Вивчивши ці теми, Ви помітно поліпшите свою теоретичну базу і значно збільшите свої шанси на отримання заповітної роботи.

 


– Скільки типів даних у РНР?

PHP підтримує 8 базових типів даних.

4 скалярні типи:

– boolean. Логічний тип даних, змінні цього типу можуть набувати значень true або false.

– integer. Цілочисельний тип даних, змінні можуть набувати цілих значень (.-2, – 1, 0, 1, 2.) у діапазоні від – 2^31 до +2^31. Якщо значення перевищує цей поріг, то воно автоматично переводиться в тип float.

– float. Числовий тип даних з плаваючою точкою, може містити як цілі, так і дробові величини.

– string. Строковий тип даних. Містить нефіксовану кількість різних символів. PHP не накладає жодних обмежень на довжину рядка, тому можна сміливо працювати навіть з ДУЖЕ великими рядками.

2 комплексних (складених) типи:

– array. Масив, містить упорядкований список елементів.

– object. Об’єкт, містить деякий об’єкт (екземпляр класу).

2 спеціальних типи:

– resource. Посилання на абстрактний елемент, т. зв. зовнішній ресурс. Приклади зовнішніх ресурсів – посилання на файл і посилання на результат виконання запиту.

– NULL. Порожній тип даних, що означає відсутність якого-небудь значення. Про такі значення зазвичай говорять “не визначено”. Порожнім значенням можна ініціалізувати змінні будь-якого іншого типу.


– Що таке static-функція і чим вона відрізняється від “звичайної” (не static)?

Static належить класу, а не екземпляру класу. І викликається у класу, а не в об’єкта, тобто безпосередньо. Оголошення властивостей і методів класу статичними дозволяє звертатися до них без створення екземпляра класу. Атрибут класу, оголошений статичним, не може бути доступним за допомогою екземпляра класу (але статичний метод може бути викликаний). Оскільки статичні методи викликаються без створення екземпляра класу, то псевдозмінна $this недоступна всередині методу, оголошеного статичним. Доступ до статичних властивостей класу не може бути отриманий через оператор ->.


– Чи є різниця між одинарними і подвійними лапками в PHP?

У подвійних лапках дані “парсятся”, а в одинарних – ні. За подвійних лапок у даному випадку виведеться Chimay, а за одинарних – $beer.

$beer = 'Chimay';echo "$beer";

– Напишіть програму, яка виводить прості числа, тобто що діляться без залишку тільки на себе і на 1.

$lst = array ();$k = " prime";for ($i = 2; $i < 100; $i++) { for ($j = 2; $j < $i; $j++) { if (($i % $j) == 0) { $k = "not prime"; }}if ($k == " prime")  $lst[] = $i;else $k = " prime";}foreach ($lst as $list) echo $list . "";

– Напишіть программу-цензор, яка б замінювала введені користувачем у форму слова “fuck”, “idiot” і “bitch” на “f**k”, “id**t” і “bi**h”.

$find = array ( 'fuck', 'idiot', 'bitch');$replace = array ( 'f * *k', 'id * *t', 'bi * *h');
If (isset ($_ POST['user_input'])  && !empty ($_ POST['user_input'])) { $user_input = $_ POST['user_input']; $user_input_new = str_ireplace ($find, $replace, $user_input); echo $user_input_new;}

– Що таке динамічні змінні?

Динамічною змінною вважається та, ім’я якої зберігається в самій змінній. Це так звана “змінна змінна”. Наприклад:

$var = " first";$$var = " Second";// $$var == $first == " Second"

$$var – динамічна, її ім’я може мінятися разом зі зміною $var. Також можна зв’язати ім’я змінної зі вмістом іншої змінної неявно:

$first = " second";$second = " third";print $first; // надрукує " second" print $$first; // надрукує " third"

– Що таке шаблони (патерни) проектування?

Патерн проектування – це загальне типове розв’язання деякої проблеми, багаторазово повторюване в процесі проектування архітектури програмного продукту. Вони показують відносини і взаємодію між класами, дозволяють зробити систему гнучкою і легко змінюваною. За допомогою їх правильного використання підвищується коефіцієнт використання готових рішень.


– Напишіть приклад реалізації поліморфізму.

Class One{ function foo (){ echo "Hellofromclass One"!; } function callMe (){ $this ->foo (); }}Class Two extends One{ function foo (){ echo "Hellofromclass Two"; }}$Two = new two ();$Two ->callMe ();

– Які ще є парадигми (моделі, підходи) програмування, крім ТОП?

З тих, що найчастіше зустрічаються: функціональна, аспектно-орієнтована і процeдурна.


– Треба алертом вивести якесь повідомлення, через 3 секунди після запуску скрипта. Як це зробити?

Так:

setTimeout (alert ("Hello"), 3000);

Чи так:

setTimeout (function (){alert ("Hello")}, 3000);

– Розкажіть про об’єкти в JavaScript.

Об’єкти (вони ж асоціативні масиви, хеші) і робота з ними в JavaScript реалізується не так, як у більшості мов. Об’єкт в JavaScript є звичайним асоціативним масивом або “хешем”. Він зберігає будь-які відповідності “ключ => значення” і має декілька стандартних методів.


– Маємо дві функції. Чи є між ними різниця? Якщо є, то яка?

function f (a, b) { return a+b }

і

var f = function (a, b) { return a+b }

Різниця є, вона полягає у видимості функції. Варіант функції без var видний скрізь у поточній зоні видимості. У тому числі й до самого визначення функції. Варіант з var привласнює функцію змінної, тому таку функцію видно тільки після визначення.


– Що зробить код: break me_baby; ?

Вийде з поточного блоку циклу або switch на мітку “me_baby”.


– Що таке SQL-ін’єкція?

SQL- ін’єкції – вбудовування шкідливого коду в запити до бази даних. З використанням SQL-ін’єкцій зловмисник може не лише отримати закриту інформацію з бази даних, але й, за певних умов, внести туди зміни. Вразливість щодо SQL-ін’єкцій виникає через те, що користувацька інформація потрапляє в запит до бази даних без належної обробки: щоб скрипт не був уразливим, необхідно переконатися в тому, що всі користувацькі дані потрапляють у всі запити до бази даних в екранованому виді.


– Припустимо, у Вас є інтернет-магазин. Складіть запит, який покаже, скільки грошей приніс кожен окремо взятий покупець у цілому за весь час роботи магазину.

SELECT customer_name, SUM (order_price) FROM ordersGROUP BY customer_name;

– У чому полягає різниця між записом #my і .my?

#my – селектор ID.

.my – селектор класу.


– Що таке псевдокласи?

Псевдокласи – це те, що зазвичай пишуть після селектора через двокрапку, щоб визначити реакцію або стан для цього селектора. Найвідоміші псевдокласи – це :link, :hover, :visited і :active. Псевдокласи мають наступну структуру:

selector:pseudo class { property: value;}

тобто треба лише поставити двокрапку між селектором і псевдокласом.

a.snowman:link { color: blue;}a.snowman:visited { color: purple;}a.snowman:active { color: red;}a.snowman:hover { text-decoration: none; color: blue; background -color: yellow;}

– Знайдіть усі елементи div з класом one, а також усі елементи p з класом two, потім додайте їм усім клас three і візуально плавно спустіть униз.

$("div.one").add ("p.two").addClass ("three").slideDown ("slow");

– Виберіть div’и, у яких немає класу cls.

$('div:not(.cls)');

– Що таке DOCTYPE і навіщо він потрібний?

DOCTYPE – це визначення типу документа (Document Type Definition (DTD)), правила, відповідно до яких здійснюється перевірка конкретного документа (веб-сторінки) XML або (X) HTML. За допомогою цього запису браузер визначає, яка в цьому документі використовується версія DTD. Потрібний він для того, щоб браузери правильно відображали розмітку документа. Якщо не вказаний DOCTYPE, то браузер додаватиме “відсебеньки”, причому кожен браузер додаватиме свої “відсебеньки”. У результаті про кросбраузерність не може йти мова.


– Що таке entities?

Entities – це комбінації знаку & і літерного або цифрового коду після неї, призначені для заміщення символів, які не можуть зустрічатися в “чистому” вигляді в HTML-тексті, наприклад, символу “<“.


– Які магічні методи Ви знаєте? Що це таке взагалі?

Це методи, зарезервовані в php, які розпочинаються з подвійного підкреслення “__”.

Список усіх магічних методів :

  • __construct
  • __destruct
  • __call
  • __callStatic
  • __get
  • __set
  • __isset
  • __unset
  • __sleep
  • __wakeup
  • __toString
  • __set_state
  • __clone

__construct і __destruct – найпопулярніші методи, які реалізують базові поняття об’єктно-орієнтованого програмування: конструктор і деструкція;

__call, __callStatic, __get і __set – методи, пов’язані з перевантаженням звернень як до властивостей, так
і до методів. Методи __get () і __set () викликаються при установці й набутті значення властивості,
а методи __call () і __callStatic – за виклику методу. Варто зазначити, що ці магічні функції
викликатимуться тільки і винятково в тому випадку, якщо запрошеного методу або властивості
немає;

__isset – метод, що спрацьовує при виклику функцій empty () або isset () на неіснуючій
чи недоступній властивості класу;

__unset – спрацьовує при виклику функції unset () на неіснуючій або недоступній властивості класу;

__sleep і __wakeup – методи, які викликаються тільки з функцій serialize і unserialize со-
відповідно. Метод __sleep буде викликаний відразу при застосуванні до об’єкта функції serialize, а
метод __wakeup – при застосуванні unserialize. Зараз методи застосовуються для збереження поточного стану системи з подальшим відновленням цього стану (наприклад, конект до бази);

__toString – метод, за допомогою якого можна звертатися до класу як до рядка (наприклад, за
допомогою print або echo);

__set_state – метод, який викликається для класів, що експортують значення властивостей функцією var_export ();

__clone – викликається при клонуванні об’єкта (введений для використання через те, що об’єкти в php5 і вище передаються за посиланням);

__invoke – викликається при спробі використати об’єкт як функції.

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *