< Вопросы на собеседовании php - Психолог

Вопросы на собеседовании php

Содержание

Как нанять php программиста в 2018 не потеряв лишнего времени — Офтоп на vc.ru

Вопросы на собеседовании php

Так сложилось, что я не часто менял работу и не имел большого опыта прохождения собеседований. Зато у меня был большой опыт проведения технических интервью (здесь и далее синоним собеседования). Статья не претендует на открытие чего-то нового.

В феврале с некоторым шумом закрылся стартап, где я работал в качестве тимлида. Я искал работу до середины мая. За это время я прособеседовался в десятках компаний. Это был великолепный экскурс на обратную сторону диалога соискателя и работодателя.

Я был удивлен до какой степени банальные вещи пропускаются hr-ами даже в крупных агентствах.

Далее рассказ как правильно с точки зрения программиста организовать собеседование.

Базовой ситуацией стоит считать, что у hr есть резюме программиста.
Работодателю необходимо составить и опубликовать (или отправить соискателю) текстовое описание вакансии. Бесполезно сразу звонить и голосом описывать вакансию.

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

Из наименования вакансии “старший/ведущий php-разработчик” можно догадаться только о том, что предстоит разрабатывать на php. А если по телефону пытаться рассказывать больше, то ничего из этого не запомниться.

Единственное когда стоит сперва звонить – если соискатель сам об этом явно просит. Например выставив желаемый способ связи на известном сайте.

Итак что указывать в вакансии?

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

  • название
  • текстовое описание фирмы и ее деятельности – тут у hr не возникает обычно проблем
  • текстовое описание основного вида деятельности и задачи отдела/должности будущего работника
  • обязательный технический стек – что должен знать соискатель
  • сопутствующий технический стек – с чем еще предстоит работать соискателю
  • условия труда – если вас их постоянно спрашивают, значит можно дополнить
  • тестовое задание

Почему название важно?

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

Во первых подавляющему числу соискателей все равно написано в вакансии “php-разработчик”, “php-developer”, или даже “PHP-инженер-программист”. Не загромождайте название синонимами. Добавьте что-то важное для вас. Или что-то важное для соискателя.

Самый простой способ дать более точное название вакансии, это уточнить с чем придется работать (часть обязательного стека). Например укажите базу данных или фреймворк: “php+mysql developer”, “php (symfony) developer”.

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

И особенно много тех кто избегает использования всем известного отечественного “фреймворка”

Что делать-то предстоит?

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

На что здесь обращает внимание программист.

В основном тут ожидаются следующие фразы “code review”, “легаси код” (обычно даже так: “умение разбираться в чужом коде”), “трекер задач”, “управление командой”, “планирование сроков и ресурсов”.

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

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

  • Работа с фрилансерами и/или фирмой подрядчиком – мне достаточно часто встречались такого рода вакансии. Обычно есть уже некая собранная удаленная команда, над которой ставится штатный сотрудник.
  • Ограничение службы безопасности. Может в офисе работодателя действует особый пропускной режим, а на машинах стоит только windows и все сотрудники лишены административных прав.

Используемый стек технологий

Есть старый анекдот “Если бы водителей нанимали как программистов”. Современные реалии все же несколько приятнее. В большинстве вакансий есть разделение требований на 2 списка (обязательный и дополнительный). Проблема в том что заголовок дополнительного списка “Будет плюсом знание:” мало информативен. У соискателя возникает ряд вопросов:

  • Если я что-то знаю из этого списка меня с большей вероятностью возьмут или больше зарплату дадут?
  • Это используемый стек? Или планируемый? Или наоборот это стек предыдущего решения, которое нужно переписать?
  • А не технологический ли зоопарк тут?

Обозначайте применимость дополнительного списка.

Пишите только реально используемые версии софта (включая минорную). “PHP 7.1” – гораздо более информативная запись нежели “PHP 5-7”.

Тестовое задание, тест в браузере, или просто вопросы по телефону.

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

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

