требования к php junior

Что должен знать «PHP Junior Developer без опыта работы»?

Время несётся стремительным домкратом. Эта статья в значительной степени устарела, хоть конструктивные моменты типа «изучайте смежные области» едва ли когда утратят актуальность. Кадровый голод ощущается всё более явно и вносит больше конструктива в процесс найма начинающих разработчиков. Баланс смещается в сторону хороших знаний языка и инструментов от готовности к написанию кода «как-нибудь» но с первого дня.

Не забывайте, что всё это оценочные суждения какого-то анонимуса. У вас нет никаких гарантий, что я разработчик и понимаю, о чём говорю. Собственно, вы даже не можете гарантировать, что этот текст не набран каким-то ежом в уплату за съеденую котлету.

Эта статья стала результатом двухмесячного поиска работы в Новосибирске. В процессе общения с работодателями я обнаружил некоторые факты, которые для меня были весьма неочевидны. Рекомендована к прочтению всем, кто собирается в ближайшее время стать таким же соискателем.

HTML, CSS, JavaScript

Вам может показаться, что знать эти вещи идеально PHP-програмисту не требуется, однако это не так. Валидная вёрстка, кроссбраузерность и прочие слова, которые пишут в вакансиях верстальщиков применяйте также и к себе. В общем-то это вполне логично, поскольку даже самый идеальный код на PHP не нужен никому, если он при этом генерирует неадекватный HTML.
В некоторых организация мне сразу говорили, что вакансия подразумевает именно разработчика PHP, есть отдельные верстальщики/скриптовики. Однако таких организаций было мало.
Самый показательный пример — одно из выполненых мной тестовых заданий. В нём соотношение строк PHP:JavaScript:HTML было примерно 20:50:30.

Фреймворки

Ваши знания PHP как такового интересуют весьма незначительную часть работодателей. Большинство компаний используют в разработке различные фреймворки, и хотят от кандидата того же. Если в пожеланиях к кандидату вы увидели «-знакомство с фреймворком х», то скорее всего это не пожелание, а требование.
В Новосибирске наиболее популярны (исходя из вакансий джуниоров) Yii, Symfony и Zend. Изредка мелькает CakePHP.
Лично мне освоить Yii на базовом уровне удалось за неделю спокойной работы. Что, впрочем, не значит, что вы не сможете разобраться в нём быстрее.

PHP — тоже програмирование

Со всеми вытекающими отсюда последствиями. А именно — без знания теории ваша квалификация крайне низка.
Порог вхождения в PHP невысок. Как следствие, все прочие програмисты смотрят на PHP-шников с презрением и неодобрением. Да и в общем-то есть за что.
Незнание основ теории может приводить к таким ужасным вещам, как генерация в коде миллиона объектов с последующим применением к ним пузырьковой сортировки. Это, конечно, гипербола, но суть её вы, наверное, уловили.
В общем настоятельно рекомендую вам прочитать пару-тройку книг по теории програмирования. Вряд ли вас спросят о подсчёте сложности алгоритма, но общие вопросы, некий начальный уровень програмиста, на собеседовании стараются выяснить.

Разработка включает в себя многое

Лично мне никогда не приходила в голову мысль, что стоит думать не только каком языке ты пишешь, но и чем ты пишешь. Очень желательно знать основные IDE, точнее их главные функции.
Для нормальной работе в команде необходим контроль версий.
Кроме того, в проектах принято проводить тестирование и как-то собщать об ошибках.
А ошибки бывают такие, что неплохо бы знать содержимое php.ini.
И конфиги nginx/apache.
И можно очень долго продолжать.

Готовьтесь к резкому расширению кругозора

При выполнении каждого второго тестового задания вам придётся с нуля осваивать что-то новое. NoSQL, AJAX, чьи-то API, JS библиотеки и прочие вещи, о которых вы в лучшем случае слышали пару раз в жизни, вам придётся экстренно изучать.
То что вам не знакомо вовсе не обязательно является чем-то сложным. Это ведь действительно задания для начинающего разработчика без опыта работы. А значит, несмотря на кажущуюся сложность, решение задачи вы быстро найдёте, уделив полчаса документации.
Не отказывайтесь от задания, если оно показалось вам слишком сложным. Просто почитайте статьи или учебники по этой теме, вы поймёте, что бояться нечего.

