СОБЕСЕДОВАНИЕ по PHP: к каким ВОПРОСАМ готовиться?

preview_player
Показать описание
🤚 Привет! Вы на канале "TeachMeSkills Школа программирования"! И это новый выпуск рубрики НАТИВ в формате подкаста. Сегодня поговорим об Aйти и не только. Вас ждет разбор вопросов и ответов с технических собеседований. Обсудим такую область знаний из IT, как язык программирования PHP. Какие могут задать вопросы на собеседовании? Что должен знать PHP-разработчик? Какие типы данных существуют в PHP? Чем отличается инкремент от декремента? В чем разница между интерфейсом и абстрактным классом? Для чего нужны Трейты в PHP? Что означает ссылочная целостность? В чем разница использования ключевых слов WHERE и HAVING? Также больше про переменные в PHP, операторы сравнения PHP, пространства имен в PHP и выполнение транзакций. Поделится своим опытом работы и поможет во всем разобраться наш наставник по курсу Веб-разработчик и Software Developer из Andersen Lab Игорь Алексейчук. Приятного просмотра!

🧔Telegram Ильи (для ваших предложений по контенту) - @ilyarublevsky

Что еще будет в видео👇
0:00 - Вступление
1:33 - Про отношение к собеседованиям
3:58 - Типы данных в PHP
5:52 - Про интерфейсы
6:20 - Инкремент/декремент
7:25 - Динамические переменные
9:00 - Рекурсия
9:55 - В чем разница =, ==, ===
11:19 - Модификаторы видимости
11:22 - Про систему типов в PHP
11:51 - Про абстрактный класс
14:06 - Про магические методы
17:03 - Про traits
18:36 - Про обработку ошибок и исключение
20:56 - Про Namespaces
23:45 - Про транзакции и уровни изоляций
26:51 - Про СУБД
29:09 - Про типы связей в Laravel
31:56 - Про middleware
33:39 - Про различие where и having
35:00 - Про работу с чистым PHP
Рекомендации по теме
Комментарии
Автор

Тайм-лайн👇
0:00 - Вступление
1:33 - Про отношение к собеседованиям
3:58 - Типы данных в PHP
5:52 - Про интерфейсы
6:20 - Инкремент/декремент
7:25 - Динамические переменные
9:00 - Рекурсия
9:55 - В чем разница =, ==, ===
11:19 - Модификаторы видимости
11:22 - Про систему типов в PHP
11:51 - Про абстрактный класс
14:06 - Про магические методы
17:03 - Про traits
18:36 - Про обработку ошибок и исключение
20:56 - Про Namespaces
23:45 - Про транзакции и уровни изоляций
26:51 - Про СУБД
29:09 - Про типы связей в Laravel
31:56 - Про middleware
33:39 - Про различие where и having
35:00 - Про работу с чистым PHP

teachmeskills
Автор

Некоторые ответы от текущего "Синьора" неверные.
- "МОЖЕТ ли абстрактный класс содержать частный метод?". Ответ тут: ОДНОЗНАЧНО ДА, а не "Нет".
- Блок finally не всегда будет выполнен. Есть условие, при котором программа туда не попадёт. Например если в try или catch был произведён выход из программы через exit() или die();

i_programmer
Автор

Спасибо огромное! А то 4 года отработал на одном проекте. Напрочь выветрилась из головы куча теории из универа и предыдущих работ. Вот сижу, восстанавливаю. С вашим видео всего за полчаса почти всё в голове всплыло.

Epenckorn
Автор

Теперь я знаю кто такой крепкий джун )

loadmore
Автор

Есть поправочка, 15:50 __call() и __callStatic() срабатывают, когда мы пытаемся вызвать несуществующий/приватный метод/статический метод у объекта, а не вызывать объект как метод.

leonid
Автор

Весьма позитивно вышло, ничего нового так и не узнал..

spitzer
Автор

7:20 сразу выключил спасибо не интересно... Мотиватор Сеньоровский от "Бога" 🤣🤣 послушаешь таких точно перестанет возникать желание ходить на собеседования))) А можно узнать так для справки?)) Я Джуниор. Мне говорят не парень ты должен не с заученного примера, а с пониманием и опытом отвечать) Вопрос - откуда? Если я образно иду на Джуниора?) Понятное дело 90-то процентов опрошенных будет отвечать то как в учебниках или документации написано

HaveFun
Автор

Про приватный (частный) метод в абстрактном классе Игорь не прав. В абстрактном классе МОЖНО написать приватный метод. Вызываем его также как и всегда внутри самого класса.

sergeblack
Автор

Про изоляцию транзакции, тоже думаю что вопрос в другом. Это про набор требований к транзакционной системе ACID. И тут нас интересует буковка I - Isolation.
У нас с СУБД могут вести работу сразу несколько клиентов. И поэтому встает вопрос в том как они будут работать с данными. В идеале для достижения транзакционности надо воссоздавать полностью аналог базы и пока ты с ней работаешь, то его поддерживать. Но это очень дорогостоящая операция. Поэтому есть уровни изоляции которые приближают нас к ней. Нужно рассмотреть аномалии которые возникают при многопользовательских транзакциях: потерянное обновление, "грязное" обновление, неповторяющееся чтение, фантомное чтение. Ну и отсюда выработаны уровни которые решают эти и другие проблемы: read uncommited, read commited, repeatable read, serializable.

MrVstas
Автор

Спасибо за видео. Коммент в поддержку!

sovrinfo
Автор

Насчет субд типичная (хоть и не критичная) ошибка. Реляционные базы данных действительно от слова relation, только вот под этим понимается не связь, и уж точно не связь между таблицами. Relation - это "отношение", математическая абстракция, аналогом которой (не совсем точным) является таблица. К этим самым отношениям применяется специальная теория, логика, множество операций, на основании которых строиться работа базы данных. Т.е. база реляционная не потому что там что-то с чем то связано, а потому что в основе ее работы лежит понятие "отношение" (relation) и множество операций, определенных над ним.

sparkygames
Автор

В приципе...и как бы...ну в принципе...ну и это...в принципе.

Мой счетчик его "в принципе" сломался на 3-й минуте

blockycms
Автор

Ещё одно интервью-викторина. Самый яркий красный флаг, который означает, что придется работать не с опытными ребятами, а теми, кто любит активно готовиться к интервью-викторинам и что качество кода в проекте ниже плинтуса.

Забавно, что сам синиор офигенно так плавает при ответах на эти бесполезные вопросы.

Ещё более забавно то, что он явно готовился отвечать именно по этим вопросам.

jerrylaniakio
Автор

Боже мой, сколько всяких штук: классы, абстрактные классы, интерфейсы, трейты, в 8.0 добавили enum. Осталось добавить ещё структуры, чтобы был полный набор. . .

trypophobia
Автор

Спасибо, Игорь, за полезное видео)))
очень актуально, чтобы освежить матчасть!

olgalazuk
Автор

22:10 Dependency injection и инверсия зависимостей это разные вещи

AlexanderBusygn
Автор

В интерфейсе нельзя объявить свойства? Опечатался кажыся

АлексейКузьмичёв-цо
Автор

Не хотите сделать формат тестового интервью, это когда вы проводите собеседование желающему по одной из технологий? Я бы по c# поучаствовал)

Frstick
Автор

THX for video. But most question is too easy even for junior level

Dimontius
Автор

Вроде норм сначала все говорил.(PS: у меня уже лет 20 опыта разработки). Нельзя сеньорам и джунам задавать одни и теже вопросы. Сеньор тебя может послать просто, если ты спросишь его про какие типы данных есть в ЯП, хотя для джуна это норм вопрос.

xenm