Все статьи | Код

С чего начать учить PHP: особенности, синтаксис и идеи для первых проектов

С чего начать учить PHP: особенности, синтаксис и идеи для первых проектов главное изображение

В этой статье разберемся в перспективах и популярности PHP в 2022 году, рассмотрим плюсы и минусы языка, поговорим про платформы для тренировки навыков на практике и источниках идей для первых проектов.

Введение

PHP — самый популярный язык для веб-разработки. Почти 80% всех сайтов в интернете написаны на этом языке.

Поскольку язык очень широко распространен, работу на нем можно найти практически в любой сфере. Особенно он актуален в компаниях на этапе создания mvp (минимально жизнеспособного продукта) или среди разработчиков CRM-систем.

Код на PHP выглядит, например, так:

<?php

function isCorrectPassword($password)
{
    $length = strlen($password);
    return $length > 8 && $length < 20;
}

isCorrectPassword('qwerty'); // false
isCorrectPassword('qwerty1234'); // true
isCorrectPassword('zxcvbnmasdfghjkqwertyui'); // false

Преимущества и особенности PHP

Сообщество

Сообщество помогает с проблемами, которые не получается решить чтением документации и гуглом. У PHP оно большое и дружелюбное к новичкам  — причем как в англоязычном мире, так и в России.

Крупнейший глобальный форум по языку программирования — PHP Community, в России — PHP Club. Существует несколько десятков крупных телеграм-чатов для разработчиков разного уровня (самые популярные: раз, два, три), а также отдельные чаты для джунов, где можно задавать любые вопросы и не бояться осуждения.

Низкий порог входа

Это и плюс, и минус языка. С одной стороны, начать программировать на PHP относительно просто, с другой — некоторые разработчики не выходят за рамки с CMS, работают на уровне конструкторов и редко касаются кода. От этого страдает сообщество, а поиск PHP-разработчика, который понимает теорию и умеет кодить, превращается в действительно сложную задачу.

Составьте свое первое резюме: Вы можете бесплатно опубликовать свое резюме в нашем сервисе «Хекслет-CV» и получить советы по его улучшению от разработчиков и HR-менеджеров

Обратная совместимость

Обратная совместимость термин, которым обозначают легкость обновления кода под новую версию. Разработчики PHP стараются поддерживать ее на высоком уровне: к моменту выхода восьмой версии обратная совместимость у языка почти полная (за исключением некоторых моментов).

Это и преимущество, и недостаток языка программирования: с одной стороны, разработчики могут не бояться переезда и всегда использовать новую версию. С другой — в PHP до сих пор остались некоторые функции стандартных библиотек, которые работают странно и несогласованно. Яркий пример — функции array map и array reduce, у которых положение входного массива и функции отличаются. Это не очевидно и к этому надо привыкать.

Синтаксис PHP

Начнем с азов: строку Hello, world! можно вывести на экран двумя способами.

  1. С помощью специальной команды echo
<?php

echo 'Hello, World!'; 
// => Hello, World!
  1. С помощью функции print_r().
<?php

print_r('Hello, World!');
// => Hello, World!

Любой код на PHP должен быть обёрнут в конструкцию <?php ?>, где <?php — это открывающий тег, а ?> — закрывающий. Это особенность языка программирования.

Комментарии