Тестовые задания могут быть неточны

Как правило тестовые задания коротки и ясны. И всё же неточны. Я понятия не имею, чем это вызвано. Возможно составляют и проверяют задания разные люди.
В одном задании мне явно указали применить ООП, затем на собеседовании спросили, зачем я это сделал. В другом с точностью наоборот. В третьем попросили приложить описание на английском и затем спросили зачем я его приложил.
В общем некоторая часть ваших работ будет проверяться без оглядки на задание.

HR`ы нередко адекватны и профессиональны

Нередко — это 6 из 10. Будьте готовы к тому, что на остальные письма вам не ответят, тестовые задания не проверят, мы вам перезвоним.
Я уж не знаю, чем руководствуются эти люди. Серьёзно, HR, почему вы не можете потратить пять минут на человека, который потратил на вас день?
Если вы столкнётесь с такой проблемой, не ждите ответа. Звоните и пишите, спрашивайте почему про вас забыли.

Собеседование это огромный плюс

Общение с опытным разработчиком и просмотр вашего кода сильно продвигает вас в развитии. Даже если вам отказали в вакансии, вы всё равно получили ценный опыт.
После каждого собеседования обязательно пройдитесь дома по вопросам и уточните неясные вам моменты. Как правило эти вопросы относятся к базовым знаниям, без которых ваша работа будет как минимум некачественно. Что-то не знаете — обязательно разберитесь. Хотя бы потому, что подобный вопрос с большой вероятностью повторится.

Источник

Что требуют от джуниоров работодатели: анализ вакансий для младших программистов

требования к php junior. Смотреть фото требования к php junior. Смотреть картинку требования к php junior. Картинка про требования к php junior. Фото требования к php junior

В этом обзоре систематизируем требования работодателей к Junior-программистам, а также обобщаем условия, которые предлагают компании младшим разработчикам. Для этого анализируем реальные вакансии, опубликованные на hh.ru.

Кого ищут работодатели: критерии анализа

Чтобы проанализировать требования работодателей к младшим программистам, я выбрал вакансии на сайте hh.ru по Москве, Санкт-Петербургу и Казани. Смотрел вакансии для JavaScript-программистов (фронт- и бэкенд), PHP-, Python- и Java-программистов. Проанализировал как минимум 10 вакансий по каждому стеку.

В вакансиях анализировал следующие параметры:

Параметры анализировал без разделения по стекам. Исключение — требования к хард-скилам. Этот параметр проанализировал для каждого стека отдельно.

Какой опыт работы нужен Junior-программисту

В идеальном мире на позицию джуниора могут претендовать соискатели без опыта работы. В реальном мире всё не так просто.

В подавляющем большинстве вакансий для Junior-программистов опыт работы не требуется. Но иногда работодатели хотят видеть стажёра или джуна с опытом работы. Например, «Яндекс» ищет стажёра-разработчика с опытом работы от 1 года.

требования к php junior. Смотреть фото требования к php junior. Смотреть картинку требования к php junior. Картинка про требования к php junior. Фото требования к php junior

«Яндекс» ищет стажёра с опытом работы

Какое образование нужно джуниору

Нужно ли высшее образование программисту? На этот вопрос сложно ответить только с помощью анализа вакансий. HR-менеджеры могут не указывать требования к образованию в вакансиях. Но они наверняка обращают внимание на этот пункт в резюме, когда рассматривают заявку соискателя. Тем не менее даю слово реальному рынку труда.

В большинстве вакансий для Junior-разработчиков нет требований к образованию. Но часть работодателей хочет видеть соискателей с высшим техническим образованием или студентов старших курсов.

Важный момент: требования к образованию я встретил только в вакансиях для Java- и Python-программистов.

требования к php junior. Смотреть фото требования к php junior. Смотреть картинку требования к php junior. Картинка про требования к php junior. Фото требования к php junior

От Java- и Python-программистов чаще требуют высшее техническое образование

Промежуточный итог: в большинстве вакансий работодатели не указывают требования к образованию. Но иногда в объявлениях встречаются пожелания: компании хотят видеть у новичка диплом технического вуза или в крайнем случае студенческий билет. Такие требования я встретил только в вакансиях для Java- и Python-программистов.

Требования к возрасту джуниров

Этот вопрос чаще всего волнует специалистов, которые меняют сферу деятельности в возрасте 30+. Давайте посмотрим, есть ли ограничения по возрасту в опубликованных вакансиях.

Я просмотрел около 50 вакансий в разных стеках, но ни в одной не нашёл явных требований к возрасту. Иногда работодатели указывают, что набирают студентов последних курсов. Такие условия есть в объявлениях о стажировке, а не в вакансиях для джуниор-программистов.

требования к php junior. Смотреть фото требования к php junior. Смотреть картинку требования к php junior. Картинка про требования к php junior. Фото требования к php junior

На стажировку приглашают студентов

Это не значит, что работодатели не обращают внимание на возраст кандидатов. Эйчары видят резюме и могут уточнить год рождения соискателя, если эта информация не указана. А о среднем возрасте junior-программистов рассказывает HR-менеджер Вероника Ильина в комментарии ниже.

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

Какие софт-скилы нужны джуниору

Софт-скилы или гибкие навыки — неспециализированные навыки, которые влияют на профессиональную деятельность специалиста. Примеры софт-скилов: дисциплинированность, проактивность, умение общаться, стрессоусточивость, способность к обучению.

Читайте также:

В большинстве вакансий работодатели не указывают требования к гибким навыкам. В нескольких объявлениях есть пожелания к софт-скилам, например:

Мне показалось, что в некоторых вакансиях работодатели пишут о гибких навыках формально. Например, сложно представить, что кто-то из кандидатов скажет на собеседовании, что ему не хватает любопытства или адекватности.

В некоторых вакансиях софт-скилам уделяется повышенное внимание. Например, одна из компаний ищет Python-разработчика для работы в медицинском стартапе. Работодатель хочет, чтобы у соискателя был интерес к предметной области, то есть к медицине. Это объясняется тем, что разработчику придётся общаться с врачами, которые участвуют в разработке медицинских приложений.

В объявлениях часто встречается требование знать английский язык. В частности, указывается уровень intermediate.

Промежуточный итог: работодатели иногда указывают желаемые гибкие навыки. Любой кандидат может на собеседовании сказать, что он коммуникабельный, любопытный и адекватный. Реально оценить софт-скилы соискателя работодатель сможет во время испытательного срока.

требования к php junior. Смотреть фото требования к php junior. Смотреть картинку требования к php junior. Картинка про требования к php junior. Фото требования к php junior

Адекватные стрессоустойчивые соискатели интересуются вакансией

Какие хард-скилы нужны Junior-программистам

Хард-скилы или профессиональные навыки уместно рассматривать в разрезе стеков.

Требования к JavaScript-разработчикам (фронтенд)

Работодатели требуют от соискателей на позицию фронтенд-разработчиков такие знания и умения:

В одной вакансии встретил пожелание — соискатель на позицию фронтендера должен знать PHP хотя бы на базовом уровне. Также в единичных вакансиях работодатель искал кандидатов со знанием TypeScript, умением работать с препроцессорами (SCSS или Less), знание Angular.

Требования к Node.js-разработчикам (бэкенд)

Работодатели ждут от Node.js-разработчиков таких знаний и умений:

В вакансиях для Node.js-разработчиков часто встречаются жёсткие требования к знанию английского языка. В нескольких вакансиях увидел пожелание к знанию ещё одного серверного языка, например, PHP или Python.

Требования к PHP-программистам

От младших программистов на PHP компании ожидают таких знаний и умений:

В нескольких вакансиях работодатели хотят, чтобы соискатель имел базовые знания JavaScript.

Требования к Python-программистам

Один из работодателей принимает стажёров, которые знают основы Python и SQL. Стажировка оплачиваемая. К младшим программистам предъявляются более серьёзные требования:

В вакансиях для Python-программистов практически не встречаются требования знать ещё один язык программирования. Также мне не попались требования знать HTML и CSS и уметь верстать. Тем не менее это актуальные для веб-разработчиков умения.

Требования к Java-программистам

Выше сказано, что от джавистов работодатели чаще всего требуют высшее техническое образование. Также компании хотят видеть такие знания и умения:

В вакансиях для Java-программистов несколько раз встретил требование уметь писать юнит-тесты. В объявлениях о поиске джуниоров в других стеках такого требования не увидел.

В одной из вакансий нашёл пожелание к знанию второго языка программирования, например, Python. В вакансии для веб-разработчика на Java увидел требование понимать принцип MVC.

Промежуточный итог: от младших программистов во всех стеках работодатели ожидают базового знания выбранного языка программирования. Часто встречается пожелание знать хотя бы ещё один язык. В большинстве вакансий есть требование знать HTML и CSS.

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

Изучайте операционные системы, повысьте свой уровень

У нас есть курс по операционным системам. Зарегистрированные пользователи могут пройти его бесплатно. Другие бесплатные курсы можно найти по ссылке.

Что работодатели предлагают Junior-программистам

В части вакансий эйчары не указывают заработную плату, которую предлагают сотрудникам. Тем не менее объявления позволяют оценить уровень зарплат, на которые могут претендовать джуниоры. Также в вакансиях обычно есть информация о других «плюшках».

Младшие программисты могут рассчитывать на такую зарплату:

В объявлениях есть предложения удалённой работы и работы в офисе. Большая часть работодателей ищет фултаймеров как на удалёнку, так и в офис. Офисным сотрудникам предлагаются комфортабельные условия труда и рабочие компьютеры. Этот пункт часто описывается подробно.

Работодатели предлагают будущим сотрудникам такие плюшки:

Промежуточный итог: Junior-программист может рассчитывать на заработную плату от 15 000 рублей в месяц и выше. Работодатели готовы дополнительно мотивировать джуниоров и обеспечивать им комфортабельные условия труда.

Что требуют и что дают джунам: комментарий HR-эксперта Вероники Ильиной

Я анализировал требования работодателей к джуниорам по опубликованным вакансиям. Чтобы получить полную картину, обратился к HR-эксперту Веронике Ильиной и попросил её рассказать, что требуют работодатели от Junior-программиста. Слово Веронике.

требования к php junior. Смотреть фото требования к php junior. Смотреть картинку требования к php junior. Картинка про требования к php junior. Фото требования к php junior

«Обычно в вакансиях джунов пишут в требованиях или пожеланиях техническое образование. На это есть несколько причин: от традиций до убеждения, что универ учит системному мышлению. Но все знают, что действительно учатся даже в топовых вузах десятки, если не единицы людей на каждом потоке. То есть настоящих сильных выпускников никогда не хватит, чтобы закрыть потребность рынка в джунах. Так что многие работодатели на самом деле закрывают глаза на образование. Особенно после того, как встречают тимлида с опытом CTO и 9 классами школы или берут в джуны бывшего бариста, потому что мехмат МГУ не смог в сортировку. А бариста смог.

Опыт обычно не требуется, то есть учебного достаточно. Но и в целом джун джуну рознь: кто-то год параллельно с учебой стажируется в известной компании, но ничего не умеет. Кто-то даже учит школьников программировать, но у самого знаний все же не хватает даже в основах. А кто-то — тот самый бывший бариста, который выучил Java дома, и нормально работает 🙂

Идеальный джун — это, конечно, вчерашний студент. Опыта нет, впитывает всё, что дают, легко подстраивается под рабочие процессы и увлечённо старается. Но студентов не напасёшься: их просто меньше, чем нужно. А тем более не хватает студентов с хорошо думающей головой. Поэтому компании медленно, но верно начинают смотреть кандидатов около 30 и старше. Да, они уже не такие «на всё согласные», но они знают, чего хотят. Конечно, негласный возрастной ценз и неверие в то, что человек в 30 может куда-то эффективно переучиться, никуда не исчезают. Но когда на рынке мало хороших студентов, кого еще рассматривать и брать?

Самое главное для джуна — уметь гуглить и не бояться спрашивать непонятное, просить помощи у живых людей. Такие джуны быстро растут. Молчуны растут намного медленнее, это логично: как расти, если ты знаешь меньше правильных решений и собственных ошибок, чем твой коллега-активист?

По хард-скилам: джун джуну рознь. «Яндекс» будет требовать от вас алгоритмов, маленькая студия — умения делать хоть что-то, маленькая и гордая студия — уметь делать простое, но очень хорошо. Нужно смотреть на конкретные требования и пробовать. Нет универсальной формулы технических навыков, с которыми вас возьмут. Но есть то, что помогает на любом уровне — кругозор в Computer Science.

Что предложат джуну: в Москве и Санкт-Петербурге джун любого направления в разработке может иметь 30-100 тысяч рублей на руки. Просто за 100 у него будет минимальный опыт работы и например невероятная алгоритмическая подготовка. А за 30 легкая стажировка или парттайм работа. Скорость роста дальше зависит от самого джуна и компании, не все умеют вовремя поднимать деньги джунам. А джуны не всегда приходят с запросом про деньги. «Плюшки» у всех примерно стандартные: пресловутые «печеньки», ДМС, фрукты какие-нибудь с фитнесом, компенсация обучения. Бывает больше и лучше, бывает меньше».

Вместо заключения: что нужно, чтобы получить должность младшего программиста

О требованиях работодателей к джунам мы узнали благодаря анализу вакансий и комментарию HR-эксперта Вероники Ильиной. Чтобы соответствовать этим требованиям, достаточно единственного фактора. Вам нужно развиваться: изучать программирование и смежные дисциплины, нарабатывать гибкие навыки. И не забывайте рассылать резюме и ходить на собеседования, без этого найти работу не получится.

Никогда не останавливайтесь:

В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Источник

Собеседование на PHP разработчика. Более 100 вопросов для Junior, Middle и Senior

Собрал список вопросов, по которым можно подготовиться к собеседованию или которые можно спросить у дипломированного PHP-разработчика. Конечно, список, не является исчерпывающим. Больше вопросов с кодом в нашем телеграм-канале @phpquiz. Погнали по вопросам!

Junior

Основы

Какие основные операции с использованием ссылок?

Назовите простые типы данных, поддерживаемые в РНР?

Что такое инкремент и декремент, в чем разница между префиксным и постфиксная инкрементом и декрементом?

Что такое рекурсия?

В чем разница между =, == и ===?

Какие знаете принципы ООП?

Какая система типов используется в PHP? Опишите плюсы и минусы.

Чем отличаются ключевые слова: include и require, mysql_connect и mysql_pconnect?

Что такое абстрактный класс и чем он отличается от интерфейса?

Может ли абстрактный класс содержать частный метод?

Какие модификаторы видимости есть в РНР?

Какие магические методы вы знаете и как их применяют?

Что такое генераторы и как их использовать?

Что делает оператор yield?

Что такое traits? Альтернативное решение? Приведите пример.

Опишите поведение при использовании traits с одинаковыми именами полей и / или методов?

будут доступны частные методы trait в классе?

можно компоновать traits в trait?

Расскажите об обработке ошибок и исключения (try catch, finaly и throw).

Что такое type hinting, как работает, зачем нужен?

Что такое namespace и зачем они?

Сравнение значений переменных в РНР и подводные камни? Приведение типов. Что изменилось в PHP 8 в этом контексте?

Как работает session в РНР, где хранится, как инициализируется?

Cуперглобальные массивы. Какие знаете? Как использовали?

Сравните include vs required, include_once vs required_once.

Что означает сложность алгоритма?

Что такое замыкание в PHP? Приведите пример.

Какая разница между замыканием в PHP и JavaScript?

Что такое позднее связывание? Расскажите о поведении и применения static.

Расскажите о SPL-библиотеку (Reflection, autoload, структуры данных).

Расскажите о принципах SOLID.

Расскажите о шаблонах GRASP.

Расскажите о Dependency Injection: что такое DI-контейнеры? Какие есть варианты реализаций?

Что вам известно о MVC?

Что вам известно о шаблонах GoF?

Что вам известно о шаблонах, которые применяются в ORM?

Напишите / расскажите на PHP пример реализации паттерна Singleton.

Что такое Docker? Каков принцип его работы?

Что такое LAMP / NAMP?

Расскажите о regexp.

Расскажите о SSH-протокол.

​​Что нового появилось в PHP 8?

Какие версии PHP до сих пор поддерживаются?

В чем разница между GET и POST?

Какие еще HTTP-методы знаете?

Чем отличаются операторы BREAK и CONTINUE?

Есть ли разница между одинарными и двойными кавычками?

Что такое cookie и зачем они используются?

Что нельзя хранить в cookie и почему?

Какую среду разработки предпочитаете и почему?

Какой командой добавить изменения?

Какой командой зафиксировать изменения?

Какой командой отправить изменения в удаленный репозиторий?

Базы данных

Что такое транзакция?

Что такое нормализация?

Что такое денормализации? Для чего она нужна?

Какие типы связей в базе данных?

Что означает утверждение о том, что СУБД поддерживает контроль ссылочной целостности связей?

Если используемая вами СУБД не поддерживает каскадные удаления для поддержки ссылочной целостности связей, что можно сделать для достижения аналогичного результата?

Что такое первичный и внешний ключи?

Какие различия между первичным и уникальным ключами?

Какие типы JOIN и в чем различия?

Что такое курсоры в базах данных?

Что такое агрегатные функции SQL? Приведите несколько примеров.

Что такое миграции?

Расскажите о связи друг к другу, один ко многим, многие ко многим.

Зачем используют оператор группировки GROUP BY?

В чем разница между WHERE и HAVING? Приведите примеры.

В чем разница между операторами DISTINCT и GROUP BY?

Для чего нужны операторы UNION, INTERSECT, EXCEPT?

Опишите разницу типов данных DATETIME и TIMESTAMP.

Какие вы знаете двигатели таблиц и чем они отличаются?

Какие способы оптимизации производительности баз данных знаете?

Что такое партицирование, репликация и шардинг?

Чем отличаются SQL от NoSQL базы данных?

Какие бывают NoSQL базы данных?

Какие типы данных есть в MySQL?

Разница между LEFT JOIN, RIGHT JOIN, INNER JOIN?

Разница между JOIN и UNION?

Что такое индексы? Как они влияют на время выполнения SELECT, INSERT?

Что такое хранимые процедуры, функции и триггеры в MySQL? Для чего они? Приведите примеры использования.

Как организовать сохранность вложенных категорий в MySQL?

Практические задания

Спроектируйте базу данных для хранения информации о книгах и их авторов. Напишите запрос для выборки всех авторов и количества написанных ими книг.

Есть матрица 3 × 3. Посчитайте диагонали, только парные / нечетные числа в диагоналях.

Ваш приложение выдает 500 ошибку. Опишите последовательность поиска проблемы.

Напишите функцию, которая определяет, слово является палиндромом.

Какой результат выдаст такой код и почему: If (-1) print «True» else print «False»

Какой результат выдаст такой код и почему: var_dump (array_merge ([2 => ‘a’], [3 => ‘b’]));

Есть массив товаров в случайном порядке с указанием производителей. Напишите метод для его сортировки, чтобы максимальное количество первых товаров соответствовала такому критерию: каждый следующий товар должен производителя, отличного от предыдущего.

Есть массив Integer, напишите возможные способы, как увеличить каждый элемент на единицу (1).

Order

User

Напишите запрос для увеличения значения column1 на 1 для id = 2

Напишите цикл for так, чтобы аргумент цикла менялся в геометрической прогрессии.

Что выведут выражения:
print (!! «false»)
print (!! true)
print ((int) ‘125g7’)
print ((int) ‘x52’)

Результат выполнения функции? Как исправить результат?
in_array (1, [0, ‘0’, true])

Напишите класс с реализацией всех возможных способов строгой типизации данных с учетом возможностей PHP 8.

Middle

Основы

Как передаются переменные (по значению или по ссылке)?

Какие процессы происходят, когда пользователь вводит в браузере URL?

Что такое вариативная функция или spread-оператор?

Какие типы уязвимостей знаете? Как от них защищаться?

Что такое идемпотентность метода? Какие HTTP-методы являются идемпотентными для REST?

Что такое stateless?

SOAP vs REST. В чем разница?

Какие методы авторизации используют для построения API?

Что может содержать интерфейс?

Класс содержит свойство, которое, в свою очередь, является объектом. Что будет содержать это свойство в клонированный объект: ссылка на тот же дочерний объект или копию дочернего объекта? Что нужно сделать, чтобы это изменить?

Что такое Mock? Где используют и зачем?

Опишите реализацию одного из шаблонов проектирования.

Как хранятся данные в redis / memcached?

Расскажите о целесообразности применения redis / memcached для кэширования. Какие плюсы и минусы?

Назовите различия между nginx и apache.

Что такое opcash? Как он работает?

Что такое JIT? Как он работает?

Зачем нужно ключевое слово final?

Что нового в РНР 7/8?

Что такое SOLID, DRY, KISS, YAGNI?

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

Что такое простая фабрика?

Что такое Service Layer и где его следует применять?

Как устроен Singleton и почему его считают антипатерном?

Что такое идемпотентность?

Опишите жизненный цикл HTTP-запроса?

Что такое куча и стек?

Что такое рефлексия?

Что такое хэш-функция и где она используется?

Как применяются очереди в РНР?

Как в общих чертах работает opcache?

Чем отличаются модульные тесты от интеграционных?

Что такое трейты? Как применять на практике?

Как разрешить конфликты при использовании trait?

Как работает автозагрузки классов?

В чем разница между стеком и очередью?

Расскажите о Unit Tests (required), Functional Tests (optional). Моки и стаб в PHP.

Представим ситуацию, в которой нам нужно вызвать частный метод, как это сделать?

Опишите разницу между PHP-FPM и PHP на сокете.

Как бы вы реализовали загрузки больших отчетов с большим количеством данных (файлы от 1 гигабайта до N гигабайт).

​​Как бы вы импортировали 50-гигабайтный файл xml в базу данных?

Почему после PHP 5 идет сразу 7, куда делась 6?

Есть ли разница между self и this в PHP?

У нас есть важный PHP-файл, его надо запускать каждые 20 секунд, как бы вы это сделали?

Как расшифровать 644 в правах на файл в Linux?

В чем разница между merge и rebase?

Какой командой можно сделать ресет изменений, не потеряв их?

Что такое stash и зачем он нужен?

Базы данных

Какая разница между MyISAM i InnoDB? В каких случаях и лучше применять?

Как найти и оптимизировать «тяжелые» запросы?

Какие типы индексов?

Как хранить координаты точки на карте в БД?

Какие типы индексов бывают в RDBMS?

Какое свойство полей БД нужно учитывать при выборе типа индекса?

Когда следует использовать индексы, преимущества и недостатки?

Что такое план выполнения запроса и как его узнать?

В чем разница между типами данных CHAR и VARCHAR в SQL?

Каково назначение транзакций? Расскажите о принципе работы.

Назовите 3-4 нормальные формы реляционных БД.

Каково назначение репликации? Какие типы связей и в чем разница между ними?

Что такое индексация? Какие типы индексов? Какой смысл их использовать?

Что такое полнотекстовый поиск в MySQL? Как он реализуется?

Что такое cursor в MySQL-процедурах?

Расскажите о RabbitMQ или Gearman.

Что знаете о Solr / ElasticSearch?

Что такое deadlock MySQL?

Влияет ли порядок JOIN на план выполнения MySQL-запроса?

Практические задания

Вам нужно спарсить продукты и их цены с интернет-магазина. С помощью чего будете это делать и какие основные нюансы нужно учесть?

Для сайта пользователей необходимо сделать механизм добавления и отображения аватарок. Как бы вы его реализовали?

Какой результат выдаст такой код:

Какие модификаторы доступа допустимые в реализации метода getName

Реализуйте очередь сообщений, используя MySQL для хранения данных. Как избежать ситуации, когда несколько воркеров получат в обработку одинаковое сообщение?

Есть мануал на API с курсом валют. Нужно найти минимумы-максимумы за 5 лет, а потом то же, но с разбивкой по месяцам.

Напишите архитектуру, которая основывается на базовой абстракции. Дочерние классы расширяются с помощью интерфейсов. Реализацию одинаковых методов выполните, используя трейты (реализовывать в абстракции).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *