> Experience for software development is worth much less than people give it credit for.
I strongly disagree with this. You can read all the books you want, but when it comes to making a decision about a set of tradeoffs, there is no substitute for the experience of having made a similar decision in production before and having seen what works well and what doesn't. So many of the nuances of real-world production systems get lost in books and articles that it's hard to know when it's appropriate to apply that knowledge.
That said, I concede that "experience" doesn't necessarily have to be your own—you can learn from the experiences of your co-workers, friends at other companies, or random people on HN, you just have to take everything with a grain of salt.
> Hacking sucks. Just hacking at stuff for years on end leads to you being an expert beginner.
Solo tinkering is a poor substitute for the experience of building production systems with a team, but it's a great way to stretch the breadth of your experience. I have learned lots of different programming languages, platforms, and concepts in this way that have all made me a better programmer all around, even if nothing tangible came out of any of it.