I would say
1) Start by trying to read the code of the area you want to get into. You want to understand the main invariants and constructs in your subsystem.
2) Watch talks on topics you want to learn more about
3) Read conversations on lore so that you get a feel of what good patches should look like and to understand the general thought process behind a patch.
Additionally, You might find patch opportunities in this process.
4) Learn to use kgdb, ftrace and other tooling
5) Attempt to fix reported bugs. You will learn a lot in this process even if you cannot solve the bug you picked.