Most of the broad strokes in this post are reasonable, but the idea that you should only take a class because you want to is misguided. It seems like solid advice on its face, but there is not a always a direct mapping between enjoyment and benefit. Indeed, thinking back on my own time as an undergraduate (CS@UIUC 2011), several of the most beneficial classes for my career were ones that I did not enjoy at the time. Degree requirements are designed to capture these high pain/high reward classes. Of course that is only if you decide to go the college route. I'm all for people who want to enter industries like programming or security forgoing it. But if you are going to front the time and money, I think you should stick relatively close to the curriculum. Not only is an 18 year old freshman is unlikely to get curriculum right, but if you're going to design it all yourself you shouldn't be paying for it.
Forgive the nitpicking, but I think you misread him slightly. He wrote "Take only classes you're interested in", not classes you enjoy. I did many of the things that Dave suggested (BA in Math, very few required classes for that one), and definitely lived by that policy. A prime example was that I never took a class just because it was a pre-req for another class that I wanted to take. There were some really hard classes that I did not enjoy doing the work for, but I had signed up because they covered interesting topics, and for the most part I was glad to have completed them.
As I said, I pretty much followed Dave's advice on course selection, not because I didn't think CS was necessary, but because I didn't yet know I wanted to do development. There are some things I feel I missed (like learning how a computer actually works), but on the whole the most useful programming skills I've gained are ones I've learned on the job or hacking on my own projects in the middle of the night.