I took the path you described (I went from doing web-based stuff in PHP from 12-14 to reverse-engineering network protocols and file formats, which is still my expertise from 15-23), and outside of a lot of dumb luck, I can completely attribute my success to it. I found it was interesting, and I just started doing it; that thought process has gotten me where I am today.
The only thing I'd disagree with is "Read a book" -- while there are many fine books out there, they should be used to fill in gaps while you're doing things, IMO. Start doing something, and when you run into issues or have questions about how certain things behave, open up a relevant book and figure out what's going on.
Hi. Read a book doesn't mean don't start doing things. It doesn't mean don't have fun and play soccer. It means "Read a book from A to Z". And most of the time, even before I complete reading the book, I become more enlightened and new ideas come to my mind.
The only thing I'd disagree with is "Read a book" -- while there are many fine books out there, they should be used to fill in gaps while you're doing things, IMO. Start doing something, and when you run into issues or have questions about how certain things behave, open up a relevant book and figure out what's going on.