Так или иначе задание должно выполняться за достаточно короткий промежуток времени (от 15 минут до 4х часов). Если вы до очного собеседования берете на себя обязательства по проверке решения задания, вы формируете ожидание у соискателя, что он получит результат проверки. Сказать “нет, не правильно” уже будет недостаточно.

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

Звонки и почта как способ избежать собеседования.

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

Переломным моментом стал визит на очное собеседование в известное технологическое представительство одного банка на вакансию “web-разработчик”.

Где по просьбе собеседующих я рассказал немного о себе, а после услышал вопрос: “А как у вас с js?”

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

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

  • На сколько пунктов по тесту Джоэла оценивает себя команда? //habr.com/company/jugru/blog/159689/
  • Какой текущий/планируемый состав команды разработки (технические специалисты)?
  • Команда расширяется или ищется замена ушедшему сотруднику? (Что случилось с занимавшим эту должность сотрудником? / В связи с чем расширение штата?)
  • Используется ли база данных? Пишутся ли миграции? Кто и как проверяет миграции базы данных перед релизом?
  • Как настроен ci/cd? Если никак, готовы и потратить месяц на настройку?
  • Кто и как ставит задачи?
  • На какой машине придется работать?
  • Есть ли что-то еще о чем я не спросил, но мне стоит это знать?

К этим и прочим вопросам нужно быть готовым еще при первом звонке/письме.

Ожидаемо что вопросы есть и к соискателю. Стоит задавать вопросы так чтобы соискатель мог наиболее коротко и однозначно на них ответить.

На самом деле первый диалог с соискателем HR должен воспринимать как способ проверить ценность будущей встречи.

У вас никогда не было ситуации что собеседование перестает иметь смысл уже после 2-4 вопросов? Записывайте вопросы которые привели к досрочному окончанию встречи. Ниже приведу краткий перечень таких вопросов, накопленных личным опытом.

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

Если HR может оценить правильность ответов на технические вопросы это замечательно и этим нужно пользоваться. Такие вопросы должны подразумевать краткие ответы. Да и сами вопросы должны легко восприниматься на слух. Опять же спрашивайте максимально близкие темы к востребованной ежедневной работе специалиста. Ниже приведу пример некоторых таких вопросов:

  • *nix/cli: Как посмотреть последние несколько строк текстового файла (лога)? А как следить за его наполнением?
  • *nix/cli: Вы написали php скрипт для запуска в консоли. Как посмотреть существует ли процесс?
  • *nix/cli: Есть папка с изображениями как узнать ее размер?
  • php: Какой вариант проверки существования данных в массиве наиболее быстрый? Почему?
  • php: Используете ли вы declare(strict_types=1)? Почему?
  • sql: Спрашивайте общие вопросы не зависящие от конкретной реализации базы данных, если речь идет о наборе не специалиста узкого профиля.

Источник: //vc.ru/flood/44063-kak-nanyat-php-programmista-v-2018-ne-poteryav-lishnego-vremeni

Вопросы на собеседовании

Вопросы на собеседовании php

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

Задания разделены на 3 категории:

  • B позволяет оценить базовые знания, основы программирования и насколько хорошо владеете программами необходимыми для разработки продуктов
  • S позволяет оценить глубину знаний в той или иной части языка программирования, а так же узнать о знании смежных технологий
  • Q собраны вопросы по разработке масштабируемых высоконагруженных систем.

Категория B

1. Общие вопросы (можно задавать их по телефону)

2. Опишите ситуации, когда функциональное программирование лучше объектно-ориентированного.

3. Расскажите о паттернах. В каких случаях не стоит их использовать? Какие минусы при их использовании?

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

5. В чем плюсы и минусы шаблонизации? С какими трудностями Вы сталкивались в работе с шаблонами?

6. В чем плюсы использования систем контроля версий? Какие сложности при работе с ним у Вас возникали?

7. При работе в команде, каким бы местам в разработке, Вы бы уделили большее внимание? Какие бы соглашения (Coding Conventions) Вам бы помогли в командной разработке?

8. Какими баг-трекерами Вы пользовались? В чем плюсы и минусы использования?

