I'm 23 years old, and I graduated from a 4 year (including coop) college Computer Science program in one of the biggest cities here in Canada. The first year was easy, but became increasingly difficult until I was pulling my hair out in my last year. I worked hard enough to be accepted into the coop portion of the program I was taking. I acquired a job in my first coop term with a government department, working on a team that did no technical work at all. After being noticed for having above average computer skills, I was migrated to a technical team where I've been for the last 3 years(2 years as a student). I graduated in December of 2006, and started work full-time in January of 2007. In my first year I competed for a better title(and pay), and I got it. I'm now making more than enough money to have my own car, live in my own house, pay for my bills, eat good food, and buy something nice for myself from time to time.
So yeah, going to College for me was worth it. I tried learning on my own, but I had a hard time with the more difficult concepts. Another human being who is well versed in the subject is infinitely more valuable than a search engine serving up content that could be false. What you need to do is determine what you would like to get out of a college program. I wanted to learn the fundamentals of Computer Science, what I could expect in a professional work environment, and how to work with other programmers. So I selected a program that taught Data Structures, Compilers, Number Theory, Graphics, Unix/Linux, Operating Systems, Networking, Systems Design, Project Planning/Execution, and a final group project. The course didn't focus on one particular language, platform, or method of thinking. We had teachers who had previously worked for Novell, Nortel, the Royal Canadian Military Police, the Federal Government, and the National Capital Freenet(a local precursor to the Internet), and they taught us Windows, Linux, Unix(solaris), DOS, Batch Files, C++, C, BASH, PERL, DirectX, OpenGL, Java, CSS, Javascript, Microsoft Project, and Assembly.
My point is to pick a course that teaches you the basics in as many areas as possible(and more advanced techniques in areas that matter), unless you know specifically what type of computing environment you want to work in. People I went to school with have gone on to work in PHP web development, massive .NET projects for big Government departments, and smaller Java projects for private local companies.
Personally I remotely maintain several web servers that host both static and dynamic content in a Solaris environment. I maintain several local development servers that run Linux, Solaris and Windows, for things like our in house Search Engine, Web Stats packages(processing gigabytes of logfiles a day), and internal projects to make our day to day work easier. I mostly code in Perl, but I also have to debug coldfusion, C, and sometimes HTML/CSS/Javascript. I'm never bored, and I look forward to work just about every day.
I also worked for my dad's construction company in high school. I learned the basics of how to frame a house, lay brick, run wire, and sweep. I didn't like any of it, so I went to school, worked my ass off, and got a job where I'll never have to lift a finger if I don't want to. It was worth every penny, and every minute. I would do it again in a heartbeat if I had to.
If you have any more questions, just ask. I'd be happy to answer them.