I agree that for many college is "simply to help you figure out 'how you learn'", but for others it is about the knowledge gained.
I agree that for many college is "simply to help you figure out 'how you learn'", but for others it is about the knowledge gained.
Most 18 y/o kids can't really function in the real world and a lot of the service college provides is a glorified summer camp. Carefully consider if this is worth hundreds of thousands if dollars and 4 years of opportunity cost, to be taken "more seriously" and acquire "connections."
You can learn a lot for sure, but its a steep price to pay.
Source: I dropped out after a year and started working and Im equally successful as compared to my college graduated peers
Personally, my advice is: university-level science/engineering/math classes are going to be, on the one hand, a damned hard weed-out filter the first couple years, but once you get to the advanced stuff, it's going to be one of the only opportunities you ever get to learn truly high-level, difficult, interesting material with actual human guidance, rather than having to just pick up a stack of books and work through them on sheer hope and grit.
- in my experience, what schools teach is the "theory" of CS, which only sometimes overlaps with the "practice" of CS
- the "practice" portion of CS taught at unis are usually out of date by a couple of years, if not more.
- 4 years of your life is a relatively high opportunity cost. Especially in a fast moving industry like CS
I had a good experience getting my engineering degree, but looking back it's the social experiences I value most.
Also, about the "4 years is a high opportunity cost" thing. Given how it's much easier to find a high-paying software engineering job with a bachelor's degree than without, it's probably worth it. Besides, just because someone is in school doesn't mean they can't follow along with the latest industry trends, especially in CS where much of it is open source. It's not like the only learning you do in college is in your classes.
So my advice to matteotom is ... go to college. Take challenging classes that interest you (I highly recommend studying operating systems, compilers, and computer architecture). But also, don't neglect the opportunity to learn things outside of class (sounds like you won't really have much of a problem here). Do internships in the summers to get some industry experience (and a nice paycheck). And yes, of course, don't forget to make friends and have fun (I certainly wish I did more of that in college).
Completely wrong.
How do you expect to re-invent the stack if you don't understand the fundamentals, and where we've been before?
The practice of CS is something that anyone can pick up. The theory is what makes you more potent. To the OP: don't be yet another Rails programmer. Help us build a better stack than the web so we can move forward.
If you need the structure of a degree program, that's great. However, the typical programmer, who by the nature of the job needs to be a life-long learner, will tend to have what it takes to learn it on their own already. You are going to struggle professionally otherwise. And so that structure is not necessarily an asset.
But I do agree that learning the theory is valuable.
Pay close attention to what HN discusses on a regular basis. What proportion of it is software engineering? CS theory? Or any sort of deep technical topic, for that matter? Contrast that with the proportion of marketing/blog-spam about "ToDo in Ruby on Angular.js."
The problem with aggregators is the latter category always tends towards the top because it's easy and more people can relate to it. But it's not the sort of learning that makes you think, nor is it particularly insightful. It's just telling people what they want to hear: that this Ruby on Angular.js thing is what we all gotta jump on...because everyone else thinks so!