Рекомендации по php для младшего php-разработчика

О подборке

Ниже изложенный материал может помочь начать идти в ногу со временем в php мире. Данная подборка создана вначале 2014 года и раздавалась всем желающим после собеседований.

Ссылки

Существует много аналогичных сайтов http://www.phptherightway.com/, где изложены различные полезные ссылки. Если вас интересует mysql, javascript - google вам поможет.

Первые шаги

Code style у каждого фреймворка или команды может быть свой, но так или иначе есть базовая основа: PSR. Это как алфавит, его нужно обязательно знать, до самых мелочей. Тогда вам не будет стыдно что-то закомитить в тот же open source, или переходить на другую работу, или в другой проект.

Современная разработка направлена на гибкость, на получение результата с хорошим качеством. Совокупность Agile и code review вынуждает обращать внимание на децентрализованные системы контроля версий, например git.

Наверное, “вечная” статья про разработку a-successful-git-branching-model (перевод).

Из полезных титуриалов можно выделить:

Основные темы: stash, rebase, merge, различия между rebase и merge, cherry-pick, checkout, squash, alias.

Изначально, когда разрабатывается продукт, встает выбор подключения зависимостей. В наше время уже существуют менеджеры зависимостей: composer, bower. Если мы посмотрим на все современные версии библиотек и фреймворков, мы обязательно встретим там конфиги для этих менеджеров.

Базовый набор книжек.

У меня есть традиционный набор книжек, с которых я рекомендую начать читать техническую литературу. По-моему мнению, их обязан прочитать каждый, хотя бы раз. Кто-то найдет в них что-то новое и перевернет свое мировоззрение, кто-то утвердит свое "я" и полученный опыт, найдя абсолютную поддержку от авторов.

Не стоит браться за банду четерех (Design Patterns: Elements of Reusable Object-Oriented Software/Приёмы объектно-ориентированного проектирования. Паттерны проектирования) на первых своих шагах. Вы можете выучить все паттерны в теории, но без знания и опыта проведения рефакторинга вы никогда не примените их на практике. Если все же решите читать, уделяйте при первом прочтении только азам (название, назначение, мотивация, применение) и не читайте и не забивайте голову реализацией. Сначала надо научится сразу сопоставлять в своей голове задачу поставленную перед вами, к каким проблемам она относится и с помощью чего ее можно решить более изящно и полезно для проекта. Хорошая альтернатива банде четырех для начинающих это серия head first (паттерны проектирования).

Будьте современны, следите за тем, что происходит в современном мире. Очень неплохой дайждест новостей ведет @pronskiy, с периодичностью раз в две недели. Я не буду давать ссылки на блоги разработчиков, которые предпочитаю лично я, вы сами найдете своих авторов.

Немного рекламы

Почти все начинающие программисты имеют одни те же пробелы в своих знаниях. Кто-то ищет сам что-то, кто-то просто плывет по своему течению.

Некоторые базовые вещи я с какой-то периодичностью стараюсь описывать в своем блоге.

Во-первых, тут есть наброски лекций про PHP. Почти все темы содержат какие-то тезисы-оглавления, теоретические и практические задания. Особое внимание, хочется обратить именно на 9 пункт, про ООП. Где в принципе изложены полноценные лекции, я очень надеюсь, что они прояснят много информации.

Если у вас проблемы с базовыми знаниями php, рекомендую читать официальную документацию к языку, опираясь на содержание лекций и заданий.

Во-вторых, я неравнодушен к тестированию. И в блоге можно найти несколько статей на эту тему. Может они дадут вам некий толчок к познанию тех же unit test, и покажут вам, что можно жить без дебага, print_r и die.

Пожелания

Попробуйте начать с первых шагов и не бойтесь применять новые знания на практике. Какие-то попытки будут удачные, какие-то нет.

Вы всегда можете связаться с opensoft и договориться о встрече, где вы сможете обсудить любые вопросы, получить совет для дальнейшего развития.