This is all great info. One additional note. The best way to become a PM is to just start doing the job.
Even if you're on a team with a PM already, offer to write a few of the specs. Or if there's no room to do that, then create a side project where you go through the product development process and show your work. Create sort of a portfolio that demonstrates your abilities.