Ask Slashdot: CS Degree Without Gen-Ed Requirements?
davidjbeveridge writes "I'm interested in getting a CS degree. I've been programming since I was 13, and like many of us, taught myself. I am familiar with a number of languages, understand procedural, functional, and object-oriented paradigms; I'm familiar with common design patterns and am a decent engineer. I learn quickly. I work 2 jobs and I have a life. I want to get a CS degree from an accredited school (a BS, that is), but I have no interest in wasting any of my precious time taking classes in English, Philosophy, History, Art and the like. While these fields are useful and perhaps enriching, they will not contribute to making me better at my job. Moreover, I attended an excellent high school that covered these fields of study in great detail, and I feel no need or desire to spend more time studying these things. I want a BS in Computer Science with no general education requirements. Any suggestions?"
I guess this is a US-only problem. When I started my computer science degree at the University of Antwerp, it was pretty much only computer science. We had a few credits in economics, but that was really just general economics and that's it.
However, what are you expecting from studying CS? It's most likely not what you think it is. It's basically math, automata, algorithms, computability theory and stuff like that. If you plan to be a computer programmer and only that, you already have the skills required (even though, you probably make certain avoidable mistakes by if you don't know about computing theory).
If it is to have better chances to get a job interview, I can understand...
I don't regret having a computer science degree, it was very interesting, but it's not a course "how to become a better programmer".
Anyone considering computer science, should ponder the words of one of the greatest computer scientists of all times: "Computer science is no more about computers than astronomy is about telescopes", Edsger Dijkstra.
Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
A BS covers general education and major course work.
Your best bet is an AS degree. Then, come back later and get your BS.
Go take your gen eds like the rest of us. Do you think we enjoyed them? No.
I think you underestimate the value of those things. Most of these classes aren't strictly about history, english, and the like, but enhance your overall mental ability - such as the ability to write, comprehend, and reason, which frankly, is generally missing from those in our field.
If you don't have those things, that's fine, but that's not a BS or a BA, thats a trade school education.
What you just want the piece of paper?
I spent a good deal in college CS classes, learning stuff that I already had a good idea what to do.
When it came to the real world I was quite prepared for anything computer related. It was every other subject that killed me. It was my lack of art classes that kept me from good design. My lack of English classes that kept me from good copyright. My lack of Business classes lead me to make wrong decisions.
Now I'm considering going back to school. But I'll stay as far away from CS as possible.
I once read somewhere that the things you don't know become your Achilles heal. Very true.
Go to school for an education. Not a piece of paper.
Beware: If all you can do is code there's a great chance your job will end up in India. You have to have broader skills now to be competitive. Instead of taking classes in an area you obviously know well (i.e. coding), why not take more general business classes or in the sciences so you can use your coding skills as a tool to solve critical problems rather than being a coder waiting for a problem to get assigned to you? 99% of the people you will need to work with aren't coders and if you don't have any general skills you won't be able to work with them as effectively.
Good luck,
-c
I know it seems like a big waste and such, but seriously... do the general ed. classes. The last thing you need to do is to end up so single-minded that you can't even see a wider world out there.
You know the big stereotype about how geeks can't function socially? Remaining willfully ignorant of everything outside your chosen craft is a big symptom of that.
You may *think* that your high school covered all of that, but honestly, they likely did not. Even if it seems like total crap, you'll likely learn things about art, philosophy, English, history and the like that a high school class could never cover.
I remember thinking the same thing you did a long time ago, while chasing an EE. Then I took the required history class, and gained such a passion for looking into the past, that I minored in it. All it took was a prof that really loved what he taught, and expressed it in a way that touched off an intense curiosity to learn more. The more I learned on my own and beyond, the more I fell in love with where we've been as a whole, and in exploring the past.
Hell, it even helped out in my eng. classes. Proof? Researching why RMS Titanic's electrical systems held out for so long in spite of all that seawater coming in made for one of the most kick-ass papers I'd ever written, and it gave me an incredible respect for electrical technology back then. I wouldn't have given a shit if I wasn't interested in history, and my classmates were too busy analyzing and making shallow papers on the tech-du-jour (mostly centering on what they thought about the upcoming 1993 NEC).
But - you know the biggest reason why you should diversify? My degree is in Electrical Engineering. I took a couple light classes in programming (C++, FORTRAN, PASCAL...), and thought it was a waste at the time, but I had to fill electives. I'm a Sysadmin, have been so for 15 years, and have done programming professionally on occasion. I haven't done jack in the EE field since 1996, and my last license renewal expired a little over a decade ago.
Your career will likely diverge too, and having more than a single-minded subject under your belt will help you greatly, as well as give you alternatives and avenues that you may have never thought of.
Quo usque tandem abutere, Nimbus, patientia nostra?
I was in a similar situation, here is what I suggest:
1) Take the Comp Sci AP test to get you out of the introductory CS courses and get you some credits from the start. The gen-ed courses weren't that bad to take: It may be the CS 101 classes that drive you nuts. "This is a for loop... this is a while loop..." and looking around at all the Art majors who think they can go into Comp Sci for the money and don't understand the concept of a variable.
2) Take any other AP test you think you can. Worst-case you lose money, best case you skip some courses. There is nothing wrong with getting a poor score on an AP test other than the loss of money. But talk to someone who has taken and/or teaches AP courses to get an idea of what you need to know. If you are still in high-school then taking the AP courses is the best approach.
3) Use community college to breeze through gen-eds. I decided on my final college and picked a community college to take my Gen-Ed classes. (I did it for financial reasons though). Pick the schools and classes so you guarantee a transfer. Then take nothing but gen-ed courses in the community college because they will be really easy. If you are as smart as you think, you might be able to do 2 years of gen-ed classes in 1 year. Most of those community college classes will be designed for slackers.
4) Grow up. Those gen-ed courses are actually some of the best parts of college. I am a geek to the core, but I loved discussing Descartes' meditations, studying economics, learning how the eye communicates images to the brain, and debugging why various wars started. If you think you can survive in the world knowing only what is in the computer you will be unable to accurately measure the world around you and efficiently apply what you have learned to your field. You won't be young forever so at some point you will wake-up and realize you aren't the best of the best of the best anymore, and you will want your niche in the real world. Computers are a tool - a means. True success requires more than just the means (your C.S.) to fulfill.
It astonishes me how many people don't understand that college is about learning to be a life long learner rather than setting one up in a particular specialty. If one wishes to ignore the breadth requirements, there are always apprenticeships and vocational training schools out there.
A school that produces a bunch of simpering morons that can't be employed tends not to last very long, as it's hard to get endowment checks coming in or new applicants when folks that graduate can't find gainful employment.
Intelligent managers (managers that understand the position they are hiring for, as opposed to PHBs that are looking to fill an empty seat) will understand that experience can be more valuable than education.
And good managers will know (from experience) that hiring someone like this guy can be incredibly detrimental to a software team. Here you've got an idiot (seriously) who thinks he doesn't need to know something -- he already gets it. Dude, after learning about it in high school? Chances are, this person is difficult to communicate with, egotistical, combative instead of merely argumentative, and unwilling to think outside of defined corridors. He'll probable be hostile when asked to do something out of the ordinary. Quite likely, he's an asshole who will drown your entire team in bad feelings. He's a bad idea.
Someone mod this up! I couldn't agree. more. University is about education. More importantly, being reasonably conversant on a range of disciplines. The better ones, gasp, still try to offer that.
Focusing on one subject to the exclusion of all else is not a degree. It might be directly applicable to a given job, which makes the exercise job training. You might take subjects that you have no interest in or, more frustratingly, no aptitude for, but that's part of the ride. If nothing else, the reason such education is still valued in the modern world is that it proves an individual has at least the fortitude to tackle a spectrum of topics.
Just take the CLEP tests if those Gen-Ed classes really have no value for you. You can complete almost your entire first two years of schooling with those tests. I just finished up going back to school (harder to move up now without a BS degree), and I saved a boat load of time and money taking CLEP tests for Gen-Ed classes that I didn't finish in community college a decade ago.
For truly well rounded self educated people, they should be a breeze. If it is hard to pass them, then you really do need those Gen-Ed classes (those areas of knowledge really do have value). But plenty of people who actually like to read (non-fiction) have no need to waste their time in 100-level Humanities classes.
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
Dan Bricklin didn't become super rich, but he literally changed the world. I saw a documentary once in which an accountant or some type of professional said that the first time he saw a computerized spreadsheet, he cried, because it took out so much drudgery it could make his work fun again.
If Bricklin had not been getting an MBA, would he have gotten the idea? I'm guessing he looked at hours of paper and pencil boredom recalculating cells, and realized that there was a better way to do it because of his computer background.
Moral: Bricklin's background in computer-science when coupled with exposure to an unrelated area, showed him a need and in the process, he changed the world.
Alternate Moral: If accountants and MBAs had stepped outside their study area and looked at computer-science, they could have changed the world themselves
What changed under Obama? Nothing Good
You have the right of it, as they say. While it's possible to make a credible argument for focusing on learning the core set of skills for a career while minimizing time spent on associated topics in some circumstances, let's look at the actual words used.
Phrases like 'my precious time' and 'will not contribute to making me better at my job' are huge red flags for a inflated sense of self-importance. Dismissing the entire range of liberal arts as merely 'useful and perhaps enriching' betrays a level of arrogance that has the potential to incite team-destroying conflict.
I went to college, and that is not something I learned in college. What I learned at the University was that there were a bunch of colleges there that would not have a single student in them except for the general education requirements that forced a bunch of people to take stupid classes to fill out those GE Requirements.
And the sad thing is, that most of those liberal studies college degrees didn't require reciprocal cross training in hard sciences and math. And when they actuall did require it, it was hard watching all the future teachers struggle with basic math classes which would have been hilarious, except knowing that they were going to be teaching future students. And the most astonishing thing I can tell you, after working in education is that many (if not most) teachers don't actually want to learn anything beyond what is actually "needed".
I've found that most people who are into technology have a much broader discipline range in regards to learning, and that is caused by our general need to keep learning new stuff or get left behind in the "real world". I love learning, but only after having hated it during school.
This is nothing more than a classic example of "theory vs application". The difference between theory and application is that in theory, theory and application are the same, in application they are not.
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
The original poster, and you, who call it tack-on garbage, are the very reason that general education requirements are tacked on.
Clearly both of you can't even conceive why studying, for example, literature and philosophy might be useful to the practice of top-level computer science or software engineering. Therefore you clearly need to come out of your tunnel and be exposed to the world.
When I was studying artificial intelligence and computational vision for my post-grad degree, the stuff I learned most from was the shelf full of twentieth century philosophy books on logics, epistemology, and metaphysics (and Zen). binary-encoded symbols in computers representing things and processes out there in the world is a wondrous thing, and also a thing whose complexities are not easily mastered without a good grounding in philosophy. How can you know about the limitations of your representations - they ways they are sure to fail or become too complex or be challenged as limited or invalid - if you don't understand philosophy?
And I've come to understand how much of peoples' understanding of the world and themselves is in narrative form, and what the significance is of what is left in, and what is left out of a "good" narrative, and how narrative is fundamentally about the guiding of attention and the selection of the sub-situations salient to humans' concerns and needs. Some of that knowledge has come through a lot of careful consideration of great stories in several forms of art and literature.
All of it is central to a conception of how to do good user interface in computing.
Where are we going and why are we in a handbasket?