ru:https://highload.today/blogs/interview-php/ ua:https://highload.today/uk/blogs/interview-php/
logo
Карьера      29/11/2021

Как пройти собеседование на PHP-разработчика: главное для джуниора, мидла и сеньора

Дмитрий Троян BLOG

PHP TechLead и ментор в NIX

Привет! Я — Дмитрий Троян, PHP TechLead и ментор обучения в NIX. Я занимаюсь как техническим развитием, так и поддержкой боевого духа команды. Учиться никогда не поздно. Именно поэтому я решил структурировать свои знания за годы практики в IT и занялся менторством начинающих PHP-разработчиков.

Для старта в профессии PHP считается одним из лучших вариантов.

Вам понадобятся интерпретатор PHP, сервер или встроенный веб-сервер PHP, браузер — и можно приступать к написанию кода.

PHP — отличный старт, если вы решили кардинально сменить профессию

PHP — отличный старт, если вы решили кардинально сменить профессию

Попробовать себя сегодня в любой технологии — это значит не упустить свой шанс на успешную карьеру завтра. Языки программирования, библиотеки, фреймворки постоянно обновляются, а также появляются новые. PHP уже многие годы доказывает свою жизнеспособность. Благодаря PHP появились и до сих пор работают 80% ресурсов (например, Facebook, Wikipedia, WordPress, Yahoo). Высокая производительность языка позволяет легко масштабировать приложения для работы на тысячи серверах. При этом они способны выдерживать огромную нагрузку.

Если вы джуниор или опытный в других направлениях программист с начальными навыками в PHP, эта статья поможет вам подготовиться к собеседованию на позицию PHP Developer. Мы разберем основные моменты для всех уровней специалистов — junior, middle, senior.

Составление резюме: на что обратить внимание

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

Читайте также: «Даже цвета могут сыграть против вас»: как разработчику составить резюме, которое устроит на работу мечты. Инструкция и примеры

Junior

Из года в год к команде NIX присоединяются студенты разных университетов. Как правило, технические вузы выпускают более подготовленных к IT специалистов, но есть достаточно сильные кафедры и факультеты компьютерных технологий в других вузах. Просматривая резюме, мы всегда обращаем внимание на направления и специальности, которые осваивают ребята. Для того, чтобы определить уровень их знаний и навыков, мы предлагаем пройти технический тест, после чего анализируем полученный балл по таким критериям:

  • Знание основ синтаксиса языка. Достаточно разбираться в типах данных и управляющих конструкциях, обладать навыками решения задач и описания алгоритмов. Если вы понимаете, что можете написать функцию, которая рекурсивно обходит массив произвольной вложенности — это приемлемый уровень.
  • Знания верстки и CSS. Здесь стоит понимать, какие виды тегов существуют, знать, чем <ol> отличается от <ul> и разбираться в стилизации страниц.
  • Power Skills For Tech.
    Зменшіть кількість непорозумінь на робочому місці та станьте більш ефективним у спілкуванні в мультикультурній команді. Отримайте знижку 10% за промокодом ITCENG.
    Реєстрація на курс
  • Навыки взаимодействия с Git. Студент должен понимать, для каких целей служит этот инструмент, и знать о последствиях его отсутствия. Также важно ознакомиться с базовыми операциями, которые можно осуществить с помощью Git: init, clone, pull, push, fetch, add, commit.

Помимо студентов, все чаще мы встречаем взрослых специалистов, которые хотят кардинально сменить профессию. Хорошо, что наша отрасль дает такую возможность.

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

Например, что конкретно было усвоено, в каком объеме и за какой промежуток времени. Также важно наличие небольшого портфолио, даже если это разработки на уровне лабораторных работ, загруженные на GitHub/GitLab.

Даже если у вас в арсенале только лабораторные работы — не стесняйтесь показать их

Даже если у вас в арсенале только лабораторные работы — не стесняйтесь показать их

Middle/senior

