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

FanatPHP

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

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

Читайте также:  Anaconda обновить версию python

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

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

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

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

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

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

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

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

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

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

Источник

Как правильно изучать PHP?

Всем добрый день!
Для правильного понимания сначала напишу небольшое предисловие. Я уже поискал на просторах интернета ответы на свой вопрос и кое какая информация по этому поводу есть. Но нигде я не встретил действительно полного ответа на этот вопрос. И я думаю ваши ответы могут помочь новичкам быстрее влиться в профессию и меньше мучить вас, умудренных сединой программистов. Так вот, я программист — 4 года опыта работы на 1С (просьба не кидаться камнями, мы все таки тоже программисты). Уже давно хочу сменить вид деятельности. Смотрю в сторону WEB. Есть даже небольшой опыт работы в web студии на php. Так вот сейчас решил углубиться в web и появились ряд вопросов.

1) Основы. Я думаю все начинали с чтения книг. Для меня это была Котеров, Костарев — PHP 5.2. Что вы советуете своим ученикам?
2) Ресурсы на которых можно найти ответы на большинство вопросов об использовании языка? (знаю только StackOvrflow)
3) Библиотеки. Я успел столкнуться с тем, что на php есть уйма библиотек, но выясняется работает библиотека или нет только после установки. Так вот посоветуйте ресурсы где стоит искать в первую очередь и в идеале находить только там.
4) Типовые приемы. Например необходимо реализовать систему голосований на сайте с видео. Это уже реализовано много раз, но человек не может найти необходимую библиотеку. Где можно достать информацию о том как обычно реализуют такие механизмы. Можно конечно начать пробовать писать свой велосипед, но вероятнее всего долгим путем проб и ошибок человек придет к тому, что уже реализовано, только потеряет кучу времени. Так вот где есть описания того, как реализуют обычные вещи, хотя бы для того что бы понимать как это работает.

Т.е в принципе хочется оградить начинающего разработчика от бестолково проведенного времени в происках чего то действительно нужного. Потому что ну очень уж трудно найти что то путное среди огромных гор мусора.

Очень бы хотелось получить развернутые ответы, а не RTFM

Оценить 3 комментария

Источник

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