9. Алгоритмы: структуры и алгоритмы (сортировка пузырьком, скобочная последовательность)

Категория S

1. Расскажите, в каких случаях лучше использовать Apache, nginx, haproxy и т.п.

2. Расскажите о использовании NoSQL. Какие сложности возникают при использования? Что бы Вы хотели улучшить?

3. Взаимная блокировка (deadlock) – что это такое и как решить. Пример возникновения ситуации:

Транзакция 1Транзакция 2 
select name from events where id = 1 for update select name from events where id = 2 for updateselect name from events where id = 2 for update select name from events where id = 1 for update

Описание процесса одновременного доступа:

Транзакция 1: блокирует строку 1 и продолжает работуТранзакция 2: блокирует строку 2, пытается заблокировать строку 1 и виснет

Транзакция 1: пытается заблокировать строку 2

Классическое минимально-затратное решение: повторение транзакции по которой вернулось исключение дедлока, в исключении даже подсказка приходит: 1213 Deadlock found when trying to get lock; try restarting transaction

4. SQL, SQL

5. что такое:

  • ACID (атомарность, согласованность, изолированность, надежность)
  • BASE (базовая доступность, гибкое состояние, согласованность в конечном счете)
  • CAP (согласованность, доступность, устойчивость к разделению), утверждающей, что для распределенных систем возможно выполнение только двух из трех свойств

6. Знакомы ли Вам следующие понятия/термины/определения:

Категория Q

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

  1. Какую базу данных лучше всего использовать и почему
  2. Как реализовать версионность в данном случае
  3. Как реализовать возможность раcширения моделей
  4. Какова будет структура базы данных
  5. Какие сложности могут возникнуть в реализации проекта

2. Планируется проект, рассчитанный на большое количество информации (есть возможность докупить любое количество серверов). Опишите следующие моменты:

  1. Как распределить нагрузку между всеми серверами
  2. Как реализовать максимальную стабильность работы серверов
  3. Как можно снизить загрузку серверов
  4. Оптимально ли использовать выбранную Вами базу данных. Каковы плюсы и минусы использования

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

  1. Что нужно изменить/добавить в сервисе, для стабильной работы?
  2. Оптимальная ли конфигурация? Нужно ли что-либо в ней изменять?
  3. Приведите примеры улучшений при малом финансировании и при большом

4. Задача разработки первой версии продукта (финансовые средства неограниченны). Опишите следующие моменты:

  1. Какую конфигурацию программной части Вы бы составили для проекта (Операционная система, языки программирования, база данных, фреймворки или сторонние разработки)? Опишите в чем плюсы вашей конфигурации.
  2. Опишите схему внутренней работы проекта.

5. Нужно разработать систему для организации работу между почтовым сервером и front-end приложением. Опишите следующие моменты:

  • Какой формат обмена данными, Вы бы использовали, для минимального трафико-обмена?
  • В чем плюсы и минусы выбранного Вами формата?

Источник: 1

Источник: //yapro.ru/web-master/php/voprosi-na-sobesedovanii-po-php.html

Эти вопросы на собеседовании больше всего нравятся разработчикам | Rusbase

Вопросы на собеседовании php

Управляющий редактор PHP в SitePoint, хорватский разработчик Бруно Скворч (Bruno Skvorc) рассказал о задании, в ходе которого на одном из собеседований его попросили создать средствами PHP две сражающиеся друг с другом армии и внести в их битву элемент случайности. И все — это была полная формулировка задачи. 

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

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

Блок-схема алгоритма решения задачи из описания в блоге Скворча

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

Множественные решения

Одним из самых популярных ответов в обсуждении на Quora стал рассказ инженера LinkedIn Лео Половца (Leo Polovets) о его любимых задачах на собеседовании. По его словам, больше всего ему нравятся те из них, которые подразумевают различные пути решения, на каждом из которых встречаются свои сложности.

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

Половец привел пример подобной задачи. К примеру, имеется список N+1 целых чисел от 1 до N. Одно число точно дублируется, однако возможно, что чисел-дублёров больше — например, 3,1,1,3, но может быть и 3,1,2,2.

