Допустим вы простой студент или домохозяйка. Научиться программировать на PHP может практический каждый человек если есть желание и трудолюбие. Последнего должно быть побольше. Обучение программированию - это тяжкий труд. Я перепробовал разные методики обучения и нашел для себя несколько эффективных способов. Если вы пойдёте в магазин и купите дорогую книгу, то вы вряд ли сможете сразу написать крутой скрипт. Сила любого программиста - это хорошее знание основ программирования. Нет никакого смысла изучать ООП (объектно-ориентированный подход) PHP если вы не знаете хорошо процедурный стиль. Скажу так, что внутри каждого объектно-ориентированного метода содержится код в процедурном стиле. Я приведу схему обучения.
- типы данных. Это вы должны знать как отче наш. Без этих данных нет движения вперёд. В PHP нет строгой типизации данных. Переменные могут переписываться налету. Например в массиве может быть несколько переменных с разными типами данных.
- Условные операторы. 90% всех скриптов содержат условие if-else. Вы можете использовать вместо условий if-else применить: абстрактные классы, интерфейсы.
- Циклы нужны для того чтобы доделать определённую задачу. Есть нужно что-то перебрать или отсортировать, то циклы прекрасно подойдут для этой задачи. В каждом сайте применяется вывод информации. Тут можно использовать: for, while, do-while.
- Серверные переменные нужны для того чтобы понять свойства вашего сервера. Допустим ip-адрес можно отловить при помощи серверной переменной. Вы можете легко написать скрипт, который будет следить и записывать в базу данных MySQL адрес страниц с которых приходил пользователь на ваш сайт.
- Сессии нужны для хранения переменных. При переходе со одной страницы на другую некая переменная перемещается с одной страницы на другую. Сессии идеально подходит для авторизации. Бывает так, что сессии записывают в базу данных. У сессий есть срок жизни.
- Куки. Они очень похожи на сессии. Только сессии сохраняются на стороне сервера, а куки сохраняются в браузере. Хранить важную информацию в куках не стоит. Её легко прочитать.
- Простая авторизация. Рано или поздно вам придётся сделать авторизацию. Перед тем как заняться авторизацией, то изучите базы данных. Хотя бы MySQL для приличия. Ещё вам нужно будет изучить шифрование данных. Хранить незашифрованный пароль в базе нельзя. В случае потери базы данных злоумышленнику достаётся все ваши данные.
- Постраничная навигация - это довольно сложная тема. Для многих - это непреодолимое препятствие. Я сам долго мучился с первой постраничной навигацией.
- Простой сайт. Сразу лепить маленький сайтик не советую. Пройдите все предыдущие этапы для сноровки. Сделать сам сайт чаще всего простая задача, а сделать удобную админскую зону довольно сложно. Вам придётся понимать способы взлома вашего сайта. Я бы никогда не делал защиту сайта если бы меня 4 раза не взломали. Это довольно сложная тема. Вы должны в будущем проектировать свой с учётом слабых мест. Вы должны легко понимать уязвимости. Чаще всего атакуют через форму ввода url-адресов или через простую форму ввода.
- Взаимодействие с базой данных. Сама работа с базы данных - это сложная тема. Делать сложные запросы могут не все программисты. Бывает так, что запрос содержит в себе от 50 до 100 строк. Чаще всего запросы выглядят простенько. До сих пор я испытываю трудности при связывании таблиц по определённому параметру. Советую вам не сильно углубляться в эту среду. Она может затянуть.
- ООП - объектно ориентированное программирование. Эта тема довольно сложная. Тут перед вами 2 сложных пути: сайты на чистом ООП, сайты на фреймворках. Оба пути интересны. Я пошёл по первому. Все имеют свои достоинства и недостатки. Без знания ООП вас не возьмут на работу. Эту тему легко освоят люди с развитым абстрактным мышлением и железной логикой )).
Я показал вам не все этапы. Возможно есть и промежуточные этапы, но эти этапы вы должны пройти. Не знание базовых знаний PHP приведёт вас снова в начало пути. Нужно уверенно стоять на ногах. Вы можете прекрасно знать базовые знания PHP и не лезть в ООП. Но если хочется пойти дальше, то ООП вас поджидает в конце пути. При устройстве на работу знания ООП обязательны. В крайнем случае вы можете пойти учеником за небольшую плату. Быть учеником - это хороший путь.