For me college was only useful to learn math, while everything I know about programming I learnt myself. Technically, everything I learnt about math I also learnt myself, but there was an important difference: math courses were structured in a particular way, as a sequence of topics that build on previous topics, and I had to pass exams on those topics, while learning programming was unguided. I don't use math at work, but math completely changed the way I think, and that happened during the first year in college. By "completely changed" I actually mean a substantial meaningful change in my thinking process. I believe, that the same result can be achieved by reading and <i>proving</i> all the theorems in the calculus: the end result should be understanding how the notion of integrals is derived from the definition of numbers and the ability to actually derive it on paper (since just understanding often misses small details that change everything).<p>As for my programming skills, I can safely say they are top 1%, as I can often ignore inquiries from say FB HRs. Yet I learnt everything myself. Without math, and without that structured way of thinking that's required to prove theorems, I wouldn't be able to get to the CS fundamentals, and my CS knowledge would be very shallow. There were a few CS teachers in college, but even then it was obvious to me that they don't know much and they had to cater to the least able students in the group anyway. I don't see a way to bring highly skilled and competent CS teachers to college: those who really know programming and have interest and ability to deal with people, often make 500k+ a year with very relaxed work hours - there is simply no incentive for them to bother teaching CS to (mostly uninterested) kids in college. And those who do teach CS in college as their full time job don't know much about CS, simply because gathering that knowledge is a separate full time job.<p>Edit: so online courses or college? Neither. You only need a book that thoroughly explains fundamentals and will to go thru it. Not enough will? Then you need a teacher whose only job will be to assess your knowledge twice a year in the form of some exam. Both online courses and college are too slow: I could honestly finish a masters degree in 1 year if I could avoid wasting time on all the fluff.