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?"
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.
Never trust a McBride.... ;-)
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
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
Dont tell that to my professor.
Your hair look like poop, Bob! - Wanker.
Where I work we are outsourcing work to India, China and Russia becaue it is impossible to deliver on our projects with people hired locally.
When I was young you had to be a bit of a geek to tinker with computers at all. You had your 8 meg basic in rom, and a bit later, CP/M. Now people who want to tinker are building machines for gaming or some such and because what they are doing is much more mainstream, they don't think of it as being anything special so when they decide what to do for a living they don't think of computing as the way to go.
Sorry about the car analogy because I know we are all sick of that, but its a bit like I used to muck around with engines when I was 18 but never wanted to be a mechanic.
http://michaelsmith.id.au
every 3141 days or so this question is asked. It wasn't true 30 years ago and it isn't true now. it's the same as gang warfare - we get kevlar, they get hollowpoints. we get semi-automatics, they get automatics....
what advantage does a single company have if they all their competitors use the same software? What, are the people going to set the company apart?!?(ha!)
Custom software within company's IS people - the knowledge of people are disected, analysed and automated in the form of proprietary systems. I'm currently working on a ~25 million USD project(actually there are a handfull of apps) whose goal is to automate various financing tasks. WIthout a doubt, we are doing it better now then we did 5 years ago, but there is no end in sight.
Website Hosting
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]
It is true of course that most users of computers these days do not write their own accounting systems; do not write their own payroll systems; do not write their own word processors; and do not even keep a team of operating system tweakers in house ("system programmers" from the IBM mainframe days, needed just to keep the thing running).
... someone has to write all this stuff!
But
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.
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
Programmers just assemble finished bits of code into something new as always. That is what programming is about. This is always true, but the question is which level of abstraction you use. But as time progresses things get more abstracted. For instance nobody codes their own c/c++ program that listen to http requests, but in the beginning you had to. Same for file upload and lot of stuff that is shrink wrapped. So a lot of work is finished, but the assembly takes time too. Wait a sec. That is what takes most of the time. So my answer back is : will computer science academics get stupider and stupider every year because they ask the same question each year? And the answer to the question is still the same.
With cheap pocket calculators in every business, managers no longer see the need for math education. All good stuff has been discovered. Math departments are reported to begin converting their useless graduates into advertising professionals.
....It just smells funny.
"Be light, stinging, insolent and melancholy"
Has the software development industry stabilized to an off-the-self commodity?
The US department of labour predicts the industry will "grow more slowly than average." That is hardly dead.
It is 2007 and we are still writing code using text editors, not giving verbal commands to sentient machines. Nothing to see here, move along.
-- http://thegirlorthecar.com funny dating game for guys
Joking aside. A lot of people _tried_ computer science because:
- of the money, this stopped after the "crach" (or the point when investors wanted to see results)
- they thought it was easy because they messed around with computers all day
Switching to component based development doesn't solve all your problems. You often still need to develop your own components and stuff. With computer science a solution pretty much always introduces new problems. Work is never finished, also because people are hardly ever happy with the endresult.
The rise of personal computers with multiple processors, each containing multiple cores, will lead to a change in what computers are capable of doing in the not-too-distant future. To summon forth the power locked inside these new processors, software engineers will need to learn about multi-threaded software, and develop a deep understanding of the hardware on which this multi-threaded software runs. This will create a demand for serious, dedicated software engineers, engineers capable of the intellectually difficult task of keeping track of run-time concerns like simultaneous memory access, locked data, etc. As soon as processors with 32 cores hit the market, I am fairly confident that these "Computer Science Has No Future" articles will disappear.
The thing about academics is they often have no real world commercial/industry experience yet feel the need to comment on it.
What's in your car? What's in your TV? What's running your website? Those are just three things that spring to mind that are not "generally off the shelf" yes of the shelf components maybe, but someone still has to integrate it all together. It's just madness to say that as computers become more prolific we need less computer scientists.
Being on top of the game in computer science requires considerably more effort than being an accountant, solicitor or barrister (lawyers in the American language). If the opportunity for competitive renumeration isn't there then neither are qualified practitioners. When we outsource accountancy and legal services, enrollment on computer science courses will swell.
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.
The only way to understand the wheel is to re-invent it.
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
My friend has a CS degree from the local university. He is fully fluent in Java and VB. He had to do C++ and Haskell for course points but knows little about either. He's *not* a computer scientist by any stretch of the imagination.
So it's probably a good thing.
IT is so pervasive that the CS degree should fragment to suit the new world. My friend wouldn't stand a chance in front of an xterm, he's not even interested. To him, it's not a vocation, just a job (and fair enough).
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
"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
So, if computer science is dead, then who is going to develop the "accounting packages, enterprise resource packages, customer relationship management systems are the order of the day" that article's author mentions?
Seriously though, this is weird. How come we don't see posts every other week about how common university majors such as english, political science, mathematics, or say classics are dead, presumably because they don't teach any real world job skills. If there are reasons for those majors to exist, then please explain what's wrong with CS which actually does teach along the way a lot of stuff that'd directly applicable in real job settings?
If computer science is dead, then how come the fresh graduates from the top CS departments are being snatched away before they even graduate by a variety of companies, ranging from 10-person startups all the way up to Google, Microsoft, HP, and IBM? How many DeVry's graduates do you see working in those companies vs. people who had format CS training?
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.
OK, so there is enough software on the market that companies are forced to write less stuff in-house. Sooo, who is writing and supporting that software?
Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Computer Science ain't dead yet (although it may smell that way at times), you just need to have a degree program that's worthwhile. Crappy places churning out more idiots hoping to make a fast quid tend to die off at these times, but the better ones survive.
Beware the psychokinetic mimes!
There are a lot of niche applications or in-house development jobs that are not covered by standard applications. Things like writing control software for machines that are typically done by a small team of developers at the hardware manufacturer.
If jobs for creating office suites disappear, that will only affect a small part of the field.
C - the footgun of programming languages
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.
And who is going to make this software? Or are we going to use this same suite of software packages for the rest of the lifetime of the computer? There will always be a need for new developments in algorithm design, and for the foreseeable future someone will fulfill that need.
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?
Even though the modern University defines its disciplines by market demand - which can be a slave to fashion. The issue is whether there are any genuine "big questions" left in Computer Science. Much of the early part of CS dealt with the scarcity of computing - how to make use of the limited resources of memory, computation. We don't need this anymore - there is an abundance of computing. I guess I've been fascinated by the dramatic gap between human capabilities of thinking, and the capabilities of computers. Can we ever make computers that even remotely approximate the capabilities of human brains? I don't think we are much closer to answering that question than we were 30 years ago. But in this particular question we have learned that it is of very little commercial value to answer this question. So CS research may remain a discipline with big questions, but with funding comparable to (for example) archeology. But CS skills continue to be in demand, even if CS research is a bit past it. When I was young, I was blessed with teachers who told me things plainly. So: if you are interested in CS, or computers in general, and you turn aside from this path because people tell you it's not commercial, then you are going the wrong way. Follow your interests - tell your parents and your peers to go take a long walk and leave you alone. Fortunately it seems that only students in the Western world suffer from these delusions. Which will just accelerate the movement of the center of IT to China and India.
'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?
I work in-or-near the bespoke software business in finance, and certainly the increasingly powerful off-the-peg solutions that have emerged in the last 5-10 years do compete with bespoke development. It's also generally fairly true that it takes fewer developers to give 10 banks the _same_ software package than to give them each a bespoke package, making off-the-peg generally cheaper. But there are other differences.
:)
Projects go on forever either way so multiply by the number of years required
Bespoke app: 10 devs, 1 pm, 1 ba, 2 it people * 20 banks. Total man years: 200 dev, 20 pm, 20 ba, 40 it
Off-the-peg app: 10 devs, 1 pm, 5 bas (minimum, because the software house has to talk to lots of clients), 2 sales. 1 pm, 1 dev & 2 it ppl per bank to do rollout & integration work. Total man years: 30 dev, 21 pm, 5 ba, 2 sales, 40 it.
Now sure, the total spend has decreased. But what's more important is that developers, as a fraction of the spend, are no longer the big slice. Project management, business analysis -- these are BIGGER when development and rollout are spread across companies. The IT burden is roughly the same (IT people, meaning people installing software, plugging things in etc. are cheap anyway).
What this means is that as the market matures, the actual work of development becomes less and less important and the work of managing, selling and integrating what has been developed gets more and more important.
Note that this applies to software development that can be expressed in terms of product, i.e. software which is delivered, installed and supported in a product-like way. There's also a wide world of 'service-like' software development which is subject to very different trends -- e.g. to outsourcing. But that's a story for another post.
Whence? Hence. Whither? Thither.
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?
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.
No, no, it just smells funny.
No, Computer Science isn't dead. It's simply grown too big to be covered by a single 'Computer Science' label.
Just as biology branched out into 'Life Sciences' it's about time Computer Science was broken into separate areas.
It used to be fine to have a single Computer Science course with one module in Law, another in Algorithms; one in AI, one in Databases etc.
These subjects are too big now; covering the full subject area in a single degree produces graduates who are classic 'jack of all trades, master of none.'
Offices will always want something that the COTS does not do. I think thrid party vendors should worry about becoming obsolite because Operating Systems begin to incorporate their functionality within the OS itself. M$ is trying with Virus scan and the like. Not perfect yet, but I think the code is on the wall, so to speak.
There are no loopholes. It's either legal or it's not.
... there'll always be the pointy-haired boss who wants that icon in "powder-blue". Believe me, I've worked for enough of them to know that I'll never be out of a job.
Work smarter, not harder.
The article makes a lot of shaky assertions, but it gets one thing right: computer science curricula in higher education are becoming something of a joke. I think it misfires in saying that the way to go is to be more practical and interdisciplinary; I think the problem is that computer science programs are too practical. "Computer science" has come to be less the study of algorithms and information management, and more a vocational degree--universities aren't graduating computer scientists so much as they're graduating computer mechanics.
I wonder if part of this is that universities are being forced to spend time drilling into undergrad students concepts that should've been learned long beforehand through a proper high school education or (god forbid) natural curiosity--and, moreover, if this trend will seep into graduate school as more people pick up master's or doctorate degrees for purposes of job differentiation.
Putting the debate about the differences between academic CS, practical software development, and IT/MIS aside, it seems to me that, all other things being equal, an IT environment built from mostly off-the-shelf components will require fewer, but better developers. After all, it's far easier (and requires far fewer skills) to build a one-off custom application (or component, or robot, or whatever) that works (I'm tempted to say "happens to work") for a single customer (especially if the original developers remain available to provide ongoing support and maintenance) than it is to build a robust, off-the-shelf application that works well for many customers in many different environments, especially if the market demands reasonably-priced support for said app.
I'm tempted to say that this is a good thing, i.e., being able to take advantage of economies of scale to drive the cost of established technology down. And it's only the death of (applied) CS when people stop coming up with novel ideas for new applications of technology (what was that about the Patent Office closing down because everything worth inventing had already been invented in the 19th century?). I don't know about you, but I'd rather the greatest minds of my generation spend their time developing interesting new application areas than writing ad-hoc, informally-specified, bug-ridden, slow implementations of QuickBooks with Excel macros and duck tape (apologies to Philip Greenspun). In the words of Thoreau, "the sun was made to light worthier toil than this."
-jtm
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:
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.
There are many fields where the off-the-shelf principle doesn't work.
But curiously, reducing the labour needed for production reduces prices and seems to often increase demand sufficiently to more than compensate for the reduction in labour. Take the Ford Model T as an example. Work required per car was considerably smaller than any other brand of car, but the workforce was huge. Commercial software (e.g. Windows, and Excel) does all the tasks required of 90% of users, so this should mean that the software industry is only about 10% of the size it was in the 1960's. But it's much larger than it's ever been.
Perhaps fixing those two problems that are endemic to "Computer Science" courses would go part of the way to fixing the problem.
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.
Think about it. How many people get to write Java rather than write applications using Java? Or how many people get to write a brand new sorting algorithm compared to how many people get to use it?
I don't think there's anything wrong here. It makes perfect sense schools would create more consumers of computer science than computer scientists. If everyone coming out of these schools was a "creator", either the unemployment rates would go sky high, or there'd be a whole bunch of overqualified people working on tedious crap.
In Soviet Russia, I ruled you
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.
As commercial software products have matured, it no longer makes sense for organizations to develop software from scratch.
...not unless they can outsource the work to India or China or some other low cost provider.
"Some companies go to the ends of the earth for their people... and usually find that they can get them there at a substantial savings."
Use your head, can't you, use your head,
You're on earth, there's no cure for that - S. Beckett
I think servers becoming cheaper and cheaper is also affecting how eagerly companies are willing to adopt their needs to a ready package. It used to be that the hardware required to run an application and it's testing environment was so expensive that getting a custom coded application didn't feel out of line.
Most of the legacy systems we run are on either mainframes or distributed among a bunch of HP or Sun risc servers which each one cost over 10 times more then the far more powerfull computer replacing it.
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.
If they had courses covering the sorts of skills you find in modern software development shops (or at least in the GOOD software development shops), maybe this wouldn't be an issue.
Skills like code inspections, documentation of your changes, configuration management and so on.
I used to teach the Algorithms course. We used Python, and the difference to the old days was drastic. The students understood the basic sorting algorithms, building trees etc at least twice as fast as they used to when we used C.
Besides, they learned it way better. At the old days what they eventually remembered was a bunch of tricks to use when programming in C. Most of these tricks were downright harmful when switching to another languages or paradigms.
C, Assembler and stuff are something to learn after you've grasped the basic theory and ideas of programming.
CS is not dead. There are plenty of interesting fundamental problems to be solved in the area of computing.
But indeed, most IT people don't need a CS education. The current CS curriculum should be split into a pure CS curriculum and an IT cirriculum. CS should focuus on subjects like computation and computer organisation. IT should focus on information processing and application development. Ofcourse, there will be overlap between the two fields, and overlap with mathematics and other science diciplines, depending on what area you wish to specialise in.
Computer Science has always been just a subset of Mathematics, its slowly shying away from pure mathematica and into actual development, real world problem solving and such. Stuff like group work, Object design, Networking Tools, C++ are useful tools in 90% of environments a Computer Scientist is likely to work in.
Comment removed based on user account deletion
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.
Summation 2
Wasn't this posted a few weeks ago?
I don't even want to try understand what exactly was going through this persons head to make a statement like that. All I know is that computer science is far from dead, it's just out of the limelight. A few years ago people were throwing money around like crazy and everyone knew someone who was in CS. I almost ended up majoring in CS in my university, but quickly came to my senses as the last thing I want to do is spend more time on the computer than I already do...
I can imagine current 'old generation' geeks clutching their platters with a death grip while holding close a fly swatter for any rogue (real) bugs. Ah... when computers were a few rooms big...you could heat Manhattan! But the catalyst of technology is not moving bits and bytes it's moving people and ideas. Sure, those things came up along the way to crunching massive numbers but that's not why they became and evolved. I can remember from a movie(featuring Alan Kay) about the 'future' of computing and it all involved people using the computer without knowing anything about the ISA, memory, hard drive, or even cpu; basically anything related to how the underlying structures are supported. This is still the 'future' of computing and technology in general. We should not think of CS as some academic mumbo-jumbo but as a real way to solve problems(like math). And there is always a demand for problem solvers.
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.
I've had to train "Computer Science" majors in some of the most basic programming skills and concepts. Click and drag VB? OK, no problem. Build an Access database with the query builder, even normalizing tables correctly? Got it. SQL? If I hear one more noob coder say "SeeeeeKwuuull" I'll rip his lungs out. Anytime I hear "seek wool" instead of "Ess Que Ell" I know I've got my work cut out.
I love programming, especially the true science aspects of it - the math, the form and style of well-built code, etc. There's still a wide frontier there. What's happening is that the monoculture has narrowed down how many people can access the frontier. Only a few hughmongocorps run most of the industry and most of the product development. The only real leading edge stuff that goes anywhere is what the big guys want, or what fits in with their limited vision. The rest of the programmers in the industry have monkey jobs pushing buttons, clicking/dragging, developing cookie-cutter apps that are all the same.
The only really creative work I get to do is as a hobby, on my own. Why? Cuz what I want to do, M$ doesn't make a toolkit for. I think many youngsters look at the state of the industry, not the state of the art, and see that it's a piece work industry, like machine shops, only not as cool.
Pavlov wouldn't be so famous if he'd used a can opener instead of a bell.
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.
;-) . People want the job done. And move on.
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
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
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
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
Rob Pike said it rather more elgantly, as usual, in his Systems Software Research is Irrelevant paper. Seven years agi, too!
See Slashot for a discussion...
I guess off-the-shelf applications develop themselves with no need
for training, skillks or creativity and that we've also developed
the premier versions of all the classes of applications that will
ever need to be developed.
---Eludom
More changing than dying.
:-)). The required skill set in changing too: coding is losing out and modeling is winning.
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
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
I'd say (like many others before) that death is quite far away. But it is changing - as it in fact has always done. IMHO, the following trends are notable:
One could also speculate the increasing confusion in the current hardline IP system and its possible collapse in near future which would have profound impact on computer science too. And in case of prevailing free/open-souce model (I am quite sure that the proprietary model won't disappear completely, but becoming a niche method is likely) the result will probably be quite opposite to what is suggested by the article.
'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. Computer science isn't about educating people to become programmers, and has neer been. If the Britisch Computing Society has viewed itself as a society of programmers, or for programmers, that simply means that they have nothing to do with, or say about, computer science.
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.
Innovation does not happen in monopoly, Stupid!
...'cos if it is then so am I!
Go permanent? In your dreams and my worst nightmares.
No, we just see the usual split between engineering ("get it working") and science ("how does it work?").
And to be honest, the engineering aspect has a long way to travel. Software quality is horrible and worse yet: Random. Very few development groups even have a process for the development itself, much less quality control. Writing a spec and starting to code isn't a process. UML isn't a process. Pseudo-code specification isn't a process. Throwing fancy buzzwords around to cover your lack of process isn't, either.
Zero-Defect Software Developmentor NASA's shuttle software group are beginnings. What they do is try to understand and improve the actual development process.
Assorted stuff I do sometimes: Lemuria.org
"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."
I feel the computer is old enough to manage its own memory.
There is a lot of things programmers don't do any more. One of them is writing asm. And why is that? Because schools don't teach asm as CS courses or because someone wrote a new language and a compiler for it? Suddenly people could learn memory allocation and integer multiplication without knowing asm or the details below.
As someone once saw that creating c/other languages could leave asm for the specially interested, someone thought that a language with built in memory handling would be a good thing and leave memory handling to the specially interested.
"he, who has quotes in his signature, is a douche" - unknown.
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
While many things have been learned and documented, the people who found out are getting old or are dead. The present inventors and teachers of computer science disappear when Reaper Man comes, and the concepts they introduced are mostly implemented in proprietary binary files, so it's not that easy to relearn from scratch by the intelligent student from off-the-shelf software. Without CS students, how can we uphold the present knowledge or enhance computation in the future?
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.
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.
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
There's a tradeoff between "best that can be done" and "Get it to market".
I think I'm seeing more companies using their sales force to cover for the Next-To-Finished versions of software. These are High-Beta / RC level packages that draw on two years worth of initial sales to fund their completion.
Someone in management may decide "our company needs to be positioned *here*", for your choice of some niche and year. In all but the extreme cases (Vista is an extreme case), the paid advertising floats around the media-space, while glitches caused by sludgy design are hushed up inside each end-user company.
No, CS isn't dead because we don't need people to hand-mark the errors on punch cards anymore. Open Source has a million open tasks for CS types to volunteer on, and classical Closed Source houses may be approaching the consolidation period necessary to back the hype of last year's sales push. Code streamlining requires high grade CS, but isn't "Exciting".
(Example: Sloppy CS reared its ugly head on the Street, because the primary computer fell behind processing a "mostly ordinary" run on asian stocks and/or commodities. The time delay caused artificially induced damage, which got amplified even more in the media-space.)
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
Computer Science is dying, Netcraft confirms it.
"Let's face it, it's a good story. Accuracy would kill it."
An academic at the British Movie Society asks, Is movie business dead? Citing falling cinema visitors and improved copy&paste technology, British academic R. McDonald claims that existing movies are removing much of the demand for high-level acting skills: 'As existing movies have matured, it no longer makes sense for studios to create new movies from scratch. Action movies, Drama movies, p0rn movies are the order of the day: stable, well-proven and easily available.' Is that quote laughable? Or has the movie industry stabilized to an off-the-self commodity?"
OH NOES! MY FUTURE!!!
I haven't RTFA or any of the comments really, so I'm sorry if this is OT or repetitive..
It seems to me that computer science has evolved kind of like the auto industry. Here's what I mean.
When cars were first mass-produced, you pretty much just had the people that made the cars and the people that drove the cars (i.e. programmers and users). After a while, people started building race cars, and then some drivers became professional race car drivers (i.e. top-level programmers, super-users, etc.)
However, to say that CS is dead is akin to saying "We don't need to know how to build cars anymore, because we have professional race car drivers!"
The power of Christ compiles you.
A Random Blog
"Some guy wonders if Automotive is dead. His argument is that everything needed in a car has been created, so what more could we need ?"
Fortran is about as dead as scientific research on massive parallel calculation is. Most scientific I know only use Fortran package and certainly not C certainly not Java. Sure the compiler might use f2c or what not, but everything in Quantum Research as far as I know is done using fortran math lib and fortran programs.
C. Sagan : A demon haunted world:
http://www.amazon.com/gp/product/0345409469/
visit randi.org
Once again, I am reminded of Asimov's novel "Profession".
http://www.abelard.org/asimov.htm
That site is as visually noisy as I have ever seen. Apart from that, it's a very good story.
"Good news, everyone!"
Can you please find older articles, 2 months is too new. Jeez, this is news?
Err, typo.
;-)
Aye due no haugh two right, I am shore your pleased two no.
"Good news, everyone!"
Nice: Ask a stupid questions (Oh, sorry. Forgot: stupid questions do not exist...) and get a lot of attention.
;)
And I do _not_ mean this posting
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.
De Montfort is ranked last but one in the UK University rankings less credability than capn' Cyborg
You will never get to heaven with an Ak 47... But A Zu 30 is good for Low Flying Cherubim
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.
I am surprised that so far nobody has quoted Edsger Dijkstra who is said to have said "Computer science is no more about computers than astronomy is about telescopes." In other words, the term "Computer Science" is exactly as absurd as it would be to call Astronomy the "Telescope Science". So, dead? certainly not. In need of another name? I am afraid, yes. "Information Science" sounds good to me, as it nicely complements the "Information Technology" that another chap mentioned.
This guide is definitive. Reality is frequently inacurate. (from THHGTTG)
I think it was the CEO in the boardroom with an outsourcing contract.
[Insert pithy quote here]
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.
Now as the main increase in CPU power comes from multiple cores rather than more GHz, and multicore CPUs are the norm even on Stadard PCs, further improvments have to be done the hard way: by more efficient code and parallelization. And to quote Linus Torvalds: And anybody who tells you that distributed algorithms are "simpler" is just so full of sh*t that it's not even funny. So no need to get your Taxi licence just yet
wtf? does this moron even know what cs is? how the hell can the perceived lack of programming opportunities kill cs?
The war with islam is a war on the beast
The war on terror is a war for peace
"Armies of highly trained computer scientists are available in India, Sri Lanka and China. The expertise is easily off-shored. In India, over 100,000 new IT graduates a year are ready to support an off-shored IT industry."
So, if it's an army of well trained computer scientists, Computer science is not dead.
Why these guys keeps thinking US is the entire world?
Everyone knows the real money in computer science is in building computer models to support global warming hypotheses that result in increased government funding for more computer models. Nope, no conflict of interest there.
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?
So far, you're not showing anything but snobbery here. Prove me wrong, do.
(And yes, I work at a 'real' university, too.)
CS is definitely not dead, as someone else pointed out, CS is a "Science" and as long as "Science" isn't dead, CS is not dead, however, in general, I do feel that CS focuses on the wrong things and doesn't fully prepare a student for the "real" world.
Most CS Departments focus on theory, mathematics, robotics and Artificial Intelligence but rarely spend much time on the actual art of Programming. Sure, they attempt to include Computer Programming as part of their curriculum by teaching Pascal (old and unused language) or Java (trying to remain hip in a world that has already forgotten about Java). However, none of the Computer Programming courses taught through CS will prepare their students for "real world" programming.
The Business world needs people that know how to design database driven applications that are not only functional, but look appealing and get the job done. These applications need to be built fast, be modular and easy to update/maintain. CS will teach you how to design a Database System to lay the groundwork for a Database Application but it doesn't focus on making use of the popular Databases out there such as Oracle, SQL Server, MySQL, etc.
CS also doesn't prepare students for the world of RAD (Rapid Application Development). Believe me, I've been programming for 15+ years now and the single most important factor for any business or customer is RAD Development.
To do RAD you need to know how to use RAD tools such as Visual Studio, .NET, Ruby on Rails, etc. CS doesn't teach that sort of stuff. In fact, most Universities refuse to make use of Visual Studio or any technologies by Microsoft so that incredibly limits possibilities of Rapid Development. I can't tell you how many times I've seen people right here on Slashdot complain about how their Universities do not use or endorse Visual Studio. Of course, they sell it in their School Software Stores because the stores on campus at least know what the students want.
Most good programmers skip CS at Universities and go to Community Colleges which are typically more up to date on technologies such as Programming Languages and RAD Tools such as Visual Studio. Believe me, if you want to learn C# which is popular on all main platforms (Windows, Linux and the Mac) or if you want to learn about Ruby, you are not going to get that from a University CS Department.
This means that if you want to make it in the IT world, you really owe it to yourself to skip CS and big Universities (or at least supplement) and go to a Community College for a Programming degree. I have actually done both. I started out in a Community College studying programming and then went on to CS at a University and found that nothing they taught would help me in the professional Programming job I was already doing. So, I moved into MIS which is a little better since it touches on RAD and Management/Business which will help anybody in the "real" world.
I think theory (understanding of algorithms, etc) is important but learning about the tools and programming languages needed for "real world" development are essential.
Computer Science isn't dead but NASA and Lockhead Martin can only hire so many Artificial Intelligence programmers. Otherwise, a Computer Programmer needs to look out for themselves and get their education where it is truly offered (Community College and Tech Schools).
Bill Gates tells us that CS students should be focusing on Bio-Tech and they can surely do that but while we waste our time away in school learning about the "future" all of our jobs are going to the people overseas that know what to do now and that will ensure that the people learning about the "future" of IT at school will not be able to get a job when they get out.
IMHOComputer Science: This is the theoretical, researchoriented discipline. It deals with developing new algorithms, optimization and that side of things.
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.
By this definition, what I am doing has nothing to do with what I got my degree in and spent $20K (CS) and everything I learned on the job and paying courses of $2-3K a pop for a certification that lasts 3 years at the most (5 years for practicality) (IT).
So, yes, Computer Science is Dead. Long Live Information Technology.
Mod Karma -1: I sed bad wurds. If I cep my mouf shut, I wud be at riyses.
Well part of the reason many people are discouraged to take CS as major is
Schools teach Science while industry wants Technology..........
I have a graduate degree in CS. I have done C/C++ Java.(I know what memory allocation and leaks are. ) I know my way around in Linux/Unix. I know what algorithms are how one algorithm can be better than the other. I know why there are so many languages and platforms. But unless I put tons of buzz words on my resume no one ever is going to call me for an interview. But thats what my school taught me. I did some projects too bad i never used maven or eclipse or ant. I am a Vi guy:( Once we go to industry no one cares about science the want some one to get started asap. Imagine if i had a degree in Biology I wont be under pressure like a CS graduate they will train me for some time with technology then put me to practice. In cs no one wants to train. I did get a a shitty job after so much search but why CS majors have to go through all that? why not accounting majors? No one expects an accounting major to know industry standard accounting tools. Does any one expect me to tell me dears ones to join CS?
As long as there are computers and a future, there will be a need for computer scientists. If computers go away, there will be a need to program quantum computers. It will be just like the old days when somebody needed to do low level programming for computers and it will happen again. For the writer of this article, did he even think of how much computing was actually involved in displaying and writing his article? Monitor drivers, assembly, mouse drivers, keyboard drivers, c++, network drivers, web server and lots more. I bet he couldn't write a mouse driver if his life depended on it. I don't like these kind of people that resort to the internet to say something controversial, but then again if he said it in a dorm full of CS students, he might lose his virginity B-)
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.
It would help if he got out of the university and actually got involved in the real world of programming.
The real world is full of middle managers cludging together spreadsheets to "fill in the gaps" where their vaunted off the shelf panacea failed to deliver on a crucial piece of functionality. It is full of guys in a corner hacking together an Access database and making a colossal mess out of enterprise projects.
There is a shocking dearth of qualified programmers out in the real world. They are sorely needed.
Is that why we're in demand now more than ever? Until we have complete AI programming AI, there will always be the need to engineer software.
No its not dead, it just needs to modernize a bit and the crusty old professors need to stop teaching the useless "learning" languages.
The .NET guys at MS have been attacking this "do what I mean" problem by providing increasingly more declarative language features. The best example is Language Integrated Query, which allows developers to use SQL-like queries right in C# that can operate on databases, XML DOMs, in-memory collections of objects and potentially other things that implement a particular interface.
This targets the exact use-case you mention in your post: searching. It's the intention of these guys that in future versions they can change the algorithms used to implement the queries against in-memory data structures to exploit better dual-core processors and other advancements without all developers needing to learn how to implement such algorithms.
No doubt we'll see this more and more as technology gets more complex: the engineers will be pushed down to the platform level and the common programmer will work on top of a mountain of abstractions provided by the platform. We're already part-way there, but commonly-used languages are still very imperative. More and more features are being borrowed from the functional programming world to make algorithms more composable and adaptable. For now, though, we've got enough abstractions for less-skilled programmers to write code but not enough abstractions for the plaform to fix it for them.
"Science is to computer science as hydrodynamics is to plumbing"
-Stan Kelly-Bootle (according to the wiki)
I'm really confused as to what is "computer science".
But as far as I can see, computers are tools. No more, no less.
Nouvelles de jeux et technologies en français. TC
when i did comp sci, i had to learn pascal, posibly the most boring language ever created. i had to learn about DFD's, also boring. i had to learn about the OSI 7 layer model, boring. i had to learn about a systems life cycle, again, boring.
if comp sci lectures taught something interesting, like how networks actualy work, not just the 30 year old theory behind it, or taught programming using a language that is usefull, or taught how computers are built, or how they physicaly work, people would enjoy it more because its interesting, and its usable knowledge (applicable to real life), what they are currently teaching is not.
portfolio
We already beat this topic to death. See http://developers.slashdot.org/article.pl?sid=07/0 2/04/2210200 for many insightful and informative comments people posted a month ago.
I once had a signature.
Who makes all this science possible that allows this new technology work? Computer scientists! If society stopped studding computer science then technology would rush to a halting stop. People might have fancy electronic equipment and the like and I am sure plenty of companies would keep producing it but there would be no improvements.
One thing that the lay person has a problem discerning the difference in is the computer scientist and the computer programmer. I have my BS degree in Computer Science and am working towards my MS in CS. After my BS degree I worked in the IT industry for over a decade and none of the jobs I was working at had the primary task as being a programmer. I view programming and knowledge of programming an necessary evil when it comes to the study of computer science. I am more interested in the middle ground where computer scientists interact with physicists. After I get my Ph.D in CS my plan is to teach in a college that will let me teach both CS and Physics courses, in hopes of help each side bridge the gap.
Programmers are a dime a dozen but real people that are looking to use computer science for what it is, a science, and not a job there is real potential to have a noticeably affect on the world.
Nick Powers
Encryption: I may not agree with what you say, but I will defend your right to encrypt it...
Not only did I recognise the subject matter, but the fact that it was on the BCS website, and by a lecturer from the same "university".
I quoted the word "university" because vocational training college would be a more accurate description.
That Dijkstra quote certainly has its value, but I think it's either not very good or people don't apply it in the way he meant it to be applied. Computer science is much more about computers than astronomy is about telescopes. Telescopes are merely a tool for astronomers, while computers are much more than simply a tool for computer scientists.
The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
Is traditional Western society dead?
The west has already ceded manufacturing to Asia. Now we're in the process of exporting that high technology that was the fruit of hundreds of years of western dominance to Asia. Now we have clowns like this person saying that "everything that needs to be invented has been".
Sounds to me like decline. I guarantee you that Chinese firms aren't talking about shit like this -- they're busy educating hundreds of thousands of people in engineering and sciences while we whine about self-esteem.
Conformity is the jailer of freedom and enemy of growth. -JFK
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
Captain America dead or Elvis dead?
Note that the article writer is British, which goes some way to explain his tired, decadent attitude of, "Don't think about writing software, buy it instead". As others have logically asked, who writes the software we buy? If you're a British organization, the answer has traditionally been "Americans". Nowadays, it is increasingly getting to be "Russians, Finns, Indians, Brazilians, Germans... anyone but us".
How would it sound if a professor of medicine or surgery were to say, "Nowadays we have so many good drugs that doctors don't need to learn anatomy or physiology any more"? We'd call bullshit. It's recognized that a nation is most unwise to close down its shipbuilding, aerospace, pharmaceutical, etc. industries completely, because once the torch is dropped it can't be picked up again. Traditionally, knowledge is passed down from generation to generation. Let there be just one generation that loses those vital skills, and no subsequent generation will have the option of reacquiring them.
The sad truth is that business managers want the benefits of computing, but they are damned if they want to pay for it. Hence the "shortage of staff" - i.e. staff who will work for peanuts. Hence the proliferation of crappy, slow, unreliable software, written by undertrained, underpaid developers faced by unrealistic deadlines and told to make bricks without straw.
The basic problem we have - and it's a serious problem - is that almost all the people who make decisions about IT investment are fundamentally ignorant about computing. In fact, we actually need more computer science rather than less; but it could usefully be delivered in more accessible, easy-to-understand chunks.
I am sure that there are many other solipsists out there.
Database Adminsitration and Data Analysis.
And that brings up a sidelight as well. In today's environments, the DBA is spending more time than ever tuning the queries of the developers, because the quality of the developers to bring about efficient code has dropped like a rock.
As compared to what? I don't think you can compare current enrollments to the .com boom enrollments. Back then everyone was in CS to make a quick buck. As soon as the quick buck went away, of course enrollments were going to fall back to traditional levels.
Look at how many people are RE agents now. You think that's going to last given the housing collapse that's currently under way? Does this mean people aren't going to buy and live in houses anymore?
There will always be a need for people who can build and understand technology. Typically this will mean CS or a derivative of it.
"Computer Science is no more about computers than astronomy is about telescopes." - Professor Edsger Dijkstra
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?
I'm sure the telescope scientists would disagree with you ;)
When a field gets hot it attracts the mercenaries- basically people whi are solely in it for the money. These kind of people are not interesting to work with and give up when the economics slows down.
Wow. So, how is the availability of mature "enterprisy" business mishmash tools really going to affect Computer Science (the field) or Software Engineering as a whole? Sure, it might bite a large chunk out of the market for developing business-specific data entry/manipulation/CRM/whatever software, but it's not as if that's all Software Engineers work on these days (+ someone needs to work on the mature tools, to make them more mature, whatever).
There's something to the article. During the .com boom, everyone and their mother was writing custom software. But a lot of niches have been filled with relatively mature and stable products now. Not everyone wants to spend the money for custom software. Not to mention, I think during the .com era, a lot of people began to grasp the expense of custom development, the hard way.
There will always be areas where software development is needed. There will always be new areas and old areas that need something new. Everything evolves. But the need for programmers will definitely be finite.
There will continue to be academic programmers to do research, there will continue to be people working in open source to provide competing products, and there will continue to be corporate innovators out there that will find new niches to fill. The numbers just aren't going to be quite what they were in the past. So is Computer Science dead? Absolutely not. Like the market, it's just need of a correction in numbers...
What the article is really lamenting are two things: the increased efficiency realized by buying a commercial product that suits ones needs rather than building from scratch for every problem; and the increased efficiency realized by frequently using high level tools when customization is needed. In other words "Wah! People don't need highly skilled programmers for every computer problem/task/upgrade. We're not as important as we used to be!"
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.
I believe we've heard something like this before...
"Everything that can be invented, has been invented."
--Charles H. Duell, Commissioner, U.S. Office of Patents, 1899
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
Not that I could do any of it anymore, but the 6.001 SICP class that he was talking about did all that. We didn't use Scheme like most places use LISP (as a glorified LOGO), but as an extremely versatile language.
You learn the basics of programming using scheme, which takes about 2 weeks tops, the beauty of LISP. You do things like create object oriented LISP, create a LISP processor in LISP, then we create a basic machine language and process it in LISP. The POINT of it is that you can quickly build up an environment to process anything.
Later, in the intro AI course, you do everything in Scheme again. If you go on to take the "Programming Languages" course (I did not), you actually use Scheme to model every theoretical form of programming language so you can evaluate it.
Scheme is the PERFECT academic language. It is derived from lambda calculus, which lets you do neat things like prove your software is perfect. The interpreter can be proven perfect (all of Scheme CAN be implemented in 8 or 9 commands, that if implemented correctly can make the whole system perfect). You can build a compiler for Scheme in Scheme pretty easily (I remember doing it), etc.
The draw back? It's damned inefficient at using computer resources, it doesn't have a clean library approach, and while it is AWESOME at code reuse, it doesn't let you "optimize" things by playing with memory space, etc. It never won in the marketplace because Worse is Better.
You must be new here.
This is Slashdot, where everything is laughable.
Else who would invent SkyNet? Really. Not only is there Computer Science as described above, there is artificial intelligence, robotic systems, quantum computing, all the kinds of things mentioned in the proceedings of the ACM like computer enabled synthetic apertures and light field analysis, we need intelligent people to build Perl 7, and hopefully some engineering genius will, empowered by new computer science, develop a modicum of automated intelligence so that programmers can spend their time being creative and not worrying about carpal tunnel. Sounds like the issue is more a matter of whether you can get a quality CS education anywhere, and can you make a living at it. Now if you want to talk about the future of website administration that's a different story.. maybe need to get a design degree or move to India with Halliburton.
BASIC, SQL, and other "simple" programming languages didn't replace programmers because the hard part of programming is logically thinking in a creative manner. The thing that stops most people from being programmers is that they don't think that way. That said, the addition of VBA and other things to Excel HAS let some people do their programming, I've seen business execs write simple macros to process their spreadsheets faster... I'm seen some impressive Excel spreadsheets. This doesn't replace programming, but that is work that doesn't need to get sent to IT.
Making programming easier for logical people WITHOUT training as programmers makes certain jobs too simple for IT, but it doesn't replace the programmers for real work.
But looping through your spreadsheet and doing some basic processing... that is a solved problem, and letting someone code that up quickly doesn't eliminate the need for real comp sci graduates.
..where I work, we have new customers almost on a weekly basis. Every single customer we have is different and requires different products from us. And also every customers data is different. I and my other co-workers are constantly working to adapt old software to new customers as well as write new software from scratch. Believe me, we would actually LOVE to have an off the shelf solution so that our lives would be easier, but one simply does not exist. You can only pack so much customization and end-user modification into an off-the-shelf app before the next step which is to just write new code.
:) )
I do agree that more and more off-the-shelf software is becoming powerful enough to handle a lot of business' needs, however one also has to account that more and more ".com's" (i hate that term) are sprouting up that generally all do the same.
As far as Computer Science being dead, I call BS. (and not as in Bachelor's of Science.... which i have
Forbes fastest growing jobs According to this article, Computer software engineers, applications is number 5 on the fastest growing jobs list.
...between CS and IT. It used to be that IT people did as much new programming work as they did maintanence and configuration of existing tools. Now COTS software solutions are reducing the need for (and desirability of) custom "reinvent the wheel" IT apps, the distinction between the two professions should become clearer.
Very typical of pop-media hack-journalism. The article is *not* about "is computer science dead" rather, it's about development shifting from inhouse, to 3rd party apps - a trend that's been going on for decades.
I started college in 1991 and I remember the day before declaring my major (CompSci) a friend brought me an article that said it was a dead field where nobody would be able to find a job by the time I graduated. By the time I graduated, it seemed that there was at least an article a week about how Computer Science was dead and everything was going to hell in a handbasket. Then came the dot com bubble.
These doom and gloom articles make the rounds all the time - in many industries. The truth of the matter is that Computer Science is never going to be "dead". The technology is getting more sophisticated, the talent cheaper, but there will *always* be a need for smart, talented, driven people who can develop great software, design, deploy, and manage tough as nails networks, and generally be the "go to geeks" in their realm.
No, we probably won't see the heady days of the dot com bubble again (although that can be debated too but we won't all waste away and die if we stick with our chosen profession and encourage others to enter it and make it better. The competition will be fiercer (India, China, Vietnam), the work more demanding (AI, Neural Nets), but the field is still one of the best out there.
Anthony Papillion
Advanced Data Concepts, Inc.
"Quality Custom Software and IT Services"
The argument that off the shelf software fills the needs of businesses completely can only be made by somebody who doesn't really know much about business. Businesses exist to make money. However they can't ignore the existence of others businesses who are going after the same money. So it follows the number one concern of business is competition.
Businesses have to compete two ways: efficiency (low cost) and differentiation (creating unique value). Individual businesses, or entire industries, may lean towards efficiency or towards innovation. But a business that relies exclusively on one aproach to competing will eventually find itself in trouble. If you are too innovation slanted, you find yourself underbid. If you aren't innovation oriented enough, you find yourself obsolete.
Commercial off the shelf software addresses the needs of companies for efficiency -- usually. You don't build your own general ledger accounting system, because G/L is the same problem in every business of a given scale. It is possible that some organizations might require a custom G/L system, but very few. It is efficient to buy your G/L system, since it is a bad idea to differentiate yourself based on your accounting practices.
But when you are trying to differentiate your products and services, off the shelf software is worse than useless. It's a straightjacket. Companies make do with either inferior systems or with systems that limit their competitive capabilities, because there is a shortage of engineers who can build the systems they need.
Let me give you a real life example I heard about recently. The salmon you eat at a restaurant has probably been farm raised. People eat a lot of salmon in restaurants. There's a company that has developed a business in which a restaurant enters an order for so many salmon steaks or fillets of a given weight. The company has a network of farms and processing facilities; the order goes to the processing facility, where workers load up freshly harvested raw salmon onto a conveyor belt. A laser scanner creates a three dimensional model of each fish, and a robotic cutter slices the fish using a high pressure jet of water into a number of cuts which will most efficiently meet the orders. Workers unload the cuts, and the system tells them which restaurant they are going to.
The net result of this is that most restuarants in the US could enter an order at say 10AM, and have fresh salmon exactly to their portion requiremnts by dinner time, and given enough orders the least possible raw salmon is wasted.
There are probably ideas like this in every industry, but they never see the light of day because to a layman they seem impossible. However, anybody with a CS degree should be able to recognize the key component of the above system as related to the scheduling problems commonly studied in algorithms courses. An optimal solution might be outside the skill range of most CS grads, but they should see the outlines of some solution, and be able judge the feasibility of any proposed alogorithms. This is something which can't be said for somebody with an Information Systems background. Those folks have other things to contribute; they are to CS people what industrial engineers are to mechanical engineers.
The supply of CS expertise is a limiting factor on innovation for the entire economy. It's a result of shortage of CS knowledge that some can't see its usefulness. The inability to do things that require CS expertise is simply taken for granted.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Yes/No/Cancel
The slashdot write-up doesn't seem to make a lot of sense on the surface, but I think this is a reasonable observation. It's not that having a computer-science degree is useless, but in the past everybody was getting their degree to head the development of major, proprietary software packages for companies. Packages that handled customer relationship management, accounting, shipping receiving, etc. And every week there would be a meeting of the office dullards with some new 'idea' on how to improve things, ultimately requiring another development project.
Cut to today where most companies rely on the software packages of only a few developers, like goldmine, microsoft office, whatever -- you've cut out the need for computer science degree's in all but a small handful of successful companies.
Someone commented in this thread, "And where do these software packages come from?" -- they come from computer science degree's. About 5. 5 dime a dozen computer science degree's. And where do they come from next year? The same company ; meaning they can cut-out 4 of those computer science degrees and keep 1 for maintenance.
This is an oversimplified explanation of software in general, but it's fairly accurate. I'm in the middle of porting a visual-basic application to a web based PHP application for a Toronto, Ontario based company. The VB application might have required a CS degree, but it also cost $15,000 to produce. My web based version on a bad day won't go over $3000 to produce, and I'll be paid well for what I'm doing.
When languages keep getting higher level you cut the 'degree' out of the equation completely. University (in canada) and ivy-league colleges (in the states) focus on calculating cpu-cycles and low level mechanics of development. PHP focuses on asking a computer to do something in plain english. Community college is about all you need for that ; or in the case of most slashdotters - common sense.
---
This degree is too much!
Ace
I think you misunderstand the quote and what computer science means. Computer Science would be the science of computation, not the science of computers.
This reminds me of Isaac Asimov's story Profession. In the story, people are educated for their careers via direct mind transfer, but someone has to write the tapes to educate everyone else, when paradigms and techniques change. The parallels are clear.
As a 56 year dinosaur, I see more possibilities than ever for proper computer science:
- user tailored and AI augmented search
- well engineered 'green' hardware/software/datacentres (well you see what I mean)
- well engineered micro-kernels
- physical/computing interface work and telepresence
- problems connected with seed AI
- rational management of complexity and systems integration (I'm in the middle of a dinosaur friendly glue code gig right now)
- modelling tools and problems, especially what's happening and not happening to our environment
That's about 30 seconds of very non-scientific thought and I'm sure many people on slashdot have zillions more whether or whether not they agree with this particular list-let.
On y va, qui mal y pense!
It's not dead, but it is definitely in a vegetative state. The combination of patent morass and "standards" competition as an avenue for profit has left little room for serious long term work.
The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
It is more alive then ever.
But its not on the surface, expirimental ideas new software are written verry often.
Biological computing, or chemical computing, physics emaulation, statistical analyzing marketing software etc etc.
Basicly computers these days have become more powerfull and so we find new ways to use computers.
We went beyond the things what we thought in the past was to complex.
Think of the first speaking computers, and the mail systems these days who readout your mail.
Think of the advanced self learning flight systems.
Think of bio engineering and emulating software, drug searching algorythms.
I know you're out there. I can feel you now. I know that you're afraid. You're afraid of us. You're afraid of change.
Not in India.
Has all the good software already been written? Is the need for better software gone? While these questions are great for starting a discussion thread, the answer is obvious. Are we going to be using computers less? Is software already as intuitive as it can be?
>> Is that quote laughable? Or has the software development industry stabilized to an off-the-self commodity?"
The article makes a tremendous mis-assumption that Computer Science and all software development is only about business software apps.
For example, my job is to develop avionics software that flies in large aircraft. Anyone suggesting we could replace our custom software with off-the-shelf packages would be asking to have their brain examined. For example, would you even get on a plane if you knew the flight controls used any Microsoft software? Not me...
If they aren't enrolling in CompSci... what are they enrolling in and why? Is it just a trend in coolness or maybe the economic scene has changed and jobs in other industries look more lucrative? A field of study doesn't die, it becomes less popular. So the real question is which one is the sweetheart of the young masses these days and how can a CompSci department recruit people out of the popular group by upping their offering?
A fool throws a stone into a well and a thousand sages can not remove it.
I agree.
... 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.
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"
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.
Anything you come up with, OSS devs make a poorman's knock-off and give it away for free. Why go into a field if you can't make money?
I have no doubt that in the next years we will need an huge amount of embedded Developers. put together the funny crappy libraries which had in mind that opening the Start Menu of windows at high resolution an 32 bit color depth transfers more data than the whol payload (e.g. text Document) of the whole Apllication has. Terribly good for saving resources (mainly: Battery!)
This is the beginning of one of those Star Trek episodes, where everyone on an advanced planet has forgotten how everything works.
Computer science cannot become "dead" because there will always be attractive problems of an algorithmic nature, which is in essence what computer scientists study. Software development, on the other hand, could devolve into something like accountancy in relation to math--a task streamlined enough to be performed by non-specialists. But even though accountants no longer need to be mathematicians, mathematics is still alive and well.
BSD is dying.
I'm really shocked.
... gofer -- urgh) and technical computer science (which is basic logic) -- and some more, I simply dont remember anymore.
Guys, what are your universities?
In my first semeseter I had math, introduction to computer science (which is math and little programming in
Some of the last coureses I took where formal languages, advanced logic and robotics. Well, not much of programming, but tons of math. Lots of goot programmers had to leave (and no 'I like computers -- they offer great games' bums survieved), because of a lack of understanding of maths -- yet it is computer SCIENCE and not programming or webdesign!?
I simply can't understand how your experiance justifies those universities offering the highest possible education?!
When I was working on my PhD, the childish behavior of professors never ceased to astound me. These are mostly people who've spent their lives in school. For them to comment on the "real world" is a joke. I, on the other hand, do work and solve problems in the real world, and just because accounting software is "easily available" doesn't mean it works for all situations. Oftentimes, my clients have tried "off-the-shelf" and failed before they contact me to develop a custom solution.
Run and catch, run and catch, the lamb is caught in the blackberry patch.
It might be tempting to write this guy off, but he pretty much sums up the current attitude towards large-scale apps these days. I work in systems integration/architecture, and see the products of this thinking all the time. Moore's Law is every programmer's friend. It means they don't have to optimize anything. Throw hardware and memory at the problem, and the problem goes away. This is why simple home-grown apps require 1.5 GB of RAM and dual-core processors to run.
As long as programmers who don't optimize their code exist, and the amount of addressible memory goes up, then yes, we don't need computer science. Where we do need CS is in the embedded space, but even that's debatable. Thin clients are coming with 2 GB of flash onboard, Apple's iPhone is going to have an 8 GB drive. You can write the most inefficient code in the world, and no one will notice.
The other problem is that most of the methods for solving problems have become built into code libraries, meaning that they're accessible to non-CS people. You can call a Sort() function in any library and get an okay result.
I'd say that Computer Science has been dead for quite a while based upon the quality of the code that I've seen written in the corporate world.
If more programmers had some sort of computer science background, they wouldn't be making the horrific mistakes that are being made on a daily basis. I've encountered people who are writing user interfaces who have absolutely no knowledge of the science of human-computer interfaces (and who don't understand that taking 5 seconds to respond to ON_PAINT is not acceptable), people writing server-side software who think Java's LinkedList and ArrayList objects are the same thing and who use them interchangeably without understanding the performance ramifications, and people who whack together multi-threaded applications by trial and error who think "formal method" is the instructions on how to put on a tuxido.
It shocks me the number of simple and stupid mistakes that are made in the workplace that were solved in the computer science literature literally decades before the guy was born.
I think the reason why people have such disdane for Computer Science--and why it is dead, much to our great loss--is because of the myth of the teenage ubergeek hacker. We see that myth all the time in the workplace: why hire a thirty-something with 10 years of experience and a college degree when you can hire a "clearly superior" twenty-something whose 10 years of experience started when he dropped out of high school. After all, natural talent, or so we are constantly told, is superior to a computer science degree which somehow actually saps vital energy and IQ points from the muddle-headed college student. (And sure, while a college degree doesn't guarantee that you can code, it does mean that you've been exposed to things like algorithm analysis and and formal (non-tuxido) methods.)
This active disdane for education and a belief that the uneducated geek is the superior geek--an active disdane that is even promulgated by Hollywood, for heaven's sake!--means that problems that have been solved half a century ago continue to baffle corporate software developers.
All hail the new King!
- Mike
Once you've lost your temper, you've lost the argument - Me
off-the-cuff posts are removing much of the demand for high-level editorial skills...
;)
Plus all you need to do is rehash old stories, or even just dupe them... And voila 300+ comments.
I believe this article had been slashdotted in the past. I even wrote a blog entry summarizing my thoughts on it. Although it seems that writing inflamatory articles about Computer Science is an easy way of herding slashdot traffic.
Oh Heavens to Betsy! We must hand out more H1B visas so employers can hire more foreign programmers for less money! That should encourage people here to invest time and money in a career where you know the government is actually helping the industry drive the wages down. Oh, and let's give the rich more tax cuts, that is always the key to fixing everything.
Why ask if Computer Science is dead, and then argue that Software Engineering and/or Programming is dead?
Computer Science, is the mathematics, the computational theory, etc. While much of it is useful for the people who write programs to know, "Computer Science" is not programming.
Programming is the art/practice of writing methodical steps for the computer, to solve a problem or perform a function.
Software Engineering is the "time and motion studies" stuff, as it deals with Programming: What models help us better visualize the design, so that we can best plan the design, best communicate the design to the programmers who will be writing it? What practices and checks and tools do we use so that we are able to build that software and test it?
Anyways, my slant on the article, is that he is asking "Are all the programs worth writing, already written, and are they as good as they should be?" And thats like the head of the patent office in the early 1900s declaring that "Everything that can be invented, has been invented.". Just because you can't think of what the Next Big Thing will be, doesn't mean that there isn't going to be a Next Big Thing...
Everything that could be invented already has been!
Simple, in thierarchy of things, computer scientists are the middle layer between Software Engineers, and simple developers. Computer scientists have the math, and analysis skills, while the engineers have the more specialized science and engineering background to keep things together.
As the demand for skilled software engineers (not simple developers mind you) increases, computer scientists will be needed to keep everything in check (Think formal verification, Contract-based Design, formal proofs).
Of course, without the simple coder, nothing much would get done after all.
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.
One of the most popular EE courses at my alma mater was taught by a grad student. He made it REALLY HARD but REALLY FUN.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Donald Knuth said so.
There are a few people who are focused on "how do I make this better?
That's because a computer programmer's time is a lot more expensive than the machine on which his code runs. In some of my computer science classes, I was told flatly to ignore efficiency because it was cheaper for business to buy a faster computer than it was for me to optimize the algorithm in assembly.
This is just the classic conflict between engineering and business - the business wants a shed, and the engineer wants to build a cathedral.
The society for a thought-free internet welcomes you.
Try moderating, and you will quickly discover how easy it is to accidentally mod someone -1 troll. When you click to select the desired moderation, then scroll through the page to move on to the other comments, lo and behold, the focus remains in the box you just clicked in, and it scrolls to the end of it's range. If you fail to notice this, in the end when you click the Moderate button, the accidentally chosen mod is locked in. I have reported this behaviour to the "authorities", and suggested that at a minimum there should be some warning about this, but no action taken as far as I could tell. I am really surprised that I have not seen anyone else mention this.
Note: The behaviour I just described was observed on WinXP with Firefox. The work around is to make sure that always after doing a moderation, you immediately click outside the box before scrolling with the cursor keys.
...and it really sucks to know that my future is looking bleak before I even begin..
The great books have been written. There is no more need for writers.
---
Karl Marx famously wrote in his Communist Manifesto in 1888:
But Horace Mann makes Marx look like a Johnny-come-lately by writing in 1841:And let's not forget John Dewey who in 1907 wrote in his School and Society:Today, I read a short stinging rebuttal in a Slashdot comment:Science is about applying the scientific method. It's about hypotheses and experiments. What experiments do you do in CS? Computer Science is not an observational discipline. It's applied math.
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.
Table-ized A.I.
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.
As a member of the small club of engineers who graduated in RIT's first Software Engineering, I can say that SE is the future of software development, not computer science.
It simple semantics. There will always be more people interested in the practical application of science (i.e. engineering) rather than the pure research. The demand for good engineers who can craft good software solutions is growing, not shrinking. Reports of a drop in CS enrollment only only reflects the decrease in the usefulness of the study of the pure science of computers. Since SE is in its infancy, I believe that over time, more people will gravitate toward the engineering side of software.
The other point that is often ignored in this discussion is the revolution of Open Source Software. As more companies realize that F/OSS is the only cost-effective way of developing software, this will only increase the number of "blue collar" programmers that are required in the workplace. Many of these will be your average script kiddie, but they must be managed and directed by an engineer, much like the construction of a building. I don't want a scientist making sure the walls don't fall down around me; I want an engineer.
that's my admittedly biased $0.02
-dave
6th Street Radio @ddombrowsky
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."
maybe its cause BSD is dying?
I seem to think that after reading his CV (Resume) linked on http://www.cse.dmu.ac.uk/~nkm/ that McBride is not really in the position to be able to comment on such topics. His experience with Computer Sciences is minimal and his real world experience of Computer Science is very minimal. He does however seem to be able to write articles that are subjective and biased toward outdated development approaches. (SSADM for instance).
It seems that the article he wrote is neither accurate or credible. The amount of damage that he is causing to DMU students following CS related subjects at is unacceptable and should not go away quietly. I know for sure that if I was a student studying a CS related subject at DMU I would not be happy and would also be forwarding him an invoice for my full course tuition costs, seeing as he has in effect has devalued any DMU CS related degree immensely.
I call upon the staff and principles within the DMU CS department to come forward, debunk his comments and then terminate his involvement with the university post haste.
The fact that the person making the software now dictates to you how to run your business doesn't seem to matter to most folks. Unless they want to stay competitive long term and have an edge over the competition. What differenciates(sp?) you as a business? Using the same old damn forms MS pushes on everyone, or the same ERP, or the same sale brochure template or website look/feel?
Accounting hasn't changed much over the years, but after that from Distribution facilities to resturant management. Do you really want someone telling you how to run your business? Off the shelf is good for perhaps a small operation, but a large one needs to think in unique ways to stay in business. Having the technical experts on hand to make those alterations for 5mill a year might beat to hell the 14mill a year you will pay on consulting and software lisc costs.
This is the most ridiculous thing I have ever heard. Having worked on a number of development projects for both banking and air traffic control agencies, I know first hand that much of the software is terribly outdated... written in outdated languages and poorly maintained. Also, as far as outsourcing... what about export controlled software? As was said above, Computer Science like any Science is about solving hard problems; and thus, these skills will always be applicable.
It is the industry and management that makes things "dead". There is always room for improvement and better ideas for anything just that the industry and management doesn't want to pay for these improvements and better ideas so we all suffer for this. The industry and management wants to live off their laurels and don't want to invest in better ideas not risk their "investments". Like many companies they started with "crazy" ideas that eventually became mainstream and profitable. However since the .com bust all of the industry felt the pain of some ideas not paying off and many cases lost money but with careful management of the project these ideas can bloom into mainstream and profitable products. The main causes of the .com bust is the mis-management of resources and squandering of money by people who were not qualified to run the company in the management sense.
This is where Open Source excels. If you have a good idea and willing do the work on it and put under GPL and eventually someone will see your work and "buy" your product you and the company buying your product will profit from this.
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.
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?
Computer science in America is dead, just like textile jobs and meat packing jobs. They also were once a good income. CS these days, you are lower on the totem pole than the guy who cleans out the toilets. At least the janitor in a building is trusted with all the keys to the facility, and he works a set number of hours.
Lets compare two people. Jane CS, and Joe Sixpack. Jane CS scores high on the SAT, gets into a decent state university. Joe Sixpack gets in because his father graduated from that school.
Joe Sixpack goes into general business, and because his professors don't really care much, he makes A's and B's, and has a 3.9 GPA upon graduation. His idea of studying consists of beer slides, beer bongs, and reading previous test notes stored at his fraternity's file cabinet.
Jane CS goes into CS. She is in classes with very few Americans, but foreign students which the US government pays for, ignoring American education. Because grades are relative on the class, she has to fight, tooth and nail to get her C's and B's against people who have had far better schooling in their homelands, compared to smoking joints and playing football in American high schools. She gets her degree by studying 36-40 hours a week.
Then comes the job market. Majors don't matter, just GPA, so Jane keeps losing out on jobs. Joe gets in fast because he is a member of a fraternity and has a high GPA. It doesn't matter that it was general business Joe got his degree in where courses like "History of Rock & Roll" were the core of his major. Jane eventually gets a job, but she gets a position under Joe, doing code monkey work.
To keep at the job, Joe just does his work in sales, does his eight, out the gate, if he isn't out on three martini lunches with clients. Jane, on the other hand, is putting in 60-80 hours a week to comply with marketing's demands for new features, as well as customer support's demands to fix bugs that are causing clients to go elsewhere.
One year later: Jane's position is constantly threatened because the company is firing their highest paid devs to get in I9 workers who barely speak English, but can fill the bill with code. Joe's position is secure because he has been yakking with the managers, and now made supervisor. Joe drives to work in a nice, new Lexus (paid for by the company) while Jane is still driving her Geo Metro that she used from her college days because she is still paying off the monster student loans incurred from the CS degree.
Five years later: Jane is working as a waitress, because the company she worked at finally outsourced all development. Her Geo Metro still takes her to work, and she hops to get a Honda Civic one of these days. Joe is mid-level exec, making six digits a year, and much more than that in stock and stock options.
Trust me, CS is a waste of time, and a sure way to ensure you won't be able to feed your family. You will always be replaceable by outsourcing to another nation, or getting thrown out for an I9 worker. If you are a sysadmin and there is a security breach, its *YOUR* ass who is going to prison due to SOX, HIPAA, and other laws, even if its obvious that users are posting their passwords on their monitors and just don't care about security. If you are a programmer, you will be demanded to meet insane deadlines set by marketing because they promised features to their clients that absolutely don't exist.
To boot, when you graduate school, you will always be passed over for jobs, and the people with the generic business or education major degrees will get them before you. Why? HR people look if you got a degree, and what your GPA is. To them, it doesn't matter if the major is "hard" or "easy", its just that the guy who has a business degree has bigger numbers than the person in computer science.
Come promotion time, the business major's job is going to stay put. The CS person's job is subject to the winds of outsourcing and how fast I9 paperwork can be done, to find cheap foreign la
You guys do understand that an enormous chunk of software is embedded systems, right? It may even be most of it, for all I know.
You realize there are 20-30 other (typically real-time) Operating Systems out there to choose from, right? There's more than just writing Squeedunk Utility and porting it to Windows, Linux, and Mac, right?
And what about games? Those by definition do not stabilize -- people always want new stuff, not "off the shelf" stuff (though I do recommend Sacrifice and Total Annihilation even though they're quite old.)
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
The level of sheer stupidity it takes to come up with a statement proclaiming the death of computer science must be on the orders of magnitude calculable only by next generation processors. Until the hardware and the software is designing and building itself, we'll still need humans who know how to work with the tools and practices available to them, and who are capable of pushing those limits. Enrollment is going down? So what? In my experience, a bunch of the people in my CS department were A) in it for the money, or B) in it because they thought that they were good at using a " 'puter " because they could get to the task manager and had been on IRC once. Good riddance to them.
What does Netcraft say?
Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
next on fox new-er slashdot, flying hippos are eating your invisible babies, and you can't do anything to stop them! Known terrorist, bill gates, pledges to sell more software! Is linux under attack?!?!
it goes on and on...
I'd say that the article author is right in that computer science as he knew and loved it is dead; by and large. The need for people to write code that interacts directly with the hardware is all but dead in most professional software coding. There are certainly still fields to be explored, like any scientific field, but I think that much like many scientific research fields, computer science research will become a niche. Instead, what I think you will begin to see is specialized computing professionals (and university/tech school training to that effect) and computer science no longer be intertwined. The "old school" is dead, long live the "new school".
This is the same logic that states that programmers only assemble applications from existing parts. What nonsense. If this were true Microsoft would take YEARS to develop new versions of Windows or Office applications. The Linux community wouldn't constantly patch/revise/enhance the kernel and the variety of X-Win GUIs.
This notion may have it's roots in the MBA school of though but it simply doesn't matter. Skilled and educated developers are absolutely necessary. The education establishment should not abandon Computer Science but rather reinvest and educate the next technology leaders for America
There is an obvious answer that is sure to make EVERYONE HAPPY. And everyone has it a little right, but are missing the over all picture.
For some reason writers, academics, and managers keep lumping all CS/MIS/IT/SWE/etc degrees into one great big pile that they like to call Computer Science.
The fact is we have a number of DIFFERENT roles that need people, and the numbers per role are shifting.
There is a continuum of IT, Business Analysts, Programmers, Software Engineers, and Computer Scientists. Today we have less of a need for formal CS grads, but have more of a need for Business Analyst and other types.
What we need is NOT to put more Business into CS nor more CS into Business. What we need is to break the continuum up into layers similar to what you see in other engineering professions. Are Physics departments expect to take on more Electrical Engineering roles? Are EE departments expect to take on more Physics roles? Of course not! They COMPLIMENT each other, but they are UNIQUE.
Similarly we need to see CS for what it needs to become. A small body of CS majors working on the theoretical and the uber-technical (like Physics), then we need a larger body of Software Engineering majors studying the application of basic technology and theory, and the creation of useful artifacts. And finally we need even larger numbers of students majoring in the INTERDISCIPLINARY fields that mix in business, medicine, health care, urban planning, etc, etc.
Frankly CS departments, professors, and universities are doing this to themselves. There is great opportunity for growth here, but the opportunity is not in pure theoretics. The natural progression of any science is for it to become applied. The same is true for CS. Free CS from bondage, let it grow! Pure CS will survive.
Less expenses for coffee, Jolt, and pizza!
Vote monkeys into Congress. They are cheaper and more trustworthy.
I have a BS in EE and am going back for an MS IS. There is a "core curriculum" that all MS IS people have to take, and then it breaks up into 4 different specialties (Management, CS, Legal, and InfoSec (my focus)). Unless you have a CS degree you basically have to take the Intro to Prog class- Java or C++. I know this is anecdotal, but the same guy teaches both classes, and he put heavy focus on OO concepts rather than "how-to Java". And as some of the poster's have said, there was some emphasis on documentation, but it was more on the comments rather than the Word doc. And if the program didn't work correctly, forget 'bout it.
Just thought I'd put out a positive story.
Vote monkeys into Congress. They are cheaper and more trustworthy.
I recently started doing research on sociological aspects of social networks and collaborative web sites. This is a job that a sociologist could do. Instead I, as a CS person, am doing it. Why? Because to do what I am doing, you need to be pretty good at algorithms, math, and other CS topics.
My general impression is that CS is more and more useful to do any kind of job, and in fact, a CS degree or background is one of the most flexible ones to have. All jobs require CS, and if you know the core topics in CS well, it will go a long way.
When ever you apply science, you're doing engineering.
;-)
:-)
If you're really lucky, it might be "rocket science" - that cutting edge where the maths/science is still catching up with experimental engineering.
But I'm sorry, unless you're creating repeatible experiements or proofs (or at the very least, surveying the literature), it's just not science. (now, when was stellar navigation for UAVs solved again - oh, 1950 ish
I'm not going to argue with the assertion that many colleges publish graduate and undergraduate papers that are applied science, or worse, well behind "industry practices". Indeed, as someone who regularily assists interns it happens far, far too often.
Nor am I going to suggest that "code monkeying" is engineering - indeed it's at best a skilled trade, at worst "craft" - in the sense that some cheap french wine pre 90s was often "traditionally crafted".
If you're not doing analysis from first principles and/or crunching some hideous numbers, it's probably not engineering either. (If you design a system, hoping that the numbers will work out once crunched, then that's "architecture"
So, given that I missed it, where was the basic research and formulation or testing of new theories in your work?
Employers via offshoring and other cost cutting measures have made the benefits of having an IT/CS based job much much less rewarding in the last 7 years.
Entry level workers will not enter the profession for that reason. Experienced workers will leave the profession for that reason.
One cannot expect existing and perspective workers to be motivated to be in IT/CS when an experienced worker makes 1.333 that of someone with 1-2 years experience (i.e., inflation in the USA is up 20% in the last 6 years).
Individuals want to better their income over the long term. A company that gives its workers a 4% raise lower their worker's take home pay after inflation (3%) and after taxes (1/3rd) by about 1%. In other words, the company tells its workers, we value you so much that we will pay you less next year. This is assuming that medical premiums do not consume the 4% raise.
A company wants to pay the workers in the the USA and India roughly equivalent wages (i.e., total cost) puts the USA workers into the $5 to $15 an hour wage range. This does not encourage students to enter the industry.
This is compounded by the typical IT job reputation of long hours and stressful deadlines.
NB: Taxes are 1/3rd or more given that income taxes are 25%, social security tax is 6.2 percent, medicare tax is 1.45% for a total of 32.65%.
Just ask your IT co-workers, 'Are you encouraging your son/daughter to study computers?' You will find almost no one will encourage their kid to study computers and enter the IT field.
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?
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).
I worked immensely hard at my degree so I could become a scientist - a childhood dream. In 1999, I obtained a 1st for my BSc in Artificial Intelligence and was also awarded a prize. I was refused funding for a PhD by my LEA!!! I couldn't even gather commercial funding as there was no interest at that time in pure research into human thought processes. Years have passed in commercial companies with low wages (compared to the cost of living) and now I have decided to emigrate to the United States. I recently obtained my Visa, and now I am looking forward to picking up my scientific career again with a fully funded PhD, after a couple of years (with much higher pay and a lower cost of living) to build up my savings.
I advise all current and budding scientists to find a new country. The UK simply doesn't care, just look at the research budgets!
This brochure from the ACM, IEEE Computer Society, and the Association for Information Systems claims, "Estimates for job growth in the United States range from 38% to 56% across the computing spectrum. With more choices and more opportunities, it's a better time than ever to begin a career in computing. In fact, according to CNN/Money Magazine in 2006, software engineering is the number one best job for salary and opportunities!" The document is targeted at high school students. In my opinion all the parents have been taken in by the FUD. I have worked in Software Engineering since 11/95 and have seen the market keep growing. More and more people are relying on technology and software everyday. Applications are never "done". There are new features to add, new hardware to support, and new technologies to take advantage of.
As for outsourcing, I was involved in an attempt to outsource some software development. They wanted to find a company in India who could do Windows device drivers. Again and again, we could talk to the PhD highups but when we pushed to talk to the actual folks that would work on the project we found they had little experience in driver development and almost no experience in development on multiprocessor severs. This happened with several different companies. Also, folks are finding that outsourcing to far away countries is a massive management headache. It takes all the problems of local contractors and makes them worse.
Outsourcing is like anything in life...in the end you get what you pay for!
-- soldack
Semantics... the point is it's derived from a lambda calculus mathematic to the core that can be mathematically proven, establishing correctness. Theoretically, a LISP machine could be built where you could PROVE the correctness of the interpreter, the operating system, etc. Such a system would be crash-proof, barring hardware problems. That's "neat," not really useful in the real world, but it's really neat.
The point is, using LISP, one can build a LISP compiler, that compiles to LISP operands (I forget, it's been close to a decade since I did this), or outputs machine code. The boot-strapping project is pretty straight-foward. You implement an interpreter in Assembly ONCE, inefficient, but that can run the 9 basic operations. You then use this to load the LISP interpreter that outputs assembly (modified for a new architecture of course) that brings more operations down to the native layer --- trivial example, one need-not implement a second operation, as first(rest(x)) can implement second, a recursive (rest) with if can be used to implement last... again, trivial examples to illustrate --- then you can do it all in Scheme.
Like the other post, using Scheme to treat the problem and use a Scheme->C Scheme program to get optimized performance. Essentially, for MOST applications (non-embedded) optimizing the algorithms in question will get you FAR more of a performance boost than going to hand-tuned assembler.
The old idea was to find the loops where most time was spent and optimize those. First optimize the algorithms, THEN think about tuning the assembly. However, there is NO excuse for writing everything in assembly... You spend a LOT of time on areas of code rarely executed, and it's much less likely that you've optimized the algorithms as well. No excuse is over stated, maybe you're just that good, but the higher-level languages let you get something up and running fast, then you can tweak as needed.
I used "theoretical" and "neat" to illustrate why this was a great ACADEMIC language, for the controlled environment of research and teaching. You took my theoretical point and said, "but it doesn't work in practice," to which I say, that's why I was clear to point out that it's a theoretical advantage in an academic setting.
Ben Hocking
Need a professional organizer?
My collegues and I, being software engineers in X-Ray astronomy, disagree with you. [...] The systems we develop are used by X-Ray astronomers and would not exist without [...] Software Engineers.
You are missing the point. Claiming that software engineering is not science does not diminish software engineering, nor imply that it is not useful to scientists.
I am also an engineer and hope that my work can be useful to many people, but helping scientists in their work does not make me a scientist, the same way a taxi driver taking a scientist to some conference cannot claim to be scientist just because of this.
I think you need to understand that distinction between science and engineering: scientists ask why certain phenomena arise, and seek explanations for them. On the other hand, engineers use this understanding of the world to construct solutions to problems.
"Scientists study the world as it is; engineers create the world that has never been." --Theodore von Kármán
Of course, you can't actually create a Turing machine (infinite tapes and all that), so whether or not it is a computer is quite academic.
Ben Hocking
Need a professional organizer?
Every 5 or so years someone asks the rhetorical question, "Is rock 'n' roll dead?" Then, hangs up their guitar and goes off and makes handbag music, disappearing into obscurity or top-40 banality.
Rock on, computer scientists.
Stick Men
Sounds like something from a trade school to me, not a university degree.
Disclaimer: I studied ECE (Electrical/Computer Engineering).
Perhaps I'm biased, but I also share similar concerns... At least someone in ECE with a BS (might) know how to program but also at least have some ability in calculus, electrical circuit or digital logic design, and maybe operating systems.
What does a person with a CS degree learn?
That being said, I've met very very few (10) people with who studied electrical/computer engineering who actually knew (or wanted to know) how to program well...
Computer Science should be about the _science_ of computing, not the design and programming needs of the commercial software industry.
That's what I thought too....
I have been subscribing to the IEEE's "Computer" magazine in vain.
I think my entire first year's worth of issues focused on nothing but management practices for software design... It was entirely focused on the inter-personal aspects of software development without much regard to anything else.
"Software Engineering" is neither Science nor Engineering... Its Management! It's IT! People need to start recognizing it as such...
Do you boys go around enjoying the smell of your own farts as well?
Let's get down to business:
Was Google from MIT?
Was Microsoft from MIT?
Was Oracle from MIT?
Was the Computer invented at MIT?
Was email invented at MIT?
Was the web invented at MIT? (wait, not so fast; hiring the prof after he did it doesn't count)
Computer Science is dead, all the software jobs are going to India, Robots are going take over the world!
It's so frustrating to read comments like this, particularly from Western leaders who are indirectly discouraging our adolescents from entering these fields.
Never in the history of mankind has an invention brought as much change to society in every measure (Productivity, economic, educational, etc...) in such a short time period as modern computer technologies. Sure, we've come a long way and have developed great frameworks and software packages to solve many problems. But, computers are becoming more capable every year and more ubiquitous. As a result, we are constantly faced with an opportunity to solve those old problems in better ways and solve entirely new problems.
Take any field- Medicine, finance, engineering, music, movies, etc... Computers are playing an increasingly important role in their respective advancement. Computer Sciences are more promising now than they have ever been. It is the only field (Ok, maybe biology also) that is experiencing evolution at breathtaking speed and continuing to have immediate impact on society.
If anything, Computer Science is the ONLY FIELD WORTH STUDYING. Computational thinking will be the basis for next generation marketing, finance, pure science, and of course software engineering. People armed with the ability to think about things in a computational way will be able to solve societies problems.
Anyway...so I guess UK is going down. I'm fine with China, India and Scandinavian/Eastern Europe replacing these pathetic western Europeans and join us Americans in advancing mankind.
"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."
Sorry, but I have to disagree. x86 has won on the desktop side, and has made significant inroads on the server side. On the other hand, four of the top five supercomputers are powerpc based and zillions of embedded devices use non-x86 cpus.
I do linux kernel work in the telecomm field. Our team currently supports five different hardware architectures--x86, ppc, ppc64, arm, and mips64.