Соискателю нужно вывести на экран число, которое появляется более одного раза (например, в первом случае это 1 и 3). Кандидат предлагает самый очевидный способ — сравнивать все числа в списке, пока не найдётся дубль.

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

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

Рисование на доске

Нейт Вадупс (Nate Waddoups), в том числе работавший над линейкой компьютеров Commodore PET, также рассказал о своем любимом задании с собеседования.

В тот раз потенциальный работодатель попросил его нарисовать на доске функцию malloc языка C. Сделать это быстро просто невозможно, однако интервьюер сказал, что можно не торопиться.

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

Разработчик говорит, что изначально посчитал такое задание нелепым, однако элемент неожиданности и позитивная реакция интервьюера позволили «растопить лед» между ними.

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

Выбор из двух задач

Java-разработчику Лукасу Эдеру (Lukas Eder), в свою очередь, больше всего понравилось задание на собеседовании в компании Adobe, в ходе которого ему предложили создать drag-n-drop приложение на JavaScript или написать многопоточный HTTP веб-сервер. При этом никаких дополнительных деталей или уточнений соискателю не предоставили — была полная свобода выбора подходов и конкретных способов реализации.

Задача была не «моментальной» — соискателю дали две недели на ее решение и его защиту. В итоге Эдер создал небольшой файл-сервер с каталогами, потоковыми файлами, который поддерживал основные HTTP-коды — например 404, 500, 200 и т.д.

Проект с нуля за три часа

Некоторым программистам, наоборот, нравится, когда им приходится решать задачу в крайне сжатые сроки. К примеру, iOS-разработчик Амир Мемон (Amir Memon) назвал лучшим собеседованием в своей жизни интервью, в ходе которого ему предоставили ноутбук и попросили «что-нибудь запрограммировать».

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

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

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

Поиск решения для проблем из прошлых проектов

iOS-разработчик Yahoo! Маджид Мужалед (Maijid Fiifi Moujaled) больше всего оценил собеседование, в ходе которого интервьюер попросил его рассказать о сложных технических проблемах, с которыми столкнулся при работе в прошлом проекте. Мужалед честно признался в существовании одной проблемы, которую он не знал, как решить.

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

В итоге после собеседования Мужалед смог решить задачу в своем собственном проекте, а позднее получил и предложение о работе в новой компании.

Заключение: совет интервьюеру от разработчика

В качестве заключения можно привести самый популярный ответ дискусии от инженера по имени Уильям Пиетри, который описал свой подход к программированию — его пост получил больше 3,7 тысяч «за» от пользователей Quora.

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

Вместо этого инженер рекомендует интервьюеру уделить время совместному с кандидатом написанию кода. Это позволит получить ответы на самые важные вопросы:

  • достаточно ли у кандидата практики в программировании;
  • насколько хорошо он знаком с конкретным языком;
  • как он подходит к написанию кода;
  • умеет ли работать в команде;
  • задает ли правильные вопросы о задаче;
  • успешно ли преодолевает сложности;
  • не отвлекается ли на ерунду;
  • знаком ли с автоматизированным тестированием;
  • проверяет ли свою работу.

На сегодня все, спасибо за внимание. В продолжение темы – в нашем блоге мы уже рассказывали о том, что могут спрашивать у разработчиков на собеседованиях в крупных ИТ-компаниях, а также разбирали конкретное задание по Java. 

Материалы по теме:

Курсы и полезные ссылки по теме data science

Источник: //rb.ru/opinion/nravki/

Подготовьтесь к собеседованию на веб-разработчика: ответы на вопросы, часть 1

Вопросы на собеседовании php

От автора: неважно, ищете вы работу или нет, веб-разработчик должен знать как базовые, так и продвинутые темы.

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

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

Прежде чем начнем

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

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

Вернемся к основам

Сложность подготовки зависит от того, сколько времени вы уделяете на данный момент HTML, CSS и JS, а также от требований должности. Очень важно понять основы и внутренности. В большинстве случаев короткого разговора достаточно, чтобы понять, что вы чего-то не понимаете.

