I'm happy with how my career has gone since then, but it would be absolute hubris to declare that it was due to my astounding foresight or careful assessment. I was a) motivated b) lucky and c) relatively free of responsibility.
Maybe I've had a more skewed career than most, but I've spent my career working with complex and busy systems. I never had a "freelance web developer" period. I've never just spat out web app after web app for clients. To take your specific example, I missed out on a chunk of algorithmic complexity in college (which I have since picked up) that sheds light on real world problems that might otherwise seem confusing or unconnected.
I understand your frustration, believe me, but be careful not to mix up the knowledge with the institution, or the message with the messenger, as it were.