Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и есть возможность сформировать некий единый список необходимых знаний для успешного трудоустройства. Так что же должен уметь битрикс-программист с точки зрения работодателя?
Лирическое отступление
В моей выборке организаций была всего лишь одна веб-студия. Вполне возможно, что это как-то повлияло на темы общения с техническими специалистами, т.к. специфика производства «сайтов на поток» отличается от поддержки\доработки фиксированного пула проектов. С другой стороны, технологии используются одни и те же, и большой разницы быть не должно.
Вообще, спрос на битрикс-программистов сейчас необычайно велик. Потратив 2-3 месяца на изучение особенностей системы, можно расчитывать на предложение от какой-нибудь крупной веб-студии с интересными проектами. Есть и негативный момент — в битриксе нет ООП, практики применения паттернов проектирования, современных подходов к программированию (есть шанс что в новом ядре все это будет). В 99% проектов нет необходимости писать SQL-запросы, т.е. научиться в процессе работы практически невозможно.
Общие вопросы
Практически везде спрашивают про опыт работы с высоконагруженными проектами. Если были, то какая на них посещаемость и что делалось для обеспечения безотказного функционирования.
Встречались стандартные вопросы типа «Чем InnoDB отличается от MyISAM» или «Чем PHP4 отличается от PHP5», и даже холиварный «Чем интерфейс отличается от абстрактного класса в PHP». На эти вопросы нужно знать ответы.
Крайне необходимо уметь рассказать про отличия между различными типами join’ов. Чаще всего просят написать какой-нибудь не слишком сложный запрос (иногда вместе со структурой таблиц) с использованием JOIN и HAVING.
Почему-то считается, что программист должен уметь верстать. Поэтому будьте готовы к вопросам про селекторы и тэги, html5 и css3. Вообще, html5 и css3 — это тренды в веб-строительстве, почти все хотят чтобы программист в них разбирался, забывая про такую профессию как верстальщик. На мой взгляд, в веб-студиях это осознают лучше.
Нативный javascript требуется не везде, достаточно хорошо ориентироваться в jquery.
Могут попросить реализовать какой-нибудь известный алгоритм — факториал через рекурсию или сортировку массива.
Регулярные выражения для простейших случаев тоже знать полезно.
Битрикс Управление Сайтом (БУС)
Обязательно знать что такое шаблоны сайтов и компонентов, как они хранятся и используются. Нужно уметь писать свои компоненты, быть готовым назвать, что делает последний самостоятельно написанный. Опыт разработки модулей для маркетплейса хорошо поднимет ваш авторитет в глазах собеседующего:)
Инфоблоки. Чем отличаются обычные от 2.0 на уровне хранения в базе данных и на уровне доступа через API. Знать примеры выборок через GetList. Было задание написать sql-запрос, выбирающий данные из инфоблоков разного типа.
Кэширование — авто, управляемое, php, html, их отличия и условия применимости. По-хорошему не стоит считать себя битрикс-программистом без уверенного знания ответов на этот и предыдущий вопросы.
Встроенные средства диагностики и умение находить узкие места в коде, тяжелые запросы, тормозящие страницы и т.д.
Рассказать, что не нравится в битриксе и какие компоненты\модули являются обузой для системы в целом.
Хорошо если есть портфолио. Часто нужно рассказать про самый интересный проект, в котором довелось участововать. Какие нестандартные решения были использованы.
Корпоративный портал
Очень и очень перспективное направление. Знающих людей мало и они в цене. Можно смело позиционировать себя как «специалиста по внедрению корпоративных порталов». Вопреки мнению менеджмента битрикса о том, что все необходимое есть в коробке — это не так. Организации хотят интеграции со своими crm и erp системами в различных вариациях. Опыт работы с SOAP в корппортале — половина трудоустройства:) Другое дело, что кастомизировать портал очень неприятно и горы «костылей» не избежать. В общем, удовольствие для избранных.
Забавно, но 90% компаний первоочередной задачей ставят «разобраться с тормозами». Так что навык администрирования серверов будет большим плюсом.
Примерно такой список навыков требуют крупные компании при рассмотрении кандидатов. Естественно, в каждом конкретном случае есть что-то отличное, но в общем случае знать вышеприведенное очень желательно.