Задать вопрос

Вопрос по поводу изучения PHP?

Недавно начал изучать програмирование, решил учить PHP. Сначала всё шло прекрасно, но в последнее время начал замечать, что топчусь на месте. Прочитал несколько книг (начинал с «Head first PHP», потом прочитал «Practical PHP programming», сейчас читаю «PHP & MySQL web development» и «PHP. Объекты, шаблоны и методики программирования». Изучил синтаксис, стандартные функции, классы с объектами, работу с сессиями, формами, файлами, базами данных, и т.д. Словом, практически всё, что смог подчерпнуть из учебников и справочника языка. Тем не менее, чувствую, что этого мало: основы уже давно пройдены, а дальше двигаться никак не получается. Что делать, Хабр? Исходя из собственного опыта, можете назвать этапы изучения программирования?
  • Вопрос задан
  • 7171 просмотр
Подписаться 15 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 6
antonydevanchi
@antonydevanchi
10 лет в айтишке
Учите фреймворк: CodeIgniter, Yii, Symfony.
Напишите CMS/CMF узкозаточенную под определенную задачу: магазин, блог, etc.

Этих двух занятий должно хватить на ближайшие два-три месяца. Как надоест — примкните к какому-нибудь опенсорс проекту типа Yupe (CMS на основе Yii).
Ответ написан
antonzaycev
@antonzaycev
Начинать решать реальные задачи и дулать реальные, пусть и не большие, проекты и походу разработки рости дальше
Ответ написан
@Flasher
Как дополнительный вопрос к тема автора. Начиная изучать тот же PHP люди берут книги, в которых описываются основы, но не описывается то, где это применяется на практике. Я тому пример. Я с нуля начинаю учить и понимаю, а иногда заучиваю и разбираю примеры, но понятия не имею, где это может применится на практике при создании сайтов. Было бы не плохо, если матёрые программисты подсказали шаги, которые подталкивали бы на изучение, а не убивали надежду.

Например подскажите, есть есть такой ресурс, на котором разжёвываются реальные коды из жизни: формы и тп.
Ответ написан
@R0ckwi11
Зарегестрируйся на github и читай исходники, пиши исходники, фикси баги и высылай пулл-реквесты
Ответ написан
Комментировать
Dunadan
@Dunadan
Как правильно ответили выше, пора переходить от теории к практике — решать прикладные задачи. В конце-концов, язык — это только инструмент.

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

Например, что бы оценить технические знания, можно самого себя спросить и честно ответить:
— Для каких задач PHP подходит, а для каких — нет? Почему?
— Смогу ли я написать простейший файловый менеджер? А так, что бы не давать доступа к системным папкам и файлам? Не давать загружать зловредный код?
— Смогу ли я написать робота для парсинга страниц? А такого, что бы умел ходить по ссылкам внутри страниц? Если учесть еще множество кодировок?
— Знаю ли я о понятии «уязвимость»? Если знаю — смогу ли я найти их в своем же старом коде?
— Знаю ли я, что такое «регулярное выражение», где они используются и, главное, зачем?
— Знаю ли я о последних изменениях в языке?
— Смогу ли я написать простейший чат? Гостевую книгу? Баннерокрутилку? Что произойдет с ними, если одновременно туда зайдет 10000 посетителей и почему? Что надо сделать в таком случае?

Теоретическая часть — это вопрос об архитектурном проектировании программных продуктов, как таковых, причем далеко не обязательно речь идет о PHP. Рано или поздно программисту приходится участвовать в постройке «больших» систем и адаптировать некие алгоритмы для решения задач и придумывать свои.

Если речь о популярных алгоритмах — тут можно посоветовать таких монстров, как Дональда Кнута и его «Искусство программирования».

Model-View-Controller, Dependecy Ingection — вот о чем следует почитать для понимания принципов современных подходов проектирования приложений. Так же почитайте о «паттернах» / шаблонах программирования.

И все пробуйте на практике, без этого никак :)
Ответ написан
Комментировать
Не старайтесь двигаться в углубление изучения языка. Изучайте архитектуры и принципы их построения.
Язык меняется от проекта к проекту и даже в одном проекте вы используете несколько (JavaScript, PHP, Mysql, HTML, XML, CSS и др.) и самый верный путь — правильно выбирать инструмент для того или иного функционала. Где-то будет выгоднее использовать хранимые процедуры, где то описать логику на клиенте, где то реализовать интерактив полностью на CSS.
Мало того в один прекрасный день вам станет мало возможностей языка и при развитии в сторону алгоритмов — вы легко реализуете расширение к PHP на C к примеру.

Лично я против чтения заранее. Поставьте задачу и только тогда ищите пути ее решения в Интернете и книгах. И вот тут уже есть смысл ориентироваться на авторитетность авторов. Так что — ставьте конкретную задачу и задавайте вопросы уже по ней! Удачи!
Ответ написан
Ваш ответ на вопрос

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

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