Когда что-то не работает, CSS может быть очень странным. JS может быть странным, даже когда все работает.

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

Разберем пример. Часто на собеседованиях спрашивают про замыкания – что вернет код ниже:

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее for (var i = 0; i < 5; i++) { setTimeout(() => console.log(i), 1000); }

for (var i = 0; i console.log(i), 1000);

Код вернет 5 5 5 5 5, а не 0 1 2 3 4. Если использовать let вместо var или использовать ((j) => { return () => console.log(j); })(i) – значение I будет сохранено с помощью IIFE в аргумент j в область видимости новой функции. Этот небольшой вопрос так важен, потому что он собирает в себе важные концепции языка – замыкания, контекст, область видимости, IIFE, а также let и var.

Этот вопрос задают очень часто, но есть множество других вопросов типа «почему это произошло». Отвечая, вы можете вспомнить о Event Loop  — отличный момент, чтобы углубиваться в важный механизм того, «как работает JS».

Может быть еще такой вопрос «как решить эту проблему». Может, вы знаете решение, но опрашивающий может попросить более сложные решения. Например, проблему можно решить с помощью функции bind, но также есть apply и call. В чем разница? К внутренностям JS можно двигаться разными путями.

Принцип работы

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

Принцип работы веба

Что происходит, когда вы нажимаете Go в адресной строке браузера? Вы думали об этом? DNS и т.д… Да, но не только это. DNS-серверы действительно участвуют в процессе, но есть и другие части. В процессе проверяется 4 кэша для поиска карты для подходящего IP. Затем идет TCP рукопожатие и Ack сообщения, которые вы помните из лекций на степень бакалавра.

«Страницу не приносит аист, он ее не загружает и не рендерит. Вам, как разработчику, нужно знать, как это происходит.»

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

JavaScript работает в один поток

ОК, и что? Вы подумаете об этом и поймете, почему один поток это так важно. Какие плюсы и минусы в этом? NodeJS подходит разработчикам, у которых много I/O и асинхронных событий. Он работает на основе событий.

То есть тяжелые синхронные вычисления типа машинного обучения, скорее всего, не подходят для NodeJS. Кроме того, существуют другие известные языки типа Java или C#. Очень важно знать, что использовать.

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

Цикл событий, стек вызовов, очередь, куча

Еще одна часть того «как это работает» — это внутренний поток и процесс языка – механизм.

Каков порядок выполнения, где хранятся все переменные, в чем разница между стеком вызовов и очередью, а также что происходит при вызове setTimeout.

Как устроен мир, и как он устроен? Когда вы ответите на эти вопросы, поймете поток JS. Не ходите на собеседование на должность с JS, если не знаете этот механизм. Это критично.

Что еще очень часто задают на собеседовании – область видимости, контекст, поднятие, как реализовать энкапсуляцию в ES5 и прототип. Если у вас спросили это, не сомневайтесь, вы под полным контролем.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Асинхронные колбек-функции, Promises, Async\Await и генераторы

JS разработчики используют множество асинхронных операций. HTTP-запросы, планировщики, таймеры и I/O операции – это только часть асинхронных операций. Это не очередное свойство языка – это его хлебные крошки.

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

Вы должны знать эту эволюцию и уметь ее объяснить.

ES6/7/8

JS находится в продакшене, но он постоянно обновляется. Процесс принятия новых функций в спецификацию крайне упорядоченный и сбалансированный. ECMAScript – это спецификация, формирующая основы JS. ECMAScript стандартизирован организацией по стандартам International в спецификациях ECMA-262 и ECMA-402.

TC39 официально выпустили ECMAScript 2017 в середине 2017. За последний год мы часто упоминали ECMAScript и не зря. ES6 – одна из свежих функций в мире JS. Он везде. ES6 сейчас так популярен из-за своих улучшений, которые сделали разработку удобнее (новый синтаксис и инновации). В ES появились такие вещи, как async\await, стрелочные функции, оператор расширения, структура классов и т.д.

Семантический HTML

