3 ms·
Exactly. I see "Computer Science" degrees being used for 3 distinct purposes. First is what I consider the primary use for a CS degree: researching the science
by ja27 17y ago
Exactly. I see "Computer Science" degrees being used for 3 distinct purposes.
First is what I consider the primary use for a CS degree: researching the science of computing. This includes all the specialties, from AI to Algorithms to Databases to whatever, but it's different than the next two. A true CS major should primarily be a research scientist but possibly a software architect. Chances are good that a BS CS isn't that employable in that role and would require graduate school for more depth.
Then there's software engineers that specialize in designing and delivering software. There's certainly some overlap with the CS degree coursework.
Then there are computer programmers that just write code. These don't need a 4-year degree. They could be trained at junior colleges or even modern trade schools.
So if I compare that three-fold path to electronics, the CS degree is closer to a degree in physics, the software engineering degree is closer to a EE degree, and the computer programmer went to soldering school (or was trained on a wave solder machine). EE students take physics classes, but then branch off into "applied physics" specialties.
- timwiseman 17y agoI entirely agree. One thing to add though: Then there are computer programmers that just write code. These don't need a 4-year degree. They could be trained at junior colleges or even modern trade schools. This already happens. Lots of junior colleges and specialized trade schools will teach this. I also know several good programmers that are entirely self taught (or similarly, taught by a mentor). Personally, I transitioned to software design after getting a degree in math. It is certainly a related field, but I made the jump through self study of the practical aspects and picking up a couple of certifications just to help with HR.
- aidenn0 17y agoThe danger here is the temptation to neglect some of the CS things that are important. Analysis of algorithms is one of those things that is super important, yet it requires some discrete math and theory of computation. Strangely enough, the classes that were most useful to me now as a developer were the more theory oriented ones. The "real-world" type classes were all either out-of-date or just too ivory tower to apply.