
PHP – один из наиболее распространенных в современном цифровом мире инструментов для создания программного обеспечения. Он постоянно совершенствуется и наверняка еще очень долго останется одним из самых востребованных языков программирования. Согласно статистическим данным, на настоящий момент PHP используется более чем на 55% всех сайтов и серверов, имеющихся во Всемирной сети. В чем заключаются преимущества этого языка и как стать профессиональным РНР-программистом, поговорим с Ильей Федько – преподавателем базового курса РНР в IT-Академии А. Сухорукова.
Илья, что такое РНР?
Это язык программирования, название которого произошло от словосочетания «Personal Home Page Tools», то есть, «Инструменты для разработки персональной домашней страницы». Данный язык создавался именно с такой целью, и начальные буквы первых трех слов сложились в запоминающуюся аббревиатуру. Сегодня полное его название звучит как «РНP: hypertext preprocessor» — «ПХП: препроцессор гипертекста». Этот язык имеет открытый исходный код, то есть все пользователи имеют возможность просматривать его и принимать участие в доработке.
Какова область использования РНР?
Как следует из его названия, этот язык был специально разработан для создания web-приложений. С его помощью можно писать практически любые скрипты и сценарии, которые исполняются на сервере. Кроме того, PHP позволяет быстро и удобно работать самыми разными типами баз данных: MySQL, Oracle, PostgreSQL, SQLite и т.д. Именно это сочетание, такая «связка» областей применения и делает РНР оптимальным инструментом для создания интернет-сайтов различной сложности.
А вот, например, для создания программных продуктов для десктопов этот язык подходит не очень хорошо. То есть написать такое приложение можно, но его будет довольно неудобно использовать, поскольку тогда понадобится устанавливать РНР на компьютере пользователя программы. А это, разумеется, существенно усложнит весь процесс.
А какие известные сайты и проекты используют PHP?
Ну, как минимум, такие гиганты, как Google, Wikipedia, Yahoo! и Facebook.
В чем же секрет такой популярности?
Причин здесь сразу несколько. Перечислю самые, на мой взгляд, значительные:
- Синтаксис РНР во многом напоминает синтаксис С и Perl, поэтому для программиста, который умеет работать в этих средах, не составит труда изучить и РНР. С другой стороны, данный язык все-таки проще и понятнее, чем C, а значит, его без особых проблем освоит и веб-мастер, не владеющий другими инструментами программирования.
- Еще одно свойство PHP – работа скриптов на стороне сервера. Следовательно, скорость их выполнения не зависит от производительности компьютера пользователя. Это обеспечивает быстродействие сайта, комфорт для его посетителей, а соответственно, и приток клиентов.
- Кроме того, РНР обладает довольно высокой универсальностью в работе со сценариями. Он способен как интегрировать их в html-страницы, так и исполнять в виде отдельных файлов. Это могут быть изображения разных форматов (.jpeg, .gif, .pdf), данные в текстовых форматах, в форматах .xhtml или .xml и т.д.
- Наконец, PHP – кроссплатформенная технология. Дистрибутивы на этом языке доступны для большинства операционных систем, включая модификации *nix-like систем, Microsoft Windows и Mac OS. И плюс к этому, данный язык может использоваться практически со всеми типами веб-серверов (Apache, IIS, Microsoft Personal Web Server и др.)
А велик ли инструментарий РНР?
Очень! Для этого языка имеется значительное число библиотек. Их иногда еще называют РНР-фреймворками. Именно они позволяют оптимизировать процесс общения сервера и клиента, разгрузить сам сервер, сделать нахождение пользователя на сайте более удобным, например, обновляя страницу или какие-то данные, размещенные на ней, в режиме реального времени. А кроме того, РНР-фреймворки являются мощным инструментом ускорения работы программиста, поскольку предоставляют готовые решения типовых задач, часто возникающих при написании веб-приложений.
Какими качествами должен обладать настоящий специалист в РНР?
В первую очередь – это усидчивость и упорство, а также желание самосовершенствоваться в выбранной области. Еще очень помогут в освоении РНР аналитический склад ума, умение просчитывать алгоритмы и понимание принципов работы программ.
Говорят, ты увлекаешься йогой? Помогает в РНР медитативное восприятие мира?
Не только йогой, но и спортом. И да, помогает. Потому что это прекрасный способ переключиться на другой тип деятельности, расслабиться, отвлечься, очистить свое сознание, если можно так сказать. А затем с новыми силами и новыми идеями взглянуть на программистскую задачу. Иногда такой взгляд «с чистого листа» приводит к появлению необычных, но изящных и эффективных решений.
Востребованы ли РНР-специалисты на современном рынке?
Да, конечно. Сегодня практически любая компания стремится заиметь свой сайт в Интернете. Крупные фирмы нередко содержат целые отделы, отвечающие за работу их представительства во Всемирной сети. Малые и средние компании предпочитают обращаться в веб-студии, которые занимаются созданием сайтов, и тем самым постоянно обеспечивают их притоком новых заказов. Именно поэтому РНР – один из наиболее популярных языков программирования, и такие специалисты нужны каждой организации, имеющей отношение к веб-технологиям.
А на какую зарплату может рассчитывать РНР-программист?
По моим данным, специалист по РНР, работающий на уровне junior, обычно получает 20-30 тысяч рублей. Уровень middle – это зарплата где-то до 60 тысяч в месяц, ну а для senior’а эта цифра составляет от 70 и более тысяч рублей. Верхний предел тут обозначить сложно, он определяется сферой ответственности сотрудника и масштабностью проекта, который он ведет.
Каковы перспективы карьерного роста в этой специальности?
Зависит, в первую очередь, от личных качеств человека, от его устремлений. Пройдя стандартную цепочку (джуниор, мидл, сеньор), можно подняться и до тимлида. Ну а дальше РНР-программист при наличии административных задатков вполне может войти в высший менеджмент компании и, например, возглавить ее IT-департамент.
А как начать свою карьеру в РНР-программировании? Сложно ли это?
При наличии желания и настойчивости все обязательно получится. Прохождение курсов по РНР в Академии Сухорукова уже даст вам хорошую базу. Конечно, нужно учитывать, что за имеющиеся, довольно ограниченные часы я не успею дать слушателям обширную практическую основу. Но я обычно не ограничиваюсь рамками курса – по его завершении я индивидуально обозначаю ориентировочный план каждому слушателю. А также предоставляю полезный список литературы для дальнейшего развития. Дальше все упирается в стремление человека к саморазвитию в профессии.
Начинать практическую карьеру я бы порекомендовал с небольших веб-студий, чтобы «прочувствовать» цикл разработки на относительно простых проектах. Подготовки, полученной на курсах в Академии, вполне хватит для такой работы. Если студия использует фреймворки – это вам дополнительно поможет, и одновременно вы наберетесь практического опыта. Ну а дальше необходимо работать над собой и постоянно повышать свой уровень программирования.
А что входит в программу курса?
- Первый этап – знакомство с инструментарием РНР, таким как, например VirtualBox и Vagrant – средства для создания и управления виртуальной машиной, а также система контроля версий и консоль.
- Далее начинается изучение собственно РНР, а также принципов его работы с базами данных MySQL.
- Потом слушатели курса, используя мою заготовку, самостоятельно создают виртуальную среду и начинают в ней работать.
- Пользователи решают определенные задачи, на практическом примере изучая (с моей, конечно, помощью) синтаксис языка РНР.
- Кроме того, участники курса изучают типы данных, функции, понятие классов, знакомятся с паттернами и т.д.
- Затем, усложняя решаемые задачи, слушатели параллельно учатся пользоваться системой контроля версий.
- И ближе к завершению курса они выполняют свое собственное индивидуальное проектное задание.
Что такое PHP-инъекция? Говорят, что это «хроническая» уязвимость любых скриптов и сценариев этого языка, предоставляющая несанкционированный доступ злоумышленникам?
Да, я тоже слышал такое мнение, но оно не совсем соответствует действительности. РНР в руках умелого человека – вполне нормальный в плане безопасности инструмент. Знающий программист обеспечит надежную защиту и от РНР-инъекций и от прочих действий, направленных против веб-сайта.
С какими проблемами сталкивается чаще всего РНР-разработчик?
- Сложность отладки уже написанной программы. Хотя эта проблема актуальна в первую очередь для начинающих специалистов.
- Проблема, которая является классической не только для РНР-программирования, но и в целом для IT-области – недостаточные сроки, которые ставит начальство для решения тех или иных задач.
- Ну и, пожалуй, трудности при производстве сложных вычислений в РНР. Но дело в том, что этот язык не создан для вычислений, и, если этого действительно требует задача, то лучше использовать другие, более эффективные инструменты.
Илья, каков по твоему мнению самый важный совет новичку в профессии?
Практикуйтесь! Как можно больше практикуйтесь и не распыляйтесь сразу на многое. Если решили осваивать РНР, то постарайтесь выполнить хотя бы несколько проектов, пусть даже за совсем символическую плату. Ищите задачи для новичков в Интернете, пробуйте новое и развивайтесь. Ведь тут как в спорте: чуть остановишься – дыхание сбилось, темп потерян и все надо начинать заново. Так что – только вперед!
Ну, а курсы в Академии станут для вас отличным стартом!