Здесь обязательно нужно акцентировать внимание на предыдущем опыте специалиста, а именно — с какими задачами сталкивался потенциальный кандидат и какой уровень ответственности на нем лежал.

Если человек подробно описывает свою карьеру, добавляет в резюме технологии и уровень их понимания — это хорошая почва, чтобы познакомиться поближе и в дальнейшем пригласить кандидата в проект. Профиль на GitHub/GitLab с примерами кода будет плюсом, но его наличие необязательно. Иногда случается так, что кандидат прекрасно писал код для заказчика, но при этом не участвовал в опенсорс-проектах и не загружал ничего в сеть.

Собеседование: как подготовиться к разговору

Во время общения с junior-специалистами мы, конечно же, не обходимся без базы. Это позволяет нам определить уровень понимания кандидатом таких тем, как:

  • клиент-серверное взаимодействие;
  • протоколы HTTP и базовые принципы ООП;  
  • SQL и проектирование баз данных;
  • механизмы взаимодействия с серверами, сессиями и формами; 
  • знания в области верстки и стилей.

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

Иногда некоторые собеседования — это отдельная серия ситкома «Говорим о PHP и разработке программного обеспечения» 🙂 Причем независимо от уровня кандидата. 

Иногда на интервью случаются забавные истории!

Иногда на интервью случаются забавные истории!

Однажды после разговора соискатель сказал нам, что его главная цель — походить по собеседованиям и узнать, какие вопросы задают и какие задачи нужно решать. Это честный подход, но из-за того, что у соискателя отсутствовали даже базовые знания о PHP, он оставил после себя неприятное впечатление. Встречаются и кандидаты, которые своей искренностью и рвением к любимому делу заполняют любые пробелы в знаниях. Смотришь, как человек здраво рассуждает, как он хочет попасть в команду и понимаешь, что именно с ним после обучения можно даже горы свернуть.

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

Со специалистами уровня middle и senior мы используем другой подход. Например, на собеседовании даем несколько взаимосвязанных классов и просим кандидата сделать ревью кода: поделиться своим мнением и предложить правки. Берем задачи из реальных проектов, предлагаем разобрать нетривиальные случаи и пофиксить нетипичные баги, а также просим кандидата поразмышлять над запросом заказчика и предложить свое решение ситуации.

Определить, подходит ли кандидат на позицию, можно задолго до интервью

Аккуратность и четкость заполнения резюме, умение выделить главное и презентовать себя — все это сразу бросается в глаза. Общее впечатление о кандидате также складывается из того, как человек доносит информацию, насколько он открыт, что и как рассказывает о себе и готов ли присоединиться к команде.

Многое о вас становится понятно еще до собеседования

Многое о вас становится понятным еще до собеседования

Я заметил тенденцию, которая свойственна некоторым соискателям: почитали пару статей и посмотрели несколько обучающих роликов на YouTube — и уже рвутся на собеседование.

Но если у PHP есть репутация легко изучаемого языка, это не означает, что такой мало-мальской подготовки будет достаточно. Это ловушка для людей с нетехническим образованием.

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

Бізнес англійська.
Тут навчають за методикою Кембриджу, завдяки якій англійську вивчили понад 1 мільярд людей. Саме вона використовується в найкращих навчальних закладах світу, і саме за нею створені курси.
Інформація про курс

Нет волшебной микстуры, которая за две недели сделает из вас программиста. Изучить базу и взойти на первую ступень джуна — это большой труд. Даже после многих лет в IT нужно продолжать учиться и расширять свои горизонты. Только постоянно совершенствуясь, мы становимся профессионалами.

О чем чаще всего забывают

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

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

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

Что нужно изучить

Ознакомьтесь с этими материалами, которые позволят качественно подготовиться к собеседованию.

Не лишним будет хорошенько подготовиться

Не лишним будет хорошенько подготовиться

Для комплексной подготовки на позицию Junior PHP Developer

