Slashdot Mirror


Is Computer Science Dead?

warm sushi writes "An academic at the British Computing Society asks, Is computer science dead? Citing falling student enrollments and improved technology, British academic Neil McBride claims that off-the-shelf solutions are removing much of the demand for high-level development skills: 'As commercial software products have matured, it no longer makes sense for organizations to develop software from scratch. Accounting packages, enterprise resource packages, customer relationship management systems are the order of the day: stable, well-proven and easily available.' Is that quote laughable? Or has the software development industry stabilized to an off-the-self commodity?"

96 of 641 comments (clear)

  1. Wow! by OverlordQ · · Score: 5, Interesting

    Accounting packages, enterprise resource packages, customer relationship management systems are the order of the day: stable, well-proven and easily available.

    And who made those packages?

    Software don't write itself.

    --
    Your hair look like poop, Bob! - Wanker.
    1. Re:Wow! by daranz · · Score: 5, Funny

      They arrived from lands far away thanks to the magic we call outsourcing?

      --
      This is a sig. It is appended to the end of comments I post.
    2. Re:Wow! by sunami · · Score: 3, Funny

      Software don't write itself. All in good time... all in good time.
    3. Re:Wow! by jevring · · Score: 3, Insightful

      Exactly. Even if there is an overflow of good developers at some point, they all retire (and eventually die), so then someone else is going to have to pick up the torch.

      --
      Move sig!
    4. Re:Wow! by codonaill · · Score: 5, Insightful

      There are 3 other jobs I can see that require CS skills, but are not product development/design jobs.

      1. Who buys it? What skills do Computer Scientists need to differentiate between Brand X and Brand Y billing system? Basically, proper product selection is as tough a job as product design - because you have to beat down sales jargon and work out what a system actually does - generally without unfettered access to the system itself.

      2. Who builds the Middleware/Integration layer? This is so specific to individual companies that you'll never get a solution that fits all the heterogenous parts of your network.

      3. Who builds large networks of products - i.e. works out that Portal solution 1 goes well with reporting solution 2 and alarm system 3. Who breaks down the business flows between these and who keeps track of strategic direction in each area?

      Dunno, still think there's plenty of non-dev jobs out there for CS graduates...

      C.

    5. Re:Wow! by -noefordeg- · · Score: 5, Insightful

      No only that...

      "stable, well-proven ... "
      I've yet to see, say, a well written and stable ERP system.
      In Norway some of the more popular ERP/logistic and sale-systems are CS (Client System), Movex, Visma Unique and IBX. Systems which are just "ok". Terribly modules, inane logic, most likely a lot of bad code all over, but since it's closed source it's impossible to tell. From all the errors (some, really strange), lack up updated documentation and integration specifications, system resources used, and just from looking at the system documentation, you can easily tell that the systems are not "state of the art".

      What most of these complex systems really are, are a collection of small modules of which many are most likely writtin at different times, by different people, for different projects and just barely working together. The companies developing the systems probably have thousand and tens of thousand bugs and points for optimizations which will never be fixed. Any work done on these systems which is not directly connected to a new deployment and paid for by one or many customers are simply a loss for the company.
      Much of the "valuable" experience people get from using such a system, is actually how to use it without breaking it/how to use it despite all bugs, errors and strange quirks and twists.

      What my small company has been busy with the last years, is to move a lot of logic and data outside such systems. Because it's just to expensive to try and "upgrade" these huge behemoths. We develop external databases to store different data feeds, most likely recieved in XML-format which some of these systems is not capable of using. Actually, one of those systems are only capable of importing/exporting data with fixed lenght ASCII-files.

      I don't see any less work needing to be done on these systems in the coming future. Rather, the need for more developers working both inhouse and independent, to patch them up, make small adjustments here and there, and/or write "connectors" for logic/data processing will probably increase.

    6. Re:Wow! by Scarblac · · Score: 5, Insightful

      How about imaging research (stuff like using image processing to learn about the state of food stuffs with infrared cameras), or the hard problems that need to be solved to get to the Semantic Web?

      There is a lot of CS work out there. But it's science work, not programming or product development. That's not CS, that's engineering or just programming.

      --
      I believe posters are recognized by their sig. So I made one.
    7. Re:Wow! by StarvingSE · · Score: 3, Informative

      Also, there will always be room for proprietary corporate development. Many corporations have very specific functions that can be automated using software, but no shrinkwrap solution exist.

      I wish I still had the textbook to grab the quote from, but it contained a case study on adapting a shrinkwrap HR system, and writing their own. It was found that writing the system from scratch would have been much more cost effective than trying to adapt a generic off the shelf solution.

      --
      I got nothin'
    8. Re:Wow! by Treffster · · Score: 3, Informative

      What my small company has been busy with the last years, is to move a lot of logic and data outside such systems. Because it's just to expensive to try and "upgrade" these huge behemoths. We develop external databases to store different data feeds, most likely received in XML-format which some of these systems is not capable of using. Actually, one of those systems are only capable of importing/exporting data with fixed length ASCII-files.
      I can attest to this. I'm a software developer for a small company working at developing value-add products in health-IT, and the big systems we piggy-back on for our data feeds are some of the scariest most atrocious beasts you will ever work with. Most are based off 10 year old code that has been built as one hacked-in-patch after another, and seem to work in-spite of themselves rather than because of it. Off-the-shelf solutions in large enterprise seem a very long way from being low-maintenance commodity items.
    9. Re:Wow! by mmkkbb · · Score: 2, Insightful

      Real programmers and real computer scientists are not always the same thing, and I fail to see why coding up your own linked list is real programming. It's not. It's busy work.

      --
      -mkb
    10. Re:Wow! by __aavonx8281 · · Score: 3, Interesting

      I've heard people use this argument before, and I think it is one that students make while they're in school or shortly after they graduate. What this train of thought fails to realize is that "applied" skills can be self taught, and what separates the CS grads from the other employees who have just picked up computers on their own is their fundamental understanding of the logic and layers that actually make up the basis of the "applied" skills. The self taught hacker will only know 'how' to make stuff work, not necessarily the 'why' behind the application. Don't knock the theory and abstract math until you get out in the field and you're designing a complex, distributed system. Then all that stuff that "doesn't help" will come in very handy and will allow you the understanding to actually solve problems rather than just hacking at them until you come up with something that works.

    11. Re:Wow! by Toba82 · · Score: 2, Interesting

      That's basically my job. I take business processes that my employer needs and turn them into applications to save other employees time. This will never be replaced by off the shelf software.

      --
      I pretend to know more than I really do by mooching off google and wikipedia.
    12. Re:Wow! by morgan_greywolf · · Score: 4, Insightful

      Right. The term 'computer science' has become so muddled because people confuse applied computer science (computer information systems) with actual computer science. Computer science is pure science -- solving the hard problems to advance computing technology. People who have programming or computer engineering jobs are NOT computer scientists any more than mechanical engineers are physicists or pharmacists are chemists. Not that CS majors don't get jobs in the computer information systems arena, just as many physics majors go off and do engineering jobs. But the work of a software engineer just ain't science.

    13. Re:Wow! by khakipuce · · Score: 3, Insightful

      But there are still plenty of development jobs.

      A lot of companies cannot stay ahead by buying off the shelf products - they NEED to be ahead of the game, and they recognise that a so called "off the shelf" product at the level of ERP, CRM, etc. is really just a bag of components that the vendor will integrate into a product for you - they will charge you to do the analysis for your industry sector, and then they will take the knowledge they have gained and sell it on to others in the same sector - you paid them to shape the product for your sector ... and they sold it to your competitors.

      On the legacy side, it's fine to buy a big integrated suite if you are a new start-up, but I have never worked anywhere that could contemplate stripping out all their apps and starting from scratch, it's an endless round of upgrade payroll, replace ERP, bring in CRM. And someone has to makle all these work together.

      There are also those systems that no one writes - Engineering, Financial (as in city trading - I'm sure someone does do these as packages but in my experince there is a lot of in house software development going on in this area), process monitoring and control ...

      --
      Art is the mathematics of emotion
    14. Re:Wow! by Dragonslicer · · Score: 2, Insightful

      What happens to all the chock full of theory CS guys? Where do they end up?
      In the same companies, telling the programmers what to do.
    15. Re:Wow! by Dan+Ost · · Score: 4, Insightful

      Knowing how to handle data structures, how low level network layers work, and a whole lot of theoritical math, doesn't help in any of these things.

      This statement makes me weep inside.

      The number one issue that governs how how well a team can work together is how well they communicate with each other. If everyone on the team has a basic understanding of the theory, then they share a common vernacular which is their most valuable asset when it comes to actually getting work done. Without a common vernacular, they will be required to invent their own which is a time consuming and error-prone endeavor which inevitably results in a late and bug-ridden product.

      You don't need to have a CS degree, but if I have to go to the white board to explain stuff that could have been quickly and clearly communicated verbally to anyone who had studied the basics, I'm probably better off not giving you development assignments in the first place.

      --

      *sigh* back to work...
    16. Re:Wow! by NDPTAL85 · · Score: 2, Funny

      So in other words, promoted beyond their competency?

      --
      Mac OS X and Windows XP working side by side to fight back the night.
    17. Re:Wow! by Bill_the_Engineer · · Score: 5, Insightful

      But the work of a software engineer just ain't science.

      My collegues and I, being software engineers in X-Ray astronomy, disagree with you

      Sure some CS majors go on to make a new computer language or new technique for image analysis, but that doesn't make the software engineer less scientific. The systems we develop are used by X-Ray astronomers and would not exist without the Electronic Technician, Electrical Engineers, Mechanical Engineers, Computer Engineers, and Software Engineers.

      It has been my observation that most of the science is done by physicists (and other scientists) who understand enough about computers to code their own small routine to illustrate their point, and hand it off to us software engineers to clean up, make reliable, and integrate in to a complete hardware system that is capable of performing the science work they need.

      When spending millions of dollars on one-of-a-kind hardware, you not only depend on the computer algorithm being correct but also reliable, thoroughly tested, and an integral part of a well engineered system. All of our science is done in unmanned flights, so we can't simply reboot when something goes wrong.

      Before you correct me and say that we are not capable of computational science, my collegue developed a tracking system that calculates vehicle orientation based on images of stars captured by a telescope mounted on the vehicle...

      Anyway my point is that science is more engineering than algorithm these days. I'm not saying pure computer science is not important. I'm saying that we must introduce engineering practices into computer science to tackle the hard problems. This is why I believe that Computer Science is evolving into Software Engineering.

      As for the non-scientific information systems, thats a job for a MIS graduate.. :P

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    18. Re:Wow! by Anonymous Coward · · Score: 5, Insightful

      1. computational science is not the same as pure computer science; if anything, pure CS resembles discrete mathematics.
      2. computer science might be spinning off "engineering" disciplines, but only after certain hard problems are solved; I seriously doubt that in your effort to create your positional system you discovered anything new about graph theory, cryptography, or algorithm analysis.

      I work with people like you everyday who think that because they write highly technical programs to convert their specialized knowledged into something that runs is doing "computer science." That is "applied" CS, and if you wanted to get into it you are really doing an engineering task.

      I have an undergrad in mechanical engineer, a MS in CS, and am working on my PhD in CS right now. I know the difference between real CS and applied CS/software engineering - and it is vast. I'd also argue that MIS people are vastly more useful than people who call themselves computer scientists because they have a formal education in some technical discipline yet work mostly with computers.

    19. Re:Wow! by speculatrix · · Score: 2, Insightful

      ever hear of a garbage collector? maybe it's important to understand what goes on behind the scenes.. especially if writing deterministic applications. how about problems introduced by semaphores/locks, multi-threading? a programmer who graduated from a *programming* school and not a computer science school is more likely to use complex APIs blindly.
      my example of a linked list was the simplest algorithm I could suggest where a crap programmer could do the wrong thing.

    20. Re:Wow! by adonoman · · Score: 2, Insightful
      He gave three examples:

      discover[ing] anything new about graph theory, cryptography, or algorithm analysis
    21. Re:Wow! by Kelbear · · Score: 3, Funny

      Deagle headshots from across the map.

    22. Re:Wow! by Bill_the_Engineer · · Score: 4, Insightful

      computer science might be spinning off "engineering" disciplines, but only after certain hard problems are solved; I seriously doubt that in your effort to create your positional system you discovered anything new about graph theory, cryptography, or algorithm analysis.

      Have you? I admit its been a couple of years since I studied cryptography (S-Boxes, Fiestel Networks, Self synchronizing stream ciphers, oh my!). However I do perform algorithm analysis, and I use and try to improve the current working state of graph theory. You assumed that since I use engineering practices that somehow I am incapable of performing science. I admit my last internal paper was over 2 years ago, but in lieu of publishing I have been working within a couple of science missions.

      I work with people like you everyday who think that because they write highly technical programs to convert their specialized knowledged into something that runs is doing "computer science." That is "applied" CS, and if you wanted to get into it you are really doing an engineering task.

      I'm sorry I thought science required using specialized knowledge to prove a hypothesis (or create a program that does). I'm glad you corrected me... I have worked with people who think that because they are pursuing a PhD, that somehow they know better than the rest of us on how things are done.

      I do work with people who have actual PhDs in CS (and physics), and they never once considered me a code jockey or strictly "applying" computer science. We have mutual respect in our field of work. Just because I have a degree in Software Engineering, does not mean that I just code. I am not a manager of a large software project, I am a member of a 3 person software team (within a larger program) tasked with doing cutting edge work. If current technology can't do what we need, we must invent it. Admittingly, I do need to publish more.

      My point in my previous message was not that all software engineers are scientists, but rather some computer scientists are software engineers. Well, I'll let you get back to pumping lemmas...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    23. Re:Wow! by kalaf · · Score: 3, Insightful

      He is correct, in so much as you basically described software engineering.

      Engineering, in my mind, is finding solutions to problems. Science, on the other hand, is more like identifying new problems.

      Just because your systems are designed to solve science problems doesn't make you a scientist. That said, it's not like there isn't any cross between the disciplines. Software engineering grads probably learn about P vs. NP and CS grads recieved minimal instruction in software engineering (I say minimal since 95% of the class probably got coding jobs...) Then you land in the real world and learn what you need to know for your job. That may involve expanding on CS theory or doing cutting edge stuff using components from the established body of knowledge in new and interesting ways.

      I, of course, do absolutely no CS in my job. It's all software all the time. I don't think what I do is at all uncool (and it's not even close to as cool as what you do). I get the impression that a lot of software engineers want to be called scientists, and according to my 2nd year stats teacher, that's the wrong approach. He always said "call yourself a software engineer, they get paid much better."

      Anyway, I wasn't trying to say you were wrong. Just that you bit in a little hard, since your job description sounded pretty much like pure engineering.

  2. A question of "R" vs "D" by ZombieEngineer · · Score: 4, Insightful

    Computer Science graduates can go one of two directions:

    Academic Research - Which has grown at a steady rate

    Corportate Development - Which collapsed at the end of the dot-com boom.

    There is still a need for "pure" computer science research for the next big improvement in the field of computing (where is the next "Google" going to appear?)

    ZombieEngineer

  3. Horology anyone? by Tracer_Bullet82 · · Score: 2, Interesting

    I remember a few years ago, 2 the minimum if my memory serves me, that watchmaking is a dead business. Even the us education dept. considered it dead and buried with less than 100 students per year taking it.

    today though, with watchmaking (back) on the rise, the supply of workers is much less than the demand.

    everything, well most thing at least, is cyclical. we'd expect so called researchers to have much longer timelines in their research than the immeduate ones.

    --


    Timang tinggi tinggi
    parang sudah asah
    alang alang mandi
    biar sampai basah
  4. Don't think so by VincenzoRomano · · Score: 2, Interesting

    Just like building construction science was not dead with Egyptians, Greeks, Romans, Chinese, Aztech ... and so on, the IT won't.
    New technologies, new languages, new paradigms as well as new hardware will push forward the IT.
    I fear the sentence has come from some "old school" mind, still tied to old technologies. Which could really die sometime in the future.

    --
    Maybe Computers will never be as intelligent as Humans.
    For sure they won't ever become so stupid. [VR-1988]
  5. dead no, dying? yes by rucs_hack · · Score: 5, Insightful

    Over the last six years I've been increasingly worried by the falling level of ability in CS students.

    I've encountered CS students recently who in their third year are unable to do such basic things as understand memory allocation. As for algorithm design? Well that's simply unknown by the majority. That scares the shit out of me.

    The Mantra is 'don't re-invent the wheel'. This is used as an excuse for students taking off the shelf components for assignments (sorting classes for java being used for sorting assignments for example), or being given virtually complete assignments by lecturers and being walked slowly through the assignment to the point where little or no original thinking is required.

    Now it is true that re-inventing the wheel is a bad move at times. However whilst studying for their qualification, they should learn how to build the wheel in the first place.

    Back to the memory allocation point. I currently know of no final year students with a decent understanding of this topic, and yet it is the main cause of security problems in code. They should at least have a working knowledge.

    The ephasis is more and more on using languages designed to try and remove the main problems in code, but who writes these languages? It sure isn't the people who are only taught to use them, not create them.

    The normal course of action is to blame Java, since it has led to a simplistic approach to CS assignments. I'd love to blame it, I ferkin hate the language, but that isn't the root cause.

    Computer science is a hard topic that they are trying to make simpler to encourage more students. This has the result that CS students are graduating with ever reducing levels of ability, so people no longer see it as a worthwhile topic. Nowadays a CS student who wants to do really well has to work on independent study entirely apart from the course they are attending, and has also to face the unpleasant reality that their education as provided by the university is so poor that they may face years of further study to gain a useful level of ability.

    Post graduate study can reduce this problem, but there are fewer post grads too, and often it is funding, not interest in a topic, that guides the selection of a course.

    1. Re:dead no, dying? yes by rucs_hack · · Score: 4, Insightful

      Self study.

      Of the people I knew who did well, those who self studied alongside their normal course did things like website design, search algorithms, micro kernel design, robotics and advanced study in certain languages (lisp, c++, C, Object Pascal, assembler), everyone I knew did the last thing, but the languages varied.

      You can pass and get a 2.1 or 2.2 easily just by following the course guidelines. I got my phd offer not by doing this, but by cramming every day (almost every day, have a blowout night at the weekend, you've got to have some fun time) with additional study. I exceeded the requirements of every assignment (I wasn't alone in doing this), and studied around every topic taught. The result was a lot of very interesting phd offers when I graduated, it rocked. I was tired a lot, I will admit, but the benefit was vast, I was so far ahead of the students who just followed the course that I actually tutored some.

      Don't assume I'm that clever though, I sweated blood sometimes trying to get assignments done early, and the extra learning was oft times very difficult. Every evening spent on it was one well spent however.

      Most of the people I know personally who did this are now in great jobs, one heading towards millionaire status at 25. In his case he worked like a dog, even more than I did. You wouldn't beleive what he was capable of on graduation.

      So work hard, and study around the subjects.

    2. Re:dead no, dying? yes by Geoffreyerffoeg · · Score: 4, Interesting

      The normal course of action is to blame Java, since it has led to a simplistic approach to CS assignments.

      You should blame Java. And you should blame C++, Python, and any other similar medium-high level language, if that's the intro language and your sole teaching language.

      Here at MIT we have 4 intro courses. The first, the famous Structure and Interpretation of Computer Programs, is taught entirely in Scheme, a purer and more pedagogical dialect of Lisp. You learn how to do all the high-level algorithms (e.g., sorting) in a purely mathematical/logical fashion, since Scheme has automatic object creation / memory handling, no code-data distinction, etc. At the end of the class you work with a Scheme interpreter in Scheme (the metacircular evaluator), which, modulo lexing, teaches you how parsing and compiling programs works.

      The next two are EE courses. The fourth starts EE and quickly moves to CS. You use a SPICE-like simulator to build gates directly from transistors. (You've done so in real life in previous classes.) Then you use the gate simulator to build up more interesting circuits, culminating in an entire, usable CPU. From gates. Which you built from transistors. The end result is, not only are you intimately famliar with assembly, you know exactly why assembly works the way it does and what sort of electrical signals are occurring inside your processor.

      Once you know the highest of high-level languages and the math behind it, and the lowest of low-level languages and the electronics behind it, you're free to go ahead and use Java or whichever other language you like. (Indeed, the most time-consuming CS class is a regular OO Java software design project.) You're not going to get confused by either theory or implementation at this point.

      So yes, blame Java, if you're trying to teach memory allocation or algorithm design with it.

  6. Pertinent part of the article by mccalli · · Score: 5, Insightful

    From the article:Here at De Montfort I run an ICT degree, which does not assume that programming is an essential skill. The degree focuses on delivering IT services in organisations, on taking a holistic view of computing in organisations, and on holistic thinking.

    ie. not Computer Science. For those not familiar with the UK education set up I should also explain that De Montfort University is the old Leicester Polytechnic. The Polys were set up to provide much more practical education than the theoretical stances of the Universities, and a damned good job many did of it too - I'm certainly not playing the one-upmanship card that some do about the old polys, Leicester Poly was a good place and its successor De Montford has reached even further.

    But the point stands - this point of view is coming from an academic teaching at a more practically-oriented institution and already running a non-science based course. His viewpoint should be considered against that background.

    Cheers,
    Ian

  7. Not dead by Zo0ok · · Score: 2, Insightful

    Compare computer science to other science - like architecture. Computer Science is still very immature with very few true best practices and standards. It will not die anytime soon.

    Remember the 4th-Generation-Languages that were supposed to make programming unnecessary? Where are they today?

    Ask innoviative organisations like BitTorrent, Apple, Google or Blizzard if they see Computers Science be obsolete any time soon. I dont think so.

    1. Re:Not dead by MichaelSmith · · Score: 2, Interesting

      Compare computer science to other science - like architecture. Computer Science is still very immature with very few true best practices and standards. It will not die anytime soon.

      Maybe this is slightly off topic, but my wife is an architect, and any time I want to stir up one of her co-workers I tell him tales of version control, automated builds, automated unit testing and bug databases linked to revisions.

      None of this exists outside of the software business in anything like the same form. When it comes to producing information in a controlled fashion software is streets ahead of any other field.

  8. Re:Graduates are in short supply by cyclop · · Score: 4, Interesting

    This doesn't mean CS is dead.

    Surely computing is much more accessible, and there is a hella lot more ready-to-go software and libraries compared to what was there 10 years ago, but this means nothing. New applications will always be needed/invented, and someone will need to code them. And even with the latest and easiest programming languages, doing things well needs some kind of education.

    I am a biophysics Ph.D. student. I have never had a formal CS education nor I am a code geek (although I like to code), and just building a relatively little data analysis application with plugin support in Python is making me smash my nose against things that would make my code much better, that probably are trivial for people with a CS education (what's currying? what is a closure? how do I implement design patterns? etc.) but that for me are new and quite hard (btw: a good book about all these concepts and much more?): so I understand why CS is of fundamental importance.

    --
    -- Patent no.123456: A way to personalize /. comments with a sig attached to the end.
  9. Re:We get asked this every few years by MichaelSmith · · Score: 3, Insightful

    It is true of course that most users of computers these days do not write their own accounting systems

    Isn't that what spreadsheets are for?

  10. CS: Dead As It Ever Was... by cmholm · · Score: 2, Interesting

    Comp Sci has always been dead, and always will be. In 1982, one of my early CS professors claimed that the window of oportunity for a job as a programmer or s/w engineer was going to close soon as automatic code generators took over the task of raw code banging. Employers would just need a few engineers for design, and that would be it.

    But, I shouldn't be surprised that yet another generation of technology dilettantes think that they're reached the pinnicle of achievement in a line of endeavor, and from here on out it's just like corn futures (Somebody oughta tell Monsanto to stop wasting time with GMO research). But seriously, when we've got bean counters like Carly Finarino and whichever IBM VP it was claiming that the years of technical advance in IT are over, not to mention the author of the fine article, Mr. McBride, I see people who are in the wrong industry. Perhaps they should be selling dish washers, or teaching MCSE cram schools.

    McBride is whining because the students aren't packing his CS classes like they used to. His reasons whittle down to these: mature software packages exist to service a number of needs (which has always been true, to the contemporary observer), and it's too easy to outsource the whole thing to India. It is the writing of someone throwing in the towel. It's like the trash talk you hear from people who are about to leave your shop for another job. I won't be surprised to find him in fact "teaching" MCSE "classes" very soon. Good. His office should be occupied by someone who still has a fire in their belly.

    --
    Luke, help me take this mask off ... Just for once, let me butterfly kiss you with my own eyes.
    1. Re:CS: Dead As It Ever Was... by MichaelSmith · · Score: 2, Insightful

      one of my early CS professors claimed that the window of oportunity for a job as a programmer or s/w engineer was going to close soon as automatic code generators took over the task of raw code banging.

      I read once that assemblers and compilers were both described as enabling the "self programming computer" when they came out.

      Of course such things just increase productivity and open up new applications.

  11. But look where it comes from... by prefect42 · · Score: 4, Insightful

    "Neil McBride is a principal lecturer in the School of Computing, De Montfort University."

    De Montfort, one of the new universities that traditionally advertises on the TV and offers vocational courses in media and the like.

    Academic really doesn't mean much these days. He's not even consistent:

    "Interrupts, loops, algorithms, formal methods are not on the agenda."
    vs
    "The complexity of embedded systems, of modern computing applications requires a different way of thinking."

    I'd not like to use an embedded system he'd developed, unless by embedded he was thinking Windows Mobile + Flash.

    Sorry, a rant from someone who works at a real university, and knows he isn't an academic.

    --

    jh

  12. The hard sciences are all dying by SmallFurryCreature · · Score: 5, Insightful

    For that matter so is education in general. I am not a computer scientist, my education is technical instead. (LTS/MTS/HTS for the dutch)

    When I attended the LTS we had real shop class, learning how to work with wood, steel, electricty with real world equipment in an area that looked much like you would expect to find in industry.

    I recently had the occasion to visit a modern school that supposedly teaches the same skills, yet what I found was an ordinary classroom with a very limited and lightweight set of equipment. The kind of stuff you would find at home, NOT at work.

    Yet somehow todays kids are supposed to learn the same skills.

    And as if that ain't enough the number of hours of shop class have been reduced while the number of theory hours has been increased. Worse, the amount of technical theory has decreased as well and instead the amount of soft theory like history and such has taken over.

    This has TWO negative impacts. First young kids coming to work can't hold basic equipment and don't understand the theory behind it and even worse the kinds of kids (like me) that used to select a techincal education because they don't like theory have that choice removed. I myself was far too restless to do a theorectical class, 18 hours of shop class per week however made the remainign theory that much easier to handle and because theory and practice were linked it all made sense.

    Even worse, the modern education is supposed to make kids fit better into society, so how come they are bigger misfits then any generation before them?

    No this is not old people talk. Notice even here on slashdot how the art of discussion is dying out, say anything remotely controversial and be labelled a flamebaiter or a troll by some kid who can't handle the heat. I actually had a 20 year old burst in tears about two years ago because I chewed him out for drilling through the work bench. Modern education is so much about empowerment that kids who think they are the top of the top can't handle suddenly being the lowest of the low when they enter a working life. This is already a shock simply because you just went from being the youngest in school to the oldest in school and now suddenly you are the youngest again.

    Simply put, I think education in general is less and less about turning out skilled proffesionals and more and more about just keeping kids of the job market. Comp Sci ain't the only victim. Just try to get a good welder nowadays. Hell I settle for anyone who can knows the difference between a steel drill bit and a stone one. (And no, that doesn't mean one is made out of stone, rather what it is for drilling into).

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:The hard sciences are all dying by lysse · · Score: 2, Insightful

      "I actually had a 20 year old burst into tears about two years ago because I chewed him out for drilling through the work bench."

      You might just have stumbled across a sensitive 20 year old. I'm 32 and I'd still burst into tears today if someone yelled at me - even if I thought they had a point, the shame, frustration, and the knowledge that you've fucked up can be overwhelming. (Of course, humiliation isn't acceptable workplace behaviour under any circumstances, so I'm assuming such a chewing out would happen in private.)

      The rest of your statement may or may not be justified (although the same thing happens to debate quality anywhere the number of participants is constantly growing - it's happened on reddit and USEnet, and every web forum I've ever seen - and I don't think it's unique to the age). But either that little anecdote doesn't support "entitlement culture" the way you think it does, or there's a fair bit more to the story you're leaving out. (Or you're just a bully. I hope it's not that.)

  13. College Enrollments != Future Business Needs by slarrg · · Score: 2, Insightful

    Many of the students who would look for a degree to get rich were enrolling in CS. Now that the news is filled with stories of out-sourcing to India and the collapse of programming as a way to earn infinite wealth these students are no longer interested in CS and are pursuing careers as doctors and lawyers instead. Good riddance, I say, anyone who is only into programming for the money is probably not overly good at it.

    Programmers will always be needed. As tools become more capable and advanced, the only thing that changes is the methodology of programming. Programmers are required because of their ability to think discretely. Any tool is only as good as the organizational ability of the person who uses it. I've met precious few non-programmers (and scientists in general) who are able to think in discrete enough terms to actually create a functional system.

    Here is an example I often use, involving how organizational systems often spring to life. Imagine a sorting facility that tells it's people to sort all the items into three different areas: one area should have all of the blue items, another will have the metal items while the final area will have tall items. The items are being sorted on three non-exclusive properties and there will undoubtedly be an issue when the tall, blue metal item is encountered. Most business managers will claim, "we'll deal with that issue when it arises." But computers don't deal with exceptions gracefully and no company has the resources to deal with the constant onslaught of exceptions produced by a poor data/process organization. This is the function that programmers provide. We always are concerned about the exceptions. The stuff that actually goes according to plan is almost an afterthought.

    Anyone who has walked into a company that has it's entire order fulfillment system running on a Microsoft Access database that was kludged together by the dozen office workers cum computer programmer that make up their IT staff will immediately understand why programmers will always be needed. Garbage in = garbage out.

  14. Re:Graduates are in short supply by Anonymous Coward · · Score: 2, Insightful

    (what's currying? what is a closure? how do I implement design patterns? etc.) but that for me are new and quite hard (btw: a good book about all these concepts and much more?)

    Modern CS doesn't teach these concepts either, try wikipedia. I'm being serious.

  15. CS is a research/academic discipline by HuguesT · · Score: 3, Insightful

    The person who wrote this article doesn't even know what CS is. CS is computer science. It will be dead when science is dead.

    CS won't be dead until all the interesting questions in the theory of computing are solved : is P != NP? What can a quantum computer achieve? what are the theoretical limits to computation in the physical world, beyond Turing machines? Given the truly enormous current production in all the branches of IT from HCI to pure mathematics via signal and image processing, I would not be worried at all.

    Just to rehash, CS is not about designing the best accounting package. This is ICT, not CS. CS is a means to an end.

    As to ICT, I don't think the final word has been said either. Just look at the sad state of Vista, or for that matter, at just about any accounting package. Who can say with a straight face that's the best that can be done?

  16. Are you mental? by dintech · · Score: 2, Interesting

    'As commercial software products have matured, it no longer makes sense for organizations to develop software from scratch.'

    This is equivalent to 'Off-the-shelf applications now fulfil all possible needs and changing requirements.'

    Surely not. The British Computer Society should really talk amongst themselves before releasing such obvious trolling public statements. This idea could get in to the hands of people who would take it seriously...

    Some muppet in your management chain is trying to 'leverage' a Microsoft Office implementation for your Credit Derivitives Trading platfrom.
    Cancel or Allow?

  17. Dead like a webmaster, or a dinosaur. by kale77in · · Score: 3, Insightful

    Recently we mourned the Webmaster, even though some of us were implicated in his murder.

    That's the kind of Computer Science that is dead: the kind that Computer Science, by its progress, leaves behind.

    An similar questions might be: Is evolutionary science dead? Or was that just the dinosaurs that died?

  18. If you only want to do pure research, maybe by Moraelin · · Score: 4, Insightful

    You know, I don't buy it. On one hand you have all the corporates bitching and moaning about how they don't have enough people to do the work, and how everyone should outright give citizenship to any immigrant who can use a computer. See Bill Gates's speech recently, it was linked to right here on Slashdot. Plus, they've surely created a lot of jobs in India lately. And then we have guys like this one coming out and saying "oh, we just don't need more CS people." Something doesn't add up. Either one gang is right, or the other is right, but they can't both be right at the same time.

    Way I see it, reality is a lot more... perverse. Everyone still needs programmers, still needs an IT department, etc, they just don't want to pay for it.

    And enrollment has just reflected this. Studying engineering or CS is hard work, and there are only a limited number of people who do it for fun. And even those can do it as a hobby at home if all else fails. For most people you have to pay well to get them to do the extra effort. If you don't pay up, they'll go do something else.

    At any rate, the jobs do exist. Sure, not most of them involve researching the next great algorithm, but they exist. There are a ton of companies who need very specialized internal applications, or their own "B2B" applications, and I just don't see the off-the-shelf software who does those. Of course, most of it doesn't involve researching any new algorithms, but rather researching what the users really want. Then again, most computer-related jobs weren't exactly academic research in the past either. There were maybe more companies making compilers and new computers and what have you, but the bulk of the jobs was always in doing corporate software.

    At any rate, _maybe_ if all you're seeing yourself doing after college is researching the next paradigm shift in computing, yeah, that market has somewhat shrunk. If you don't have any qualms with writing some buzzword-ladden application for some corporation, it's as strong as ever. It just doesn't pay as much as in the dot-com times any more.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:If you only want to do pure research, maybe by ZombieEngineer · · Score: 4, Interesting

      I don't know if this was meant to be a flame bait but I'll bite.

      I am an engineer by trade (making training simulators for chemical plant operators) and I have encountered more than my fair share of Computer Science graduates.

      A lot of these people are focused on "how do I meet this product spec?" and not necessarily a solution fit for purpose. I routinely encounter situations where enumeration comparisons are done using strings and searches are implemented using a linear search (I kid you not, I once reduced a program run from 90 mins to 4 mins by replacing a single linear search with a binary search). Just because every 6 months there is a more powerful CPU on the market doesn't justify ever increasingly sloppy coding.

      There are a few people who are focused on "how do I make this better?". For these people making a compiler that would recognise linear search and replace with a more appropriate technique automatically is there objective, before people jump up and down saying there is no way a compiler could determine this I will point out that there was a consulting company who 20 years ago had a FORTRAN compiler that would silently replace nested loops with equivalent BLAS matrix calculations (said consulting company was bought out by Intel several years ago). So what is the big deal? FORTRAN died several years ago... Well it is a bigger deal today with Dual Core processors where things like BLAS calculations are perfectly suited to parallel processor architecture.

      Moving on to address some of your other comments: "Everyone still needs an IT department"
      If your IT department is stacked with CS people then someone isn't doing their job properly. I found IT support (did it for a University department while working on my post-grad) is highly dependent on the level of planing and implementation. A well planned system with appropriate lock-downs (era of Win 3.1, we mirrored the HDD of the local machine from the network server when people logged in) resulted in no viruses or other on-going issues (you had a network drive for personal storage but the desktops were a shared resource, you could install software, use it but the moment you logged off and back on again - Poof!). Prior to having a planned strategy, IT support consisted of firefighting & band-aid patching.

      "There are a ton of companies who need very specialized internal applications, or their own "B2B" applications"
      Oh Please!!! Specalised applications are a pain in the neck to support, the real issue here is that who ever implemented them did not fully understand what the end user requirements were. There is a real art of extracting that sort of information out of people and it requires an inquiring mind, good communication and people skills. There are application houses that milk corporations of money due to scope changes because they couldn't get the original spec right (I am not going to enter into the argument of whose is to blame for a defective spec, there are valid arguments for both sides).

      ZombieEngineer

    2. Re:If you only want to do pure research, maybe by Sobrique · · Score: 4, Interesting

      I'm starting to agree. I look around my 'IT office' and most of it _isn't_ CS degree level. It's helpdesk, RFTM and 'rebuild my PC' level. Now, the infrastructure development and systems architecture is still very definitely a specialist IT role, which is my current focus, but most of the people on the 'coalface' need about as much IT literacy as the guy using MS word.

    3. Re:If you only want to do pure research, maybe by dlasley · · Score: 2, Insightful

      Specalised applications are a pain in the neck to support, the real issue here is that who ever implemented them did not fully understand what the end user requirements were. There is a real art of extracting that sort of information out of people and it requires an inquiring mind, good communication and people skills. There are application houses that milk corporations of money due to scope changes because they couldn't get the original spec right ... [sic]
      I strongly agree. I recently changed positions in one of those evil corporate monoliths to do exactly that - extract the critical requirements early in the project phase so the solution winds up being more than a new set of problems. That's simply the changing nature of the landscape - the technical folks from a few years ago who have good communication skills and a willingness to listen are in an excellent position to provide consultation. I can not emphasize enough the importance of this basic tenet: you must listen to what the client wants, and not assume you have the answer simply because you know apt-get. Understand their needs and come up with a solution that a) meets them as much as possible b) within the project scope and budget c) with as minimal an impact as possible to daily operations.

      But if this is not what you want to do with your background in CS, then don't do it - there are an ever-increasing number of companies that do need things built from the ground up with serious attention to low-level detail: medical research facilities, geographic planning organizations, and metropolitan governments aren't going to find all they need on a shelf somewhere. They just don't post the positions on careerbuilder.com, so you have to pound on doors, wedge your foot inside, and make yourself indispensable.

      &laz;
      --
      when it rains, it gets real soggy. when it pours, i'm under the tap just _waiting_ for the joy
  19. Is computer science dead? by jandersen · · Score: 4, Funny

    No, no, it just smells funny.

  20. Don't worry, be happy :-) by Anonymous+Brave+Guy · · Score: 4, Informative

    You shouldn't be intensely worried, but reading around your subject is pretty much always a smart move if you're a serious student. I learned this lesson very late in my academic career, and now wish I'd understood what the phrase really meant a couple of years earlier.

    In this business, knowing multiple programming languages (and in particular, knowing multiple programming styles -- OOP, procedural, functional, etc.) is a big asset. It helps you to think about problems in more varied ways, even if you will ultimately code the solution in whatever language is required by your particular professor or, in due course, employer.

    There are two suggestions I've heard in the past that I appreciate more as time goes by: try to learn a new programming language and to read a new book about programming every year. In the former case, if you're learning Java, that's OK, it's a pragmatic tool that's widely used in industry and it will teach you one way of thinking about a problem. I suggest the following as complementary languages, to be explored as and when you have the opportunity:

    • C, or even some version of assembler, to understand what's going on under the hood and what a low-level programming language really is;
    • Haskell or a dialect of ML, to understand that not all programming languages are block-structured procedural languages, and what a high-level programming language really is;
    • Python or Perl, to understand the costs and benefits of requiring less formal structure, and the use of dynamic type systems, and to learn a few neat ideas like regular expressions;
    • when you're ready, LISP, to understand what the old sayings "code is data" and "data is code" really mean, and what concepts like macros and metaprogramming are really all about.

    There are various other unique things you'll take away from each of the above, but if you spend perhaps a few months exploring each of them in some detail, it will make you a much more rounded programmer. I'd suggest either the above order, or swapping the first two around and going for a functional programming language and then something low-level. The requirements of your course or good advice from friends/teachers may guide you otherwise. Go with what works for you.

    To make your learning practical, pick some simple projects, perhaps to practise whatever algorithms you happen to be studying lately in other courses, and write a few small but real programs in each language. For example, if you're learning about operating system basics, try rewriting a couple of simple OS utilities or networking tools in C or assembler. If you're learning about databases, try writing a simple web front-end for a database, and power it with a few CGI scripts written in Perl or Python that use SQL to look up and modify the data in your database. If you're learning about graphics and image processing, write a simple ray tracer in Haskell or ML.

    Along the way, you'll develop potentially useful real world experience with things like OS APIs (and perhaps how they vary between platforms, and thus why standards are useful for these things), HTML/CSS and CGI for web development, SQL for database work, and so on.

    As you go through this, consider buying a good textbook on major subjects (programming languages, databases design and SQL, graphics algorithms, etc.) or make sure you've identified some good reference and tutorial material on the web. The latter is a big advantage for the modern compsci student, though you have to be careful to check your sources are well-regarded and not just a pretty web site with an authoritative tone of voice written by someone very enthusiastic but regrettably ill-informed. Things like FAQs and newsgroups can be valuable sources of information, but sometimes, there's just no substitute for a well-written, well-edited, authoritative textbook.

    Anyway, this post is now far too long, so I'll stop there. Please consider it "the approach I'd take if I could have my university days again" and take it for whatever it's worth to you. Good luck. :-)

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  21. Re:Programmers never code from scratch. by VirusEqualsVeryYes · · Score: 2, Interesting

    The parent makes the same mistake that the article and the summary make: computer science != programming. TFA talks on and on about "longing" for old programming languages, about new programming tools, about the ability of 8-year-olds to program (?), about almost anything programming-related. The only non-programming thing TFA cites is the falling numbers of computer science majors, which, in my opinion, does not indicate the death of anything, but rather reflects the amount of respect that IT jobs get in the private sector--that is, next to none.

    But there's so much more to computer science than programming and general software. There's robotics, artificial intelligence, distributed computing, networking, graphics, architecture, and theory, not to mention the overlaps with other fields, such as with electrical engineering (architecture), mechanical engineering (robotics, integration), mathematics (especially statistics), sociology (mass models), and just about any other science or even non-scientific field that could use modeling--multifield modeling requires skills that techie teens do not have. Don't forget that there are uncountable subfields within each field, and I most likely missed one or more fields as it is.

    Artifical intelligence and robotics are especially potent because they are both in their infancy and merely budding as fields of study. Their potential is huge. And TFA has the balls to claim that CS is dying? Quite the contrary.

  22. Re:Graduates are in short supply by beelsebob · · Score: 2, Insightful

    Just of note - I doubt very much you'll find many CS students who know what Currying or a Closure is. Most of them learn Java and think that it's the best thing since sliced bread. They don't even realise that Functional Programming exists, let alone what it is, what it's benefits are etc.

  23. Moving towards a commodity by Bloke+down+the+pub · · Score: 2, Insightful

    To get the headlines a hundred years ago, just replace "British Computer Society" with "Ye Fraternal Guild of Buggywhip Frossickers" and "off-the-shelf solutions" with "horseless carriages".

    --
    It's true I tell you, feller at work's next door neighbour read it in the paper.
  24. no, no, no by tomstdenis · · Score: 4, Insightful

    This has been asked repeatedly ever since I was a wee lad [20 years ago]. The idea then was BASIC would replace comp.sci because it was so simple to program. Of course, it overlooked the fact that BASIC is wickedly inefficient. No, the answer is no. No. No. No. Why? Someone's gotta maintain the scene.

    For starters, the more automated tools are not efficient enough for most computing platforms (hint: think running that nice VB.NET application in 32KB of ram). Then combine that with the need for algorithms (re: 16MHz processors) and you can see that RAD tools don't apply.

    Tom

    --
    Someday, I'll have a real sig.
    1. Re:no, no, no by maddogdelta · · Score: 2, Insightful

      What tomstdenis said, but on a longer time scale. I coded my first Fortran in 1976. In 1980, somebody was showing me a system that would "eliminate programming" because you could just speak English (actually they were showing me a SQL system) to the computer.. In the late 80's, early 90's "object oriented programming" "would eliminate the programmer" because all you would have to do is put components together. And now this clueless arsehole. But he got published, so I guess he accomplished his job. (Like the academic who said JK Rowling wasn't a great writer...)

      --
      -- There are 10 kinds of people in the world, those who understand binary and those who don't.
  25. computer science isn't dead by seriouslyc00l · · Score: 2, Interesting

    Computer Science isn't dead. Some old computer scientists are dying. And new ones are being born. By the dozens. In the west, and in the east. Yes, jobs migrate by rules of economics. That doesn't kill the science. Because what migrated was not science - it was bricklaying of the computer age. If computer scientists were to do the "bricklaying", that would kill the science. Having said that, there are bricklayers in every community - east or west. It's a pity that bricklayers from the west have had to see their jobs move east. Sorry, but that's how the rules of economy work. The real scientists, whether they are from the east or west, stay put where they are, doing what they like doing best. The invention of concrete mixing machines did not render civil architects extinct - on the contrary, it made it necessary to have more of them, and to have better ones. And so it is with software. Off-the-shelf software doesn't make software engineers obsolete - it makes it possible to explore new application areas - and this requires more and better software engineers than before.

  26. Re:Needs to evolve into Computer Sciences (plural) by thaig · · Score: 2, Interesting

    I think it's more like:
    Mechanical Engineers and Mechanics
    or
    Electrical engineers and Electricians

    Each job has its problems but focuses on a different end of the product lifecycle.

    Some software doesn't die and merely needs to be maintained, so naturally, after a while there is less need for hardcore Computer Scientists to develop new things. Open source probably accelerates this trend - e.g why write a portable runtime library for your app when you can use the NSPR or the Apache one?

    --
    This is all just my personal opinion.
  27. Computer Science "is too hard" by Rik+Sweeney · · Score: 5, Interesting

    That's why people don't do it. When I was at University in the UK (Portsmouth if anyone cares), I did Maths and Computing.

    The first year consisted of learning how to format a floppy disk and write a Word document. Oh, and there was some Java thrown in there, but people found Java too hard and complained. Java then got removed from the curriculum and we did crap like theories in Artificial Intelligence instead.

    We had the option of doing C++ in our final year but this largely consisted of printing out to the console and writing some text to a file. No fancy shit like Pointers or anything like that. Most people didn't elect to do this option as programming is hard work and they just stuck to Matlab instead.

  28. Listen to these dudes by DingerX · · Score: 4, Insightful

    Parent, and ABG below. It's true for just about every undergraduate field.

    Undergraduate education has a few factors that drive the curriculum: one is enrollment (make it too hard, and nobody shows up; require everybody to take it, and everybody has to pass it), another is vocational preparation (what does the job market demand? or -- mixing enrollment and vocation -- what do the students think the job market demands?). The folks doing the teaching aren't really interested in either of these, and nor are the "good students".

    The "vocational" side of university education has always been there, and it's always been looked down upon by the really sharp people. And, you know what? In spite of the political rhetoric you hear around the US and Europe, the students who "Hit it out of the park" career-wise, the big successes, the Googles, Netscapes, Yahoos, Nokias and so on, aren't the ones who stick to a vocational curriculum. The ones who just did what the course told them to do are the guys who end up seeing their Technical Support jobs get outsourced.

    The "enrollment" issue is even more pernicious. No department wants to lose students -- since students are tied to money and power in the universities. So if a subject gets "less popular", the curriculum gets "easier" to boost retention.

    University courses, like other forms of professional formation, do teach a major professional skill: that to achieve results you need to be willing to do lots of crap-work, and that a good job involves doing boring stuff much of the time.
    Outside of that, the true strength of universities is that you're given some good resources to play with, and are surrounded by smart, curious, interested people. Find your passion, pursue it, and don't sweat money or jobs. Any employer you'd want to work for will recognize your abilities.

  29. Academias monopoly on CS is dying. (Halleluja!) by Qbertino · · Score: 2, Interesting

    CS isn't dying. Academias monopoly on CS is dying. Forging swords was an experts job 400 years ago. Now it's a hobbyists thing. I may not know my way around memory allocation that well anymore, simply because my last three PHP customers and I couldn't give a sh*t, but I did opcode/assam programming 20 years ago (to control single dots on my sharp handheld screen) and the book I need to learn C in and out again is resting on a shelf two meters away.

    CS is sort of becoming a science like philosophy. There are people who study it and earn money with it, but anyone half way interested can join an educated discussion with them on the topic. And, on top of that, the experts view on the topic usually is quite strange and outside of common sense. You'll find tons of Wittgenstein crackpots at academic positions simply because they dig mental masturbation as a dayjob. The Schopenhauer guys all have occupations that are more 'real'.

    Nobody takes a guy serious anymore ranting about how this PL is worse than that and how Java sucks and real men use C or PHP is for sissies and Ruby is cool. They don't even want to hear from me that Zope still is lightyears ahead of Rails ;-) . People want the job done. And move on.

    Point in (simular) case: Nowadays nobody (not even academics) - except maybe a few people who build satellites and stuff - gives a rats ass if x86 sucks or not. It has won. Period. And I bet unemployed non-x86 hardware guys tell you how crappy it is if you give them some change and a warm dinner.
    If some kid in india who's read a copy of Kernighan & Ritchie can solve my low-level problem with some Linux module that's getting in my way, I don't give a hoot wether he's an academic or not. Yet I bet he's got a simular skill kit of one.

    Bottom line:
    Computers and their science have become mainstream and are slowly moving out of their steam age. Get with the programm.

    --
    We suffer more in our imagination than in reality. - Seneca
  30. The guy who wrote this article is retarded... by rbarreira · · Score: 3, Insightful

    Neil McBride says computer science was populated by mathematicians and physicists but now virtual robots can be created by eight-year olds without needing programming, logic or discrete mathematics skills.

    1- even if that's true, the 8-year old won't do anything revolutionary without knowing the details
    2- even if he could, it would probably be just a toy, not something usable in practice
    3- even if it was usable in practice, someone else with more knowledge could do something better
    4- etc etc etc

    Computer science has lost its mystique. There is no longer a need for a vast army of computer scientists. The applications, games and databases that students once built laboriously in final year projects are bought at bookshops and newsagents.

    Civil engineering has lost its mystique. There is no longer a need for a vast army of civil engineers. Apartments and houses that civil engineers once built laboriously in final year projects are bought at internet websites and real estate agents.
    --

    The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
  31. Good riddance by Flambergius · · Score: 2, Insightful

    More changing than dying.

    There are problems. From my point of view (*), the typical graduating student is falling behind. It has always been that young person entering the ICT field professionally has had a lot to learn regardless where he got his decree. Right now that knowledge cap is bigger than it has ever been in the 10 years that I can talk about from experience. I see two main reasons for this. First, there simply is more to know. Basic skills like discrete math and coding aren't enough. You need at least strong design skills or a near mastery of a specialty. In fact, if you can't know all it makes more sense to know a specialty. Four or five years you have in college is not long enough except for the most gifted students. Second reason is that ICT is in fact changing and education has been slow to respond. ICT is now more conceptual than before (some other people like to talk about "information intensive vs. data intensive", I think they mean the same thing :-)). The required skill set in changing too: coding is losing out and modeling is winning.

    Of course, in absolute numbers people will write more code in future than now. It may even be that the absolute number of people working mostly in coding will remain relatively static or even increase a bit, but I do think it more likely that number of coders in decrease at least moderately. In any case it is fairly certain that, relative to non-coders in ICT, the number of coders will decrease significantly.

    As to "computer science dying", well, it should have "information science" to begin with. So, in a sense, good riddance.

    (*) ICT within FE, lot of contact with student (comp.sci projects), lively but informal connections to industry, work hard to keep myself up-to-date. I would say I have pretty good view.

    --
    Computers are useless. They can only give you answers - Pablo Picasso
  32. Is Smelting Dead? by theonetruekeebler · · Score: 2, Insightful
    'As commercial metal products have matured, it no longer makes sense for organizations to develop iron from scratch. Cutlery, structural I-beams, sheet metal bending systems are the order of the day: stable, well-proven and easily available.' Is that quote laughable?

    Well, yeah. All my years working in tall buildings, and I never once panicked that the builders didn't know how to smelt, or that maybe they took one metallurgy course in engineering school but have forgotten everything about it except "don't drink incandescent liquids."

    Yet the whole world is made of stuff that was, at one point, smelted.

    What we're seeing is a new level of abstraction, with a much steeper amplification curve than ever before: The work of a very few extremely expert people becomes the building blocks for the work of a relative few very expert people becomes the building blocks for the work of a slightly few relatively expert people becomes the building blocks for the work of relatively many ordinarily skilled people becomes the building blocks for everything everybody else uses. There enough layers between the person the guy designing the circuit traces for a chip's sign-extended add instruction and the guy writing an Excel macro that one chip designer can support the work of hundreds of millions of others. Compare this with the mid-1960s when the guys writing the accounting package could walk into the machine room and physically rewire the machine to make sign-extended adds work faster with odd numbers.

    Computer science is not becoming dead. But it is becoming more focussed and more niche-oriented. There are so many things one can do with a computer without a CS degree that the lack of one is not a universal barrier, if it ever was. My last analogy for the day is the automobile factory. There's an assembly line in there full of people making cars, who have never even heard of smelting, have no comprehension of what makes gasoline burn one way and diesel fuel another, and would be utterly hopeless designing the ideal valve geometry, a whole industry full of people without the slightest clue about extractive metallurgy, yet here we are with hundreds of millions of rock-solid, reliable cars on the road.

    --
    This is not my sandwich.
  33. Re:Graduates are in short supply by Corporate+Troll · · Score: 2, Insightful

    So you are telling me that Universities that teach Computer Science don't teach about the programming paradigms anymore? No computational theory? No proofs of correctness? They don't even give you projects in Haskell or Prolog? (I suck totally at Prolog, but I loved Haskell) Wow, they dropped all that since I graduated 10 years ago?

    If you haven't heard of anything I just wrote, you have proof that you didn't have a computer science curriculum, but a programming class. *sigh* Kids these days....

  34. It's the same story everywhere by Dekortage · · Score: 3, Insightful

    It's hardly just CS. My major in college was studio art -- printmaking, illustration, photography, and graphic design -- and I've been a professional graphic designer for 20 years+. People just don't need the same kind of designers anymore. Advancements in technology have made most graphic design tasks really easy, really automated. I bet most people reading this post think they can "do" visual design, when in fact they simply happen to own Photoshop/GIMP and some other graphics apps and some snazzy clip art off of iStockPhoto.com. I bet you can even create fliers or web pages that don't look awful; with a good template, they might even look good. But you still don't have a true understanding of color theory, typography, layout, negative space, photo manipulation, and all the other skills that make a good, creative, original designer. But these advancements in technology have led directly to the decline of art departments around the country (and the rise of smaller, higher-quality art schools such as Parsons, School of Visual Arts, RISD, etc.

    This is completely analogous to supposed "CS" majors who don't understand efficient coding, memory allocation, reusable code, storage optimization, security models, etc. And heaven forbid they try to do interface design (which is the best marriage between visual design and software development). They may be smart enough to piece together some Java or C# clips off the Internet into a program that, technically, produces the proper data output, but that's it.

    --
    $nice = $webHosting + $domainNames + $sslCerts
    1. Re:It's the same story everywhere by Dekortage · · Score: 3, Insightful

      I won't be responsible for something that is visually unappealing and difficult to use.

      Good to hear. I've been the UI designer on several programming projects. It is usually a tough battle to convince programmers that data output needs to be more than correct -- it needs to be useful as well. As with any kind of engineering, the amount of effort required of the user is inversely proportional to the amount of design required of the developers. If you want the user to spend a lot of time figuring out what the interface or data means, then don't worry about the interface. If you want the user to spend only a little time getting what they need, then you need to do a lot more work to make sure the data is clear, the interface is simple, and the user's time is optimized.

      In the end, a bad interface will make people believe your data is wrong, even if it's not.

      --
      $nice = $webHosting + $domainNames + $sslCerts
  35. Computer programming is hard and boring by majortom1981 · · Score: 2, Interesting

    I think it will have problems in the future. I tired being a comp sci major. Porgramming is hard tedious mind numingly boring stuff. Most people realise that ,Unles syour into that sort of thing nobody in their right mind would do it. thats why their will be a problem in the future.

  36. Depends on what you want to do by Paulrothrock · · Score: 3, Interesting

    You wanna do research-level computing? You want to design and create brand new ways of computing? You want to work on AIs? Get a degree in CS.

    If you want to code or do networking or project management, there are plenty of other courses out there that'll give you a much better education for that sort of job.

    What happened towards the end of the dot-com boom is that people started to realize that CS wasn't exactly right for generating code monkeys, and colleges started offering different types of courses to fill these positions.

    --
    I'm in the hole of the broadband donut.
  37. Computing Disciplines by LordLucless · · Score: 5, Insightful

    One problem is that the computing disciplines have become intermingled and are often used interchangeably. Let me outline my definitions:

    Computer Science: This is the theoretical, researchoriented discipline. It deals with developing new algorithms, optimization and that side of things.
    Software Development: This is the application side of Computer Science. It takes the algorithms developed by CompSci and makes useful applications out of them.
    Information Technology: This is the techie discipline. Building computers, setting up networks, administrating systems. I'm not sure why it got that name, but it seems to have.

    The problem that this guy has is that he has conflated Computer Science and Software Development. And it used to be the case that they were pretty much mixed - if you wanted to program, you needed to understand all the theoretical stuff yourself. But in these days of large, freely-available libraries and modular software design, the two have become very distinct disciplines.

    It's not that Computer Science is dying out; it's that it has subdivided into two separate disciplines, and of the two, there is a much greater demand for Software Developers than Computer Scientists.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    1. Re:Computing Disciplines by Lord+Bitman · · Score: 3, Insightful

      To rephrase:
      "Research", "Design", "Practical Application"
      Computer Science looks into things which are not immediately practical.
      Software Development takes those ideas and makes them practical
      Information Technology applies the technology developed by Software Development on real data (ie: information)

      But then, by those definitions I'm just an I.T. guy, so that's no fun :\

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    2. Re:Computing Disciplines by coolmoose25 · · Score: 2, Interesting

      I agree with your analysis that Comp. Sci. has divided from Software Development. I was not a CS major in school - I was a Mech. Engineer. But I got into CAD systems design, and ended up in the software game. So now, I'm a "Senior Software Engineer" but I have no formal training in CS other than the fact that I had to code Fortran for 4 years in college. We learned bubble sorts, and all that jazz, but I have no idea how a compiler works other than it takes what I write in VB.net and turns it into something the computer can execute. However, the point of the article is that BOTH CS and Software Development is dead. Just buy a package and your troubles will be over. Frankly, I wish I could have just 1/10th of what the companies I've worked for have spent on packaged solutions. For that price, I could have built, by myself, a custom package that would do EXACTLY what they want, and I would have become rich in the process. Instead, I get paid a lot of money to cobble these disparate systems together, make AS400 green screen apps talk to fat client software, I write all the stuff that pulls them together, and if we are lucky, and I'm good, it all works... mostly. So why do companies do that? Because it simply MUST be cheaper, of course! /laughing maniacally

      --
      Brawndo: It's what plants crave!
    3. Re:Computing Disciplines by Lord+Bitman · · Score: 2, Interesting

      In my experience, a CS degree means no such thing :/

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
  38. Re:What computer science is not by tomstdenis · · Score: 2, Interesting

    IBM is full of bright people (and I don't mean that sarcastically). They are very smart. The problem is they hire a lot of fresh grads and give them write access to the main repository. Then they get them to work on some ancillary functionality before moving up. Unfortunately, for me, where my job was testing DB2 on different compilers, it's these ancillary functions that held me back.

    That hash template for instance, took me about 2 months to fully work out why GCC didn't like it (it would fail at runtime), actually to this day I don't know exactly what was wrong, I just put a workaround in it's place. Worse yet, that hash template isn't even part of the majority of the runtime path, it's only called during startup/shutdown.

    DB2 for instance, is the product of thousands of developers work. Most of whom are not even working on it anymore. So one guy may start a class [or method] and another add to it. But they might not take the design the same direction. So while the original developer may had one implementation in mind it ended up going another direction, the subsequent developers trying to wrestle what code there is to do what they think it should.

    In the case of the hash template, I honestly think it was from a newb developer who didn't have the practical experience required to stop and think "there has to be a simpler solution." I remember when I was a newb developer (12-18 years old) I would write extremely long and complicated code for things that I could now accomplish with much more elegant code [and style]. These grads obviously didn't do much development during uni and the result is they honestly don't know how to express ideas concisely yet.

    It's like if you're learning French [or any other second language]. You might use more verbose, or awkward language to express an idea the natives have simpler language for. For example, a newb may say "Nous parlons comme tout les autres Francais," whereas a French dude may say "Nous parlons comme du monde." The latter being more accepted and easily understood.

    As for why management didn't catch it. Well several things. First, they're super busy at IBM. When I was there they were always running off to this meeting or that meeting. Second, it's not their job to sit and inspect the entire codebase (DB2 is also very large ...). Third, even if they did see shitastic code, HR wouldn't let them fire/reassign them so easily.

    They do have standards and testing suites. The problem is they're not comprehensive. At the time I started there, DB2 was only tested with ICC on x86 platforms. Even though they did support GCC (and used it on non-x86 platforms). Had they tested with GCC too, the hash template code would likely not have been accepted.

    Anyways nuff ranting...

    --
    Someday, I'll have a real sig.
  39. an idea by ShadowHywind · · Score: 2

    Perhaps the falling CS enrollment is due to the fact that no one wants to do that much math. who needs to take 4-8 math classes for web design and simple programming.

  40. Changes by DaMattster · · Score: 3, Informative
    I don't really think Computer Science is dead but its face and meaning are changing. Computer Science is now more than just software engineering. It encompasses network, infrastructure, and information management. The internet has fundamentally changed Computer Science and the curriculum of old has not adapted to the change. This quite possibly might explain the drop off in enrollment. Students see that commodity applications are being more widely used. However, there needs to be competent web application developers. Competent web application developers are not just good software engineers, they have a thorough understanding of infrastructure and information management.

    Another possible reason for dropping enrollments could be disillusionment with the field as good software engineer positions are being outsourced to save money. In many ways, lots of positions become victims of globalization. Many companies use software engineers for projects or as long term temporary employees to save on the bottom line. Software engineers may be better off seeking employment at companies that develop software versus, say, a bank.

  41. "Clue" Answer by rlp · · Score: 2, Funny

    I think it was the CEO in the boardroom with an outsourcing contract.

    --
    [Insert pithy quote here]
  42. Just the evolution of the field by asc99c · · Score: 2, Insightful

    I work in warehouse automation, where there are plenty of off the shelf solutions, but none of them can really be tailored to efficiently meet the needs of particular customers (much like ERP systems). We provide a base system customised to the needs of the warehouse much more cheaply than a product designed to work off the shelf.

    As technology improves, the amount of functionality that can be added to our core system increases. I support systems written back to 12 years ago, and you can see the progression where what we did then would be possible for off the shelf software now - our own core systems would handle it with a couple of weeks work. But they'd miss out on a lot of optimisation of processes and when the installations cost millions a year in running costs, that optimisation is well worth the cost.

    This is the nature of the industry - permanently moving towards off-the-shelf software, but I don't expect it to finish that process any time soon. We've just started to move to a new level of that with open source, where really standard software gets easy enough that volunteers can supply it for free. Off-the-shelf vendors need to keep moving ahead of the open source advances. Bespoke software houses needs to move ahead of off-the-shelf applications.

    The only 'dead' ones are those standing still.

  43. Bingo by benhocking · · Score: 4, Interesting

    There is a lot of CS work out there. But it's science work, not programming or product development. That's not CS, that's engineering or just programming.

    Leaving aside the issue of whether there is plenty of programming or product development work still out there (I think there is), you're absolutely right. We might as well argue that physics is dead because there are so few jobs for physicists. The supply/demand ratio for physicists is quite high. However, that doesn't mean that there isn't plenty of good science left to do. (No talking about string theory here - too volatile a topic.)

    Examples of very interesting areas in computer science, besides software development, compilers, networking, programming languages, graphics, and architecture include: quantum computing, neural networks, genetic algorithms, and genetic algorithms with neural networks. (Perhaps I'm wee bit biased here.) I guess to be fair I should also mention the tremendous growth in bioinformatics.

    --
    Ben Hocking
    Need a professional organizer?
  44. Comp. Sci. is alive and well by Stochastism · · Score: 2, Insightful

    But you might have to bypass enterprise system development and look at the cutting edge of research into AI, robotics, and operating systems.

    Computer *science* is what researchers do, not code monkeys.

  45. Re:Needs to evolve into Computer Sciences (plural) by Weedlekin · · Score: 3, Insightful

    "I think it's more like:
    Mechanical Engineers and Mechanics
    or
    Electrical engineers and Electricians"

    That's what it _is_ like, but it should really be like:

    Physicists and Mechanical Engineers.
    Physicists and Electricians.

    Computer Science should be about the _science_ of computing, not the design and programming needs of the commercial software industry. If you want to get a job designing roads or mass irrigation systems, you don't spend your entire time at university studying physics or mathematics just because both are involved in becoming a civil engineer, so expecting a computer science course to turn out software engineers makes no more sense than expecting biology graduates to be vets or medical doctors.

    What's killing computer science as a curriculum (rather than a field, where it's still alive) is therefore the fact that too many universities have allowed the distinction between science and engineering to become so blurred that it's ended up being something that students, potential employers, and lecturers have become disillusioned with because they all have different definitions of what it should be. The only way to alleviate this would be having three distinct computing degree courses:

    1) Computer Science. A purely theoretical and heavily mathematical course that covers all aspects of general computing for those who want a career in research or academia that aims to produce people like Doug Englebart, Alan Kay, Edmund Djikstra, and Niklaus Wirth.

    2) Computer Systems Engineering. Geared towards what used to be called "Systems Analysts", i.e. people who know how to define requirements, and then convert them into a working system of arbitrary complexity (i.e. from small office to world-spanning mega-corporation) that _does what the customer wants_.

    3) Software Engineering. Both the theoretical and practical aspects of designing _and implementing_ software for everything from small embedded systems to vast n-tier multi-user set-ups, hugely parallel systems, etc. Also includes a module on human-computer interfaces, i.e. writing stuff that people will actually want to use instead of doing so because they.

    IMO fields like artificial intelligence and robotics would do much better in terms of both their theoretical foundation and practical results if they were removed from computer science entirely, and instead became distinct fields that would therefore be freed from the current "throw a huge binary computer at every problem that nature seems to have solved with the equivalent of a four transistor analogue circuit, and then make excuses for the fact that it's still crappier at everything than an ant" syndrome.

    --
    I'm not going to change your sheets again, Mr. Hastings.
  46. A very British problem by AmiMoJo · · Score: 2

    The real reason for this problem is that there are too many computing graduates. In Britain, the government wants 50-60% of people to go to University. Only about 5% of available jobs need a degree level education. There is a shortage of plumbers and other people with below degree level/practical skills.

    Basically graduates are fucked. You end up with £25,000 of debt and poor job prospects. This guy is right - we don`t need that many graduate developers and the ones we do need tend to need experience and training anyway.

    --
    const int one = 65536; (Silvermoon, Texture.cs)
    SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  47. business wants to pay McWages. by swschrad · · Score: 2

    until they get used to making consumers out of their wage slaves, the business looks like a dead end to college-age kids.

    because it is.

    look up Henry Ford in the encyclopedia. his $5 daily wage changed the economy, allowing workers to buy what they made. the trend now is to McWages, and that doesn't cut it, unless you are "Bob" in Bangalore.

    --
    if this is supposed to be a new economy, how come they still want my old fashioned money?
  48. Remember Change by Binder · · Score: 2

    One of the few things we can be sure of is change. Expecially in the business word needs change, requirments change, models change. This in itself will keep developers in business.

    Take for example turbo tax. Are the tax rules going to stay still?

    In addition to this there are still quite a few problems that have not been solved. Recognition, translation, simulation...

    As long as we use computers who aren't in themselves intelligent, we will need CS.

  49. Software is available? Yes. Is it good? Hell no! by schiefaw · · Score: 2

    I have not jumped around to as many companies as many of you here, but I have worked at some large ones. I have never been at a company where they were satisfied to use the off the shelf version of software. Every company has its own culture and needs. There is always a lot of custom code written.

    Sure, a lot of that code is written off-shore. But, the real need for CS professionals now is not grinding out code (although, you have to start somewhere). The value of a good Software Engineer is in determining the real requirements of the software, ensuring that the software is actually usable by the end user, and managing the life cycle of the application.

    I am at the stage in my career where I have to find ways to get involved in coding. The majority of my time is spent in determining how the software will work within a complex system and attempting to force the developers to make at least a minimal effort in creating a user-friendly interface. I would guess that at least a quarter of the applications at my current employer (a major corporation) are not being used effectively because the users have become frustrated and found other ways to get their jobs done.

    --
    Angleyne: You can't bend that girder - it's unbendable! Bender: Well I don't know anything about lifting, so that ju
  50. Technology != Science by sgml4kids · · Score: 2, Interesting

    I agree.

    I took a 13 year hiatus between starting my CS degree and finishing it. In that time, the curriculum at my university changed so what once was a 2-part course on programming models and idioms became a 2-part course on learning the intricacies of C++. Courses on compiler design were replaced with courses on writing web applications. Instructors often short-circuited the requisite mathematics -- forget trying to understand the "why" ... just learn enough to be productive in a job. When I started my degree, I learned things that spanned many technologies. By the time I finished it, my university simply taught the technology-du-jour.

    When I think "Computer Science" I think Knuth and Shannon. It seems that for many others, "Computer Science" means Linux or C# or Balmer.

    For example, in testing and quality assurance. It saddens me that few QA departments in the software world use statistical analysis of software and few use the scientific method.

    I'm certain that Computer Science is still happening somewhere, but most of what I see in schools and industry is Computer Technology.

  51. For the last fucking time... by ctnp · · Score: 2, Insightful

    Computer Science != Software Development Maybe I'll grant software development as a subset of computer science, but the efficiencies of software-as-commodity, and the 'dumbing down' of software dev. practices in general shouldn't be construed as a lack of need for actual SCIENTISTS who study what will come NEXT for the industry. The advent of quantum computing is a prime example of why the world needs more researchers spending time in the lab despite how much more efficient the commercial development industry has become.

  52. laws of physics & math same in Bangalore by Tablizer · · Score: 2, Insightful

    We might as well argue that physics is dead because there are so few jobs for physicists. The supply/demand ratio for physicists is quite high. However, that doesn't mean that there isn't plenty of good science left to do.

    But it is cheaper to do it overseas. If it does not involve local culture or heavy interaction with the customer, then firms will find it cheaper to offshore such work. The laws of physics and math are the same in Bangalore, but paychecks are not.

    I see IT in the US moving toward more hands-on work. Companies want liaisons between customers/users and technology, NOT technology purists. It is not that technology purist demand is outright going away, it is that the demand is shrinking, or at least stagnant compared to liaison work.

    1. Re:laws of physics & math same in Bangalore by dgatwood · · Score: 2, Interesting

      Nonsense. It is cheaper to do it at universities where you can pay the researchers next to nothing even by outsourced standards. Better still, foreign universities where you can pay next to nothing even by American university standards. :-)

      Corporate environments don't tend to lend themselves to heavy research. I'm sure there are exceptions, but they are the exception. If you want to do research, do a postdoc at a university. That sort of thing has limited potential for long-term financial stability, though, unless your end goal is to become a college professor. Generally speaking, there are plenty of research tasks to do and plenty of graduate and undergrad assistants to do it.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  53. CS != CS Academic Research by akypoon · · Score: 2, Insightful

    Judging from the author comes from, I could understand why he wrote the article. And having spent some years in CS academic field myself, I don't disagree with the picture painted by the author.

    But computer science academic research is not computer science! In academic research, you have to publish good results and write funding proposals (that actually get the $). And often, long term research (say 5+ years) that are worthwhile are neglected by grant committee because they like to see results sooner or they deem the research itself is too risky. So to some people (e.g. non-tenure track researchers), their prospect could be better without pursuing CS research at this time.

    I start to suspect that what we observe now in CS academic is merely a consequence of the gradual disappearance of long term CS research over the last two decades. After all, without new ideas and concepts, CS academic research would exhaust the existing ones eventually. And when these ideas are being reused too frequently, the public stop caring and CS academic research loses funding support.

    But then, if we look back to history, we can see great research can be done by people without funding. e.g. Einstein and Godel both completed their monumental works without people funding them. So I wouldn't be too pessimistic about the future of CS. CS Academic Research is another story though.

  54. Econ 101 by GCP · · Score: 4, Insightful

    I program because I love it. I've been doing it since before the Internet boom brought in all the carpetbaggers.

    Some years back, before the boom, I decided that Moore's Law (and other economic forces) were going to increase the number of programmable devices exponentially for decades to come, creating an insatiable economic demand for programmers. When the iBoom arrived, I saw it as a short-term overreaction, but still a part of long term extreme ramp up in demand for programmers.

    Then I started studying economics seriously and discovered the mistake in my thinking. Demand for programmers is not proportional to the amount of code running in the world. I've written code that will soon be on a billion (with a "B") devices, but it's the same code it was when it was on fewer than 100 M devices, and those of us who wrote it easily fit in one small cubicle pen.

    Real demand for programmers depends on how much NEW code has to be written and HOW FAST. (And by "new" I certainly include maintenance, glue code, customization of existing packages, etc.) If the number of programmable devices explodes (as I still believe--and observe), much of it will run code written by very few people, customized a bit, tweaked and glued by a few more people for other devices, and massively replicated. And if that customization can be done slowly enough, it can be done by an arbitrarily small group of programmers. Custom code for your own personal needs and those of your business group will constitute most new code, and that will be supported by tools that do what you want with a minimum of "programming" on your part--tools like Excel.

    Then the same Moore's Law and other forces that create the "everything will run software and be connected" world of the future also brings a hundred million or more new potential programmers into the developed world economy (without ever leaving their local undeveloped economies) each year to meet the demand for however much new code needs to be written each year, and the job of "programmer" is going to look more and more like various factory worker jobs (the decent ones, not the dangerous ones.)

    So the professor is decrying the falling interest in Computer Science. How would enrollment look in a "Factory Science" department at his university, I wonder....

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    1. Re:Econ 101 by misleb · · Score: 2, Insightful

      hen the same Moore's Law and other forces that create the "everything will run software and be connected" world of the future also brings a hundred million or more new potential programmers into the developed world economy (without ever leaving their local undeveloped economies) each year to meet the demand for however much new code needs to be written each year, and the job of "programmer" is going to look more and more like various factory worker jobs (the decent ones, not the dangerous ones.)


      What kind of work are you thinking of, specifically? I'm having trouble imagining how programming would look as a factory worker job. Having assembly-line "programmers" as IT advances seems counterintuitive to me. Seems to me that all the real grunt work should be done by the off-the-shelf software and all the really creative/custom stuff still needs programmers.

      The only real trend I can identify is an increase in high level tools/languages used. But I don't see how that makes programmers more like factory workers. Just because you're not twiddling the registers of the video card with assembler doesn't mean you don't need a solid foundatation in computer science (ok, nobody NEEDs such a foundation, but it helps).

      -matthew
      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
  55. The Difference by Plutonite · · Score: 2, Insightful

    The difference between computer science and what is nowadays referred to as CS is very straightforward, but it is often confused due to the fact that computation has evolved from being a theory to being an industry based on a theory, where various engineering and techy skills are needed.
    Take relational databases and SQL. Coming up with the concept of storing information based on predicates concerning relationships between data: Science. Writing some SQL queries/designing a database: Engineering.

    In short, if you can express the results of the research in a form that is mathematically verifiable, you research is in the domain of the science of computation.

    And while at it's heart CS is purely mathematical, we often see today a mixup in universities where informatics(theories concerning how computational frameworks should be, e.g systems design..etc)is referred to as CS. This is simply wrong - technology is not science, even if it develops on scientific basis. I personally think neither is going to "die" soon, although the true theorists will have a harder time justifying their existence (coming up with new mathematics) than the informatics/soft.engs, who will always have some room to expand and design new technology and technological frameworks. CS is not physics - the science is purely conceptual and the main theory is established with mathematical certainty because, in fact, it is mathematics. To stay alive we need to find more questions to ask, and there are a few left I think.

  56. Exactly where I'm coming from by benhocking · · Score: 2, Insightful

    I see no reduction in computer science work here at my university. The possibilities are increasing, not decreasing. One can bemoan the out-sourcing of American jobs, but that has nothing to do with the fact that computer science is not dead. Such a statement is as ridiculous as saying physics is dead.

    Computer science is still a very vibrant research field.

    --
    Ben Hocking
    Need a professional organizer?
  57. Compsci degree going; IT-tech degree replacing by lpq · · Score: 2, Insightful

    How many computer science graduates are actually doing computer science.

    Working as a programmer in an IT department doesn't usually have much to do with science -- it's about trying to create more standardized cogs from a growing number of previously coded cogs.

    How much research is being done today on individual users benefitting from 32-128core machines?

    Assuming some magic doesn't happen and GHz start climbing / doubling without frying, it seems like they are just raising GHz/chip by adding more cores at similar
    clock rates. How can this benefit the average PC user? If it can't be exploited for "individual persons", it sounds like the PC may be a thing of the past.

    Is that what people want? Right now, the only ways of using multi-cores is usually running separate programs at the same time -- if you can use that -- but a home system doesn't usually need to serve web pages to 1000's of users. OR, divide your machine into "VM"s Nice for test/develop/production/redundancy, but again -- not too helpful for the average joe wanting programs to run faster/smoother, more user friendliness.

    What will it take to use Parallel computing in the Personal Computer industry? doesn't that sorta imply, if not the death, a serious problem in the Personal Computer industry.

    Do we have enough cores to start building some practical AI's? Can we develop
    special compilers and light-weight threads (i.e. - not separate processes) to allow use of multi cores dynamically in an individual program (for loops not needing previous loop result could all be parallelized if parallelizing cost to create helper threads for a few to several loops could have low enough overhead to make it worth it.

    Seems like AI and parallelizing are at least two areas that need computer science, but that doesn't seem to be what most people are doing these days. Might use it in voie and face recognition, but again -- not very general tasks.

    What companies are doing Computer Science these days? Seems like most employers just need development of applications to run curent "paradigms. No "computer science" needed.

    Most high level developers at companies -- even in Open Source (or at least the Linux Kernel) are awfully conservative when it comes to doing computer science. They want the tried and true, step-wise development vs. large scale "disruptive technologies" that could enable whole new ways of doing things. People at the top of most large projects (commercial and O.S.) are too conservative to be doing real computer science.

    Maybe research grants? Seems like the Bush idea of research grants are things that are guaranteed to provide benefits in the near future (soon enough to be used in the theater of battle, for example).

    Is there any place for computer science research outside of getting your doctoral?

  58. Computer Science requires encouragement by Targon · · Score: 2, Interesting

    Back in the mid to late 1970s, computers were these things you only heard about in movies or TV shows for those of us growing up back then. Sure there were some people who used computers, or who had access to them, but access to computers was something that only very large corporations had, or schools, or certain government jobs(but not all). The closest most people got to a computer was a terminal(a screen with keyboard that connected to a computer).

    The result of this is that there was something mysterious about computers. When the first personal computers became available to the general public(many will remember the Tandy/Radio Shack TRS-80 models 1,3, and 4 with the model 2 being more of a business model, and the Apple 2 series), these machines became the first ones available to those who didn't have enough information to build their own computers. They were fun, allowed for playing some games, and this inspired many to continue to learn how computers worked. There was also a good amount of encouragement given by teachers back in those days and into the 1980s.

    So, between having an interest in computers and technology by some, and being encouraged by others to continue learning, Computer Science grew in popularity. As time went on, and computers became more and more common in the 1980s into the 1990s, there was continued support by those in education and in general for those who showed a true interest in computers.

    So, what happened to change this SHOULD be the question being asked, not just looking around and complaining about the current situation. As technology became more and more common, the number of jobs grew in the sector until the tech crash in 2001-2002 when the real down-turn in the industry really started to show up. With many jobs lost, there was an excessive number of computer science trained people around.

    If you were in high school at that point and you were hearing about tech jobs being hard to get, switching focus might have seemed like a good idea. For parents and teachers, encouraging people to go into a field where the job market wasn't very good also wouldn't seem like a good idea. And so, here we are, in 2007, and the job market has gotten a bit better but still isn't booming. Entry-level positions are hard(or harder) to find because of outsourcing. Reports of how programmers are treated by companies(generally long long hours with little appreciation), and a lack of control in the development process as a junior level programmer scares people away.

    The computer industry has also transitioned from being "we need programmers because there are no pre-made applications that do what we want" to having different specialized areas. Now you have networking, system administration, Information Technology, database administration, and other specialized areas. As a result, those with an interest in computers will select a major that fits the area they have an interest in. Why go Computer Science if a MIS degree will get you where you want to go?

    So, the way to get students interested in Computer Science is to encourage them that it is an area that still needs people, and that it's not a major for those who are going to end up as a "code monkey". To be honest, the computer industry NEEDS true computer scientists since most applications seem to have been slapped together by people who may be able to write code, but can't figure out how to design an application(which is why multi-threaded applications are an exception in the MS Windows environment).