twofolls95
@twofolls95

Как эффективно выучить PHP?

Всем привет! :)
Два месяца назад я начал изучать PHP самостоятельно дома. Посмотрел полностью курс "Премиум курс. Курс по PHP программированию" от команды WebForMySelf. В целом, небольшая база у меня есть, я понимаю что такое переменные, константы, операторы, циклы и условия. Но вся проблема в том, что нету чёткого представления как всем этим пользоваться, да и вообще как писать программы в целом. Я пробовал писать по статьям и видео на YouTube блог, авторизацию, но толку от этого мало.
Вопрос заключается в следующем, как максимально эффективно отточить усвоенную теорию, научиться нормально писать скрипты, и не потерять кучу времени на ненужную информацию? Кто-то советует по статьям писать на процедурке, кто-то говорит что лучше изучать ООП сразу. Стоит ли сразу изучать ООП? Или лучше научиться писать на процедурном для начала? Ещё мне посоветовали курс, "PHP-Мастер. От теории до собственной CMS интернет-магазина", там используется ООП, и я незнаю стоить сейчас его учить, просто не особо хочется создавать путаницу в голове. Короче, поставьте меня правильный путь, господа! =)
Заранее спасибо! :)
  • Вопрос задан
  • 2029 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Во-первых, грешно знать одну парадигму. Учите и процедурный подход, и объектно-ориентированный и функциональный. Во-вторых, читайте учебники, они намного полезнее курсов и видео-уроков. В-третьих, самое эффективное обучение - это работа в профессиональном коллективе над реальными задачами.
Ответ написан
anton_reut
@anton_reut
Начинающий веб-разработчик
Пока не лезь в ООП вообще, напиши простенький блог на процедурах, потом перепиши на функциях и только потом смотри на ооп, НЕ прыгай через базовые навыки сразу к сложному!
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@0x131315
ИМХО ключевое в php, когда имеешь базу - это не сам язык, а понимание того, какую роль он выполняет, и какое место в архитектуре эта роль занимает.
Что касается php, то это в первую очередь скриптовый язык, созданный специально для связи Фронта с Беком, т.е. основная его функция - предоставление доступа к БД сервиса для html и js-кода, работающих на фронте.

На сегодняшний день php решает следующие задачи:
-доступ к БД
-вспомогательные вычисления
-шаблонизация
-связь с внешними сервисами
-предварительное кеширование

Нужно в первую очередь понять как работает Веб, что такое фронт и бек, как они взаимодействуют, что такое хит, что такое ajax, как происходит идентификация посетителя (в частности как работают сессии и куки). Это основные моменты.

ООП стоит учить и использовать сразу, благо основные идеи ООП просты и доступны каждому. А вот всякие паттерны и хитрости лучше отложить - постигнешь их по мере надобности.
Все, что тебя отделяет от ООП - это автозагрузка, освой composer, и написание кода станет лёгким и приятным занятием.

Очень важно иметь хоть какую-то базу по алгоритмам и структурам данных. Если её нет - её следует подтянуть. Без этого будешь строить велосипеды на ровном месте, и запугаешь народ своим кодом.

Очень важно изучить php.net
Не обязательно штудировать всё, но стоит как минимум взглянуть что там вообще есть.
Этот сайт - нечто вроде документации по STDLIB языка, в ходе практики ты к нему будешь возвращаться ещё тысячи раз.
Многие задачи, которые ты планируешь решить велосипедом, уже решены за тебя, и входят в язык - нужно просто знать про то, что язык умеет из коробки, а что нет.

Очень важно поработать с фреймворками и репозиторием composer: большинство из задач, которые встанут перед тобой, уже кем-то решены, и существует либо готовая библиотека, либо как минимум публичный интерфейс, который ты можешь реализовать, чтобы не натворить архитектурных ошибок.
Посмотри на symfony, почитай стандарты PSR.
Большинство задач решается декомпозицией алгоритма, и сборкой приложения из готовых библиотек или PSR-интерфейсов. Остаётся только это всё сконфигурировать, и дописать немного кода для склейки всего этого в единое приложение.

Т.к. php - это прокладка между html и БД, обязательно нужны основы html, SQL, и практика по развертыванию, проектированию, и управлению какой-либо СУБД.
Наиболее популярная и простая СУБД - MySQL, на ней и сконцентрируйся. Намного позже, когда будет опыт, обязательно попробуй postgres - это намного более совершенная СУБД, но она сложнее MySQL, и новичкам с неё начинать не стоит.
Особо углубляться в sql не стоит, т.к. в чистом виде с ним будешь работать мало, по большей части взаимодействие с БД сведётся к установке ORM-библиотеки, например doctrine2. Вот ORM стоит изучить плотнее, они предоставят тебе простой и приятный доступ к данным в БД, и обеспечат лёгкие миграции состояния БД.

Что касается курсов - они очень ценные, особенно для новичка. Быстро вводят в строй.
Но на практике все это выливается в год-два кодинга ради кодинга, что не особо эффективно.
Обязательно нужна практика, желательно боевая.
Советую либо посетить фриланс-биржу, и начать выполнять чьи-то хотелки, либо попробовать устроится, можно на удаленку, в какое-нибудь агентство, которое клепает сайты, и начать выполнять самые простые боевые задачи.
Такая практика прокачает тебя намного быстрее, и не позволит забыть то, что выучил. Но без курсов она будет однонаправленна: в реальной работе разработчики используют лишь малую часть из того, что может php, но знать нужно все - это сделает тебя профессионалом.
Поэтому нужно комбинировать практику с курсами.

Очень сильно поможет хороший редактор кода, например phpstorm - он будет подсвечивать твои ошибки, предоставит интерактивные подсказки по коду, и позволит быстро инспектировать код большого проекта, параллельно работая с ФС сервера, БД и docker-контейнерами. Серьезно ускоряет и упрощает работу.
Ответ написан
@joansilver
Хочется добавить к вышесказанному замечательным ресурс, который описывает путь для овладения PHP: PHP the right way
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы