Php

Junior php вопросы на собеседовании: Собеседования на должность PHP разработчика / Хабр

Содержание

Собеседования на должность PHP разработчика / Хабр

Довольно часто (постоянно) мне приходиться проводить собеседование людей желающих устроитсья в мой отдел на должность «junior PHP developer» и «PHP developer». И, с завидным постоянством, я и team-lead отдела задаем одни и те же вопросы…

Каждое собеседование начинается с одного и того же вопроса:

— Почему PHP?

И, как ни странно, некоторые умудряются «засыпаться» уже на нем:
— Пробывал язык N — такой сложный, и поэтому решил учить PHP

или еще лучше:
— Решил пока поработать в PHP отделе, а потом перейти в отдел .Net

Но чаще всего слышим один из следующих ответов:

— Делал страничку — понадобилась динамика — выбор пал на PHP

— Кто-то, зачем-то посоветовал

— Преподавали в ВУЗе — только PHP и смог осилить

Далее, приближаемся к программированию, мы пытаемся понять имеет ли собеседуемый хоть какое-нить представление о ООП, о абстракции, наследовании, инкапсуляции и полиморфизме. Ага, кто-то лекции прогуливал в университете 😉

А теперь начинается самое оно:

— Какую версию PHP использовали? В чем различия между четвертой и пятой версиями?

— Какими сторонними библиотеками пользовались?

— Опыт работы с различными CMF/CMS?

— Типы данных в PHP?(их всего 8, не верите — читайте мануал)

— Назови по памяти функции для работы с массивами, строками

— Что такое сериализация?

И далее несколько практических вопросов…

— Что такое Apache? А mod_rewrite?

— Аббревиатура SVN и CVS о чем-нить говорят?

— Багтрекинг системы? BugZilla? JIRA?

Не забываем и о БД:

— Что такое реляционная база данных?

— Нормализация, денормализация

— И чуть-чуть практики (связь многое-ко-многим в MySQL, каталог товаров произвольной вложенности)

HTML + CSS + W3C (знания HTML на базовом уровне считаю обязательным):

— Нарисуй-ка простенькую форму для отправки файла

— CSS знаешь? В чем разница между записью #my и .my?

— Расшифруй вот такую запись в CSS … (и далее что-то невообразимое, но вполне читабельное, задаю не часто, если только испытуемый заявляет что знает CSS)

— Что такое стандарты W3C?

Linux:

— С *nix знаком?

— Apache и PHP сетапил?

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

— Знаешь что такое уровни модели OSI? Назови хотя бы их количество. (это вопрос на «пять»)

— По какому протоколу осуществляется передача данных в сети Интернет?

— Расскажи что поисходит, когда в строке браузера набираешь адрес и нажимаешь Enter?

Иностранные языки:

Тут особо не мучаем, если же в резюме указан уровень знания английского как «хорошо» — вот тогда нам на помощь спешит COTOHA — лучше правдиво пишите — уровень университета или начальной школы… 😉

Бывает, озадачиваем каким-нить тестом на сообразительность (поменяй-ка друг значение переменных A и B местами не используя третью переменную)

Вот подумываем написать тест, который однозначно говорил бы о уровне знаний человека (brainbench для новичков не подходит), если у кого есть что предложить — пишите в комментариях…

Кросспост: PHP: Собеседование (и там уже много содержательных комментариев)

Upd: Вторым, или даже первым вопросом наверное скоро будет: «Читаете ли вы Хабр по пятницам?»…

Upd: На ряд вопросов из комментариев отвечу тут:

  • Разве должен PHP разработчик знать это… ? — Если человек не ответил на ряд вопросов на собеседовании, это не значит, что он его провалил, возможно некоторые вопросы слишком отстранены от разработки, но их знание никогда не будет лишним
  • Вам действительно нужно это всё? — Да, ибо мы используем системы контроля версий и багтрекинг системы, мы сталкиваемся с готовыми CMS системами, кодим используя Zend Framework и CMF/CMS которую сами разрабатываем
  • На какую ЗП можно претендовать после прохождения собеседования? — ЗП оговаривается по окончанию испытательного срока, если Вас интересуют более подробная информация см. на www.developers.org.ua
  • Есть мануал, зачем помнить на память! — Мне не нужен в отделе человек который каждые пять минут будет лазить в мануал, дабы узнать как построить цикл «for» или отсортировать массив, или еще хуже — будет отвлекать окружающих для этой цели
  • Дайте лучше тестовое задание! — Ситуация нынче такова, что junior разработчик не будет делать тестовое задание, а скорей просто пойдет на собеседование в другую компанию
  • В какой компании такое «невдалое» собеседование, не пойду в неё работать! — 3 клика мышки отделяет Вас от ответа, если не нашли — мы Вас не ждем…

