В очередной раз на меня свалилась задача найти хорошего PHP-программиста.
По результатам прозвона потенциальных кандидатов, 90% тех, кто мнит себя Middle, на самом деле Junior и годы опыта не спасают, потому что клепают однотипный код в пределах заданий, посланных свыше.
Прописал минимальный план желающим сделать рывок и перейти на следующий уровень без отрыва от производства.
Месяц 1
Прочитать книжки (по неделе на книжку, читая вечерами и на выходных):
- PHP+MySQL — ozon.ru
- ООП и паттерны — ozon.ru
- Совершенный код — ozon.ru
- Symfony 3 — на английском, частичный перевод на русский
Можно заменить на аналогичные, почти всё можно скачать без смс.
Предвидя холивар "почему Symfony": можете выбрать Yii или Laravel — они проще в изучении. Symfony иногда неоправданно сложный, но интересен в плане изучения концепций. Зная его, другой фреймворк потом будет понять элементарно. И даже если вы не будете использовать его полностью, можно брать отдельные компоненты (список пострадавших), которые как паттерны, могут быть знакомы вашим коллегам.
Хотя если у вас неподалёку есть старший товарищ, который хорошо знает другой фреймворк, можно выбрать его.
Месяц 2
Прочитать по 3-5 статей и на практике поработать с (1 вечер — статьи, 1 вечер — практика):
- PSR: PSR-1, PSR-2, PSR-4, Symfony Code Standards
- Bash — Основы, в примерах — 1, 2
- nginx+PHP5-FPM — установка, Nginx изнутри, Тюнинг nginx
- Mercurial (1, 2, 3, 4, 5, 6) или Git (интерактивный тур, Workflow, книжка)
- PHPUnit — основы, перевод 8 глав документации
- PHPStorm — Quick Start, видео-уроки
- Vagrant — документация, в PhpStorm
- Twitter Bootstrap — сайт
- Twig — небольшая книжка
- Composer — основы, свой vendor
Месяц 3
Сделать свой проект на GitHub, используя всё вышеперечисленное (1 месяц вечерами и на выходных).
Цель: закрепить знания, пройдя самому весь путь от ТЗ до готового проекта, на который можно зайти в Интернете и давать ссылку в резюме.
Рекомендации:
- минимум фич, забыть слова "универсальное решение"/"платформа"/"плагины", иначе надоест быстрее, чем доделате
- не использовать готовые движки вроде Wordpress/Joomla/Magento, но использовать фреймворк, чтобы не велосипедить
- не обращать внимания на вёрстку — только Twitter Bootstrap
- ответы на вопросы — Google и StackOverflow, не пытайтесь долго думать сами, полезнее научиться правильно формулировать вопрос
Идеи проектов:
- блог
- интернет-магазин
- форум
- сайт прогноза погоды
- сайт с актуальными курсами валют
- ваш вариант
Бонус:
- Записаться на курсы английского (кроме хабра, все интересные статьи и документация к библиотекам — на английском). Вот есть даже специализированное Skype-обучение для IT-шников, хотя я — за классические групповые занятия.
- Научиться набирать вслепую (2 недели по вечерам)
- Выучить на память TOP100-300 функций PHP (1 неделя)
- Изучить еще один язык программирования на уровне написания простеньких приложений. Желательно совсем другой парадигмы: Go (отличная обучалка), Lisp (аргументация — 1, 2), Haskell (как-то так)
Удачи!