Poll: Do you have a formal CS or a general computing degree?
One recurrent theme, especially when talking about interviews, is the need to display some CS skill set, such as algorithm design.
My degree focussed on programming, simple database design, simple network stuff. It was designed to produce grads for business applications.
I'm curious how many have the specialist knowledge that comes from a CS degree as opposed to some other computing degree.
For the purposes of keeping it simple, let's define CS as algorithms, designing a compiler, designing an OS, the hardcore stuff. We define general computing as designed for business use: basic programming in ,say for example, java and C++ or any other common language, some database knowledge, some networking knowledge. We define other degree as, say, engineering or physics that involves some programming knowledge. The rest are self-explanatory.
46 comments
[ 2.6 ms ] story [ 93.8 ms ] threadWhat are your thoughts on it, now having gotten the degree? Happy with it? Would do it over again if given the chance?
Computer Engineering was new 25 years ago, and exactly what I wanted. Circuits, thermo, statistics, CS languages, OS, microprocessors. All useful, got me my 1st job and many afterward.
Self-taught and proud.
I can regale you of the set theoretic basis of SQL JOINs, or of n-base arithmetic all you like.
1 decade of MIT OCW and as well as various books goes a long way.
Been programming since I was about 11 years old. 8 if you count AT&T GW-BASIC.
22 years old and working as a dev for the past 4-5 years. Moving to San Francisco for work in 2 days.
My way of becoming a dev is not the easiest or the best. I will do my damndest to get any potential children of mine into a good school. (It wasn't an option for me.)
Later I picked up Visual Basic, C++, Perl, PHP, Python, Java and more recently Objective-C and Scala.
I grew up fairly poor, but my Dad built the computers using parts he begged/borrowed/haggled. Eventually I started working (My first full-time job was at age 13) and taking care of my own hardware since I'd been building with my Dad long enough.
Some things, like x86 assembly, were just too difficult to self teach (insufficient resources - the existing tutorials just aren't good for a beginner). Others, like compiler design, I just never would have thought to teach myself without the pressure of school.
So I find that the greatest utility of school is forcing me to learn things that I never would have learned before.
School improves the median quality, and odds of exposure of the candidates.
It's not necessary for that kind of exposure though.
... what's your favorite?
Also, as someone with a CS degree, I still picked up stuff on the job, years after getting out of school.
Lecture videos, homework pdfs.. It's a little more coherent than opencourseware due to the nature of the program.
"ADU was a one-year, intensive post-baccalaureate program in Computer Science based on the undergraduate course of study at MIT."
My goal isn't to replicate an entire CS degree. It's to fill in all of the vital background that directly impacts someone on the job.
I have no degree whatsoever and no qualifications in maths or CS.
I've been in the business 12 years, although I do less development these days. I'll be honest - I couldn't tell you how you would design a compiler, or an OS (not at the 'hardcore' level you are talking about).
If you asked me these questions in an interview I'd say as much. I'd also say that for web development I don't think it really matters and I don't feel I'm missing out on much. I'm certainly not going to go to university to learn them at the age of 29. I'm also not going to get a job at Google (not as an engineer anyway) but that frankly doesn't concern me.
I don't feel it has hurt me in terms of my career although granted there are areas of the business I'm never going to cut it in (that's the case for all of us, however).
Time can be tough to find when I do this - in general I have a "part time" schedule at night after I'm done working (I've cofounded a startup); I have a history of going through self-education "phases" that usually mean I stop working for a period of months and focus full-time on my study material and personal projects...
Rigor, though, can be an issue sometimes. I'm still working on intensifying my studying in the time that I spend on it.
-first CS degree, double major Associates -2nd time at college studied both Molecular Biology and Bioinformation with CS bent -rest self study
* There are three options: CS, CE Hardware Specialization, and CE Software Specialization. I am doing the third.
* Everybody takes the same 300-level courses. Two quarters of theory, comparative programming languages, and a hardware class. (You end that one by building a MIPS processor in Verilog.) They are doing a curriculum change for the 300-level courses, however, so I do not really know how the new courses work.
* CS people basically can take any 400 level courses they want. Some people basically do what is required for CE students below, some do graphics/animation/games, and some do a mix.
* CE Hardware people have to take a handful of EE, the advanced hardware classes, and the hardware capstone. Basically no range of motion here.
* CE Software people have to take intro to EE, a software engineering course (or computer security, alternately), operating systems, networks, and a few 400 level electives (options include compilers, algorithms, distributed systems, and databases).
So CS is not much more theoretical than CE-Software; you just have more choices your senior year, and have to take a bit more liberal arts.
Most undergraduates who would have majored in CS if it had been offered went for math or physics, and then took all the undergraduate CS courses too.