Книги:

Сетевые технологии:

  • стек протоколов TCP/IP;
  • протоколы HTTP, FTP.

Клиент-серверная архитектура: 

  • общие положения об организации архитектуры приложений;
  • архитектура веб-приложений.

Сервер Nginx: 

Клиентское окружение:

CSS:

JavaScript:

ООП: 

  • назначение и цели ОО-подхода (в сравнении с процедурным);
  • основные принципы ООП, ООА и ООД;
  • шаблон Model View Controller (MVC).

PHP:

  • среда разработки (IDE PHPStorm);
  • основы языка PHP;
  • функции взаимодействия со строками, массивами и базой данных;
  • session и cookies;
  • операции работы с файловой системой и файлами;
  • сериализация данных;
  • функции работы со временем;
  • обработка XML;
  • обработка JSON;
  • регулярные выражения; 
  • работа с изображениями;
  • работа с CLI;
  • работа со встроенным веб-сервером PHP; 
  • ООП в PHP;
  • применение шаблонов проектирования в PHP;
  • изменения в новых версиях PHP;
  • стандарты кодирования PSR; 
  • стандарты PSR-12 21. Стандарты PSR-0 и PSR-4 и автоматическое подключение классов;
  • стандарт логирования PSR-3;
  • стандарт по реализации HTTP messages;
  • обработка ошибок в PHP.

Библиография: 

  • PHP The Right Way;
  • менеджер зависимостей Composer;
  • разделение логики и отображения.

Symfony или Laravel: 

Операционная система Linux: 

  • отличие файловых систем Linux и Windows;
  • права доступа в системе Linux;
  • работа с командной строкой;
  • основы работы в редакторе vi/vim/nano.

СУБД: 

Система контроля версий Git: 

  • понять назначение подобных систем и получить базовые знания для работы с ними.

Git и GitHub:

  • понять принцип взаимодействия распределенных систем и получить базовые знания о Git и сервисе GitHub.

Bugtraсking-системы:

Теория без практики — мертва. Чтобы закрепить полученные знания, для джуниоров мы разработали дистанционную платформу с тремя этапами обучения и тестовыми заданиями. Освоив базовые навыки онлайн и выполнив все задачи, вы получите обратную связь и рекомендации от экспертов NIX и сможете попробовать свои силы на собеседовании в нашу команду.

Для подготовки к собеседованию на позиции Middle/Senior PHP Developer

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

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

  • Блог Мартина Фаулера, где вы найдете ответы на прикладные вопросы и общие подходы в IT.
  • Мартин Фаулер «Рефакторинг» — книга, которая поможет писать код чище. 
  • refactoring.guru — сайт для тех, кто хочет постигнуть распространенные паттерны проектирования и разобраться с «запахами» кода . 
  • Эрик Эванс, Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем. Предметно-ориентированное программирование — это подход, который навсегда перевернет мир восприятия ООП и разработки в этой парадигме.
  • Simon Brown, Software architecture for Developers — для более продвинутых специалистов, которые планируют расширять свои горизонты и хотят стать Lead Developers и Tech Lead в проектах.

Удачи всем на собеседовании! И помните: самый лучший день изменить что-то — это сегодня.

Читайте также: Как пройти собеседование на Python-разработчика: что важно знать и уметь

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Бізнес англійська.
Тут навчають за методикою Кембриджу, завдяки якій англійську вивчили понад 1 мільярд людей. Саме вона використовується в найкращих навчальних закладах світу, і саме за нею створені курси.
Інформація про курс

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Топ-5 самых популярных блогеров марта

Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсего просмотров
95
#1
Всего просмотровВсего просмотров
95
Career Consultant в GoIT
Всего просмотровВсего просмотров
90
#2
Всего просмотровВсего просмотров
90
CEO & Founder в Trustee
Всего просмотровВсего просмотров
43
#3
Всего просмотровВсего просмотров
43
Рейтинг блогеров

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: