Для начала стоит отлично разобраться во всех возможностях, фичах и «закоулках» проекта на уровне пользователя через документацию и, возможно, исходники. Это необходимая база.
Затем начать ставить самому себе (или получать с места работы) какие-то не совсем обычные задачи или задачи, которые можно решить изящнее если доработать код используемого продукта. Написать первый патч и попытаться отправить в апстрим (по косякам и недоработкам в предложенных вами патчах подскажут и помогут мейнтейнеры).
Чуть сложнее пытаться фиксить существующие баги — тут уже усидчивости больше нужно, но и основные мейнтейнеры к таким фиксам чаще относятся гораздо лучше, чем к мелким допилам функциональности.
Привить себе привычку постоянно лезть в исходники проекта на пару уровней глубже, чем stable API.
(Возможно коммент Кэпа. Личное мнение человека,
отправившего несколько скромных патчей в Yii.)