That creates a chicken-and-egg situation, though, since it is not a skill you can develop on your own. There are a set of skills (remote work, TDD, pair programming, Agile, etc.) that, almost by definition, you need to do professionally to become proficient at. If all the professional gigs expect you to already be proficient, you never get there.