Slashdot Mirror


More Students Prefer Interdisciplinary to CS

prostoalex writes "With increased offshore outsourcing and continuing simplification of such tasks as writing a trivial application, Computer Science degrees are not as attractive for college students anymore, NYT finds. Students prefer interdisciplinary majors, where the programming skills are combined with solid scientific backgrounds in biotech, chemistry or business." From the article: "For students like Ms. Burge, expanding their expertise beyond computer programming is crucial to future job security as advances in the Internet and low-cost computers make it easier to shift some technology jobs to nations with well-educated engineers and lower wages, like India and China."

13 of 448 comments (clear)

  1. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  2. Software Programmers don't fix Hardware. by FatSean · · Score: 4, Insightful

    It's Computer Science. If you want to fix equipment, take Electrical Engineering or maybe a technical school can help you.

    Quite frankly, I don't care to dick arround with broken gear. That's why we have an administration group that handles all that ugly stuff.

    I can concentrate on the interesting parts: designing systems and writing code.

    --
    Blar.
  3. CS != Programming by mpupu · · Score: 5, Insightful

    When will people understand that Computer Science is not related to programming as the article says. In fact, I know a couple of great CompSci graduates who couldn't write a complex program even if their lives depended on it.

    "It's so not programming," Ms. Burge said. "If I had to sit down and code all day, I never would have continued. This is not traditional computer science."

    She's talking about code-monkeys, or Software Engineering at most. Computer science is related to research, finding new and more efficient ways of doing different tasks (new algorithms, data structures), and understanding the underlying concepts behind a computer program (programming paradigms, logic) and tools that can be applied (verification, simulation).

  4. Re:In other words by grasshoppa · · Score: 5, Insightful

    However I am more concernd (a reason that I am an ex-CS major too) that the university doesnt offer a single course in PERL, Python, Ruby, PHP, or any of the currently popular languages except Java, and some C as a side benefit from some classes. Don't give me BS about the basic concepts being all the preperation you need from any language.

    Actually, this I subscribe to. Further, you can't cover all the languages in any depth that would be helpful. So you take a few languages that are widely used and have a good breadth of skills and you teach students the methods primarily, and how to learn a language secondary.

    What I have a problem with is the single minded focus on mere software development concepts. With no head for how it interacts with the hardware, you get people creating buffer overflows without even realizing it. Teach a student how to learn and the basic concepts, then go over how a compiler works and how modern x86 machines process instructions.

    They had compiler theory, but it wasn't a bachlor level course. I want that shit in the second year. Students need to know how their work affects the system.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
  5. Re:In other words by Nasarius · · Score: 4, Insightful
    With no real training in hardware, software programmers really don't know what they are doing, or how to fix something if it goes BOOM.

    Er, computer SCIENCE should not deal with hardware beyond a couple digital logic courses. It sounds like you were looking for an MIS degree, not CS.

    University science courses are not meant to "prepare someone for the real world". Do I know how to do real chemistry research after taking sophomore organic chemistry? Not really. But I understand the concepts, which is far more important. Likewise, a computer science curriculum should deal with computer science, not too much software engineering and certainly not IT grunt work.

    --
    LOAD "SIG",8,1
  6. Re:In other words by netruner · · Score: 4, Insightful

    I would agree that 2 years toward a CS major wouldn't prepare you for much. However, if all your school was teaching was programming, those two years would have been better spent at a tech school toward an associate's degree that was actually in programming.

    I have a bachelor's and a master's in CS and I can confidently say that my schools prepared me well. CS encompases more than simple programming. There is a lot of study in algorithm analysis, computer architecture, OSes and real software engineering (not as in popular culture where it is interchangable with "programming".)

    There is also the issue of studying the hardware. I don't understand how any accredited program can hand out CS degrees without coursework in hardware. (in undergrad, my school taught the circuit analysis, interfacing, etc. out of the physics dept beccause we didn't have an engineering dept. - and every CS student was 2 credits short of a physics minor, math minor was automatic.)

    If the program you were looking at was as you describe, I would speculate that they were probably not an accredited program.

    --



    DISCLAIMER: This post was not checked for speling and grammar- if you complain- you're a whiner
  7. Re:Well, I called it. by merreborn · · Score: 4, Insightful

    In 20 years C++, Java, and .NET likely won't be cutting edge anymore (we hope now). So those skills don't work to well... you need to retrain anyway.

    Yeah, and? A real programmer is not "A C++ Programmer" or "A Java Programmer". A real programmer can attain a level of proficiency equal to that of his/her perfered language in *any* language in a matter of months, if not far less. "Retraining" is just part of being a programer.

    I started programming at my current job -- your standard LAMP operation -- six months ago. I'd never touch PHP, or any query language before in my life. My boss has been using both for at least 2 years, and our other developer claims 5 years of experience. In 6 months, I've become the go-to guy for both of them -- I can (and consistantly do) rewrite the inefficient parts of their code to execute exponentially faster, and make it much easier to read.

    Real programming is a fundemental understanding of how to write algorithms efficiently, code clearly, picking the right tools for the job, and knowing how to use them correctly. You never have to "retrain" any of that.

  8. Re:Immigration by njh · · Score: 4, Insightful

    Yep, H1B is the modern, clean and ethical approach to slavery. ;)

  9. Re:In other words by putaro · · Score: 4, Insightful

    This has always been true. However...

    I finished a CS degree back in 1991 while working as a kernel developer (this is pre-Linux. I worked at a minisupercomputer manufacturer with a professional development team and the guys who designed the processor and other hardware). As a result when I finished college (after many years) I had a firm grounding in CS theory, a pretty solid knowledge of hardware and techniques, a lot of knowledge about 4.2 BSD internals and a lot of good knowledge about how to turn out software in a team environment.

    After 14 years, what can I still use from 1991?

    CS Theory - still the same baby. I don't pull it out often but when you need it, you've gotta know it.
    How to work in a team/ship software
    Basic computer design/electronics

    The other stuff is just technology. It comes and it goes. Every piece of hardware that I knew well from 1991 is obsolete. I can still solder but surface mount is damned hard to do by hand. 4.3 BSD internals? Not super useful.

    When I was in school I had similar complaints to yours. I hung in and finished my degree because I didn't want to spend the rest of my career explaining why I didn't have a degree. Now, I'm really glad I did. The longer you stay in the industry the more you will appreciate the theory side of things. It's really a whole different thing from learning technology and it has much longer term value.

  10. Re:this is bullshit by linguae · · Score: 4, Insightful

    What problem? There is a huge difference between computer programming and computer science . Computer science is the study of computation, and computer scientists learn deeply about algorithms, computability, AI, data structures, compilers, operating systems, graphics, and much more. A BS or MS in CS isn't supposed to train you to be a systems administrator or a Java programmer, and that's the main problem. People enter CS majors thinking that CS is about "Java or Unix programming" and about learning how to fix computers, yet get disappointed when they realize that CS only tangentially discusses those topics. If you want to spend your time programming and fixing computers, get a MIS degree. If you want to know the science of computation, get a CS degree.

    A computer programmer is to a computer scientist as a mechanic is to a mechanical engineer. Computer programmers and mechanics do know quite a bit about Java/Unix/Win32 programming and about various different auto parts, respectively, and we cannot live without these people. A computer scientist and a mechanical engineer might not know the latest programming language/methodology and might not know everything about every car, respectively, but a computer scietists knows the theory behind those programming languages and tools, and a mechanical engineer knows how to engineer a vehicle.

  11. Re:Computer Engineering by FatherBusa · · Score: 5, Insightful

    I remember having a conversation with my father years ago about CS grads. He was a software engineer/programmer at a tech company in Cambridge, MA, and had gotten to the point in his career where he was responsible for lots of hiring decisions. Being in Cambridge, they basically had their pick of the Ph.Ds coming out of the CS program at MIT. Once I asked him what they did with newly-minted Ph.D.s in CS. He said, "Retrain them."

    I was surprised by this, and so I asked him if he thought all those years of CS education were essentially useless. "Oh, no," he said. "They're worth their weight in gold. They'd spent years working through extremely abstruse problems, and they'd learned how to absorb massive amounts of information quickly. Basically, they knew how to learn anything. Those guys would know nothing about building actual, production-level software for delivery to a customer. But they'd learn that quickly, because the foundation was strong."

    Now that I am a professor (of English, not CS), I find myself taking a similar view of university education. It's not the content, per se (though certainly, the content is important), but the habit of mind one acquires by being confronted with difficult problems and issues over and over. If you want to learn VB or SQL, buy a book. If you want to think differently--more deeply and with fewer jerks of the knee--about the world, about engineering, about literature, about art, go to a university and let it change you.

    Of course, I am one of those who did pursue an interdisciplinary degree of sorts (I use computers to study literature, and I teach software design in an English department). But that is another story . . .

  12. Re:In other words by bladesjester · · Score: 4, Insightful

    I find these comments of "they don't learn anything other than math" to be weird as well and I'm not in California (I'm in Ohio).

    Yes, I had the standard calc, matrix theory, stats, algorithms, etc.

    However, I also covered assembly (mine was on Motorola instead of x86), C/C++, some Scheme, operating systems, internetworking (from a former minion of Comer), databases, language and syntax creation, and quite a few other things including group software development for clients (from gathering requirements through completion).

    Something tells me that these people are just looking for the worst examples or are pulling things out of their nether regions and don't know what they're talking about.

    --
    Everything I need to know I learned by killing smart people and eating their brains.
  13. Re:In other words by putaro · · Score: 4, Insightful

    My Computer Science department (UCSD - this was in the late '80s) didn't offer ANY language courses . We were expected to learn assembler, Pascal, C, C++, LISP, and whatever else we needed for the courses we were taking as a part of taking the course. Most of our classes involved a lot of coding.

    You will NOT pick up the theory side without a lot of work. Basic data structures, perhaps, but combinatorics takes some work. Language design, compiler design, etc. are non-trivial.

    Pascal is mostly a dead language now. The assembler we learned (PDP-11) is dead. Out of Perl, Python, Ruby and PHP at least one will be a dead language in 15 years. Don't waste your time in college on learning languages. Instead, learn how to learn new languages and new things.