Чего начать изучать php

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. Что же нужно знать и уметь в итоге? И сколько времени на это уйдет? Заранее спасибо!

Читайте также:  Добавление класса в java

FanatPHP

На первые несколько пунктов попробую написать рекомендации в свободной форме.

Первое и самое главное — чтобы хорошо изучить программирование на РНР, надо хорошо изучить программирование. Это очень важная вещь. Большая часть людей, пишущих на РНР, не имеют ни малейшего представления о программировании. Даже о таких базовых вещах, как форматирование кода, отладка, профайлинг, обработка ошибок, файловые операции. Можно заметить, что я не говорю об ООП. Это совсем отдельная тема, ООП надо учить специально. К сожалению, из 100 человек, которые говорят, что знают ООП, 90 являются банальными копипастерами, выучившими синтаксис, но не понимающими смысла объектов. Но чтобы играть в шахматы, недостаточно знать, как ходят фигуры.

Ещё неплохо бы ответить себе на вопрос — для чего ты хочешь выучить программирование на РНР? Вопрос совсем не праздный. Многие люди смешивают в нем кучу разных понятий. К примеру, здесь уже упоминали CMS. и действительно, если речь идёт о зарабатывании денег, то кастомизация Джюмлы и написание к ней говномодулей в финансовом плане куда более выгодны, чем умение писать что-либо с нуля. Для фриланса, во всяком случае.

  • Можно склепать гостевую или сайт-визитку на «голом» РНР — и ничего плохого или позорного в этом нет. Наоборот — это плюс языка, который годится и для таких целей, не таща за собой пару миллионов строк кода ради сайта из пятисот.
  • Можно написать профессиональный портал, взяв за основу какой-то из существующих фреймворков, и заниматься его развитием.
  • Можно написать кастомный хайлоад проект, для которого нужно будет писать собственный фреймворк опять на голом РНР.
  • Можно, как уже говорилось, клепать сайты на основе какой-нибудь ЦМС.
Читайте также:  Cristalix java io ioexception

Вариантов масса! поэтому нужно определиться сначала, чего хочется.

Там выше говорили про JS+CSS — не надо слушать, это полная ерунда. Фронтенд программирование — совсем отдельная вещь, куда больше визуальная, чем абстрактная. И, слава богу, все больше работодателей начинают понимать это. Хотя опять же — если фрилансишь и на все руки мастер — то без этого никуда.

Но если работать хардкорным серверным программистом в команде, то об HTML/JS/CSS нужно иметь только общее представление (поскольку тексты на этих языках являются, вообще-то, практически единственным результатом работы РНР).

А вот что обязательно нужно хорошо знать из сопутствующих технологий — это протокол НТТР, устройство файловой системы, работа c командной строкой в линуксе.

Mysql всё ещё является краеугольным камнем хранения данных в вебе. Нужно знать и понимать джойны, индексы

Фреймворки — обязательно. Тут, правда, стоит проблема выбора, но принципиальной разницы между ними нет. Yii — неплохой выбор.

Гитхаб тебе не нужен, знать его не обязательно. Знать надо git.
А вот что является обязательным для веб-программиста — это умение пользоваться гуглем. Хотя бы на уровне умения скопипастить в поисковую форму сообщение об ошибке или написать вопрос «Что такое git» 😉

Потому что для работы в команде какую-либо систему контроля версий знать надо, а git является стандартом де-факто. Понимать принцип работы и базовые команды — чекаут, коммит, пуш.

Источник

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

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

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

Введение

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

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

Код на 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! можно вывести на экран двумя способами.

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

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

Комментарии

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

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

Переменные

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

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

Фреймворки для 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 и прописать логику. Например, реализовать сохранение в базу данных или отправлять сообщение на почту. На таком проекте можно учиться разделять логику. Например, сделать так, чтобы один отвечал за отображение, другой — за саму форму, третий — за сохранение данных в базе.

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

Источник

Оцените статью