Вы не видите визуальной разницы между div, footer, main and article, но она огромна. Семантический HTML очень важен, по многим причинам. Люди с ограниченными способностями используют скрин ридеры, а семантика влияет на порядок чтения и выполнения операций.

Для вас, как разработчика, это должен быть стандарт. Легко можно сделать семантический HTML блок, а не просто div внутри div. Так вы приводите разметку к единообразию, а пользователь получает хороший UX – например, h2 на всех страницах будет выглядеть одинаково.

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

Можно ли помещать div в параграф?

Когда использовать тег article?

Можно ли помещать main внутрь main?

Что лучше подходит к ссылке назад и вперед – тег a или тег button?

Ответы на множество подобных вопросов и рекомендации можно найти в спецификации HTML или на сайте W3C.

Куки, локальное хранилище или хранилище сессии

Куки, локальное хранилище и хранилище сессии широко используются. Часть из них используется почти на всех сайтах, которые вы посещаете.

С их помощью можно хранить локальные настройки типа размера колонок таблицы, порядка и любимых элементов. Локальные данные (локальное хранилище или хранилище сессии) влияют на конкретный браузер, на котором они сохранены.

Если необходимо влиять на все браузеры и машины пользователя, то данные нужно хранить на сервере.

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

Локальное хранилище и хранилище сессии не добавятся к запросам на сервер, к ним обращаются только на стороне клиента. Хранилище сессии доступно до тех пор, пока не закрыта вкладка в браузере.

Локальное хранилище доступно и при последующих сессиях в браузере.

Локальное хранилище может сохранять толкьо строковые ключи и значения, а куки может хранить сложные объекты. Эти 3 хранилища ограничены размерами. Локальное хранилище и хранилище сессии могут содержать до 5Мб, а куки до 4Кб. Есть и другие ограничения и различия. Это частая тема на собеседовании, она может быть решением на другие вопросы.

Заключение

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

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

Я расскажу вам про некоторые действия и источники, которые помогут упростить подготовку.

Dor Moshe

Источник: //hackernoon.com/

Редакция: Команда webformyself.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Источник: //webformyself.com/podgotovtes-k-sobesedovaniyu-na-veb-razrabotchika-otvety-na-voprosy-chast-1/

Эти задачи по PHP могут вас спросить на собеседовании!

Вопросы на собеседовании php

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

PHP является одним из самых популярных языков программирования и его явно можно назвать идеальным вариантом для изучения. Однако, если вы хотите найти работу в качестве специалиста по PHP, то к этому вам нужно основательно подготовиться – именно для этого в нашем руководстве мы собрали самые распространённые вопросы и задачи по PHP для вашего будущего собеседования.

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

Вопросы На Собеседовании и Задачи По PHP – Введение

Мы начнём рассматривать самые базовые вопросы собеседования, а уже затем решим некоторые задачи по PHP. Это поможет вам получить представление как о начальном этапе собеседования, так и более сложной его части. Продвинутые задачи по PHP потребуют от вас более обширных знаний, поэтому приготовьтесь! После окончания этого руководства вы будете чувствовать себя гораздо более уверенно.

Вопрос 1: Что Такое PHP?

Возможно, это и будет самым первым вопросом на вашем собеседовании. “Что такое PHP?” или “Что означает PHP?”.

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

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

Итак, что означает PHP? Что же, сама аббревиатура появилась от “Personal Home Page” или “Персональная Веб-Страница” – однако более правильным ответом будет ”Препроцессор Гипертекста”.

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

В основном PHP используется для сферы веб-разработки. Язык любят и ценят за простую возможность его внедрения в код HTML.

Вопрос 2: Что Такое PHP ‘PEAR’?

PHP PEAR является расширением самого языка PHP. Аббревиатура расшифровывается как “PHP Extension and Application Repository” или “PHP Хранилище Расширений и Приложений”.

PEAR в основном используется опытными программистами – он предлагает больше возможностей и функций, чем стандартная версия языка PHP.

Вопрос 3: Для Чего Используется PHP?

