PHP входит в число самых популярных языков программирования. Этот язык доминирует в вебе: по данным W3Techs, в ноябре 2020 года его используют 79% сайтов в интернете. Тем не менее в Сети можно встретить разговоры и холивары на тему «жив или мёртв PHP». Эта ситуация вызывает много вопросов. Часть из них удалось обсудить с разработчиком Mail.ru Group Ильёй Зобенько.
Об эксперте: Илья Зобенько работает на проекте «Юла» в Mail.ru Group. Опыт разработки на PHP — 6 лет. Послужной список:
- В данный момент — разработчик в Mail.ru Group
- Технический консультант Coral Club International
- Ранее сооснователь и технический директор стартапа Odus, в рамках которого с партнерами стал финалистом акселератора PhA от Data Monsters
-
Ранее директор по информационным технологиям компании Экомилк
- Более 6 лет опыта работы на PHP
-
Член судейского совета хакатона HelixHacks
— Илья, добрый день! Два слова о том, откуда возникла идея разговора с вами. У нас в Хекслете есть профессия «PHP-программист», здесь учатся ребята, которые с нуля изучают программирование. И есть люди, которые уже завершили профессию, которые где-то работают. Людям интересно, что происходит в мире PHP, что происходит с языком и сообществом. Особенно этим интересуются новички. Практически все, кто связан с программированием, видят, что происходит на профильных ресурсах, в блогосфере, на том же Хабре — это неоднозначное отношение к PHP. Поэтому хотелось бы обсудить этот язык ещё раз, поговорить о его состоянии, о ситуации на рынке труда, об инструментах разработки и сфере применения PHP. Но для начала расскажите, пожалуйста, нашим читателям о себе.
— Добрый день! Меня зовут Илья Зобенько, в данный момент работаю разработчиком в Mail.ru Group, это одна из крупнейший IT-компаний России. Работаю в проекте «Юла», пишу бэкенд на PHP. Раньше преимущественно управлял компаниями или командами разработки. Был опыт основания стартапа, который тоже писали на PHP, на фреймворке Symfony. Также выполнял роль технического директора.
Начинал с должности системного администратора. В это время изучал язык с нуля и применял его для реализации подручных инструментов для администрирования и для проверки простых гипотез.
Может, это звучит странно, но считаю, что выбор PHP стал одной из причин быстрого карьерного роста. Владение этим инструментом позволило мне очень тесно работать с руководством. С моей стороны было много инициатив, они быстро реализовывались. За два года я стал руководителем отдела IT, ещё через год стал заместителем генерального директора по IT.
«Языки умирают, когда перестают развиваться или когда их использование становится неоправданным»: о ситуации в мире PHP
— Илья, предлагаю в начале нашего разговора обсудить состояние PHP. Сейчас 2020 год, скоро начинается 2021. Практически весь интернет в 2020 году работает на PHP — это факт. Один WordPress занимает огромную долю рынка, на нём работает каждый третий сайт. Как вообще получилось так, что где-то говорят о неактуальности языка, обсуждают, жив он или нет?
— Тема действительно часто поднимается в последнее время, и как PHP-программист я обращаю внимание на подобные обсуждения. В таких разговорах есть что-то пугающее, но на самом деле всё не так уж плохо.
Как уже было сказано, PHP — очень популярный язык. Но при этом у него достаточно спорная репутация. Возможно, это подталкивает людей к разговорам о неактуальности языка. Иногда складывается впечатление, что отрасли нужен какой-то козёл отпущения, и на эту роль выбрали PHP.
Если обратиться к статистике, которую делает Stackoverflow, PHP хоть и теряет позиции, но все ещё остаётся среди лидеров: в этом году, если не ошибаюсь, у него восьмое место. А тенденция к снижению позиций связана с тем, что появляются новые игроки в сфере веб-разработки.
Если заглянуть в историю, например, посмотреть на падение популярности Pascal или Delphi, становится понятно, что языки умирают, когда перестают развиваться или когда их использование становится неоправданным. В PHP в этом плане всё хорошо.
— Илья, вы сказали, что языки умирают, когда перестают развиваться или когда их использование становится неоправданным. А вот какой-то стёб по отношению к PHP со стороны разработчиков — он оправдан или нет?
— Такое отношение мне кажется неоправданным. Думаю, что большая часть разработчиков вряд ли назовёт серьёзные недостатки PHP. Чаще всего люди говорят, что PHP медленный, что там код низкого качества. Эти вещи, конечно, имеют какой-то корень в прошлом.
Мы знаем, что PHP очень быстро стал популярным. В конце 90-х он был очень популярным, потому что стал простым инструментом, на котором люди могли быстро начинать зарабатывать деньги. Разработчики ставили на первое место зарабатывание денег и жертвовали качеством кода. Поэтому появилось много низкокачественного кода, который создал негативную репутацию PHP.
Надо понимать, что благодаря своей гибкости язык не стимулирует разработчиков обращать много внимания на плохой код. Качество регулируется исключительно правильно построенными процессами разработки в командах. Также много зависит от комьюнити, от того, какие оно продвигает практики. Поэтому сейчас ситуация улучшилась, но плохого кода всё ещё достаточно.
Подводя промежуточный итог, скажу, что хейт в отношении PHP сейчас продолжается по инерции. Он всегда был. Сейчас причин для такого отношения практически не осталось. Но по инерции кого-то надо винить.
— То есть мы можем сказать, что язык развивается?
— Да, безусловно.
— А вот версии PHP 7.4, 8 — как вам кажется, они в правильном направлении ведут язык?
— Думаю, что да. Язык становится более современным. Можно считать сильной позицией то, что идёт упор на повышение производительности. Это можно заметить с версии 7.0, ведь как известно, разница между 5.6 и 7.0 получилась очень большой в плане производительности, ядро удалось оптимизировать очень сильно. После этого PHP по итогам разных тестов даже обогнал Python, а это, я считаю, серьёзное достижение.
— Есть шуточная классификация языков, возможно слышали: одни языки все хейтят, а на других никто не пишет. Согласны с такой классификацией?
— Скорее нет. На ум приходят сразу несколько языков программирования с безупречной репутацией, которые достаточно широко используют. А вот PHP я бы отнёс в категорию захейченных популярных языков.
— А какие языки имеют безупречную репутацию?
— C++ очень широко используется, хотя ходят слухи, что он теряет популярность. Но в энтерпрайзе и в геймдеве всё ещё широко применяется C++.
— Илья, давайте посмотрим на PHP глазами разработчика. Насколько комфортно на этом языке писать по сравнению с другими языками?
— Сам по себе язык достаточно удобный, это обусловлено C-подобным синтаксисом. Если рассматривать PHP как инструмент для входа в профессию разработчика, можно заметить ещё два важных преимущества — интерпретируемость и динамическая типизация. Благодаря этим преимуществам язык легко изучать, и он становится трамплином в профессию.
Комфорт, конечно, не ключевой критерий выбора, особенно если говорить о первом языке. Но этот критерий всё равно достаточно важен.
— Немного отвлечённый вопрос: есть рекомендации изучать буквально с первых шагов в разработке языки с другой парадигмой, с другой системой типизации и так далее. Например, изучает человек PHP, в котором динамическая типизация, для расширения кругозора ему надо учить Java или другой язык со статической типизацией. Изучает он какой-то объектно-ориентированный язык в качестве основного — надо идти и заглядывать в Clojure, чтобы познакомиться с функциональным программированием. Вы согласны с такими рекомендациями?
— Да, я сталкивался с таким мнением. В принципе, даже профессиональная разработка на PHP постепенно к этому сводится. Конечно, полностью избавиться от динамической типизации в PHP невозможно. Но во взрослых серьёзных командах часто применяется строгий режим, «хинт тайпы», возращаемые типы. И здесь разработка на PHP становится похожей на разработку на языке со статической типизацией.
Может быть, на это не надо обращать внимание в самом начале обучения. На первых порах стоит уделять внимание основным принципам разработки, возможно, попробовать применять какие-то паттерны, чтобы привыкнуть к хорошим практикам, познакомиться с архитектурой, а не сильно вдаваться в нюансы разницы языков.
— Илья, PHP изначально задумывался как шаблонизатор для вывода HTML. Я слышал мнения опытных разработчиков, которые говорят, что на PHP трудно писать сложную бизнес-логику, так как язык для этого не предназначен. Так ли это? Вы как специалист, который работает в крупной компании и разрабатывает сложные решения на PHP, согласны с этим?
— Да, действительно, PHP разрабатывался как шаблонизатор. Более того, в документации первых версий была информация, что этот инструмент не для программистов, точнее, для непрограммистов.
Сейчас всё изменилось. Язык больше не используется как шаблонизатор. Чаще можно увидеть, что на нём реализуется только бэкенд с API, а уже весь фронтенд берут на себя современные JavaScript-фреймворки и библиотеки.
Если вернуться к вопросу о бизнес-логике, то, честно говоря, такой проблемы не наблюдал, от коллег тоже не слышал.
— Следующий вопрос будет интересным для новичков, может быть, для ребят, которые только выбирают язык. Поделитесь пожалуйста своим опытом, расскажите, что именно вы делаете на PHP в крупной компании? Можно подробно рассказать, какие это продукты, для чего они нужны.
— Проектов в моей карьере было много. Это были и корпоративные решения, и популярные highload-продукты. Одной из первых приходит на ум система документооборота, которая писалась практически как эксперимент. Компания, в которой я работал, рассматривала покупку готового решения, но оно было дорогим. Поэтому я сам в порядке эксперимента попробовал закрыть главную потребность, связанную с документооборотом.
Эксперимент оказался удачным, мы набрали команду, которая развивала этот продукт. Это важный для меня пример, потому что здесь PHP идеально подошёл в качестве инструмента, он позволил быстро проверить гипотезу. Гибкость языка позволила развивать проект и быстро обучать команду.
Тогда же пришло понимание, насколько важно правильно построить процесс обучения. В тот момент информацию было не так удобно получать как сейчас, когда есть очень много хороших онлайн-школ, курсов. Тогда, к сожалению, чаще всего попадался на глаза веб-курс от Попова, который учил не очень правильным практикам. Эти практики, наверное, тоже внесли вклад в создание негативной репутации языка.
Другой проект — это стартап, платформа для создания диалоговых ассистентов. Они могли в чатах, по телефону отвечать, понимать контекст, запоминать и так далее. Чаще это описывают термином «чат-бот». На PHP здесь реализовали бэкенд сайта. А в первых версиях это был бэк и фронт. Потом решили сделать фронт современным и перешли на React. А бэкенд остался на Symfony, этот фреймворк отлично здесь себя показал.
Ещё один крупный проект на PHP, с которым я работал — ecommerce-решение для управления MLM-структурой. Самое интересно, что было в этом проекте — миграция с «Битрикса». Может я кого-то обижу, но в моих глазах репутация у «Битрикса» сомнительная. Одной из задач на проекте была миграция на фреймворк Symfony и доработка функционала. Получился достаточно сильный проект, работает хорошо и сегодня.
Ну и конечно же «Юла», один из проектов Mail.ru Group. Он создавался как стартап. Я думаю, это и стало причиной использования PHP на этом проекте. Стэк технологий здесь очень широкий, очень много решений используется. Основной бэкенд «Юлы» написан на PHP и на фреймворке Symfony.
— Илья, вы несколько раз сказали, что PHP хорошо подходит для стартапов, для быстрого прототипирования. Значит ли это, что если проект уже большой, какой-то энтерпрайз, то PHP может не подойти?
— Думаю, нет. Отличный пример, который уже все наверное знают — Facebook. Он, при его огромных нагрузках, работает на PHP. Да, команде Facebook приходилось применять какие-то сложные решения. Например, когда использовалась версия PHP 5.4 или 5.6, команда Facebook написала свой интерпретатор HipHop, чтобы ускорить язык. Но седьмая версия уже не требует таких решений, она работает быстрее, чем более ранние версии с HipHop. Это пример того, что продукт может работать на PHP очень долго.
Есть определённые тенденции, которые так или иначе уводят от PHP, например, в сторону микросервисной архитектуры. Сейчас очень популярны схемы перехода в Go. Но они не всегда оправданы. По-моему, на PHPConf есть доклады о том, когда оправдан переход на микросервисы, когда хорошо оставаться на монолите. Монолит, на самом деле, это не так уж и плохо.
— Расскажите пожалуйста, как крупные компании, такие гиганты, как Mail.ru, вообще выбирают язык? Почему Mail.ru выбирает PHP, а не какие-то хайповые, «модные-молодёжные» языки?
— Думаю, это связано с тем, что такие крупные компании как Mail.ru часто запускают проекты в режиме стартапов. Здесь важна именно скорость. Нужно проверить одну гипотезу, вторую, третью. PHP в этом плане хорошо подходит. Иногда выбор обусловлен языком CTO и core team. На чём эти люди начинают писать продукт, на том они и остаются. Но чаще всего выбор PHP обусловлен скоростью.
«В целом PHP-программисты без работы не сидят»: о рынке труда
— Давайте поговорим о рынке труда, новичкам это интересно. Как вы думаете, для PHP-программистов, особенно для начинающих, рынок труда благоприятный? Насколько легко начинающему программисту без опыта коммерческой разработки найти работу?
— Думаю, найти работу достаточно просто. Это обусловлено целым рядом факторов: начиная с популярности языка и заканчивая тем, что на рынке есть много компаний и команд с разным уровнем требований. Например, мне кажется, что если есть компания, которая не производит IT-продукты, а использует PHP как вспомогательную область, для поддержки образа в интернете, то требования в такой компании обычно достаточно низкие. То есть они стараются брать хороших программистов, но не перебарщивают в этом плане. И таких компаний очень много. Такую работу найти очень легко.
Также есть фриланс. Это неоднозначная тема.
В целом PHP-программисты без работы не сидят. Даже когда-то была шутка, что PHP-программисты так сильно хотят денег, что все переменные объявляют символом $.
— А почему фриланс — неоднозначная тема, что с ним не так?
— Фриланс — хороший способ для быстрого старта и применения знаний на практике. Но, как мне кажется, главный двигатель профессионального и личностного роста — это командная разработка.
Может быть я снова кого-то обижу, но на собеседованиях мы часто сталкивались с фрилансерами, для которых главным приоритетом был заработок и скорость. Это всегда сводится к тому, что решения начинают клепаться, используются шаблоны, заготовки.
Заказчики на фрилансе видят только внешнее решение, поэтому у фрилансера нет потребности делать внутри красиво и масштабируемо. Когда такие кандидаты переходят с самостоятельной деятельности на командную работу, они очень долго адаптируются. Если в команде не налажен флоу, если нет код-ревью, этот плохой код может распространяться и наносить ущерб проекту.
— А мы можем сказать, что новичку нужно избегать фриланса и искать работу в команде, чтобы расти?
— Да, на самом деле я в этом убеждён. Командная разработка даёт незаменимый опыт.
— Илья, а кто вообще нанимает новичков? Куда пойдёт работать начинающий PHP-программист? Возможно, это студии, которые занимаются заказной разработкой, продуктовые компании, энтерпрайз?
— Это и продуктовые компании, и студии. Но, кстати, сейчас есть тенденция, она пока не явная, но всё же — студии стали разрабатывать сайты на веб-конструкторах, на том же Wix, Тильде. То есть они используют no-code решения. Поэтому веб-студии могут в перспективе реже нанимать PHP-программистов. А вот продуктовые команды — да, здесь эти специалисты нужны.
В энтерпрайзе PHP практически не используются. Есть редкие случаи, я знаю как минимум две компании, которые построили энтерпрайзные решения на PHP. Но чаще всего это продуктовые команды.
— В своей компании вы участвуете в найме. Скажите пожалуйста, какие знания и умения нужны новичку, чтобы уверенно претендовать на позицию джуниор-разработчика?
— Надо сказать, что градация программистов очень широко распространена. Но чётких границ почему-то нет. Принимая джуна, я бы сильно не мучал его вопросами по языку. Для меня было бы важным, чтобы человек уверенно владел базой, то есть я должен убедиться, что кандидат может уверенно использовать базовые инструменты языка без гугления. То есть не обязательно знать всё, но надо уверенно владеть каким-то минимумом.
Также для меня важны хорошие знания PSR. Это может звучать достаточно странно, потому что PSR по сути — это стандарт, который больше распространяется в режиме рекомендаций. Но я считаю, что PSR — это первый шаг, который подталкивает к чистоте кода.
Также я обратил бы внимание на понимание Git. Не знаю, почему именно, но когда мне задают в команде слишком простые вопросы о Git, это вызывает вспышки гнева. Конечно, они контролируемые :-)
Наверное, это связано с тем, что Git — достаточно простой инструмент. Его легко изучить. Он хорошо задокументирован, визуализирован. Есть много графических интерфейсов для работы с Git. Работа с Git — это базовые или фундаментальные навыки.
— Илья, в моём понимании навыки работы с Git приобретаются с опытом. Человек осваивает этот инструмент, когда работает в команде, когда имеет дело с ветками, когда сталкивается с конфликтами... То есть на одной теории здесь далеко не уедешь. Вы считаете, что новичок должен прийти уже со знаниями этих нюансов, или достаточно понимать принципы, уметь сделать коммит в main?
— Да, я, конечно же, говорю о минимальных знаниях, о понимании того, как всё устроено, о способности посмотреть в лог, создать новую ветку, сделать commit, merge, push, pull. Этого достаточно. Даже исправление прошлого коммита — это уже навыки, которые специалисты приобретают на рабочем месте. А базовые навыки можно наработать в соло-разработке. Да, будет меньше вероятность merge-конфликта, но всё ещё она может быть. И такая рекомендация — я бы смотрел в сторону Git-flow. Это достаточно простая идея, и к ней хорошо привыкать с самого начала пути в разработке. Я и мои коллеги использовали её на своих пэт-проектах, причём не в качестве набора инструментов, а в качестве идеологии.
— А должен ли джуниор-разработчик уметь работать с фреймворками?
— Обычно такие ситуации решаются по-другому. Если нужен специалист, который работает с Symfony, мы ищем Symfony Junior Developer. Думаю, это отдельная история, так как при всей простоте изучения с учётом наличия материалов фреймворки — достаточно объёмные инструменты, которые требуют длительного изучения. Как правило, их приходится изучать даже дольше, чем сам язык.
— Два слова о справедливости или несправедливости. Если посмотреть на рынок труда, на рейтинги, видно, что PHP-программисты всё-таки зарабатывают меньше, чем программисты на некоторых других языках, например, на Python. Как вы думаете, почему так произошло и есть ли вероятность изменить эту ситуацию в обозримом будущем?
— Да, действительно, такая ситуация есть. Недавно готовил статистику для вебинара на тему жив или мёртв PHP. Уровень зарплат по США и Европе отличается в меньшую сторону. Сложно сказать, чем это обусловлено, потому что сложно понять, как эта статистика собиралась.
Я предполагаю, что ситуация связана с областью применения. PHP — язык для веб-разработки, а тот же Python применяют и в веб-разработке, и в аналитике, и в машинном обучении. Возможно, эта разница связана с тем, что берутся разные области и по ним сравнивается зарплата.
Как исправить ситуацию? Думаю, это возможно, если комьюнити PHP-разрабочиков будет более серьёзно относиться к профессиональному росту. Я говорю, конечно, не о той части комьюнити, которая опытная и уделяет много внимания качеству, а о той, которая предпочитает быстрый заработок и не обращает достаточно внимания на качество.
— А как бы вы оценили комьюнити PHP-разработчиков? Оно дружелюбное, оно помогает развивать язык? Возможно, оно разрозненное, здесь нет ядра?
— Комьюнити очень сильное. Проводится много конференций. Только в России PHPConf уже второй раз пройдёт. Очень общительные ребята, много спикеров, которые внесли большой вклад как в развитие отдельных фреймворков, так и в развитие языка в целом. Поэтому да, комьюнити у PHP сильное.
— Илья, если бы к вам пришёл друг и спросил, как ему научиться программировать на PHP, что бы вы ему посоветовали?
— Хороший вопрос. Думаю, я бы просто дал бы какие-то материалы, это был бы видеокурс. Или просто посоветовал бы какую-то школу. А потом помогал бы, показал бы примеры проектов и инструментов, которые стоит использовать.
— А с практикой как дело обстоит? Возможно, здесь что-то можно порекомендовать?
— Возможно, это прозвучит противоречиво с учётом того, что я сказал раньше, но можно первые несколько проектов взять на фрилансе. Это как минимум позволит получить опыт, взять рабочую идею и реализовать её.
— А к опенсорсу как вы относитесь? Например, у нас есть опенсорс-проект Hexlet SICP, он на Laravel сделан. Студенты, если хотят, практикуются на этом проекте.
— Очень хорошо, что вы затронули эту тему. Хорошо отношусь к опенсорсу. Это отличная возможность погрузиться в командную разработку. Как правило, требования к опенсорс-решениям чуть ли не выше, чем к коммерческим продуктам. Поэтому опенсорс может быть сильным образовательным бустом и давать интересный опыт.
«С использованием фреймворков язык просто расцветает»: о разработке на PHP
— Илья, предлагаю перейти к обсуждению разработки на PHP. В связи с этим вопрос: у нас есть огромный пласт веба, который работает на PHP. В тех же Соединённых Штатах, в Европе я видел много компаний, учреждений, университетов, у которых сайты на WordPress. Большие магазины работают на WooCommerce, на Opencart. Кажется, последний у нас более популярный. Я бы сказал, что веб принадлежит PHP. Как вы думаете, есть какие-то обстоятельства, которые могут в обозримом будущем поменять ситуацию, пошатнуть позиции PHP в вебе?
— Думаю, да, ситуация может измениться. Вопрос в том, как. Да, CMS занимают уверенную позицию. Даже когда у меня появляется в очередной раз мысль, что надо сделать личный блог, выбор всегда падает на WordPress. Просто потому, что WordPress в первую очередь ассоциируется с блогом. Превращение его в ecommerce-решение — это совсем другая история.
Движки держатся уверенно. Но ситуацию могут поменять новые тенденции в разработке. Например, мы уже упоминали, что в последние годы быстро растёт популярность SaaS-решений типа Wix и Tilda. С помощью этих инструментов люди делают очень серьёзные продукты.
Если убрать движки, это повлияет на популярность языка, на рынок фриланса и веб-студий. Но те продукты, которые сейчас работают на PHP или которые удобно делать на PHP, они так и будут на PHP работать.
Если подвести итог, лидеры среди CMS ещё долго будут удерживать позиции, и популярность PHP сохранится.
— Илья, можете описать типичную команду, которая использует PHP? Где она находится географически, что за продукт она делает? С кем готовиться работать новичку, который изучит PHP?
— Достаточно сложный вопрос. Я не уверен, что есть какие-то географические привязки. PHP-разработчик, как и любой другой разработчик, может работать откуда угодно. Это особенно удобно, если рассматривать схемы удалённой работы из России в США.
Мне кажется, в Кремниевой долине сложно с PHP, потому что там не очень много компаний, которые используют этот язык. Там чаще выбирают какие-то хайповые решения. В остальном мире большой разницы в популярности PHP нет. Насколько я знаю, есть только разница в популярности отдельных продуктов. На Западе чаще используют Laravel. Чуть восточнее популярностью пользуется Symfony. Хотя это достаточно похожие решения.
Что касается команды, наверное, тоже нельзя выделить PHP-разработчиков среди других. Такие же специалисты, как в других языках.
— Илья, вы говорили, что в энтерпрайзе PHP используют редко. В связи с этим можем ли мы сказать, что этот язык больше подходит малому и возможно среднему бизнесу, а крупный бизнес обходит его стороной?
— Конечно, хотелось бы сказать, что это не так. Но на PHP действительно чаще делают не очень большие или средние проекты. Крупные проекты часто переписываются, причём многократно. Как тот же YouTube, который был изначально написан на PHP, а потом его переписали. В России можно вспомнить «Озон», который писали на PHP, а потом переписали на Go.
Наверное, есть такой уровень, на котором продукт начинает трансформироваться. Но способы трансформации зависят от финансовых возможностей компании. И не всегда финансово оправдано полностью менять стек проекта. И, надо понимать, что PHP достаточно хорошо показывает себя и на крупных проектах, особенно при правильно спроектированной архитектуре.
— PHP считается языком общего назначения, но по факту используется только в вебе. Как вы считаете, есть ли какая-то возможность широко использовать его за пределами веба?
— Думаю, что нет. Веб — область, где PHP чувствует себя как рыба в воде. Использовать этот язык в других областях будет сложно просто из-за высокой конкуренции с другими языками.
Если рассматривать переход на десктопную разработку, здесь PHP мог бы использоваться для создания бэкенда веб-приложений, которые затем превращаются в десктопные приложения. Но здесь скорее преимущество будет у Node.js, просто из-за того, что командам часто удобнее писать приложение в одном стеке.
Если говорить о серверной разработке, к сожалению, PHP не славится как язык для многопоточной разработки. Поэтому здесь тоже очень высокая конкуренция. И скорее всего решение здесь будет написано на каком-нибудь Go.
Для энтерпрайзных решений команды обычно выбирают C# или Java.
Поэтому PHP зависим от веба. Наверное, в нём он и останется.
— Тогда, наверное, пришло время поговорить о веб-фреймворках. Я слышал мнения, что фреймворки типа Symfony и Laravel — это одна из самых сильных сторон PHP, она делает этот язык конкурентоспособным. В связи с этим два вопроса к вам. Первый — согласны ли вы, что фреймворки являются одной из самых лучших сторон PHP? И второй — а что дают фреймворки разработчикам, потребителям, возможно, комьюнити?
— Да, я согласен, что это сильная сторона языка. С использованием фреймворков PHP просто расцветает, разработка становится очень приятной. Дают они достаточно много. В первую очередь это скорость разработки. Многое уже написано до нас, фреймворки позволяют использовать это, подключать готовые решения.
Фреймворки продвигают лучшие практик��, популяризируют правильные архитектурные решения. Это может способствовать формированию корректных знаний у разработчика.
Также это безопасность, расширение кругозора. В фреймворках применяются паттерны, новые возможности языка, а это очень полезно.
— Илья, два слова о разнообразии фреймворков. В Python доминирует Django, в Ruby — «рельсы». А в PHP сразу несколько ведущих фреймворков. Что лучше для разработчиков, для сообщества — иметь один основной фреймворк или несколько разных?
— Думаю, при текущем небольшом списке топ-фреймвоков это не так уж плохо. Если бы фреймворков было очень много, разработчики могли бы теряться. В ситуации с Laravel и Symfony всё проще. Можно выучить любой из них, думаю, это не будет ошибкой. Между ними можно легко переключаться, это очень похожие решения. Часть инструментов Symfony используется в самом движке Laravel. Поэтому миграция с движка на движок простая, а изучение одного движка даёт понимание, как работает другой.
— Вы работали и работаете в крупных компаниях, разрабатываете большие проекты. А как вы относитесь к популярным решениям на PHP типа WordPress, Joomla! и других CMS? Имеют ли они право на существование в бизнес-сегменте? Или это решения для блогеров или для микробизнеса типа условных обувных мастерских?
— Как я уже говорил, WordPress как продукт мне нравится. Если говорить о блоге, я выберу WordPress. Компании этот движок тоже используют. Например, когда нужно быстро проверить какую-то гипотезу, реализовать внешний блог. Иногда эту CMS применяют для организации внутренней базы знаний.
А если компании нужен лендинг, который будет получать рекламный трафик, лучше сделать его на конструкторе или написать самому на чистом PHP. Мы чаще всего делаем так.
— К предыдущему вопросу: если у вас спросят, на чём делать сайт, что вы посоветуете? Здесь давайте рассмотрим две ситуации. Первая: совета просит друг, который занимается, допустим, ремонтом квартир, и не собирается развиваться в сфере веб-разработки. И вторая: ещё один друг интересуется технической стороной вопроса, готов покопаться в теории, что-то изучить.
— Возможно, я повторюсь, но первому другу я посоветую конструкторы. Для данного случая это оптимальное решение с точки зрения финансов. SaaS-платформы берут на себя хостинг, их легко настраивать, поэтому они позволяют сэкономить время и деньги.
А второму другу я бы посоветовал изучать PHP. Этот язык будет трамплином для быстрого входа в разработку. Благодаря простоте он уменьшит нагрузку на силу воли, на мотивацию, потому что человек очень быстро получит результат.
— Давайте поговорим о конкурентах, которые наступают на пятки PHP. Я недавно читал, что новые сайты сейчас редко делают на PHP. Бизнес якобы предпочитает тот же Django, Ruby on Rails, на Node.js и каких-то JavaScript-фреймворках. А PHP-разработчикам якобы остаётся пласт работы, связанный с поддержкой легаси-проектов. Как вы относитесь к такому мнению, согласны с ним?
— Хороший вопрос. Есть такой ресурс — Packegist. На нём публикуют публичные пакеты, созданные PHP-разработчиками. У них есть открытая статистика, которая отражает количество опубликованных пакетов и количество версий. Графики, созданные на основе этой статистики, явно стремятся вверх. То есть количество опубликованных решений постоянно растёт.
Да, сложно вспомнить свежие большие проекты, которые были написаны на PHP и остались на нём. Думаю, можно считать Badoo достаточно свежим, также BlaBlaCar. Новые проекты тоже используют, но это стало случаться реже. Это связано с тем, что приходиться прогибаться под рынок и популярность тех или иных языков.
Думаю, тот же всплеск популярности JavaScript сильно повлиял на этот рынок. Появилось много бэкенд-программистов, которые используют Node.js. И многие компании при выборе стека ориентируются на то, насколько просто можно набрать команду.
— Илья, как вы думаете, какой язык можно назвать главным конкурентом PHP? Может ли этот язык, если он есть, вытеснить PHP из веба?
— Да, думаю, JavaScript становится слишком популярным. И в принципе он может забрать на себя обе части веба: фронтенд и бэкенд.
Другой вопрос в том, что создатель Node.js Райан Даль негативно высказывается о том, как сейчас используется его детище. Поэтому он создал Deno — альтернативный рантайм для JavaScript. Этот проект может сильно поменять ситуацию на рынке.
Если ещё подумать о конкурентах, я вижу тенденцию переучивания PHP-разработчиков в Go.
— Они используют Go в вебе?
— И в вебе тоже. Go сейчас достаточно много применяется в веб-разработке, есть даже фреймворки. Считается, что в Go они дают не слишком явные преимущества, но всё-таки как решения, которые позволяют использовать микросервисную архитектуру, они достаточно соблазнительные.
— А можете сравнить PHP и Python в веб-разработке: сильные и слабые стороны языков, инфраструктуру, инструменты, сообщества?
— Мне, наверное, будет сложно сравнить эти языки. С Python у меня нет большого опыта: проводил ревью, ковырял Django, конечно, из любопытства. Но плотно не работал, так как язык лично для меня не представлял интереса.
Эти языки, в принципе, очень похожи. Они одинаково сильные в веб-разработке. Но Python, как мне кажется, становится интереснее за рамками веба, чем в вебе. А если говорить только о вебе, я не думаю, что стоило бы выбирать Python.
— Илья, скажите пожалуйста, PHP был у вас первым языком программирования?
— На самом деле нет. Первым был C++ в школьные годы, после него был C#, потом я пришёл в PHP.
— А если бы вы сегодня начинали учиться, какой язык выбрали бы?
— Вопрос очень хороший. Есть очень много языков, которые хотелось бы учить и которые я изучаю. Но, если представить, что я начинаю сегодня, наверное, выбрал бы PHP, но построил бы обучение по-другому. Я потерял много времени на отсутствии корректного плана обучения и отсутствии советов.
Начиная учиться сегодня, я бы уделял больше внимания общепрограммистским областям, которые применимы в любом языке. Это и знания архитектуры, и понимание того, как писать чистый код, паттерны, парадигмы. То есть я бы постарался использовать язык исключительно как инструмент, а не полностью сосредотачиваться на нём.
— Илья, последний вопрос, вернее, просьба к вам. Пожалуйста, порекомендуйте что-то полезное людям, которые сегодня начинают изучать программирование независимо от языка.
— Стоит вообще сказать, что эти люди сделали хороший выбор. Есть замечательная книга «Совершенный код», в которой буквально на первых страницах сказано, что далеко не все инженеры, IT-специалисты получали профильное образование. Многие из нас — самоучки, которые пришли в отрасль в зрелом возрасте.
Эта отрасль очень популярная, многие хотят попасть в неё, есть даже какой-то ажиотаж. И попасть в эту отрасль — уже большое достижение. Здесь есть много преимуществ, но также требуется очень много работы. В первую очередь это работа над собой. Нужно быть готовым к тому, что образовательный путь никогда не закончится.
Вам будет часто казаться, что уже удалось достичь какого-то серьёзного уровня. Будете думать, что вы уже стали, например, сеньором. А потом окажется, что впереди ещё очень большой образовательный путь. Это не должно расстраивать. Наоборот, это должно давать драйв и подпитывать уверенность в себе и своих силах.
Уверенность очень важна. Есть много хороших разработчиков с невероятными способностями и навыками, которые оценивают себя ниже, чем есть на самом деле. Поэтому мой совет: не прекращайте учиться, ловите от этого драйв и будьте уверенными в себе!
— Илья, большое спасибо за интересный разговор! Было интересно узнать от вас — практикующего разработчика — о ситуации в мире PHP, о том, что этот язык жив и активно применяется в том числе в больших компаниях. Думаю, это можно зафиксировать в качестве итога нашего разговора.
— Да, действительно, это так. Желаю удачи читателям!
Изучайте PHP н�� Хекслете — пройдите групповое обучение в рамках профессии. Во время обучения вы выполните четыре проекта, которые останутся в вашем портфолио на GitHub.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 18:38:01 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="DvC_tBAkk_k89ULBJsQnnHv5vv0QRf1_xSpETGuV3bDhIXSD4lo-mYq2Zlkqy9fru_CTVxhyA914yt4YOZI63g";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько</title>
<meta name="description" content="PHP входит в число самых популярных языков программирования. Этот язык доминирует в вебе: по данным W3Techs, в ноябре 2020 года его используют 79 % сайтов в интернете. Тем не менее в Сети можно встретить разговоры и холивары на тему «жив или мёртв PHP».">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/php-talks-zobenko">
<meta property="og:title" content="«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько">
<meta property="og:description" content="PHP входит в число самых популярных языков программирования. Этот язык доминирует в вебе: по данным W3Techs, в ноябре 2020 года его используют 79 % сайтов в интернете. Тем не менее в Сети можно встретить разговоры и холивары на тему «жив или мёртв PHP».">
<meta property="og:image" content="https://ru.hexlet.io/vite/assets/blog_post-7eTyeLLt.webp">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="ceRiRySs76lxgDq-RKIZwMt86UF4uXdtvm_tVH7gwy6eNalw1tJCycfDHiZIrem3C3XE63COic8Dj3cALOckQA" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="/vite/assets/blog_post-7eTyeLLt.webp"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5MiwicHVyIjoiYmxvYl9pZCJ9fQ==--e9d0f30948ea766a7e6bc3e3d56c192344d45fb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-cuate%20(1).png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyMSwicHVyIjoiYmxvYl9pZCJ9fQ==--b4d9b4d245e88f43c7f861ac11e675846937c317/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--e5793a1818ff43d73135cc7ed88c1998d7650470/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Developer%20activity-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzNSwicHVyIjoiYmxvYl9pZCJ9fQ==--06c469e64c9b6c8429a6a01edd20041dae30ce13/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20code%20testing-bro.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T18:38:01.388Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"uSYM9pArrjg_eJBZIigdfbbdniIBLDKRJVUmsQZyDspW98fBYlUDWIk7tMEuJ-0KdtSziAkbzDOYtbzlVHXppA","post":{"model_name":"BlogPost","category":{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"},"creator":{"public_name":"Дмитрий Дементий","id":174372,"is_tutor":false},"tags":[{"id":1038,"slug":"php","name":"PHP"}],"id":1111,"title":"«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько","slug":"php-talks-zobenko","state":"published","summary":"PHP входит в число самых популярных языков программирования. Этот язык доминирует в вебе: по данным W3Techs, в ноябре 2020 года его используют 79 % сайтов в интернете. Тем не менее в Сети можно встретить разговоры и холивары на тему «жив или мёртв PHP». Эта ситуация вызывает много вопросов. Часть из них удалось обсудить с разработчиком Mail.ru Group Ильёй Зобенько. ","votes_count":10,"created_at":"2020-11-16T15:33:41.656Z","published_at":"2020-12-10T07:30:32.777Z","body":"PHP входит в число самых популярных языков программирования. Этот язык доминирует в вебе: по данным W3Techs, в ноябре 2020 года его используют 79% сайтов в интернете. Тем не менее в Сети можно встретить разговоры и холивары на тему «жив или мёртв PHP». Эта ситуация вызывает много вопросов. Часть из них удалось обсудить с разработчиком Mail.ru Group Ильёй Зобенько. \n\n_Об эксперте: Илья Зобенько работает на проекте «Юла» в Mail.ru Group. Опыт разработки на PHP — 6 лет. Послужной список:_\n\n- _В данный момент — разработчик в Mail.ru Group_\n- _Технический консультант Coral Club International_\n- _Ранее сооснователь и технический директор стартапа [Odus](https://odus.ai), в рамках которого с партнерами стал финалистом акселератора PhA от Data Monsters_\n- _Ранее директор по информационным технологиям компании_ [_Экомилк_](https://rb.ru/young/ot-kurera-do-direktora/)\n- _Более 6 лет опыта работы на PHP_\n- _Член судейского совета хакатона_ [_HelixHacks_](https://www.helixhacks.com)\n\n\n**— Илья, добрый день! Два слова о том, откуда возникла идея разговора с вами. У нас в Хекслете есть профессия «PHP-программист», здесь учатся ребята, которые с нуля изучают программирование. И есть люди, которые уже завершили профессию, которые где-то работают. Людям интересно, что происходит в мире PHP, что происходит с языком и сообществом. Особенно этим интересуются новички. Практически все, кто связан с программированием, видят, что происходит на профильных ресурсах, в блогосфере, на том же Хабре — это неоднозначное отношение к PHP. Поэтому хотелось бы обсудить этот язык ещё раз, поговорить о его состоянии, о ситуации на рынке труда, об инструментах разработки и сфере применения PHP. Но для начала расскажите, пожалуйста, нашим читателям о себе.** \n\n— Добрый день! Меня зовут Илья Зобенько, в данный момент работаю разработчиком в Mail.ru Group, это одна из крупнейший IT-компаний России. Работаю в проекте «Юла», пишу бэкенд на PHP. Раньше преимущественно управлял компаниями или командами разработки. Был опыт основания стартапа, который тоже писали на PHP, на фреймворке Symfony. Также выполнял роль технического директора. \n\nНачинал с должности системного администратора. В это время изучал язык с нуля и применял его для реализации подручных инструментов для администрирования и для проверки простых гипотез. \n\nМожет, это звучит странно, но считаю, что выбор PHP стал одной из причин быстрого карьерного роста. Владение этим инструментом позволило мне очень тесно работать с руководством. С моей стороны было много инициатив, они быстро реализовывались. За два года я стал руководителем отдела IT, ещё через год стал заместителем генерального директора по IT. \n\n::programs\n\n> «Языки умирают, когда перестают развиваться или когда их использование становится неоправданным»: о ситуации в мире PHP\n\n**— Илья, предлагаю в начале нашего разговора обсудить состояние PHP. Сейчас 2020 год, скоро начинается 2021. Практически весь интернет в 2020 году работает на PHP — это факт. Один WordPress занимает огромную долю рынка, на нём работает каждый третий сайт. Как вообще получилось так, что где-то говорят о неактуальности языка, обсуждают, жив он или нет?**\n\n— Тема действительно часто поднимается в последнее время, и как PHP-программист я обращаю внимание на подобные обсуждения. В таких разговорах есть что-то пугающее, но на самом деле всё не так уж плохо. \n\nКак уже было сказано, PHP — очень популярный язык. Но при этом у него достаточно спорная репутация. Возможно, это подталкивает людей к разговорам о неактуальности языка. Иногда складывается впечатление, что отрасли нужен какой-то козёл отпущения, и на эту роль выбрали PHP.\n\nЕсли обратиться к статистике, которую [делает Stackoverflow](https://insights.stackoverflow.com/survey/2020), PHP хоть и теряет позиции, но все ещё остаётся среди лидеров: в этом году, если не ошибаюсь, у него восьмое место. А тенденция к снижению позиций связана с тем, что появляются новые игроки в сфере веб-разработки. \n\nЕсли заглянуть в историю, например, посмотреть на падение популярности Pascal или Delphi, становится понятно, что языки умирают, когда перестают развиваться или когда их использование становится неоправданным. В PHP в этом плане всё хорошо. \n\n**— Илья, вы сказали, что языки умирают, когда перестают развиваться или когда их использование становится неоправданным. А вот какой-то стёб по отношению к PHP со стороны разработчиков — он оправдан или нет?**\n\n— Такое отношение мне кажется неоправданным. Думаю, что большая часть разработчиков вряд ли назовёт серьёзные недостатки PHP. Чаще всего люди говорят, что PHP медленный, что там код низкого качества. Эти вещи, конечно, имеют какой-то корень в прошлом. \n\nМы знаем, что PHP очень быстро стал популярным. В конце 90-х он был очень популярным, потому что стал простым инструментом, на котором люди могли быстро начинать зарабатывать деньги. Разработчики ставили на первое место зарабатывание денег и жертвовали качеством кода. Поэтому появилось много низкокачественного кода, который создал негативную репутацию PHP. \n\nНадо понимать, что благодаря своей гибкости язык не стимулирует разработчиков обращать много внимания на плохой код. Качество регулируется исключительно правильно построенными процессами разработки в командах. Также много зависит от комьюнити, от того, какие оно продвигает практики. Поэтому сейчас ситуация улучшилась, но плохого кода всё ещё достаточно. \n\nПодводя промежуточный итог, скажу, что хейт в отношении PHP сейчас продолжается по инерции. Он всегда был. Сейчас причин для такого отношения практически не осталось. Но по инерции кого-то надо винить. \n\n**— То есть мы можем сказать, что язык развивается?**\n\n— Да, безусловно.\n\n**— А вот версии PHP 7.4, 8 — как вам кажется, они [в правильном направлении ведут язык](https://ru.hexlet.io/blog/posts/php-8-kakie-vozmozhnosti-poyavyatsya-v-novoy-versii-yazyka-i-kak-ih-ispolzovat)?**\n\n— Думаю, что да. Язык становится более современным. Можно считать сильной позицией то, что идёт упор на повышение производительности. Это можно заметить с версии 7.0, ведь как известно, разница между 5.6 и 7.0 получилась очень большой в плане производительности, ядро удалось оптимизировать очень сильно. После этого PHP по итогам разных тестов даже обогнал Python, а это, я считаю, серьёзное достижение. \n\n**— Есть шуточная классификация языков, возможно слышали: одни языки все хейтят, а на других никто не пишет. Согласны с такой классификацией?**\n\n— Скорее нет. На ум приходят сразу несколько языков программирования с безупречной репутацией, которые достаточно широко используют. А вот PHP я бы отнёс в категорию захейченных популярных языков. \n\n**— А какие языки имеют безупречную репутацию?**\n\n— C++ очень широко используется, хотя ходят слухи, что он теряет популярность. Но в энтерпрайзе и в геймдеве всё ещё широко применяется C++. \n\n**— Илья, давайте посмотрим на PHP глазами разработчика. Насколько комфортно на этом языке писать по сравнению с другими языками?** \n\n— Сам по себе язык достаточно удобный, это обусловлено C-подобным синтаксисом. Если рассматривать PHP как инструмент для входа в профессию разработчика, можно заметить ещё два важных преимущества — интерпретируемость и динамическая типизация. Благодаря этим преимуществам язык легко изучать, и он становится трамплином в профессию. \n\nКомфорт, конечно, не ключевой критерий выбора, особенно если говорить о первом языке. Но этот критерий всё равно достаточно важен. \n\n**— Немного отвлечённый вопрос: есть рекомендации изучать буквально с первых шагов в разработке языки с другой парадигмой, с другой системой типизации и так далее. Например, изучает человек PHP, в котором динамическая типизация, для расширения кругозора ему надо учить Java или другой язык со статической типизацией. Изучает он какой-то объектно-ориентированный язык в качестве основного — надо идти и [заглядывать в Clojure](https://ru.hexlet.io/blog/posts/clojure), чтобы познакомиться с функциональным программированием. Вы согласны с такими рекомендациями?**\n\n— Да, я сталкивался с таким мнением. В принципе, даже профессиональная разработка на PHP постепенно к этому сводится. Конечно, полностью избавиться от динамической типизации в PHP невозможно. Но во взрослых серьёзных командах часто применяется строгий режим, «хинт тайпы», возращаемые типы. И здесь разработка на PHP становится похожей на разработку на языке со статической типизацией. \n\nМожет быть, на это не надо обращать внимание в самом начале обучения. На первых порах стоит уделять внимание основным принципам разработки, возможно, попробовать применять какие-то паттерны, чтобы привыкнуть к хорошим практикам, познакомиться с архитектурой, а не сильно вдаваться в нюансы разницы языков. \n\n**— Илья, PHP изначально задумывался как шаблонизатор для вывода HTML. Я слышал мнения опытных разработчиков, которые говорят, что на PHP трудно писать сложную бизнес-логику, так как язык для этого не предназначен. Так ли это? Вы как специалист, который работает в крупной компании и разрабатывает сложные решения на PHP, согласны с этим?**\n\n— Да, действительно, PHP разрабатывался как шаблонизатор. Более того, в документации первых версий была информация, что этот инструмент не для программистов, точнее, для непрограммистов. \n\nСейчас всё изменилось. Язык больше не используется как шаблонизатор. Чаще можно увидеть, что на нём реализуется только бэкенд с API, а уже весь фронтенд берут на себя современные JavaScript-фреймворки и [библиотеки](https://ru.hexlet.io/blog/posts/biblioteka-react-review-article). \n\nЕсли вернуться к вопросу о бизнес-логике, то, честно говоря, такой проблемы не наблюдал, от коллег тоже не слышал. \n\n**— Следующий вопрос будет интересным для новичков, может быть, для ребят, которые только выбирают язык. Поделитесь пожалуйста своим опытом, расскажите, что именно вы делаете на PHP в крупной компании? Можно подробно рассказать, какие это продукты, для чего они нужны.** \n\n— Проектов в моей карьере было много. Это были и корпоративные решения, и популярные highload-продукты. Одной из первых приходит на ум система документооборота, которая писалась практически как эксперимент. Компания, в которой я работал, рассматривала покупку готового решения, но оно было дорогим. Поэтому я сам в порядке эксперимента попробовал закрыть главную потребность, связанную с документооборотом. \n\nЭксперимент оказался удачным, мы набрали команду, которая развивала этот продукт. Это важный для меня пример, потому что здесь PHP идеально подошёл в качестве инструмента, он позволил быстро проверить гипотезу. Гибкость языка позволила развивать проект и быстро обучать команду. \n\nТогда же пришло понимание, насколько важно правильно построить процесс обучения. В тот момент информацию было не так удобно получать как сейчас, когда есть очень много хороших онлайн-школ, курсов. Тогда, к сожалению, чаще всего попадался на глаза веб-курс от Попова, который учил не очень правильным практикам. Эти практики, наверное, тоже внесли вклад в создание негативной репутации языка. \n\nДругой проект — это стартап, платформа для создания диалоговых ассистентов. Они могли в чатах, по телефону отвечать, понимать контекст, запоминать и так далее. Чаще это описывают термином «чат-бот». На PHP здесь реализовали бэкенд сайта. А в первых версиях это был бэк и фронт. Потом решили сделать фронт современным и перешли на React. А бэкенд остался на Symfony, этот фреймворк отлично здесь себя показал. \n\nЕщё один крупный проект на PHP, с которым я работал — ecommerce-решение для управления MLM-структурой. Самое интересно, что было в этом проекте — миграция с «Битрикса». Может я кого-то обижу, но в моих глазах репутация у «Битрикса» сомнительная. Одной из задач на проекте была миграция на фреймворк Symfony и доработка функционала. Получился достаточно сильный проект, работает хорошо и сегодня. \n\nНу и конечно же «Юла», один из проектов Mail.ru Group. Он создавался как стартап. Я думаю, это и стало причиной использования PHP на этом проекте. Стэк технологий здесь очень широкий, очень много решений используется. Основной бэкенд «Юлы» написан на PHP и на фреймворке Symfony. \n\n**— Илья, вы несколько раз сказали, что PHP хорошо подходит для стартапов, для быстрого прототипирования. Значит ли это, что если проект уже большой, какой-то энтерпрайз, то PHP может не подойти?**\n\n— Думаю, нет. Отличный пример, который уже все наверное знают — Facebook. Он, при его огромных нагрузках, работает на PHP. Да, команде Facebook приходилось применять какие-то сложные решения. Например, когда использовалась версия PHP 5.4 или 5.6, команда Facebook написала свой интерпретатор HipHop, чтобы ускорить язык. Но седьмая версия уже не требует таких решений, она работает быстрее, чем более ранние версии с HipHop. Это пример того, что продукт может работать на PHP очень долго. \n\nЕсть определённые тенденции, которые так или иначе уводят от PHP, например, в сторону микросервисной архитектуры. Сейчас очень популярны схемы перехода в Go. Но они не всегда оправданы. По-моему, на PHPConf есть доклады о том, когда оправдан переход на микросервисы, когда хорошо оставаться на монолите. Монолит, на самом деле, это не так уж и плохо.\n\n**— Расскажите пожалуйста, как крупные компании, такие гиганты, как Mail.ru, вообще выбирают язык? Почему Mail.ru выбирает PHP, а не какие-то хайповые, «модные-молодёжные» языки?** \n\n— Думаю, это связано с тем, что такие крупные компании как Mail.ru часто запускают проекты в режиме стартапов. Здесь важна именно скорость. Нужно проверить одну гипотезу, вторую, третью. PHP в этом плане хорошо подходит. Иногда выбор обусловлен языком CTO и core team. На чём эти люди начинают писать продукт, на том они и остаются. Но чаще всего выбор PHP обусловлен скоростью. \n\n> «В целом PHP-программисты без работы не сидят»: о рынке труда\n\n**— Давайте поговорим о рынке труда, новичкам это интересно. Как вы думаете, для PHP-программистов, особенно для начинающих, рынок труда благоприятный? Насколько легко начинающему программисту без опыта коммерческой разработки найти работу?**\n\n— Думаю, найти работу достаточно просто. Это обусловлено целым рядом факторов: начиная с популярности языка и заканчивая тем, что на рынке есть много компаний и команд с разным уровнем требований. Например, мне кажется, что если есть компания, которая не производит IT-продукты, а использует PHP как вспомогательную область, для поддержки образа в интернете, то требования в такой компании обычно достаточно низкие. То есть они стараются брать хороших программистов, но не перебарщивают в этом плане. И таких компаний очень много. Такую работу найти очень легко.\n\nТакже есть фриланс. Это неоднозначная тема. \n\nВ целом PHP-программисты без работы не сидят. Даже когда-то была шутка, что PHP-программисты так сильно хотят денег, что все переменные объявляют символом `$`. \n\n**— А почему фриланс — неоднозначная тема, что с ним не так?** \n\n— Фриланс — хороший способ для быстрого старта и применения знаний на практике. Но, как мне кажется, главный двигатель профессионального и личностного роста — это командная разработка. \n\nМожет быть я снова кого-то обижу, но на собеседованиях мы часто сталкивались с фрилансерами, для которых главным приоритетом был заработок и скорость. Это всегда сводится к тому, что решения начинают клепаться, используются шаблоны, заготовки. \n\nЗаказчики на фрилансе видят только внешнее решение, поэтому у фрилансера нет потребности делать внутри красиво и масштабируемо. Когда такие кандидаты переходят с самостоятельной деятельности на командную работу, они очень долго адаптируются. Если в команде не налажен флоу, если нет код-ревью, этот плохой код может распространяться и наносить ущерб проекту. \n\n**— А мы можем сказать, что новичку нужно избегать фриланса и искать работу в команде, чтобы расти?**\n\n— Да, на самом деле я в этом убеждён. Командная разработка даёт незаменимый опыт. \n\n**— Илья, а кто вообще нанимает новичков? Куда пойдёт работать начинающий PHP-программист? Возможно, это студии, которые занимаются заказной разработкой, продуктовые компании, энтерпрайз?**\n\n— Это и продуктовые компании, и студии. Но, кстати, сейчас есть тенденция, она пока не явная, но всё же — студии стали разрабатывать сайты на веб-конструкторах, на том же Wix, Тильде. То есть они используют [no-code решения](https://ru.hexlet.io/blog/posts/chto-takoe-no-code-i-kak-on-ustroen). Поэтому веб-студии могут в перспективе реже нанимать PHP-программистов. А вот продуктовые команды — да, здесь эти специалисты нужны. \n\nВ энтерпрайзе PHP практически не используются. Есть редкие случаи, я знаю как минимум две компании, которые построили энтерпрайзные решения на PHP. Но чаще всего это продуктовые команды. \n\n**— В своей компании вы участвуете в найме. Скажите пожалуйста, какие знания и умения нужны новичку, чтобы уверенно претендовать на позицию джуниор-разработчика?**\n\n— Надо сказать, что градация программистов очень широко распространена. Но чётких границ почему-то нет. Принимая джуна, я бы сильно не мучал его вопросами по языку. Для меня было бы важным, чтобы человек уверенно владел базой, то есть я должен убедиться, что кандидат может уверенно использовать базовые инструменты языка без гугления. То есть не обязательно знать всё, но надо уверенно владеть каким-то минимумом. \n\nТакже для меня важны хорошие знания PSR. Это может звучать достаточно странно, потому что PSR по сути — это стандарт, который больше распространяется в режиме рекомендаций. Но я считаю, что PSR — это первый шаг, который подталкивает к чистоте кода. \n\nТакже я обратил бы внимание на понимание Git. Не знаю, почему именно, но когда мне задают в команде слишком простые вопросы о Git, это вызывает вспышки гнева. Конечно, они контролируемые :-) \n\nНаверное, это связано с тем, что [Git — достаточно простой инструмент](https://ru.hexlet.io/courses/intro_to_git). Его легко изучить. Он хорошо задокументирован, визуализирован. Есть много графических интерфейсов для работы с Git. Работа с Git — это базовые или фундаментальные навыки.\n\n**— Илья, в моём понимании навыки работы с Git приобретаются с опытом. Человек осваивает этот инструмент, когда работает в команде, когда имеет дело с ветками, когда сталкивается с конфликтами... То есть на одной теории здесь далеко не уедешь. Вы считаете, что новичок должен прийти уже со знаниями этих нюансов, или достаточно понимать принципы, уметь [сделать коммит](https://ru.hexlet.io/blog/posts/git-commit-message) в main?** \n\n— Да, я, конечно же, говорю о минимальных знаниях, о понимании того, как всё устроено, о способности посмотреть в лог, создать новую ветку, сделать commit, merge, push, pull. Этого достаточно. Даже исправление прошлого коммита — это уже навыки, которые специалисты приобретают на рабочем месте. А базовые навыки можно наработать в соло-разработке. Да, будет меньше вероятность merge-конфликта, но всё ещё она может быть. И такая рекомендация — я бы смотрел в сторону Git-flow. Это достаточно простая идея, и к ней хорошо привыкать с самого начала пути в разработке. Я и мои коллеги использовали её на своих пэт-проектах, причём не в качестве набора инструментов, а в качестве идеологии. \n\n**— А должен ли джуниор-разработчик уметь работать с фреймворками?**\n\n— Обычно такие ситуации решаются по-другому. Если нужен специалист, который работает с Symfony, мы ищем Symfony Junior Developer. Думаю, это отдельная история, так как при всей простоте изучения с учётом наличия материалов фреймворки — достаточно объёмные инструменты, которые требуют длительного изучения. Как правило, их приходится изучать даже дольше, чем сам язык. \n\n**— Два слова о справедливости или несправедливости. Если посмотреть на рынок труда, на рейтинги, видно, что PHP-программисты всё-таки зарабатывают меньше, чем программисты на некоторых других языках, например, на Python. Как вы думаете, почему так произошло и есть ли вероятность изменить эту ситуацию в обозримом будущем?**\n\n— Да, действительно, такая ситуация есть. Недавно готовил статистику для вебинара на тему жив или мёртв PHP. Уровень зарплат по США и Европе отличается в меньшую сторону. Сложно сказать, чем это обусловлено, потому что сложно понять, как эта статистика собиралась. \n\nЯ предполагаю, что ситуация связана с областью применения. PHP — язык для веб-разработки, а тот же Python применяют и в веб-разработке, и в аналитике, и в машинном обучении. Возможно, эта разница связана с тем, что берутся разные области и по ним сравнивается зарплата. \n\nКак исправить ситуацию? Думаю, это возможно, если комьюнити PHP-разрабочиков будет более серьёзно относиться к профессиональному росту. Я говорю, конечно, не о той части комьюнити, которая опытная и уделяет много внимания качеству, а о той, которая предпочитает быстрый заработок и не обращает достаточно внимания на качество. \n\n**— А как бы вы оценили комьюнити PHP-разработчиков? Оно дружелюбное, оно помогает развивать язык? Возможно, оно разрозненное, здесь нет ядра?**\n\n— Комьюнити очень сильное. Проводится много конференций. Только в России PHPConf уже второй раз пройдёт. Очень общительные ребята, много спикеров, которые внесли большой вклад как в развитие отдельных фреймворков, так и в развитие языка в целом. Поэтому да, комьюнити у PHP сильное.\n\n**— Илья, если бы к вам пришёл друг и спросил, как ему научиться программировать на PHP, что бы вы ему посоветовали?**\n\n— Хороший вопрос. Думаю, я бы просто дал бы какие-то материалы, это был бы видеокурс. Или просто посоветовал бы какую-то школу. А потом помогал бы, показал бы примеры проектов и инструментов, которые стоит использовать. \n\n**— А с практикой как дело обстоит? Возможно, здесь что-то можно порекомендовать?**\n\n— Возможно, это прозвучит противоречиво с учётом того, что я сказал раньше, но можно первые несколько проектов взять на фрилансе. Это как минимум позволит получить опыт, взять рабочую идею и реализовать её. \n\n**— А к опенсорсу как вы относитесь? Например, у нас есть опенсорс-проект [Hexlet SICP](https://sicp.hexlet.io/), он на Laravel сделан. Студенты, если хотят, практикуются на этом проекте.** \n\n— Очень хорошо, что вы затронули эту тему. Хорошо отношусь к опенсорсу. Это отличная возможность погрузиться в командную разработку. Как правило, требования к опенсорс-решениям чуть ли не выше, чем к коммерческим продуктам. Поэтому опенсорс может быть сильным образовательным бустом и давать интересный опыт. \n\n> «С использованием фреймворков язык просто расцветает»: о разработке на PHP\n\n**— Илья, предлагаю перейти к обсуждению разработки на PHP. В связи с этим вопрос: у нас есть огромный пласт веба, который работает на PHP. В тех же Соединённых Штатах, в Европе я видел много компаний, учреждений, университетов, у которых сайты на WordPress. Большие магазины работают на WooCommerce, на Opencart. Кажется, последний у нас более популярный. Я бы сказал, что веб принадлежит PHP. Как вы думаете, есть какие-то обстоятельства, которые могут в обозримом будущем поменять ситуацию, пошатнуть позиции PHP в вебе?**\n\n— Думаю, да, ситуация может измениться. Вопрос в том, как. Да, CMS занимают уверенную позицию. Даже когда у меня появляется в очередной раз мысль, что надо сделать личный блог, выбор всегда падает на WordPress. Просто потому, что WordPress в первую очередь ассоциируется с блогом. Превращение его в ecommerce-решение — это совсем другая история. \n\nДвижки держатся уверенно. Но ситуацию могут поменять новые тенденции в разработке. Например, мы уже упоминали, что в последние годы быстро растёт популярность SaaS-решений типа Wix и Tilda. С помощью этих инструментов люди делают очень серьёзные продукты. \n\nЕсли убрать движки, это повлияет на популярность языка, на рынок фриланса и веб-студий. Но те продукты, которые сейчас работают на PHP или которые удобно делать на PHP, они так и будут на PHP работать. \n\nЕсли подвести итог, лидеры среди CMS ещё долго будут удерживать позиции, и популярность PHP сохранится. \n\n**— Илья, можете описать типичную команду, которая использует PHP? Где она находится географически, что за продукт она делает? С кем готовиться работать новичку, который изучит PHP?**\n\n— Достаточно сложный вопрос. Я не уверен, что есть какие-то географические привязки. PHP-разработчик, как и любой другой разработчик, может работать откуда угодно. Это особенно удобно, если рассматривать схемы удалённой работы из России в США. \n\nМне кажется, в Кремниевой долине сложно с PHP, потому что там не очень много компаний, которые используют этот язык. Там чаще выбирают какие-то хайповые решения. В остальном мире большой разницы в популярности PHP нет. Насколько я знаю, есть только разница в популярности отдельных продуктов. На Западе чаще используют Laravel. Чуть восточнее популярностью пользуется Symfony. Хотя это достаточно похожие решения. \n\nЧто касается команды, наверное, тоже нельзя выделить PHP-разработчиков среди других. Такие же специалисты, как в других языках. \n\n**— Илья, вы говорили, что в энтерпрайзе PHP используют редко. В связи с этим можем ли мы сказать, что этот язык больше подходит малому и возможно среднему бизнесу, а крупный бизнес обходит его стороной?**\n\n— Конечно, хотелось бы сказать, что это не так. Но на PHP действительно чаще делают не очень большие или средние проекты. Крупные проекты часто переписываются, причём многократно. Как тот же YouTube, который был изначально написан на PHP, а потом его переписали. В России можно вспомнить «Озон», который писали на PHP, а потом переписали на Go. \n\nНаверное, есть такой уровень, на котором продукт начинает трансформироваться. Но способы трансформации зависят от финансовых возможностей компании. И не всегда финансово оправдано полностью менять стек проекта. И, надо понимать, что PHP достаточно хорошо показывает себя и на крупных проектах, особенно при правильно [спроектированной архитектуре](https://ru.hexlet.io/blog/posts/gid-po-professii-arhitektor).\n\n**— PHP считается языком общего назначения, но по факту используется только в вебе. Как вы считаете, есть ли какая-то возможность широко использовать его за пределами веба?**\n\n— Думаю, что нет. Веб — область, где PHP чувствует себя как рыба в воде. Использовать этот язык в других областях будет сложно просто из-за высокой конкуренции с другими языками. \n\nЕсли рассматривать переход на десктопную разработку, здесь PHP мог бы использоваться для создания бэкенда веб-приложений, которые затем превращаются в десктопные приложения. Но здесь скорее преимущество будет у Node.js, просто из-за того, что командам часто удобнее писать приложение в одном стеке. \n\nЕсли говорить о серверной разработке, к сожалению, PHP не славится как язык для многопоточной разработки. Поэтому здесь тоже очень высокая конкуренция. И скорее всего решение здесь будет написано на каком-нибудь Go. \n\nДля энтерпрайзных решений команды обычно выбирают C# или [Java](https://ru.hexlet.io/blog/posts/javaland). \n\nПоэтому PHP зависим от веба. Наверное, в нём он и останется. \n\n**— Тогда, наверное, пришло время поговорить о веб-фреймворках. Я слышал мнения, что фреймворки типа Symfony и Laravel — это одна из самых сильных сторон PHP, она делает этот язык конкурентоспособным. В связи с этим два вопроса к вам. Первый — согласны ли вы, что фреймворки являются одной из самых лучших сторон PHP? И второй — а что дают фреймворки разработчикам, потребителям, возможно, комьюнити?**\n\n— Да, я согласен, что это сильная сторона языка. С использованием фреймворков PHP просто расцветает, разработка становится очень приятной. Дают они достаточно много. В первую очередь это скорость разработки. Многое уже написано до нас, фреймворки позволяют использовать это, подключать готовые решения. \n\nФреймворки продвигают лучшие практики, популяризируют правильные архитектурные решения. Это может способствовать формированию корректных знаний у разработчика. \n\nТакже это безопасность, расширение кругозора. В фреймворках применяются паттерны, новые возможности языка, а это очень полезно. \n\n**— Илья, два слова о разнообразии фреймворков. В Python доминирует [Django](https://ru.hexlet.io/blog/posts/pochemu-django-luchshiy-freymvork-dlya-razrabotki-saytov), в Ruby — «рельсы». А в PHP сразу несколько ведущих фреймворков. Что лучше для разработчиков, для сообщества — иметь один основной фреймворк или несколько разных?**\n\n— Думаю, при текущем небольшом списке топ-фреймвоков это не так уж плохо. Если бы фреймворков было очень много, разработчики могли бы теряться. В ситуации с Laravel и Symfony всё проще. Можно выучить любой из них, думаю, это не будет ошибкой. Между ними можно легко переключаться, это очень похожие решения. Часть инструментов Symfony используется в самом движке Laravel. Поэтому миграция с движка на движок простая, а изучение одного движка даёт понимание, как работает другой. \n\n**— Вы работали и работаете в крупных компаниях, разрабатываете большие проекты. А как вы относитесь к популярным решениям на PHP типа WordPress, Joomla! и других CMS? Имеют ли они право на существование в бизнес-сегменте? Или это решения для блогеров или для микробизнеса типа условных обувных мастерских?**\n\n— Как я уже говорил, WordPress как продукт мне нравится. Если говорить о блоге, я выберу WordPress. Компании этот движок тоже используют. Например, когда нужно быстро проверить какую-то гипотезу, реализовать внешний блог. Иногда эту CMS применяют для организации внутренней базы знаний. \n\nА если компании нужен лендинг, который будет получать рекламный трафик, лучше сделать его на конструкторе или написать самому на чистом PHP. Мы чаще всего делаем так.\n\n**— К предыдущему вопросу: если у вас спросят, на чём делать сайт, что вы посоветуете? Здесь давайте рассмотрим две ситуации. Первая: совета просит друг, который занимается, допустим, ремонтом квартир, и не собирается развиваться в сфере веб-разработки. И вторая: ещё один друг интересуется технической стороной вопроса, готов покопаться в теории, что-то изучить.** \n\n— Возможно, я повторюсь, но первому другу я посоветую конструкторы. Для данного случая это оптимальное решение с точки зрения финансов. SaaS-платформы берут на себя хостинг, их легко настраивать, поэтому они позволяют сэкономить время и деньги. \n\nА второму другу я бы посоветовал изучать PHP. Этот язык будет трамплином для быстрого входа в разработку. Благодаря простоте он уменьшит нагрузку на силу воли, на мотивацию, потому что человек очень быстро получит результат. \n\n**— Давайте поговорим о конкурентах, которые наступают на пятки PHP. Я недавно читал, что новые сайты сейчас редко делают на PHP. Бизнес якобы предпочитает тот же Django, Ruby on Rails, на Node.js и каких-то JavaScript-фреймворках. А PHP-разработчикам якобы остаётся пласт работы, связанный с поддержкой легаси-проектов. Как вы относитесь к такому мнению, согласны с ним?**\n\n— Хороший вопрос. Есть такой ресурс — Packegist. На нём публикуют публичные пакеты, созданные PHP-разработчиками. У них есть открытая статистика, которая отражает количество опубликованных пакетов и количество версий. Графики, созданные на основе этой статистики, явно стремятся вверх. То есть количество опубликованных решений постоянно растёт. \n\nДа, сложно вспомнить свежие большие проекты, которые были написаны на PHP и остались на нём. Думаю, можно считать Badoo достаточно свежим, также BlaBlaCar. Новые проекты тоже используют, но это стало случаться реже. Это связано с тем, что приходиться прогибаться под рынок и популярность тех или иных языков. \n\nДумаю, тот же всплеск популярности JavaScript сильно повлиял на этот рынок. Появилось много бэкенд-программистов, которые [используют Node.js](https://ru.hexlet.io/blog/posts/zachem-izuchat-node-js-ili-o-perspektivah-bekenda-na-javascript). И многие компании при выборе стека ориентируются на то, насколько просто можно набрать команду. \n\n**— Илья, как вы думаете, какой язык можно назвать главным конкурентом PHP? Может ли этот язык, если он есть, вытеснить PHP из веба?**\n\n— Да, думаю, JavaScript становится слишком популярным. И в принципе он может забрать на себя обе части веба: фронтенд и бэкенд. \n\nДругой вопрос в том, что создатель Node.js Райан Даль негативно высказывается о том, как сейчас используется его детище. Поэтому он создал Deno — альтернативный рантайм для JavaScript. Этот проект может сильно поменять ситуацию на рынке. \n\nЕсли ещё подумать о конкурентах, я вижу тенденцию переучивания PHP-разработчиков в Go. \n\n**— Они используют Go в вебе?**\n\n— И в вебе тоже. Go сейчас достаточно много применяется в веб-разработке, есть даже фреймворки. Считается, что в Go они дают не слишком явные преимущества, но всё-таки как решения, которые позволяют использовать микросервисную архитектуру, они достаточно соблазнительные. \n\n**— А можете сравнить PHP и Python в веб-разработке: сильные и слабые стороны языков, инфраструктуру, инструменты, сообщества?**\n\n— Мне, наверное, будет сложно сравнить эти языки. С Python у меня нет большого опыта: проводил ревью, ковырял Django, конечно, из любопытства. Но плотно не работал, так как язык лично для меня не представлял интереса. \n\nЭти языки, в принципе, очень похожи. Они одинаково сильные в веб-разработке. Но Python, как мне кажется, становится интереснее за рамками веба, чем в вебе. А если говорить только о вебе, я не думаю, что стоило бы выбирать Python. \n\n**— Илья, скажите пожалуйста, PHP был у вас первым языком программирования?**\n\n— На самом деле нет. Первым был C++ в школьные годы, после него был C#, потом я пришёл в PHP.\n\n**— А если бы вы сегодня начинали учиться, какой язык выбрали бы?**\n\n— Вопрос очень хороший. Есть очень много языков, которые хотелось бы учить и которые я изучаю. Но, если представить, что я начинаю сегодня, наверное, выбрал бы PHP, но построил бы обучение по-другому. Я потерял много времени на отсутствии корректного плана обучения и отсутствии советов. \n\nНачиная учиться сегодня, я бы уделял больше внимания общепрограммистским областям, которые применимы в любом языке. Это и знания архитектуры, и понимание того, как писать чистый код, паттерны, парадигмы. То есть я бы постарался использовать язык исключительно как инструмент, а не полностью сосредотачиваться на нём. \n\n**— Илья, последний вопрос, вернее, просьба к вам. Пожалуйста, порекомендуйте что-то полезное людям, которые сегодня начинают изучать программирование независимо от языка.** \n\n— Стоит вообще сказать, что эти люди сделали хороший выбор. Есть замечательная книга «Совершенный код», в которой буквально на первых страницах сказано, что далеко не все инженеры, IT-специалисты получали профильное образование. Многие из нас — самоучки, которые [пришли в отрасль в зрелом возрасте](https://ru.hexlet.io/blog/categories/success). \n\nЭта отрасль очень популярная, многие хотят попасть в неё, есть даже какой-то ажиотаж. И попасть в эту отрасль — уже большое достижение. Здесь есть много преимуществ, но также требуется очень много работы. В первую очередь это работа над собой. Нужно быть готовым к тому, что образовательный путь никогда не закончится. \n\n::posts\n\nВам будет часто казаться, что уже удалось достичь какого-то серьёзного уровня. Будете думать, что вы уже стали, например, сеньором. А потом окажется, что впереди ещё очень большой образовательный путь. Это не должно расстраивать. Наоборот, это должно давать драйв и подпитывать уверенность в себе и своих силах. \n\nУверенность очень важна. Есть много хороших разработчиков с невероятными способностями и навыками, которые оценивают себя ниже, чем есть на самом деле. Поэтому мой совет: не прекращайте учиться, ловите от этого драйв и будьте уверенными в себе! \n\n**— Илья, большое спасибо за интересный разговор! Было интересно узнать от вас — практикующего разработчика — о ситуации в мире PHP, о том, что этот язык жив и активно применяется в том числе в больших компаниях. Думаю, это можно зафиксировать в качестве итога нашего разговора.** \n\n— Да, действительно, это так. Желаю удачи читателям!\n\n\n> Изучайте PHP н�� Хекслете — пройдите [групповое обучение в рамках профессии](https://ru.hexlet.io/professions/php). Во время обучения вы выполните четыре проекта, которые останутся в вашем портфолио на GitHub.","reading_time":19,"url":"https://ru.hexlet.io/blog/posts/php-talks-zobenko","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":660,"title":"Кто такой тестировщик и как им стать","slug":"gid-po-professii-testirovschik-chem-zanimaetsya-skolko-zarabatyvaet-chto-nado-znat-i-gde-uchitsya","summary":"Рассказываем, кто такой тестировщик и чем он занимается, сколько зарабатывает такой специалист, а также какие нужны знания и компетенции, чтобы им стать.","created_at":"2020-01-29T16:58:16.214Z","published_at":"2023-12-29T10:36:34.186Z","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTYzNiwicHVyIjoiYmxvYl9pZCJ9fQ==--72f5a3fb78c634c408f39349dbd2e203809b4069/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D1%82%D0%B5%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA2023-01.png"},{"model_name":"BlogPost","id":1100,"title":"Гид по профессии архитектор: чем они занимаются, где учатся и сколько зарабатывают","slug":"gid-po-professii-arhitektor","summary":"Профессия архитектора ПО кажется одной из самых сложных в технологическом секторе. Практически не существует курсов, пройдя которые точно можно стать начинающим IT-архитектором, а технологические блоги редко публикуют чек-листы для желающих войти в эту сферу. Подробно разбираемся, как устроена профессия IT-архитектора, чем они занимаются и сколько зарабатывают.","created_at":"2020-11-11T16:21:09.670Z","published_at":"2020-11-11T16:41:07.182Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1042,"title":"Современный PHP сформирует хорошее мышление в стиле ООП: интервью с Максимом Шамаевым","slug":"shamaev-about-php","summary":"Максим Шамаев — DevOps в Skyeng, известный участник сообщества PHP-разработчиков. В интервью для блога Хекслета Максим рассказал о состоянии языка, рынке труда, инструментах для разработки на PHP, связи бизнеса и программирования. По словам Максима, у PHP отличные перспективы, этот язык подходит новичкам. Наш гость считает, что язык развивается в правильном направлении, WordPress будет доминировать в интернете много лет, а бизнесу всегда будут нужны PHP-программисты. ","created_at":"2020-10-14T10:27:15.152Z","published_at":"2020-10-19T10:02:53.176Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"}],"category":{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"},"mainStackCategory":{"id":2,"name":"Курсы по веб-разработке","slug":"web_development","short_name":"Веб-разработка","order":190,"state":"published","category_slug":"courses_web_development"},"categories":[{"id":6,"name":"Мотивация","slug":"motivation","state":"published","created_at":"2016-10-06T18:31:38.903Z"},{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"}],"relatedLandings":[{"stack":{"id":2,"slug":"php","title":"PHP-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":60,"duration_in_months":10},"id":1,"slug":"php","title":"РНР-разработчик","subtitle":"Изучите PHP и Laravel для разработки и проектирования REST API","subtitle_for_lists":"Изучите PHP и Laravel для разработки и проектирования REST API","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"php","price_text":"от 5 650 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5MiwicHVyIjoiYmxvYl9pZCJ9fQ==--e9d0f30948ea766a7e6bc3e3d56c192344d45fb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-cuate%20(1).png"},{"stack":{"id":179,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":null,"duration_in_months":16},"id":279,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","subtitle":"","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"16 месяцев","stack_slug":"fullstack-php","price_text":"от 7 934 ₽","duration_text":"16 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png"},{"stack":{"id":22,"slug":"php-laravel-development","title":"Laravel","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":250,"duration_in_months":1},"id":32,"slug":"php-laravel-developer","title":"Laravel","subtitle":"Laravel — Навык создания веб-приложений с помощью Laravel, необходимый для старта карьеры PHP-разработчика","subtitle_for_lists":"Изучите фреймворк Laravel для создания веб-приложений","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"php-laravel-development","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyMSwicHVyIjoiYmxvYl9pZCJ9fQ==--b4d9b4d245e88f43c7f861ac11e675846937c317/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-bro.png"},{"stack":{"id":25,"slug":"php-oop","title":"ООП В PHP","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4300,"duration_in_months":2},"id":38,"slug":"php-oop","title":"ООП В PHP","subtitle":"Навык глубокого понимания архитектуры и написания чистого кода, позволяющий решать сложные задачи","subtitle_for_lists":"Изучите архитектуру и чистый код на PHP","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"php-oop","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--e5793a1818ff43d73135cc7ed88c1998d7650470/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Developer%20activity-bro.png"},{"stack":{"id":39,"slug":"php-phpunit-testing","title":"Автоматизация тестирования на PHP","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1900,"duration_in_months":4},"id":66,"slug":"php-phpunit-testing","title":"Автоматизация тестирования на PHP","subtitle":"Навык написания тестов и применения продвинутых подходов, повышающий качество кода","subtitle_for_lists":"Навык тестирования на PHP","locale":"ru","current":true,"duration_in_months_text":"4 месяца","stack_slug":"php-phpunit-testing","price_text":"от 3 900 ₽","duration_text":"4 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzNSwicHVyIjoiYmxvYl9pZCJ9fQ==--06c469e64c9b6c8429a6a01edd20041dae30ce13/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20code%20testing-bro.png"}]},"url":"/blog/posts/php-talks-zobenko","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Дмитрий Дементий","name":"«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько","datePublished":"2020-12-10T07:30:32.777Z","headline":"PHP входит в число самых популярных языков программирования. Этот язык доминирует в вебе: по данным W3Techs, в ноябре 2020 года его используют 79 % сайтов в интернете. Тем не менее в Сети можно встретить разговоры и холивары на тему «жив или мёртв PHP». Эта ситуация вызывает много вопросов. Часть из них удалось обсудить с разработчиком Mail.ru Group Ильёй Зобенько. ","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10}]}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/blog","name":"Блог Хекслета"}},{"position":2,"@type":"ListItem","item":{"@id":"/blog/categories/career","name":"Карьера"}},{"position":3,"@type":"ListItem","item":{"@id":"/blog/posts/php-talks-zobenko","name":"«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/career">Карьера</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="PHP"><span class="m_5add502a mantine-Badge-label">PHP</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">10 декабря 2020 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>19 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>10</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" alt="«PHP — трамплин для быстрого входа в разработку». Интервью с разработчиком Mail.ru Group Ильёй Зобенько"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p>PHP входит в число самых популярных языков программирования. Этот язык доминирует в вебе: по данным W3Techs, в ноябре 2020 года его используют 79% сайтов в интернете. Тем не менее в Сети можно встретить разговоры и холивары на тему «жив или мёртв PHP». Эта ситуация вызывает много вопросов. Часть из них удалось обсудить с разработчиком Mail.ru Group Ильёй Зобенько.</p>
<p><em>Об эксперте: Илья Зобенько работает на проекте «Юла» в Mail.ru Group. Опыт разработки на PHP — 6 лет. Послужной список:</em></p>
<ul>
<li><em>В данный момент — разработчик в Mail.ru Group</em></li>
<li><em>Технический консультант Coral Club International</em></li>
<li><em>Ранее сооснователь и технический директор стартапа <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://odus.ai" rel="noopener noreferrer" target="_blank">Odus</a>, в рамках которого с партнерами стал финалистом акселератора PhA от Data Monsters</em></li>
<li><em>Ранее директор по информационным технологиям компании</em> <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://rb.ru/young/ot-kurera-do-direktora/" rel="noopener noreferrer" target="_blank"><em>Экомилк</em></a></li>
<li><em>Более 6 лет опыта работы на PHP</em></li>
<li><em>Член судейского совета хакатона</em> <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.helixhacks.com" rel="noopener noreferrer" target="_blank"><em>HelixHacks</em></a></li>
</ul>
<p><strong>— Илья, добрый день! Два слова о том, откуда возникла идея разговора с вами. У нас в Хекслете есть профессия «PHP-программист», здесь учатся ребята, которые с нуля изучают программирование. И есть люди, которые уже завершили профессию, которые где-то работают. Людям интересно, что происходит в мире PHP, что происходит с языком и сообществом. Особенно этим интересуются новички. Практически все, кто связан с программированием, видят, что происходит на профильных ресурсах, в блогосфере, на том же Хабре — это неоднозначное отношение к PHP. Поэтому хотелось бы обсудить этот язык ещё раз, поговорить о его состоянии, о ситуации на рынке труда, об инструментах разработки и сфере применения PHP. Но для начала расскажите, пожалуйста, нашим читателям о себе.</strong></p>
<p>— Добрый день! Меня зовут Илья Зобенько, в данный момент работаю разработчиком в Mail.ru Group, это одна из крупнейший IT-компаний России. Работаю в проекте «Юла», пишу бэкенд на PHP. Раньше преимущественно управлял компаниями или командами разработки. Был опыт основания стартапа, который тоже писали на PHP, на фреймворке Symfony. Также выполнял роль технического директора.</p>
<p>Начинал с должности системного администратора. В это время изучал язык с нуля и применял его для реализации подручных инструментов для администрирования и для проверки простых гипотез.</p>
<p>Может, это звучит странно, но считаю, что выбор PHP стал одной из причин быстрого карьерного роста. Владение этим инструментом позволило мне очень тесно работать с руководством. С моей стороны было много инициатив, они быстро реализовывались. За два года я стал руководителем отдела IT, ещё через год стал заместителем генерального директора по IT.</p>
<style data-mantine-styles="inline">.__m__-_R_fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_fderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/php?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">РНР-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите PHP и Laravel для разработки и проектирования REST API</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5MiwicHVyIjoiYmxvYl9pZCJ9fQ==--e9d0f30948ea766a7e6bc3e3d56c192344d45fb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-cuate%20(1).png" alt="РНР-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 5 650 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-php?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">16 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на PHP</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"></p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png" alt="Fullstack-разработчик на PHP" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/php-laravel-developer?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Laravel</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите фреймворк Laravel для создания веб-приложений</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyMSwicHVyIjoiYmxvYl9pZCJ9fQ==--b4d9b4d245e88f43c7f861ac11e675846937c317/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-bro.png" alt="Laravel" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/php-oop?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">ООП В PHP</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите архитектуру и чистый код на PHP</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--e5793a1818ff43d73135cc7ed88c1998d7650470/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Developer%20activity-bro.png" alt="ООП В PHP" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/php-phpunit-testing?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">4 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация тестирования на PHP</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Навык тестирования на PHP</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzNSwicHVyIjoiYmxvYl9pZCJ9fQ==--06c469e64c9b6c8429a6a01edd20041dae30ce13/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20code%20testing-bro.png" alt="Автоматизация тестирования на PHP" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<blockquote>
<p>«Языки умирают, когда перестают развиваться или когда их использование становится неоправданным»: о ситуации в мире PHP</p>
</blockquote>
<p><strong>— Илья, предлагаю в начале нашего разговора обсудить состояние PHP. Сейчас 2020 год, скоро начинается 2021. Практически весь интернет в 2020 году работает на PHP — это факт. Один WordPress занимает огромную долю рынка, на нём работает каждый третий сайт. Как вообще получилось так, что где-то говорят о неактуальности языка, обсуждают, жив он или нет?</strong></p>
<p>— Тема действительно часто поднимается в последнее время, и как PHP-программист я обращаю внимание на подобные обсуждения. В таких разговорах есть что-то пугающее, но на самом деле всё не так уж плохо.</p>
<p>Как уже было сказано, PHP — очень популярный язык. Но при этом у него достаточно спорная репутация. Возможно, это подталкивает людей к разговорам о неактуальности языка. Иногда складывается впечатление, что отрасли нужен какой-то козёл отпущения, и на эту роль выбрали PHP.</p>
<p>Если обратиться к статистике, которую <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://insights.stackoverflow.com/survey/2020" rel="noopener noreferrer" target="_blank">делает Stackoverflow</a>, PHP хоть и теряет позиции, но все ещё остаётся среди лидеров: в этом году, если не ошибаюсь, у него восьмое место. А тенденция к снижению позиций связана с тем, что появляются новые игроки в сфере веб-разработки.</p>
<p>Если заглянуть в историю, например, посмотреть на падение популярности Pascal или Delphi, становится понятно, что языки умирают, когда перестают развиваться или когда их использование становится неоправданным. В PHP в этом плане всё хорошо.</p>
<p><strong>— Илья, вы сказали, что языки умирают, когда перестают развиваться или когда их использование становится неоправданным. А вот какой-то стёб по отношению к PHP со стороны разработчиков — он оправдан или нет?</strong></p>
<p>— Такое отношение мне кажется неоправданным. Думаю, что большая часть разработчиков вряд ли назовёт серьёзные недостатки PHP. Чаще всего люди говорят, что PHP медленный, что там код низкого качества. Эти вещи, конечно, имеют какой-то корень в прошлом.</p>
<p>Мы знаем, что PHP очень быстро стал популярным. В конце 90-х он был очень популярным, потому что стал простым инструментом, на котором люди могли быстро начинать зарабатывать деньги. Разработчики ставили на первое место зарабатывание денег и жертвовали качеством кода. Поэтому появилось много низкокачественного кода, который создал негативную репутацию PHP.</p>
<p>Надо понимать, что благодаря своей гибкости язык не стимулирует разработчиков обращать много внимания на плохой код. Качество регулируется исключительно правильно построенными процессами разработки в командах. Также много зависит от комьюнити, от того, какие оно продвигает практики. Поэтому сейчас ситуация улучшилась, но плохого кода всё ещё достаточно.</p>
<p>Подводя промежуточный итог, скажу, что хейт в отношении PHP сейчас продолжается по инерции. Он всегда был. Сейчас причин для такого отношения практически не осталось. Но по инерции кого-то надо винить.</p>
<p><strong>— То есть мы можем сказать, что язык развивается?</strong></p>
<p>— Да, безусловно.</p>
<p><strong>— А вот версии PHP 7.4, 8 — как вам кажется, они <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/php-8-kakie-vozmozhnosti-poyavyatsya-v-novoy-versii-yazyka-i-kak-ih-ispolzovat" rel="noopener noreferrer" target="_blank">в правильном направлении ведут язык</a>?</strong></p>
<p>— Думаю, что да. Язык становится более современным. Можно считать сильной позицией то, что идёт упор на повышение производительности. Это можно заметить с версии 7.0, ведь как известно, разница между 5.6 и 7.0 получилась очень большой в плане производительности, ядро удалось оптимизировать очень сильно. После этого PHP по итогам разных тестов даже обогнал Python, а это, я считаю, серьёзное достижение.</p>
<p><strong>— Есть шуточная классификация языков, возможно слышали: одни языки все хейтят, а на других никто не пишет. Согласны с такой классификацией?</strong></p>
<p>— Скорее нет. На ум приходят сразу несколько языков программирования с безупречной репутацией, которые достаточно широко используют. А вот PHP я бы отнёс в категорию захейченных популярных языков.</p>
<p><strong>— А какие языки имеют безупречную репутацию?</strong></p>
<p>— C++ очень широко используется, хотя ходят слухи, что он теряет популярность. Но в энтерпрайзе и в геймдеве всё ещё широко применяется C++.</p>
<p><strong>— Илья, давайте посмотрим на PHP глазами разработчика. Насколько комфортно на этом языке писать по сравнению с другими языками?</strong></p>
<p>— Сам по себе язык достаточно удобный, это обусловлено C-подобным синтаксисом. Если рассматривать PHP как инструмент для входа в профессию разработчика, можно заметить ещё два важных преимущества — интерпретируемость и динамическая типизация. Благодаря этим преимуществам язык легко изучать, и он становится трамплином в профессию.</p>
<p>Комфорт, конечно, не ключевой критерий выбора, особенно если говорить о первом языке. Но этот критерий всё равно достаточно важен.</p>
<p><strong>— Немного отвлечённый вопрос: есть рекомендации изучать буквально с первых шагов в разработке языки с другой парадигмой, с другой системой типизации и так далее. Например, изучает человек PHP, в котором динамическая типизация, для расширения кругозора ему надо учить Java или другой язык со статической типизацией. Изучает он какой-то объектно-ориентированный язык в качестве основного — надо идти и <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/clojure" rel="noopener noreferrer" target="_blank">заглядывать в Clojure</a>, чтобы познакомиться с функциональным программированием. Вы согласны с такими рекомендациями?</strong></p>
<p>— Да, я сталкивался с таким мнением. В принципе, даже профессиональная разработка на PHP постепенно к этому сводится. Конечно, полностью избавиться от динамической типизации в PHP невозможно. Но во взрослых серьёзных командах часто применяется строгий режим, «хинт тайпы», возращаемые типы. И здесь разработка на PHP становится похожей на разработку на языке со статической типизацией.</p>
<p>Может быть, на это не надо обращать внимание в самом начале обучения. На первых порах стоит уделять внимание основным принципам разработки, возможно, попробовать применять какие-то паттерны, чтобы привыкнуть к хорошим практикам, познакомиться с архитектурой, а не сильно вдаваться в нюансы разницы языков.</p>
<p><strong>— Илья, PHP изначально задумывался как шаблонизатор для вывода HTML. Я слышал мнения опытных разработчиков, которые говорят, что на PHP трудно писать сложную бизнес-логику, так как язык для этого не предназначен. Так ли это? Вы как специалист, который работает в крупной компании и разрабатывает сложные решения на PHP, согласны с этим?</strong></p>
<p>— Да, действительно, PHP разрабатывался как шаблонизатор. Более того, в документации первых версий была информация, что этот инструмент не для программистов, точнее, для непрограммистов.</p>
<p>Сейчас всё изменилось. Язык больше не используется как шаблонизатор. Чаще можно увидеть, что на нём реализуется только бэкенд с API, а уже весь фронтенд берут на себя современные JavaScript-фреймворки и <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/biblioteka-react-review-article" rel="noopener noreferrer" target="_blank">библиотеки</a>.</p>
<p>Если вернуться к вопросу о бизнес-логике, то, честно говоря, такой проблемы не наблюдал, от коллег тоже не слышал.</p>
<p><strong>— Следующий вопрос будет интересным для новичков, может быть, для ребят, которые только выбирают язык. Поделитесь пожалуйста своим опытом, расскажите, что именно вы делаете на PHP в крупной компании? Можно подробно рассказать, какие это продукты, для чего они нужны.</strong></p>
<p>— Проектов в моей карьере было много. Это были и корпоративные решения, и популярные highload-продукты. Одной из первых приходит на ум система документооборота, которая писалась практически как эксперимент. Компания, в которой я работал, рассматривала покупку готового решения, но оно было дорогим. Поэтому я сам в порядке эксперимента попробовал закрыть главную потребность, связанную с документооборотом.</p>
<p>Эксперимент оказался удачным, мы набрали команду, которая развивала этот продукт. Это важный для меня пример, потому что здесь PHP идеально подошёл в качестве инструмента, он позволил быстро проверить гипотезу. Гибкость языка позволила развивать проект и быстро обучать команду.</p>
<p>Тогда же пришло понимание, насколько важно правильно построить процесс обучения. В тот момент информацию было не так удобно получать как сейчас, когда есть очень много хороших онлайн-школ, курсов. Тогда, к сожалению, чаще всего попадался на глаза веб-курс от Попова, который учил не очень правильным практикам. Эти практики, наверное, тоже внесли вклад в создание негативной репутации языка.</p>
<p>Другой проект — это стартап, платформа для создания диалоговых ассистентов. Они могли в чатах, по телефону отвечать, понимать контекст, запоминать и так далее. Чаще это описывают термином «чат-бот». На PHP здесь реализовали бэкенд сайта. А в первых версиях это был бэк и фронт. Потом решили сделать фронт современным и перешли на React. А бэкенд остался на Symfony, этот фреймворк отлично здесь себя показал.</p>
<p>Ещё один крупный проект на PHP, с которым я работал — ecommerce-решение для управления MLM-структурой. Самое интересно, что было в этом проекте — миграция с «Битрикса». Может я кого-то обижу, но в моих глазах репутация у «Битрикса» сомнительная. Одной из задач на проекте была миграция на фреймворк Symfony и доработка функционала. Получился достаточно сильный проект, работает хорошо и сегодня.</p>
<p>Ну и конечно же «Юла», один из проектов Mail.ru Group. Он создавался как стартап. Я думаю, это и стало причиной использования PHP на этом проекте. Стэк технологий здесь очень широкий, очень много решений используется. Основной бэкенд «Юлы» написан на PHP и на фреймворке Symfony.</p>
<p><strong>— Илья, вы несколько раз сказали, что PHP хорошо подходит для стартапов, для быстрого прототипирования. Значит ли это, что если проект уже большой, какой-то энтерпрайз, то PHP может не подойти?</strong></p>
<p>— Думаю, нет. Отличный пример, который уже все наверное знают — Facebook. Он, при его огромных нагрузках, работает на PHP. Да, команде Facebook приходилось применять какие-то сложные решения. Например, когда использовалась версия PHP 5.4 или 5.6, команда Facebook написала свой интерпретатор HipHop, чтобы ускорить язык. Но седьмая версия уже не требует таких решений, она работает быстрее, чем более ранние версии с HipHop. Это пример того, что продукт может работать на PHP очень долго.</p>
<p>Есть определённые тенденции, которые так или иначе уводят от PHP, например, в сторону микросервисной архитектуры. Сейчас очень популярны схемы перехода в Go. Но они не всегда оправданы. По-моему, на PHPConf есть доклады о том, когда оправдан переход на микросервисы, когда хорошо оставаться на монолите. Монолит, на самом деле, это не так уж и плохо.</p>
<p><strong>— Расскажите пожалуйста, как крупные компании, такие гиганты, как Mail.ru, вообще выбирают язык? Почему Mail.ru выбирает PHP, а не какие-то хайповые, «модные-молодёжные» языки?</strong></p>
<p>— Думаю, это связано с тем, что такие крупные компании как Mail.ru часто запускают проекты в режиме стартапов. Здесь важна именно скорость. Нужно проверить одну гипотезу, вторую, третью. PHP в этом плане хорошо подходит. Иногда выбор обусловлен языком CTO и core team. На чём эти люди начинают писать продукт, на том они и остаются. Но чаще всего выбор PHP обусловлен скоростью.</p>
<blockquote>
<p>«В целом PHP-программисты без работы не сидят»: о рынке труда</p>
</blockquote>
<p><strong>— Давайте поговорим о рынке труда, новичкам это интересно. Как вы думаете, для PHP-программистов, особенно для начинающих, рынок труда благоприятный? Насколько легко начинающему программисту без опыта коммерческой разработки найти работу?</strong></p>
<p>— Думаю, найти работу достаточно просто. Это обусловлено целым рядом факторов: начиная с популярности языка и заканчивая тем, что на рынке есть много компаний и команд с разным уровнем требований. Например, мне кажется, что если есть компания, которая не производит IT-продукты, а использует PHP как вспомогательную область, для поддержки образа в интернете, то требования в такой компании обычно достаточно низкие. То есть они стараются брать хороших программистов, но не перебарщивают в этом плане. И таких компаний очень много. Такую работу найти очень легко.</p>
<p>Также есть фриланс. Это неоднозначная тема.</p>
<p>В целом PHP-программисты без работы не сидят. Даже когда-то была шутка, что PHP-программисты так сильно хотят денег, что все переменные объявляют символом <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">$</code>.</p>
<p><strong>— А почему фриланс — неоднозначная тема, что с ним не так?</strong></p>
<p>— Фриланс — хороший способ для быстрого старта и применения знаний на практике. Но, как мне кажется, главный двигатель профессионального и личностного роста — это командная разработка.</p>
<p>Может быть я снова кого-то обижу, но на собеседованиях мы часто сталкивались с фрилансерами, для которых главным приоритетом был заработок и скорость. Это всегда сводится к тому, что решения начинают клепаться, используются шаблоны, заготовки.</p>
<p>Заказчики на фрилансе видят только внешнее решение, поэтому у фрилансера нет потребности делать внутри красиво и масштабируемо. Когда такие кандидаты переходят с самостоятельной деятельности на командную работу, они очень долго адаптируются. Если в команде не налажен флоу, если нет код-ревью, этот плохой код может распространяться и наносить ущерб проекту.</p>
<p><strong>— А мы можем сказать, что новичку нужно избегать фриланса и искать работу в команде, чтобы расти?</strong></p>
<p>— Да, на самом деле я в этом убеждён. Командная разработка даёт незаменимый опыт.</p>
<p><strong>— Илья, а кто вообще нанимает новичков? Куда пойдёт работать начинающий PHP-программист? Возможно, это студии, которые занимаются заказной разработкой, продуктовые компании, энтерпрайз?</strong></p>
<p>— Это и продуктовые компании, и студии. Но, кстати, сейчас есть тенденция, она пока не явная, но всё же — студии стали разрабатывать сайты на веб-конструкторах, на том же Wix, Тильде. То есть они используют <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/chto-takoe-no-code-i-kak-on-ustroen" rel="noopener noreferrer" target="_blank">no-code решения</a>. Поэтому веб-студии могут в перспективе реже нанимать PHP-программистов. А вот продуктовые команды — да, здесь эти специалисты нужны.</p>
<p>В энтерпрайзе PHP практически не используются. Есть редкие случаи, я знаю как минимум две компании, которые построили энтерпрайзные решения на PHP. Но чаще всего это продуктовые команды.</p>
<p><strong>— В своей компании вы участвуете в найме. Скажите пожалуйста, какие знания и умения нужны новичку, чтобы уверенно претендовать на позицию джуниор-разработчика?</strong></p>
<p>— Надо сказать, что градация программистов очень широко распространена. Но чётких границ почему-то нет. Принимая джуна, я бы сильно не мучал его вопросами по языку. Для меня было бы важным, чтобы человек уверенно владел базой, то есть я должен убедиться, что кандидат может уверенно использовать базовые инструменты языка без гугления. То есть не обязательно знать всё, но надо уверенно владеть каким-то минимумом.</p>
<p>Также для меня важны хорошие знания PSR. Это может звучать достаточно странно, потому что PSR по сути — это стандарт, который больше распространяется в режиме рекомендаций. Но я считаю, что PSR — это первый шаг, который подталкивает к чистоте кода.</p>
<p>Также я обратил бы внимание на понимание Git. Не знаю, почему именно, но когда мне задают в команде слишком простые вопросы о Git, это вызывает вспышки гнева. Конечно, они контролируемые :-)</p>
<p>Наверное, это связано с тем, что <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/courses/intro_to_git" rel="noopener noreferrer" target="_blank">Git — достаточно простой инструмент</a>. Его легко изучить. Он хорошо задокументирован, визуализирован. Есть много графических интерфейсов для работы с Git. Работа с Git — это базовые или фундаментальные навыки.</p>
<p><strong>— Илья, в моём понимании навыки работы с Git приобретаются с опытом. Человек осваивает этот инструмент, когда работает в команде, когда имеет дело с ветками, когда сталкивается с конфликтами... То есть на одной теории здесь далеко не уедешь. Вы считаете, что новичок должен прийти уже со знаниями этих нюансов, или достаточно понимать принципы, уметь <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/git-commit-message" rel="noopener noreferrer" target="_blank">сделать коммит</a> в main?</strong></p>
<p>— Да, я, конечно же, говорю о минимальных знаниях, о понимании того, как всё устроено, о способности посмотреть в лог, создать новую ветку, сделать commit, merge, push, pull. Этого достаточно. Даже исправление прошлого коммита — это уже навыки, которые специалисты приобретают на рабочем месте. А базовые навыки можно наработать в соло-разработке. Да, будет меньше вероятность merge-конфликта, но всё ещё она может быть. И такая рекомендация — я бы смотрел в сторону Git-flow. Это достаточно простая идея, и к ней хорошо привыкать с самого начала пути в разработке. Я и мои коллеги использовали её на своих пэт-проектах, причём не в качестве набора инструментов, а в качестве идеологии.</p>
<p><strong>— А должен ли джуниор-разработчик уметь работать с фреймворками?</strong></p>
<p>— Обычно такие ситуации решаются по-другому. Если нужен специалист, который работает с Symfony, мы ищем Symfony Junior Developer. Думаю, это отдельная история, так как при всей простоте изучения с учётом наличия материалов фреймворки — достаточно объёмные инструменты, которые требуют длительного изучения. Как правило, их приходится изучать даже дольше, чем сам язык.</p>
<p><strong>— Два слова о справедливости или несправедливости. Если посмотреть на рынок труда, на рейтинги, видно, что PHP-программисты всё-таки зарабатывают меньше, чем программисты на некоторых других языках, например, на Python. Как вы думаете, почему так произошло и есть ли вероятность изменить эту ситуацию в обозримом будущем?</strong></p>
<p>— Да, действительно, такая ситуация есть. Недавно готовил статистику для вебинара на тему жив или мёртв PHP. Уровень зарплат по США и Европе отличается в меньшую сторону. Сложно сказать, чем это обусловлено, потому что сложно понять, как эта статистика собиралась.</p>
<p>Я предполагаю, что ситуация связана с областью применения. PHP — язык для веб-разработки, а тот же Python применяют и в веб-разработке, и в аналитике, и в машинном обучении. Возможно, эта разница связана с тем, что берутся разные области и по ним сравнивается зарплата.</p>
<p>Как исправить ситуацию? Думаю, это возможно, если комьюнити PHP-разрабочиков будет более серьёзно относиться к профессиональному росту. Я говорю, конечно, не о той части комьюнити, которая опытная и уделяет много внимания качеству, а о той, которая предпочитает быстрый заработок и не обращает достаточно внимания на качество.</p>
<p><strong>— А как бы вы оценили комьюнити PHP-разработчиков? Оно дружелюбное, оно помогает развивать язык? Возможно, оно разрозненное, здесь нет ядра?</strong></p>
<p>— Комьюнити очень сильное. Проводится много конференций. Только в России PHPConf уже второй раз пройдёт. Очень общительные ребята, много спикеров, которые внесли большой вклад как в развитие отдельных фреймворков, так и в развитие языка в целом. Поэтому да, комьюнити у PHP сильное.</p>
<p><strong>— Илья, если бы к вам пришёл друг и спросил, как ему научиться программировать на PHP, что бы вы ему посоветовали?</strong></p>
<p>— Хороший вопрос. Думаю, я бы просто дал бы какие-то материалы, это был бы видеокурс. Или просто посоветовал бы какую-то школу. А потом помогал бы, показал бы примеры проектов и инструментов, которые стоит использовать.</p>
<p><strong>— А с практикой как дело обстоит? Возможно, здесь что-то можно порекомендовать?</strong></p>
<p>— Возможно, это прозвучит противоречиво с учётом того, что я сказал раньше, но можно первые несколько проектов взять на фрилансе. Это как минимум позволит получить опыт, взять рабочую идею и реализовать её.</p>
<p><strong>— А к опенсорсу как вы относитесь? Например, у нас есть опенсорс-проект <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://sicp.hexlet.io/" rel="noopener noreferrer" target="_blank">Hexlet SICP</a>, он на Laravel сделан. Студенты, если хотят, практикуются на этом проекте.</strong></p>
<p>— Очень хорошо, что вы затронули эту тему. Хорошо отношусь к опенсорсу. Это отличная возможность погрузиться в командную разработку. Как правило, требования к опенсорс-решениям чуть ли не выше, чем к коммерческим продуктам. Поэтому опенсорс может быть сильным образовательным бустом и давать интересный опыт.</p>
<blockquote>
<p>«С использованием фреймворков язык просто расцветает»: о разработке на PHP</p>
</blockquote>
<p><strong>— Илья, предлагаю перейти к обсуждению разработки на PHP. В связи с этим вопрос: у нас есть огромный пласт веба, который работает на PHP. В тех же Соединённых Штатах, в Европе я видел много компаний, учреждений, университетов, у которых сайты на WordPress. Большие магазины работают на WooCommerce, на Opencart. Кажется, последний у нас более популярный. Я бы сказал, что веб принадлежит PHP. Как вы думаете, есть какие-то обстоятельства, которые могут в обозримом будущем поменять ситуацию, пошатнуть позиции PHP в вебе?</strong></p>
<p>— Думаю, да, ситуация может измениться. Вопрос в том, как. Да, CMS занимают уверенную позицию. Даже когда у меня появляется в очередной раз мысль, что надо сделать личный блог, выбор всегда падает на WordPress. Просто потому, что WordPress в первую очередь ассоциируется с блогом. Превращение его в ecommerce-решение — это совсем другая история.</p>
<p>Движки держатся уверенно. Но ситуацию могут поменять новые тенденции в разработке. Например, мы уже упоминали, что в последние годы быстро растёт популярность SaaS-решений типа Wix и Tilda. С помощью этих инструментов люди делают очень серьёзные продукты.</p>
<p>Если убрать движки, это повлияет на популярность языка, на рынок фриланса и веб-студий. Но те продукты, которые сейчас работают на PHP или которые удобно делать на PHP, они так и будут на PHP работать.</p>
<p>Если подвести итог, лидеры среди CMS ещё долго будут удерживать позиции, и популярность PHP сохранится.</p>
<p><strong>— Илья, можете описать типичную команду, которая использует PHP? Где она находится географически, что за продукт она делает? С кем готовиться работать новичку, который изучит PHP?</strong></p>
<p>— Достаточно сложный вопрос. Я не уверен, что есть какие-то географические привязки. PHP-разработчик, как и любой другой разработчик, может работать откуда угодно. Это особенно удобно, если рассматривать схемы удалённой работы из России в США.</p>
<p>Мне кажется, в Кремниевой долине сложно с PHP, потому что там не очень много компаний, которые используют этот язык. Там чаще выбирают какие-то хайповые решения. В остальном мире большой разницы в популярности PHP нет. Насколько я знаю, есть только разница в популярности отдельных продуктов. На Западе чаще используют Laravel. Чуть восточнее популярностью пользуется Symfony. Хотя это достаточно похожие решения.</p>
<p>Что касается команды, наверное, тоже нельзя выделить PHP-разработчиков среди других. Такие же специалисты, как в других языках.</p>
<p><strong>— Илья, вы говорили, что в энтерпрайзе PHP используют редко. В связи с этим можем ли мы сказать, что этот язык больше подходит малому и возможно среднему бизнесу, а крупный бизнес обходит его стороной?</strong></p>
<p>— Конечно, хотелось бы сказать, что это не так. Но на PHP действительно чаще делают не очень большие или средние проекты. Крупные проекты часто переписываются, причём многократно. Как тот же YouTube, который был изначально написан на PHP, а потом его переписали. В России можно вспомнить «Озон», который писали на PHP, а потом переписали на Go.</p>
<p>Наверное, есть такой уровень, на котором продукт начинает трансформироваться. Но способы трансформации зависят от финансовых возможностей компании. И не всегда финансово оправдано полностью менять стек проекта. И, надо понимать, что PHP достаточно хорошо показывает себя и на крупных проектах, особенно при правильно <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/gid-po-professii-arhitektor" rel="noopener noreferrer" target="_blank">спроектированной архитектуре</a>.</p>
<p><strong>— PHP считается языком общего назначения, но по факту используется только в вебе. Как вы считаете, есть ли какая-то возможность широко использовать его за пределами веба?</strong></p>
<p>— Думаю, что нет. Веб — область, где PHP чувствует себя как рыба в воде. Использовать этот язык в других областях будет сложно просто из-за высокой конкуренции с другими языками.</p>
<p>Если рассматривать переход на десктопную разработку, здесь PHP мог бы использоваться для создания бэкенда веб-приложений, которые затем превращаются в десктопные приложения. Но здесь скорее преимущество будет у Node.js, просто из-за того, что командам часто удобнее писать приложение в одном стеке.</p>
<p>Если говорить о серверной разработке, к сожалению, PHP не славится как язык для многопоточной разработки. Поэтому здесь тоже очень высокая конкуренция. И скорее всего решение здесь будет написано на каком-нибудь Go.</p>
<p>Для энтерпрайзных решений команды обычно выбирают C# или <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/javaland" rel="noopener noreferrer" target="_blank">Java</a>.</p>
<p>Поэтому PHP зависим от веба. Наверное, в нём он и останется.</p>
<p><strong>— Тогда, наверное, пришло время поговорить о веб-фреймворках. Я слышал мнения, что фреймворки типа Symfony и Laravel — это одна из самых сильных сторон PHP, она делает этот язык конкурентоспособным. В связи с этим два вопроса к вам. Первый — согласны ли вы, что фреймворки являются одной из самых лучших сторон PHP? И второй — а что дают фреймворки разработчикам, потребителям, возможно, комьюнити?</strong></p>
<p>— Да, я согласен, что это сильная сторона языка. С использованием фреймворков PHP просто расцветает, разработка становится очень приятной. Дают они достаточно много. В первую очередь это скорость разработки. Многое уже написано до нас, фреймворки позволяют использовать это, подключать готовые решения.</p>
<p>Фреймворки продвигают лучшие практики, популяризируют правильные архитектурные решения. Это может способствовать формированию корректных знаний у разработчика.</p>
<p>Также это безопасность, расширение кругозора. В фреймворках применяются паттерны, новые возможности языка, а это очень полезно.</p>
<p><strong>— Илья, два слова о разнообразии фреймворков. В Python доминирует <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/pochemu-django-luchshiy-freymvork-dlya-razrabotki-saytov" rel="noopener noreferrer" target="_blank">Django</a>, в Ruby — «рельсы». А в PHP сразу несколько ведущих фреймворков. Что лучше для разработчиков, для сообщества — иметь один основной фреймворк или несколько разных?</strong></p>
<p>— Думаю, при текущем небольшом списке топ-фреймвоков это не так уж плохо. Если бы фреймворков было очень много, разработчики могли бы теряться. В ситуации с Laravel и Symfony всё проще. Можно выучить любой из них, думаю, это не будет ошибкой. Между ними можно легко переключаться, это очень похожие решения. Часть инструментов Symfony используется в самом движке Laravel. Поэтому миграция с движка на движок простая, а изучение одного движка даёт понимание, как работает другой.</p>
<p><strong>— Вы работали и работаете в крупных компаниях, разрабатываете большие проекты. А как вы относитесь к популярным решениям на PHP типа WordPress, Joomla! и других CMS? Имеют ли они право на существование в бизнес-сегменте? Или это решения для блогеров или для микробизнеса типа условных обувных мастерских?</strong></p>
<p>— Как я уже говорил, WordPress как продукт мне нравится. Если говорить о блоге, я выберу WordPress. Компании этот движок тоже используют. Например, когда нужно быстро проверить какую-то гипотезу, реализовать внешний блог. Иногда эту CMS применяют для организации внутренней базы знаний.</p>
<p>А если компании нужен лендинг, который будет получать рекламный трафик, лучше сделать его на конструкторе или написать самому на чистом PHP. Мы чаще всего делаем так.</p>
<p><strong>— К предыдущему вопросу: если у вас спросят, на чём делать сайт, что вы посоветуете? Здесь давайте рассмотрим две ситуации. Первая: совета просит друг, который занимается, допустим, ремонтом квартир, и не собирается развиваться в сфере веб-разработки. И вторая: ещё один друг интересуется технической стороной вопроса, готов покопаться в теории, что-то изучить.</strong></p>
<p>— Возможно, я повторюсь, но первому другу я посоветую конструкторы. Для данного случая это оптимальное решение с точки зрения финансов. SaaS-платформы берут на себя хостинг, их легко настраивать, поэтому они позволяют сэкономить время и деньги.</p>
<p>А второму другу я бы посоветовал изучать PHP. Этот язык будет трамплином для быстрого входа в разработку. Благодаря простоте он уменьшит нагрузку на силу воли, на мотивацию, потому что человек очень быстро получит результат.</p>
<p><strong>— Давайте поговорим о конкурентах, которые наступают на пятки PHP. Я недавно читал, что новые сайты сейчас редко делают на PHP. Бизнес якобы предпочитает тот же Django, Ruby on Rails, на Node.js и каких-то JavaScript-фреймворках. А PHP-разработчикам якобы остаётся пласт работы, связанный с поддержкой легаси-проектов. Как вы относитесь к такому мнению, согласны с ним?</strong></p>
<p>— Хороший вопрос. Есть такой ресурс — Packegist. На нём публикуют публичные пакеты, созданные PHP-разработчиками. У них есть открытая статистика, которая отражает количество опубликованных пакетов и количество версий. Графики, созданные на основе этой статистики, явно стремятся вверх. То есть количество опубликованных решений постоянно растёт.</p>
<p>Да, сложно вспомнить свежие большие проекты, которые были написаны на PHP и остались на нём. Думаю, можно считать Badoo достаточно свежим, также BlaBlaCar. Новые проекты тоже используют, но это стало случаться реже. Это связано с тем, что приходиться прогибаться под рынок и популярность тех или иных языков.</p>
<p>Думаю, тот же всплеск популярности JavaScript сильно повлиял на этот рынок. Появилось много бэкенд-программистов, которые <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/zachem-izuchat-node-js-ili-o-perspektivah-bekenda-na-javascript" rel="noopener noreferrer" target="_blank">используют Node.js</a>. И многие компании при выборе стека ориентируются на то, насколько просто можно набрать команду.</p>
<p><strong>— Илья, как вы думаете, какой язык можно назвать главным конкурентом PHP? Может ли этот язык, если он есть, вытеснить PHP из веба?</strong></p>
<p>— Да, думаю, JavaScript становится слишком популярным. И в принципе он может забрать на себя обе части веба: фронтенд и бэкенд.</p>
<p>Другой вопрос в том, что создатель Node.js Райан Даль негативно высказывается о том, как сейчас используется его детище. Поэтому он создал Deno — альтернативный рантайм для JavaScript. Этот проект может сильно поменять ситуацию на рынке.</p>
<p>Если ещё подумать о конкурентах, я вижу тенденцию переучивания PHP-разработчиков в Go.</p>
<p><strong>— Они используют Go в вебе?</strong></p>
<p>— И в вебе тоже. Go сейчас достаточно много применяется в веб-разработке, есть даже фреймворки. Считается, что в Go они дают не слишком явные преимущества, но всё-таки как решения, которые позволяют использовать микросервисную архитектуру, они достаточно соблазнительные.</p>
<p><strong>— А можете сравнить PHP и Python в веб-разработке: сильные и слабые стороны языков, инфраструктуру, инструменты, сообщества?</strong></p>
<p>— Мне, наверное, будет сложно сравнить эти языки. С Python у меня нет большого опыта: проводил ревью, ковырял Django, конечно, из любопытства. Но плотно не работал, так как язык лично для меня не представлял интереса.</p>
<p>Эти языки, в принципе, очень похожи. Они одинаково сильные в веб-разработке. Но Python, как мне кажется, становится интереснее за рамками веба, чем в вебе. А если говорить только о вебе, я не думаю, что стоило бы выбирать Python.</p>
<p><strong>— Илья, скажите пожалуйста, PHP был у вас первым языком программирования?</strong></p>
<p>— На самом деле нет. Первым был C++ в школьные годы, после него был C#, потом я пришёл в PHP.</p>
<p><strong>— А если бы вы сегодня начинали учиться, какой язык выбрали бы?</strong></p>
<p>— Вопрос очень хороший. Есть очень много языков, которые хотелось бы учить и которые я изучаю. Но, если представить, что я начинаю сегодня, наверное, выбрал бы PHP, но построил бы обучение по-другому. Я потерял много времени на отсутствии корректного плана обучения и отсутствии советов.</p>
<p>Начиная учиться сегодня, я бы уделял больше внимания общепрограммистским областям, которые применимы в любом языке. Это и знания архитектуры, и понимание того, как писать чистый код, паттерны, парадигмы. То есть я бы постарался использовать язык исключительно как инструмент, а не полностью сосредотачиваться на нём.</p>
<p><strong>— Илья, последний вопрос, вернее, просьба к вам. Пожалуйста, порекомендуйте что-то полезное людям, которые сегодня начинают изучать программирование независимо от языка.</strong></p>
<p>— Стоит вообще сказать, что эти люди сделали хороший выбор. Есть замечательная книга «Совершенный код», в которой буквально на первых страницах сказано, что далеко не все инженеры, IT-специалисты получали профильное образование. Многие из нас — самоучки, которые <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/categories/success" rel="noopener noreferrer" target="_blank">пришли в отрасль в зрелом возрасте</a>.</p>
<p>Эта отрасль очень популярная, многие хотят попасть в неё, есть даже какой-то ажиотаж. И попасть в эту отрасль — уже большое достижение. Здесь есть много преимуществ, но также требуется очень много работы. В первую очередь это работа над собой. Нужно быть готовым к тому, что образовательный путь никогда не закончится.</p>
<style data-mantine-styles="inline">.__m__-_R_8hderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_8hderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_8hderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/gid-po-professii-testirovschik-chem-zanimaetsya-skolko-zarabatyvaet-chto-nado-znat-i-gde-uchitsya"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTYzNiwicHVyIjoiYmxvYl9pZCJ9fQ==--72f5a3fb78c634c408f39349dbd2e203809b4069/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D1%82%D0%B5%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA2023-01.png" loading="lazy" alt="Кто такой тестировщик и как им стать"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Кто такой тестировщик и как им стать</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Рассказываем, кто такой тестировщик и чем он занимается, сколько зарабатывает такой специалист, а...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">29 декабря 2023 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/gid-po-professii-arhitektor"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Гид по профессии архитектор: чем они занимаются, где учатся и сколько зарабатывают"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Гид по профессии архитектор: чем они занимаются, где учатся и сколько зарабатывают</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Профессия архитектора ПО кажется одной из самых сложных в технологическом секторе. Практически не...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">11 ноября 2020 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/shamaev-about-php"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Современный PHP сформирует хорошее мышление в стиле ООП: интервью с Максимом Шамаевым"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Современный PHP сформирует хорошее мышление в стиле ООП: интервью с Максимом Шамаевым</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Максим Шамаев — DevOps в Skyeng, известный участник сообщества PHP-разработчиков. В интервью для ...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">19 октября 2020 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<p>Вам будет часто казаться, что уже удалось достичь какого-то серьёзного уровня. Будете думать, что вы уже стали, например, сеньором. А потом окажется, что впереди ещё очень большой образовательный путь. Это не должно расстраивать. Наоборот, это должно давать драйв и подпитывать уверенность в себе и своих силах.</p>
<p>Уверенность очень важна. Есть много хороших разработчиков с невероятными способностями и навыками, которые оценивают себя ниже, чем есть на самом деле. Поэтому мой совет: не прекращайте учиться, ловите от этого драйв и будьте уверенными в себе!</p>
<p><strong>— Илья, большое спасибо за интересный разговор! Было интересно узнать от вас — практикующего разработчика — о ситуации в мире PHP, о том, что этот язык жив и активно применяется в том числе в больших компаниях. Думаю, это можно зафиксировать в качестве итога нашего разговора.</strong></p>
<p>— Да, действительно, это так. Желаю удачи читателям!</p>
<blockquote>
<p>Изучайте PHP н�� Хекслете — пройдите <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/professions/php" rel="noopener noreferrer" target="_blank">групповое обучение в рамках профессии</a>. Во время обучения вы выполните четыре проекта, которые останутся в вашем портфолио на GitHub.</p>
</blockquote></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Дмитрий Дементий</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">5 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/php-talks-zobenko/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/gid-po-professii-testirovschik-chem-zanimaetsya-skolko-zarabatyvaet-chto-nado-znat-i-gde-uchitsya">Кто такой тестировщик и как им стать</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/gid-po-professii-arhitektor">Гид по профессии архитектор: чем они занимаются, где учатся и сколько зарабатывают</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/shamaev-about-php">Современный PHP сформирует хорошее мышление в стиле ООП: интервью с Максимом Шамаевым</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_web_development?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по веб-разработке</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>