Следующие вопросы по PHP задавались в 2013 году, некоторые из них неактуальны по состоянию языка на текущий год.
• Поддерживает ли PHP стандартный тип integers, больший, чем 32 бита?
• Есть ли в PHP тип unsigned integers?
• Как в PHP можно получить «тело» http-запроса, отличного от типа POST? Например, сделайте это нативными для PHP средствами для запросов, выполненных методом PUT.
• Поддерживает ли PHP методику duck typing? (Кстати говоря, наверное, в связи с популярностью Python в Google я заметил повышенное внимание к вопросам, связанным с латентной типизацией, я получил несколько вопросов от разных людей именно на эту тему.)
• Пожалуйста, как специалист по PHP попробуйте переписать следующий типичный фрагмент PHP-кода, взятый нами для примера из популярного блогерского движка WordPress, чтобы PHP, SQL и HTML не были перемешаны все вместе.
Таких вопросов может быть много — от менее болезненных до более провокационных, в зависимости от компетенции и темперамента конкретного ведущего интервью.
В чем главная суть подобных эскалаций в интервью?
Никто на вас не давит и не язвит над вашими персональными вкусами, отношение всегда уважительное и терпеливое (я не заметил, чтобы хоть раз кто-то перебил или остановил мои объяснения, даже когда я явно отклонялся от темы). Здесь важно просто уметь отстаивать свою точку зрения и самому не делать взаимоисключающих утверждений. Иначе говоря, никто не против того, чтобы программировать именно на PHP, важно просто суметь объяснить, что это ваша сознательная позиция, что так делать действительно лучше и эффективнее. Ваш сознательный выбор и аргументированные предпочтения даже в мелочах, таким образом, подчеркивают ваш профессионализм и выдают опыт.
Обратите внимание: ответы на приведенные провокационные вопросы потенциально могут тянуть за собой бороду интересных работодателю следствий насчет вас как специалиста и человека вообще, ваших личных взглядов на жизнь, индивидуальных человеческих особенностей и предпочтений, выходящих далеко за пределы лишь одной профессиональной сферы.
Получается, что, находясь на таком собеседовании, вы словно подопытная мышь, которую буквально под микроскопом внимательно изучают Люди в Белых Халатах. Инициатива не принадлежит вам, вы лишь безвольный игрок в чужой программе?
Я бы не был столь категоричным, отчасти это ваш собственный личностный выбор, который выходит далеко за рамки лишь интервью и трудоустройства в Google. Если вы посмотрите вокруг себя, то в равной степени увидите в жизни как обреченных и покорных людей на коротком поводке контракта, так и успешных и независимых создателей собственного дела и новых рисковых стартапов, и все это в рамках одной и той же среды.
Что касается моих курсов, я часто отрабатываю со своими студентами домашние заготовки в стиле «удиви меня» для органичного переключения контекста разговора и перехвата роли ведущего. Этот прием позволяет проявить вам свои самые сильные стороны, ведь, как хорошо известно, самая лучшая импровизация — заранее заготовленная импровизация. И эта одна из моих любимых игр на площадке собеседований Google. Снова приведу типичный набор ситуаций из личного собеседования, чтобы проиллюстрировать, что я имею в виду.
Двигаясь по темам в резюме, которыми я занимался, мы довольно монотонно и поверхностно прошли по ООП и различным паттернам программирования, пока не дошли до моего любимого аспектноориентированного программирования (АОП). Здесь сразу стало очевидно, что настрой ведущего и его коллег поменялся, он попросил рассказывать все максимально подробно, потому что «это интересная тема». Отвечая на многочисленные встречные вопросы насчет причин моего интереса к функциональному программированию, АОП и событийно-ориентированному программированию (СОП), нас постепенно вынесло на другую логичную тему — недостатки методологии объектно-ориентированного программирования как таковой, которая в наше время стала своего рода безальтернативным мейнстримом в индустрии программной разработки.
Я прошелся по калейдоскопу из мнений ряда крупных фигур в мире программирования, в частности перечислил аргументы хорошо известных ярых противников ООП: Дейкстры, Ричарда Столлмана и Никлауса Вирта, по памяти процитировал причины разочарования в объектах Степанова (создателя STL) и общей проблематике рефакторинга как неизбежного диалектического следствия любой разработки, центрированной на ООП-стиле. Также рассказал про интересную критику ООП от Джоэля Спольского, о его похождениях в Microsoft и тамошних «архитектурных астронавтах», замучивших навязыванием этой методологии другим.
Читать дальше
Конец ознакомительного отрывка
Купить книгу