Некоторое время назад мне довелось пройти больше десятка собеседований на позицию 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% компаний первоочередной задачей ставят «разобраться с тормозами». Так что навык администрирования серверов будет большим плюсом.
Примерно такой список навыков требуют крупные компании при рассмотрении кандидатов. Естественно, в каждом конкретном случае есть что-то отличное, но в общем случае знать вышеприведенное очень желательно.
Больше статей и материалов по web-разработке в tg-канале - подписывайтесь!
Подписаться в telegram
Надо подтянуть мне матчасть, а то на половину вопросов внятного ответа не дал бы :(
А Вы сами писали компоненты для Маркетплейс? Они опубликованы?
Укажите какой.
Есть один опубликованный http://marketplace.1c-bitrix.ru/solutions/av.ibprops/
Да это бред сидой кобыли. Если где то требуеться специалист, то они не будут слишком предираться, а просто попросят вас сделать некую работу и уже потом будут судить по ее исполнении и времини которое вы потратили на нее.
В случае с битриксом тестовое задание не так эффективно, как проверка теоретических знаний. Знание особенностей CMS позволит писать быстрее и качественнее, без «велосипедов», которые сложно или почти невозможно поддерживать. Что, собственно, и нужно работодателю.
Ох… надо бы подтянуться =( а то на некоторые вопроы я бы затупил..
помогите пройти тесты по битрику:
вопросы:
Обмениваться информацией с контрагентами организации в рамках корпортала можно:
Выберите ответ:
Через ЖЛ групп экстранета
Через почту
Через десктопное приложение
Через Веб-мессенджер
С помощью Wiki можно:
Выберите ответ:
Запрещать редактирование статей для отдельных сотрудников или групп сотрудников
Сравнивать версии страниц
Восстанавливать старые версии текста
Голосовать за статьи
Обсуждать статьи
Закрывать просмотр определённых статьей для отдельных сотрудников или групп сотрудников
Создавать и править статьи
Вести историю изменений
Что может инструмент Учёт рабочего времени?
Выберите ответ:
Планировать задачи на день
Учитывать рабочее время сотрудников
Настраивать параметры рабочего дня
Подтверждать изменения рабочего времени начальником для своих подчинённых
Анализировать причины неполного использования рабочего времени
Изменять результаты учёта самим сотрудником
Хорошая подборка.
Я бы еще добавил про использование при разработке:
— локальной копии проекта (негоже кодить на боевом)
— IDE, в частности PhpStorm (очень многие работают в Notepad++)
— систем контроля версий, в частности git (многие только слышали)