Существует довольно много применений для PHP. Давайте назовём лишь несколько из них:

  • Он может создавать, записывать и закрывать системные файлы.
  • Он может зашифровывать данные или закрывать возможность доступа других людей к некоторым частям вашего сайта.
  • PHP может использоваться для работы с файлами cookie – вы можете изменять и устанавливать их в соответствии с вашими потребностями.

Вопрос 4: Сколько Существует Поддерживаемых Версий PHP?

На данный момент таких всего четыре – PHP 5.6; PHP 7; PHP 7.1 и PHP 7.2.

Хотя чаще всего рекомендуется использовать самую новейшую версию (7.2).

Вопрос 5: Назовите Типы Ошибок в PHP

Существует три основных типа ошибок в PHP – замечания, предупреждения и фатальные ошибки.

Замечания являются наиболее распространённым типом ошибок – они не наносят серьёзного ущерба вашему коду. Предупреждения являются ошибками второго уровня, но они также не являются критическими для процесса выполнения кода. Однако в случае с фатальными ошибками дела обстоят иначе – как только случается фатальная ошибка, то процесс выполнения вашего кода немедленно прекращается.

Некоторые вопросы на собеседовании PHP и задачи по PHP могут потребовать от вас дать более детальные ответы на них – не беспокойтесь, некоторые из них мы разберём чуть позже.

Если вы ответите на вопрос как на примере выше, то чаще всего этого будет достаточно. Чтобы успешно пройти PHP собеседование, вы должны уметь давать четкие ответы, но разбавить их 1-2 предложениями с объяснениями не будет лишним.

Таким образом вы сможете показать, что знаете о чем говорите и вашим ответам можно доверять.

Вопрос 6: Какой Самый Распространённый Тег Для Встраивания PHP в HTML?

Самый распространённый тег:

Вопрос 7: Является Ли PHP Языком Программирования ООП?

ООП означает “объектно-ориентированное программирование”. Это тип языка программирования, который фокусируется на объекте задачи, со всеми ресурсами и функциями, направленными на создание и дальнейшую разработку.

PHP 5 считается отличным примером языка ООП – он обладает множеством особенностей, которые представляет ООП.

Вопрос 8: Как Вы Будете Использовать Метод ‘Final’?

Метод Final используется на методе с целью того, чтобы предотвратить его переопределение в будущем.

Вопрос 9: Имеет Ли PHP Множественное Или Единственное Наследование?

Задачи по PHP очень часто используют этот концепт, чтобы запутать кандидатов – на самом деле здесь всё просто.

В PHP вы можете расширять класс только из другого единственного класса – это означает, что PHP имеет единственное наследование.

Вопрос 10: Как Включить Использование ‘Image’ (Изображений) в PHP?

Для использования функции “image” в PHP вам нужно скачать библиотеку GD – графический инструмент для рисования, который позволит вам превратить данные в изображение.

Что же, это были вопросы на собеседовании PHP (самые базовые), которые вы можете встретить. Как мы ранее упоминали, они не должны вызвать у вас каких-либо проблем – подобные задачи по PHP созданы для того, чтобы проверить, действительно ли вы что-то знаете и работодатель не зря потеряет время на проведение дальнейшего собеседования.

Теперь, мы рассмотрим более продвинутые PHP задачи и вопросы – этот этап собеседования чаще всего начинается тогда, когда работодатель убедился в наличии у вас определённых базовых знаний. Эти вопросы в основном требуют практического написания кода или более детального объяснения.

Вопрос 11: Как Бы Вы Подключили Базу Данных MySQL к PHP?

Сделать это можно с помощью подобного кода:
connection mysql_connect(pepper, Daniel, 12345, Applesauce, client_flag);
В данном случае, “pepper” является хостом, тогда как “Daniel” именем пользователя, а числа от 1 до 5 примером пароля. “Applesauce” представляет собой имя базы данных, к которой вы планируете подключиться.

Вопрос 12: Как Много Объектов Вы Можете Создать в PHP?

Бесконечное количество. Хотя подобные задачи по PHP не могут обойтись без различных уловок.

