1. Изучить паттерны. - книги, статьи в интернете
2. Научиться пользоваться .git. - официальная документация
3. Научиться пользоваться менеджерами зависимостей. - статьи в интернете
Что требуется от фреймворка:
1. Наличие уроков и документации на русском языке (по возможности дайте ссылки). - практически вся документация нормальных фреймворков на английском
2. Долгосрочная перспектива жизни фреймворка. - в этом плане можно посоветовать Yii или Symfony
Сам пишу на Symfony, сначала было сложно учить, но постепенно сложности эти ушли в плюсы в качестве экономии времени и удобства разработки ПО.