Что должен знать junior php на 2020 и стоит ли ходить на все собеседования? — Хабр Q&A

(надеюсь не поздно, хотя по словам девушки которая собирая вещи ушла)

Я её понимаю частично, вы открываете аудитории свои проблемы, которые никому не важны. Т.к у каждого свои.

1.

На сколько хорошо jun должен знать HTML?

Достаточно хорошо, что бы понимать что такое семантика, что-такое доступность и не лепить div туда, куда можно поставить p, span, aside, nav
2.

На что обратить особое внимание при php и где лучше брать тест задания?

Для начала стоит выучить основные операции на языке(функции, циклы, работа с массивами), советую посмотреть в сторону курса Hexlet PHP, в своё время сама проходила. Там познакомитесь с базовыми операциями, такими вещами как composer и тд.
3.

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

У вас похоже проблемы с желанием наконец-то пойти работать. Год назад вы учили Laravel. В чем проблема год назад искать работу джуном? Откуда такой скачок во времени что через год вы снова решили учить фреймворки.
4.

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

Куча тараканов в голове, переставайте бояться, вы не обязаны знать всё в идеале. Это не стихотворение Пушкина или Маяковского. Вы должны понимать концепты и механизмы разработки, с каким инструментом и как что делается. Открою вам большой секрет. Все, всё, всегда гуглят. А так же пишут говнокод. Поэтому начните с фундаментальных основ, нагуглите варианты тестов(или собеседований) для джуна PHP и проходите по 3-4-5-10 раз. Я думаю на раз 6 все получится.

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

<update>

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

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

</update>

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

При написании этой статьи:

  • в той или иной мере был контакт с 20+ работодателями
  • выполнено 12 тестовых заданий
  • пройдено 8 собеседований с техническими специалистами
  • получил моральные травмы средней степени тяжести один начинающий PHP-разработчик
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, почему вы не можете потратить пять минут на человека, который потратил на вас день?
Если вы столкнётесь с такой проблемой, не ждите ответа. Звоните и пишите, спрашивайте почему про вас забыли.

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

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

Happy End

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

Php — Обзор требований к Junior разработчику на PHP | GeekBrains

Написать эту тему меня сподвиг вопрос одного из студентов: «Какой минимум знаний нужно иметь, чтобы успешно пройти собеседование на позицию младшего разработчика?»

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

— это Москва

— в офис, никакой удалёнки

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

Итак, требования к знаниям и не только:

азы PHP:

— отчетливо понимать этапы выполнения программы «Парсер — Компилятор — Рантайм», понимать, что PHP — компилируемый язык

— уметь объяснить слова «динамическая нестрогая типизация»

— знать, что такое переменная, константа (глобальная и в классе)

— иметь представление об областях видимости, глобальности и локальности имён

— знать, какие типы есть в языке, помнить о неочевидностях при приведении и сравнении разных типов (типа «1» == «01»)

— иметь представление о приоритете операций

— понимать, что в PHP всё является выражением

— булев тип и операции над ним, разница между &&, & и and например

— знать несколько самых нужных строковых функций

— уверенно работать с массивами, знать самые востребованные функции, не пугаться большой вложенности

— уметь получить данные из $_POST, загрузить файл (или несколько сразу) через $_FILES

— уверенно владеть файловыми операциями, понимать концепцию «всё есть файл» и иметь представление о правах на файлы

— знать все циклы и управляющие конструкции языка кроме goto

— понимать, зачем нужны пространства имён

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

объектная модель PHP:

— наследование и модификаторы доступа

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

— позднее и раннее статическое связывание

— интерфейсы и трейты, как обход отсутствия множественного наследования

— абстрактные классы с реализацией методов

— класс, как тип, instanceof, класс-хинтинг, опять же тут интерфейсы

— магические методы на примере конструктора, __get, __set, __call

— исключения — понимание темы и хорошие примеры использования

Паттерны проектирования:

— MVC

— ORM

— ActiveRecord

— Depedency Injection

Прочее:

— PHPStorm уже фактически обязательно

— знакомство хотя бы с одним современным фреймворком

— умение пользоваться composer

— аккаунт на гитхабе, что подразумевает хотя бы начальное владение git в обязательном порядке

— в плюс будет linkedin или еще какая-то профессиональная сеть

— скайп для оперативной связи

Опрятный внешний вид. 

Отсутствие приверженности к какой-либо секте, учению, движению, партии «Единая Россия» и ее молодежным объединениям.

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

Вот, пожалуй, и всё.

24 апреля 2015 в 18:38

Подготовка к собеседованию | /dev/energy


Оценка: 5.0/5. На основании 1 голоса.