Если вы хотите начать создавать объекты в PHP, то для начала вам нужно будет определить их класс. Как только это будет сделано – у вас появится возможность создавать бесконечное количество объектов в этом классе.

Пример:

class Tires { }

$car = new Tires();

Вопрос 13: Объясните Работу ‘_construct()’ и ‘_destruct()’

В PHP, объекты принадлежащие классам, имеют встроенные опции Construct и Destruct.

Как только вы создадите объект внутри класса, то внутри него будет автоматически включена опция construct. Это позволит объекту копировать параметры и настройки класса и автоматически назначать их для себя.

С другой стороны, если включена опция destruct, то она автоматически будет удалять все настройки и параметры нового объекта.

Подобные задачи по PHP тесно связаны с темой ранее упомянутого ООП (объектно-ориентированного программирования). Это может быть отличным примером работы PHP в качестве ООП языка.

Вопрос 14: Каковы Различия Между ‘==’ и ‘===’?

Оператор == (equal) должен быть использован тогда, когда вы хотите проверить равны ли значения двух отдельных операторов или нет. Оператор === (identical), с другой стороны, должен быть использован тогда, когда вы хотите получить очень детальный ответ – он проверяет не только значение, но и типы операндов.

Вопрос 15: Можете Ли Вы Установить Максимальное Время Выполнения в Скрипте PHP?

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

Иногда, когда вы запускаете ваш код, вы можете столкнуться с ошибкой, которая предупредит вас о превышении ограничения ‘maximum execution time’ (максимального времени выполнения). Эта ошибка предотвратит дальнейшее выполнение вашего кода, что приведёт к остановке всей программы.

Чтобы избежать этого, вам нужно внедрить команду set_time_limit(0) в самом начале вашего кода. Другим способом для этого является внедрение той же команды в файле .ini.

Вопрос 16: Когда Следует Использовать ‘@’?

Команда “@” используется для того, чтобы избежать проблем в вашем коде, просто давая PHP возможность справляться с ними самому.

Вам нужно будет лишь добавить команду “@” в начало строки с кодом, которая вызывает ошибку. После добавления, “@” передаст все ошибки, которые провоцирует эта строка кода, напрямую PHP.

Вопрос 17: Как Найти Длину Массива?

Чтобы найти длину массива, вам просто нужно использовать данный код:

Здесь результатом будет 4.

Предложение “PHP is really cool” состоит из 4 слов, что будет равно результату. Это означает, что код работает!

Вопрос 18: Как Передаются Объекты в PHP?

Это ещё один вопрос, который поможет вам пройти PHP собеседование с уклоном на ООП – в PHP объекты могут передаваться только по значению.

Вопрос 19: Сравните Функции ‘require()’ и ‘require()’ в Плане Того, Как Они Справляются с Возможными Проблемами Внутри Кода

Команда include() имеет не самый высокий приоритет, поэтому, если выполнение кода неудачно завершится в точке, где находится include(), то она отправит лишь предупреждение и продолжит выполнение.

Что касается require(), то здесь совсем другая история. Как понятно из названия, данная часть кода требуется для загрузки программы. Если ошибка произойдёт в месте, где находится require(), то код выведет фатальную ошибку и произойдёт сбой.

Вопрос 20: Как Экспортировать Данные PHP в Excel?

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

Чтобы экспортировать данные PHP в таблицу Excel, вам нужно будет изменить формат файла. Одним из самых распространённых типов файлов будет файл в формате .csv.

Общие Советы

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

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

Тем не менее, если вы запомните задачи по PHP из этого руководства, то повысите ваши шансы успешно пройти PHP собеседование.

Давайте перейдём к чему-то менее техническому – нескольким общим советам и хитростям, которые вы можете использовать перед, во время и после вашего собеседования.

Сон

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

Вы можете быть невероятно хороши в программировании на PHP и иметь обширные знания в сфере IT – но это не будет иметь значение, если вы будете выглядеть как человек, который не спал с 2003 года.

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

Доверились ли бы вы стоматологу (каким бы профессионалом он ни был), который по виду не спал всю ночь?

Изучение

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

Практика

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

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

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.