Комментарии в коде бывают двух видов: однострочные (//) и многострочные (/* */).

<?php
/*
 * The night is dark and
 * full of terrors.
 */
print_r('I am the King');

Переменные

Перед объявлением переменной не нужно указывать ее тип — достаточно поставить значок $. Кроме того, одно значение можно присвоить нескольким переменным.

Другие элементы

Вот описание других элементов синтаксиса в PHP: типы, массивыарифметические операции, циклы, условия if-else, функции.

Фреймворки для PHP

У PHP множество фреймворков, но в этой статье кратко рассмотрим три самых популярных: Laravel, Yii и Symfony.

  • Laravel — фреймворк с самым низким порогом входа, с него можно начинать знакомство с возможностями языка. Если возникнут трудности, по фреймворку есть несколько чатов: для базовых вопросов и для кейсов посложнее.
  • Yii — еще один фреймворк с низким порогом входа: для начала работы с ним достаточно знать PHP на уровне новичка. Русскоязычные чаты разбиты по версиям: первая, вторая и третья.
  • Symfony — самая масштабная библиотека-фреймворк на PHP. Возможностей больше, но и порог входа выше.

Что учить вместе с PHP

PHP — язык для веб-разработки, поэтому знать HTML и CSS хотя бы на базовом уровне нужно обязательно. То же касается протокола HTTP на уровне понимания процесса работы запросов клиент-сервер.

Остальные технологии можно разделить на две категории:

  • Полезно знать. Git (нужен всем программистам, которые собираются заниматься коммерческой разработкой), SQL (подавляющее число веб-приложений имеют базу данных), Nginx и Apache (для настройки окружения);
  • Дополнительные навыки. Linux/Unix, JavaScript, Docker.

Как выбрать редактор кода или среду для разработки на PHP

На первом этапе сложная среда разработки вроде PHPStorm не нужна — новичку IDE покажется монстром с множеством функций, который к тому же медленно открывается.

Sublime и VSCode, напротив, быстро открываются, настраиваются и позволяют относительно просто подключать дополнительные фичи. Например, инструменты для взаимодействия с базой данных или с кэшем.

Когда понадобятся инструменты для работы с Git, шаблонизаторами, окружением, тестами и другими технологиями, можно переходить на IDE — например, на PHPStorm, Netbeans и Aptana Studio.

Какие книги и сайты использовать для изучения PHP

Выше уже говорилось, что при изучении PHP важно уделять много внимания теории, а не только учиться писать код. Этот язык программирования дает очень размытое представление о том, как его компоненты работают на базовом уровне. Понимание теории поможет освоить и PHP, и любой другой язык программирования.

На русском языке есть несколько подходящих книг:

  • «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих», Адитья Бхаргава;
  • «Код: тайный язык информатики», Чарльз Петцольд;
  • «Чистый код», «Идеальный программист», «Чистая архитектура», Роберт Мартин.

Важно уточнить, что читать эти книги лучше через полгода после начала обучения. С одной стороны, за это время появится представление о PHP, с другой — желание применить новые знания и переписать весь проект возникнет не сразу.

Если говорить о сайтах, то на PHP: The Right Way собрана обширная база материалов для разработчиков разных уровней, а CodeBasics подходит для изучения синтаксиса.

Где тренироваться

Соревнования помогают развивать навыки кодирования и учат видеть неочевидные пути решения задач. Вот три самых популярных платформы:

  • Codewars. Платформа с соревнованиями для разработчиков разных уровней подготовки. Все решения участников публикуются в открытом доступе после завершения раунда. Это важный элемент обучения: можно решать задачу несколько дней в 100 строк кода, а можно сделать то же самое за несколько часов и пять строк. Например, с помощью готовых функций.
  • Hackerrank. Кроме соревнований на платформе есть раздел подготовки к интервью с самыми популярными и актуальными вопросами. Например, есть блоки по массивам, объектам и другим сущностям — с объяснением, как это работает, и с задачами на закрепление знаний.
  • Leetcode. Раздел Learn с теорией и практикой для ее закрепления помогает понять логику программистских задач и научиться решать их практически с нуля.

Вместо заключения

Главный итог обучения — смена профессии. Вот несколько советов, с чего начать переход от задач и тренировки к реальным проектам в портфолио.

  • Автоматизация рутинных задач

Лучшее, с чего можно начать — найти в своей жизни момент, который можно автоматизировать. Например, если вы хотите выработать привычку читать каждый день по 10 страниц. Можно сделать приложение для учета количества страниц книги, прочитанной в определенный день. Утилитарность приложения почти гарантирует, что проект будет доведен до конца.

  • Задачи, которые встречаются в реальных проектах

Можно попробовать реализовать функции, которые встречаются в реальных проектах — например, форму для сайта. В ней можно сделать HTML и CSS, добавить JS и прописать логику. Например, реализовать сохранение в базу данных или отправлять сообщение на почту. На таком проекте можно учиться разделять логику. Например, сделать так, чтобы один отвечал за отображение, другой — за саму форму, третий —  за сохранение данных в базе.

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Аватар пользователя Oleg Sabitov
Oleg Sabitov 21 декабря 2021
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев