I used to think that a computer science degree was not useful. However, can you answer the following questions:
1. How would you program a compiler for a new DSL?
2. What is stdcall? How does it relate to the stack?
3. How many registers does a 486 have? What is a register?
4. How does ethernet work?
5. What is the most efficient way to break a project down into tasks and milestones when dealing with a large team?
6. If you break a computer which you bought, but has not yet been delivered, who is liable?
7. How would you mathematically model a computer controlled temperature controller system?
I know the answers to those questions because I learnt them along the way as I got my degree. I have a wide spectrum of knowledge which is not directly useful to programming, but is useful to me as general knowledge.
When you learn by yourself, you tend to learn enough to do what you need to get done. In school you learn things that are not immediately obvious that you need them.
"When you learn by yourself, you tend to learn enough to do what you need to get done. In school you learn things that are not immediately obvious that you need them."
No, no, no. YOU tend to only do the minimum to do what needs to get done without outside pressure. Don't project your flaws onto us self teaching people who don't share them. Any autodidactic person will constantly be learning both generalist and specialist things. Just because you don't have enough fire in your belly to do more then the minimum learning when you're on your own doesn't mean anything about anyone else.
(EDIT: Sorry. Not to be too harsh on you. Your quiz is relevant. Of course, if the OP can't answer questions like yours in his field, he isn't the kind of autodidact I'm defending. But if he can, (and given that many self teaching people can do things like that easy) your point about learning just enough to get stuff done is more a personal thing then anything about autodidactic people)
The thing is this: There are some things that ones does not know that one does not know. And only in a formal teaching environment is one introduced to these topics. Most schools give a healthy dose of general knowledge together with the domain specific knowledge. And most self learners tend to stick to domain specific topics.
I don't know how self taught you are, but 100% of my income comes from things I learned myself and applied myself. I spent $0 to learn those things, and now I make, well, a fair bit more than $0.
In spite of all I learned by myself, when I went back to school, I discovered things I did not even know where useful to me.
I'm not saying that a person is flawed because he is not aware of some specific area. He just is not aware of it because it's not something he directly requires. What Web programmer needs to know about register transfers? Well, if he went to do a CS degree, this knowledge would be forced on him, making him a better programmer in general!
Civilisation only exists because of the institution of school. Don't bash it, it's a very good thing.
"only in a formal teaching environment is one introduced to these topics."
That looks like dangerous thinking to me. I guess it's conforting to think that what you never heard of in your "formal teaching environment" doesn't exist or doesn't matter. School can only expose so many topics to you. It can go deeper than necessary in some topics that won't be relevant to you and completely ignore others that would be.
I went to college and was a semester away from graduating.
Here is my education history. I studied music and philosophy not computers. Anyway I was self taught enough that in my senior year contemporary philosophy of mind class (which I studied independently because it was my interest before the class was offered), the professor asked me to proofread and critique the final rather then take it. I never took notes but I could correct other peoples notes from memory. I also taught myself composition and music theory up to the 400 level before dropping out of school. In high school, I got perfect scores on AP tests for classes I skipped almost every day (I got 15 college english credits for a class I failed). I did knowledge bows and was the knowledge bowl coaches TA, where he gave me old questions and encyclopedias on various topics and we got 2nd at state. (we were a poor public school). I had more AP credits then the saludictorian and valedictorian but I sat in the back with the pregnant girls and delinquents at graduation. I don't think I learned things from class, and think all that was self taught. I always got in trouble for reading ahead or hiding a book.
School is, in general, good. But for certain bright people, putting them like that in classes with people of normal intelligence is exactly like putting normal kids in classes with severely mentally disabled kids, and limiting the normal kids potential to the mentally disabled kids potential. On balance school is good, but there is a class of people for whom school is devastatingly confining and intellectually restricting. Depending on early experiences, these people are going to hate school early, become self taught college dropouts or never go to college (who can blame them?) and teach themselves skills like this guy is saying. Because these people's dropout status is related to their high intelligence, excluding them with barriers based on degrees is a great way to protecting yourself from some of the most creative, intelligent, original thinkers our planet has to offer.
I believe in people who execute. The tasks you have to do in a standard job are for the most part VERY similar to those in school. Little creativity is required, just follow the rules and deliver. People who cannot finish a college degree may be geniuses, but what use is a genius to a big company if the genius never finishes a project but gets bored after a few weeks?
University is a free place. Come and go as you please, just write the exams. Those geniuses should have no problem doing that, no?
A company needs a good mix of the following:
1. Slow and steady worker
2. Charming and friendly people
3. People with clever ideas who know how to explain their ideas properly
Some helter skelter genius with strong opinions and a low ability to complete projects is exactly the wrong type of person for a company.
And the right kind of person to start an own business.
Not going to university was an option, I made a decision, got on with it, and I haven't lost anything in the pace of my career as a result. If anything its instilled an attitude that has well prepared me for running my own company, in the ability to think different and break the rules.
Therefore I don't see it that I failed to complete a project, or have a lacking ability to execute. Not going the normal path, where you're not guided through, the route isn't clear, you have to make decisions, and take actions on your own accord.
Does that not demonstrate an ability to execute?
I have always encountered jobs on the standard job market that require degrees, and I just thought that was how it was. I found other jobs, and made my way despite that.
The reason for starting this thread was because I thought people starting their own companies, especially many of them being from a technical background themselves, would have a different line of thinking..
It's a false assumption that not going to college means a person can't finish something. Fact is, MOST people don't go to college and many of them don't do it for financial or family reasons. College isn't like high school, it's not available to everyone for free. Many many smart people skip college and that's not going to change any time soon.
Of course I don't think that people who don't go to college can't finish something. I ABSOLUTELY would hire a person who did not go to college if he was qualified. But a person who drops out of college because he felt the classes where holding him back is for me a person who cannot complete stuff.
If he dropped out to execute something (like start a business), then it is a major plus point. If he dropped out to go work in a dead end job, or to become an 'artist' then this is a sign of a person who cannot complete projects.
I mean, why would you drop out of college to go earn $3000 a month when you could just finish college and earn more than that?
I would NEVER discriminate against a person because financially they had trouble going to college. But I would see it as very negative if a person complained about college not being the right thing for them. Learning is learning, there is no right or wrong way. Everyone does it his way.
Then you don't like people who can't finish things, stop equating that with college, they are unrelated. Successfully completing college does not mean you are good at finishing things. It may be an indicator, it's certainly not a qualifier.
Many jocks finish college while barely being able to read, many students cheat their way through, or barely make it through with low grades. Going to college is much more an indicator of your social values rather than your skills.
Most people tend to go to college because they're expected to, it has a lot to do with the values your parent instill. Many people skip college because it never occurred to them they should go, their families simply didn't instill those values in them.
College is nothing more than a place where one can learn, it does not mean one does learn. People who enjoy learning don't ever stop learning and self learning eventually becomes a requirement for all who want to continue to grow. College is nothing more than a kick start for a minority of society, there are many other paths that are just as successful.
Many of the most successful companies in the world were started by college dropouts who realized school was getting in their way. Classrooms are good for teaching the masses, people who learn faster than average will absolutely feel like they're being held back and turn to self directed learning as the superior method it is.
Because these people's dropout status is related to their high intelligence, excluding them with barriers based on degrees is a great way to protecting yourself from some of the most creative, intelligent, original thinkers our planet has to offer.
Thank you LPTS, that's pretty much exactly what I wanted to say. A lot of people have gone off on tangents discussing the merits of a degree, where I actually agree with them for the most part.
The point I was actually trying to make, you've conveyed very well. Don't judge our intelligence or ability on such a unrelated subject as having a degree or not.
Hopefully a few people will have read this thread who will be employing in the future, and the information contained may influence their decision when they're deciding to write the "Degree required" line on their job advert.
I think you misunderstand me. I do not learn exactly enough to get things done. That would be impossible. If I am asked to program a web app in PHP, I would study PHP, Databases, Web server configurations, and have enough knowledge to develop a web app. I would not start by studying design patterns, software modelling techniques and abstract functional programming.
That's the difference between self learning and structured learning - most of the time people learn things specific to the topic they are interested in. If you are trying to claim otherwise, then your worldview is deeply flawed.
As a self-taught hacker, this just isn't true of me. I'm constantly reading about things that I have no immediate use for. In fact, one of the reasons I dropped out of my CS undergrad program was that I felt like its focus was too narrow.
There's nothing wrong with doing things that way. I know a bunch of smart people who did that.
But if you're going to be teaching yourself on the side anyway, part of the value of being in school in the first place is reduced. Depending on your financial situation, it might make sense to just teach yourself full-time, or to do your reading on the side while working.
I hated school. After a while I decided that I was better off without it. Ten years later, I still feel that way.
(I don't mean to sound harsh on you, you sound smart and what I wrote has the wrong tone.)
"most of the time people learn things specific to the topic they are interested in."
Your structure is wrong. It's not most of the time all people. It's most of the people all the time. An autodidactic person (admittedly rare and an outlier) will have already studied design patterns or whatever, because they read obsessively and learn best that way.
I'm not trying to claim most people don't work that way. I'm saying there is a group of outliers that has both an ability to learn way better and faster than school can teach, and who dropout. These outliers are both highly desirable employees and cast off by the system. I think that normal people are projecting their own inability to self teach well at a college level onto the freaks who have this ability.
If you think there isn't a group of outliers who is better off self teaching, as able as any PHD's, and who drop out or don't attend school because it is stifling to their natural urge to learn, your worldview is excluding a lot of the most talented and creative people on the planet.
Whats so freaky about teaching yourself?! Learning college level material isn't some mystical magical thing that you need the professor who holds the keys to teach you! Unless they are the only repository of information and no textbook exists to learn the material. Once you start understanding the vocab (and stop wasting your time by not reading the best books for your topic) it's just like anything else. Hopefully you can find a professor/writer who isn't horrible at writing and learned less is more. If not, you'll figure it out.
1. How would you program a compiler for a new DSL? 2. What is stdcall? How does it relate to the stack? 3. How many registers does a 486 have? What is a register? 4. How does ethernet work? 5. What is the most efficient way to break a project down into tasks and milestones when dealing with a large team? 6. If you break a computer which you bought, but has not yet been delivered, who is liable? 7. How would you mathematically model a computer controlled temperature controller system?
I know the answers to those questions because I learnt them along the way as I got my degree. I have a wide spectrum of knowledge which is not directly useful to programming, but is useful to me as general knowledge.
When you learn by yourself, you tend to learn enough to do what you need to get done. In school you learn things that are not immediately obvious that you need them.