- PHP: с чего начать, как учить и что в итоге знать?
- К делу
- Вопросы
- Как изучить язык php
- 1. Синтаксис
- XAMPP
- 14. Собираем страничку
- Литература
- Шпаргалки
- YouTube-каналы и курсы
- PHP в «Библиотеке Программиста»
- Итог
- Хочу научиться программировать на PHP. С чего начать?
- Зачем учить PHP?
- Что учить?
- Где писать код?
- IDE
- Редакторы кода для PHP-проектов
- Где учить?
- Учебники
- PHP: The Right Way
- PHP. Сборник рецептов
- Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов
- Онлайн-курсы
- Всё выучил, что дальше?
- А ещё?
- Что думаете?
PHP: с чего начать, как учить и что в итоге знать?
Ровно 2 месяца назад я спрашивал тут о том, как стать профессиональным веб-разработчиком за 7 лет (http://habrahabr.ru/qa/21830/). Сразу стало понятно, что без английского, с которым у меня все не очень гладко, не обойтись. За 2 месяца я подтянул свои знания английского на уровне чтения технической литературы, обзавелся маком и подтянул знания в html5.
К делу
Настало время изучения php. Хотя я его уже учил. Знаю типы данных, функции, mysql на уровне простых запросов, немного ооп и небольшую часть библиотеки GD2. Очень плохо с практикой, то есть не знаю как применять все это в деле. Я смогу написать очень простую систему регистрации с хранением данных в mysql базе; вход с помощью cookie и сессий; гостевую книгу и какой-нибудь простой поиск.
Вопросы
1. Как учить php чтобы реализовывать проекты на нем профессионально?
2. Какие книги стоит для этого читать? Как учить? По сколько часов в день?
3. Как научиться правильно использовать php на практике? Что он может?
4. Какие БД использовать?
5. Что насчет фреймворков?
6. Что такое git (github) и зачем это нужно?
7. Что же нужно знать и уметь в итоге? И сколько времени на это уйдет? Заранее спасибо!
На первые несколько пунктов попробую написать рекомендации в свободной форме.
Первое и самое главное — чтобы хорошо изучить программирование на РНР, надо хорошо изучить программирование. Это очень важная вещь. Большая часть людей, пишущих на РНР, не имеют ни малейшего представления о программировании. Даже о таких базовых вещах, как форматирование кода, отладка, профайлинг, обработка ошибок, файловые операции. Можно заметить, что я не говорю об ООП. Это совсем отдельная тема, ООП надо учить специально. К сожалению, из 100 человек, которые говорят, что знают ООП, 90 являются банальными копипастерами, выучившими синтаксис, но не понимающими смысла объектов. Но чтобы играть в шахматы, недостаточно знать, как ходят фигуры.
Ещё неплохо бы ответить себе на вопрос — для чего ты хочешь выучить программирование на РНР? Вопрос совсем не праздный. Многие люди смешивают в нем кучу разных понятий. К примеру, здесь уже упоминали CMS. и действительно, если речь идёт о зарабатывании денег, то кастомизация Джюмлы и написание к ней говномодулей в финансовом плане куда более выгодны, чем умение писать что-либо с нуля. Для фриланса, во всяком случае.
- Можно склепать гостевую или сайт-визитку на «голом» РНР — и ничего плохого или позорного в этом нет. Наоборот — это плюс языка, который годится и для таких целей, не таща за собой пару миллионов строк кода ради сайта из пятисот.
- Можно написать профессиональный портал, взяв за основу какой-то из существующих фреймворков, и заниматься его развитием.
- Можно написать кастомный хайлоад проект, для которого нужно будет писать собственный фреймворк опять на голом РНР.
- Можно, как уже говорилось, клепать сайты на основе какой-нибудь ЦМС.
Вариантов масса! поэтому нужно определиться сначала, чего хочется.
Там выше говорили про JS+CSS — не надо слушать, это полная ерунда. Фронтенд программирование — совсем отдельная вещь, куда больше визуальная, чем абстрактная. И, слава богу, все больше работодателей начинают понимать это. Хотя опять же — если фрилансишь и на все руки мастер — то без этого никуда.
Но если работать хардкорным серверным программистом в команде, то об HTML/JS/CSS нужно иметь только общее представление (поскольку тексты на этих языках являются, вообще-то, практически единственным результатом работы РНР).
А вот что обязательно нужно хорошо знать из сопутствующих технологий — это протокол НТТР, устройство файловой системы, работа c командной строкой в линуксе.
Mysql всё ещё является краеугольным камнем хранения данных в вебе. Нужно знать и понимать джойны, индексы
Фреймворки — обязательно. Тут, правда, стоит проблема выбора, но принципиальной разницы между ними нет. Yii — неплохой выбор.
Гитхаб тебе не нужен, знать его не обязательно. Знать надо git.
А вот что является обязательным для веб-программиста — это умение пользоваться гуглем. Хотя бы на уровне умения скопипастить в поисковую форму сообщение об ошибке или написать вопрос «Что такое git» 😉
Потому что для работы в команде какую-либо систему контроля версий знать надо, а git является стандартом де-факто. Понимать принцип работы и базовые команды — чекаут, коммит, пуш.
Как изучить язык php
1. Синтаксис
Код в PHP заключается в открывающий теги. Согласно стандарту кодирования PSR-12, закрывающий тег должен быть опущен в файлах, содержащих только код PHP . В конце строки ставят разделитель строк – точку с запятой ; . Если забыть поставить разделитель, то следующая строка кода соединится с предыдущей и интерпретатор PHP выдаст ошибку.
Выведем на экран строку Hello World (заключена в кавычки) с помощью команды echo :
Оператор if выполняет код, если выполняется условие. В противном случае выполняется код после else, который переводится, как «иначе», «в другом случае».
Оператор while выполняет код до тех пор, пока значение условия не станет ложным.
Когда нам известно количество итераций, вместо цикла while лучше использовать цикл for .
Массивы – упорядоченная коллекция элементов с доступом по индексу или ключу. Индексный массив создается двумя способами:
Если мы получили ошибку 404, значит сервер запущен.
XAMPP
Скачаем и установим XAMPP . В папке C:\xampp\htdocs\ создадим папку нашей странички page . Запустим веб-сервер Apache, кликнув по кнопке Start . Узнаем версию PHP, введя в консоли (Shell) команду php -v .
Проверим, запущен ли сервер, перейдя по адресу http://localhost/ . Если появилось приветственное сообщение, значит сервер запущен.
14. Собираем страничку
Теперь создадим несколько PHP-файлов, из которых соберем страничку. Перейдем в папку page и создадим четыре файла: index.php , header.php , body.php , footer.php .
Структура простого HTML-документа выглядит следующим образом:
Литература
- Робин Никсон. Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5;
- Котеров, Симдянов. PHP 7;
- Веллинг, Томсон. Разработка веб-приложений с помощью PHP и MySQL;
Шпаргалки
YouTube-каналы и курсы
Бесплатные курсы на русском языке:
- Основы php с нуля. Новейший курс 2020 – двадцать четыре урока от основ до регулярных выражений и функций;
- Базовый курс по PHP 7 – узнаете про базовые понятия, GET-параметры, методы, функции и ООП;
- Учим PHP за 1 Час – основы за полтора часа;
- Изучение PHP для начинающих – научитесь работать с массивами, подключать файлы, обрабатывать формы, работать с куки и базой данных MySQL;
- Уроки PHP 7 – много уроков по ООП;
- PHP для начинающих – курс на Stepik для начинающих разработчиков, не требует специальных знаний;
- PHP – первое знакомство – азы программирования на PHP (Stepik).
PHP в «Библиотеке Программиста»
- подписывайтесь на тег PHP , чтобы получать уведомления о новых статьях;
- телеграм-канал «Библиотека пхпшника»;
- книги по программированию в нашем телеграм-канале «Книги для программистов».
Итог
- вы познакомились с синтаксисом PHP и типами данных;
- узнали, как работают условные операторы и циклы;
- запустили веб-сервер в Ubuntu и Windows;
- собрали страничку HTML из файлов PHP.
Хочу научиться программировать на PHP. С чего начать?
Рассказываем, что делать, если вы хотите изучить PHP с нуля: с чего начать путь программиста, как продолжить и успешно пройти первое собеседование.
Зачем учить PHP?
Среди главных преимуществ языка:
- простота и низкий порог вхождения;
- эффективность для решения задач веб-разработки;
- множество удобных фреймворков;
- востребованность навыков: на рынке есть много вакансий как для Junior PHP-разработчиков, так и для опытных Senior’ов;
- возможность использования в изолированной среде;
- большое количество материалов для изучения языка, активное сообщество.
С другой стороны, язык часто критикуют за несогласованный синтаксис функций, отсутствие обратной совместимости между версиями, многопоточности и поддержки многобайтовых кодировок в ядре.
Что учить?
- основы языка: синтаксис, типы данных, переменные, функции, константы, массивы, объекты, выражения;
- основы HTML, CSS и веб-дизайна;
- реляционные БД;
- Linux, HTTP, Nginx, Apache;
- FTP, Git и другие инструменты;
- шаблоны проектирования;
- Object-relational mapping (ORM);
- Model-View-Controller (MVC);
- фреймворки и микрофреймворки;
- тестирование;
- средства виртуализации: Vagrant, Docker.
Где писать код?
IDE
Попробуйте каждую среду разработки и поймёте, с какой платформой вам комфортнее всего работать:
Редакторы кода для PHP-проектов
Где учить?
Учебники
PHP: The Right Way
PHP. Сборник рецептов
Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов
Онлайн-курсы
Всё выучил, что дальше?
- Проходите тесты на знание PHP.
- Попробуйте найти заказчика на небольшой простой сайт. Если не найдёте — сделайте «для себя». Экспериментируйте с кодом, добавляйте эффекты, спрашивайте советы на профильных форумах. Купите домен и арендуйте хостинг, опубликуйте сайт. Расскажите о нём на тех же форумах и попросите оценить.
- Следите за вакансиями PHP-программистов на Хантиме, hh.ru, у нас на Tproger и других ресурсах. Решайте тестовые задачи, ходите на собеседования.
- Найдите наставника. Идеально, если вы будете учиться под руководством опытного программиста с хорошими коммуникативными навыками. Им может быть ваш первый работодатель, знакомый с форума, преподаватель курса PHP. Взамен предлагайте небольшую скидку на свои услуги. Так вы быстрее освоитесь в профессии и заведёте полезные связи. А ещё со временем такое сотрудничество может вылиться в какой-то большой проект.
- Посещайте конференции, хакатоны, курсы, вебинары, конкурсы. Найти подходящее событие для программистов можно у нас.
А ещё?
Не заставляйте себя всё время сидеть за изучением скучной теории, не пытайтесь писать код, если он «не идёт». Лучше учитесь, развлекаясь. Например, читайте наши материалы:
И играйте в игры для программистов. Для изучения PHP обратите внимание на CodinGame и CodeWars.
Что думаете?
Формулировка не совсем корректная. Имеется ввиду, что храбрецы могут общаться только до момента включения света
Всеволод, спасибо за интерес к материалу.Статья написана на основании моего экспертного опыта подбора в 2021-2022 года, именно на этом этапе компания активно занималась подбором. И через большое количество собеседований были сделаны определенные выводы. Естественно, ситуация может быть динамичная, однако, в среднем так и есть — есть сеньоры и мало мидлов.