Computer Science - why don't people 'get it'?

SLAM: debunk creationism, pseudoscience, and superstitions. Discuss logic and morality.

Moderator: Alyrium Denryle

User avatar
Pezzoni
Jedi Knight
Posts: 565
Joined: 2005-08-15 03:03pm

Computer Science - why don't people 'get it'?

Post by Pezzoni »

This has come to mind for two reasons: Firstly, I'm sat on a train drawing trees at the moment (well obviously not *right now*, but you get the idea) to attempt to work out a problem I'm working on, and getting strange looks from people, and secondly because I'm in the process of applying to Universities with my Computer Science degree, and am worried that my application is going to get chucked by people who don't understand what I've actually done.

It seems that whenever you tell someone you're doing a compsci degree that they instantly:
a) Glaze over
b) Get scared (fair enough, there are some deeply, deeply weird Computer Scientists)
c) Decide that you do 'computers'

If I had a penny for every time someone asked me 'how are your computers going?', or states 'this is Dan, he does computers' or, 'Dan does IT', I'd be a very rich man.

The full rant is put better by someone from another site I visit:
b3ta wrote: "To say I work in IT is like saying an architect is good at colouring in. To say I 'work with computers' is like saying an accountant 'works with a calculator'. Both technically correct but missing the point very badly. I'm a software engineer. I know the syntax and semantics of all modern programming languages including every subtlety to do with object orientation and reflection, I understand the difference between memory allocated on the stack and memory allocated on the heap and how to do garbage collection on the latter, I can pass by value, pass by reference and do pointer arithmetic, I know dozens of different abstract data types (how they're used, how they're implemented, when they're appropriate for use, what their time and memory complexities are for all associated operations). I appreciate the complexity Apple had porting applications from the PowerPC chip to the x86 chip owing to the pure little-endianess of the latter. I understand what it means for a problem to be called NP-complete and can prove it too :P I know how to calculate the big-O complexity of an algorithm, I know how to write the algorithm using recursion, how to test the bloody thing when I'm done. I know about critical sections, semaphores, concurrent processes and avoiding deadlocks in distributed environments. I know about system architectures, how to write a .Net DLL that implements a COM interface, I know about OS paging, what the kernel does, whether my program is likely to be IO, network, database or processor bound. Perhaps you'd like me to describe the ISO OSI 7-layer model to you illustrating the interfaces built on top of each other and the protocols these networking abstractions use to communicate with each other. I can even get back to philosophical fundamentals with logical truth-tables and De-Morgan's law, state whether your language is Turing complete, assert that we'll never know if your program will end owing to the Halting problem. It's not just transistors either, I understand how neural networks work as logic gates using their weighted pathways to train themselves, how it's possible to store memories in a Hopfield net. I appreciate the strengths and weaknesses of various programming paradigms: imperative, functional, logical. All this and I can write your sodding program via the waterfall, spiral or evolutionary software design methodology if you'd like.

You wouldn't attempt to draw up a will after reading a book on law for 5 minutes, you wouldn't try and build a house after watching a DVD on structural engineering and you wouldn't offer to do an appendectomy on your best mate because you saw one done on ER. I have spent 8 years at university learning my craft, give me the respect I deserve! I... am... a software engineer."
So, why don't people get it, and what can be done about prior to the interview stage where you actually get a chance to explain that you've essentially been studying an area of maths, not cocking about playing games for three years?
User avatar
Shinova
Emperor's Hand
Posts: 10193
Joined: 2002-10-03 08:53pm
Location: LOLOLOLOLOLOLOLOLOL

Post by Shinova »

Isn't it usually fine to say you do computer programming? They might have a better idea then.
What's her bust size!?

It's over NINE THOUSAAAAAAAAAAND!!!!!!!!!
User avatar
Pezzoni
Jedi Knight
Posts: 565
Joined: 2005-08-15 03:03pm

Post by Pezzoni »

Shinova wrote:Isn't it usually fine to say you do computer programming? They might have a better idea then.
That's kind of the problem: it isn't about Computer Programming. To steal a quote from Dijkstra: "Computer Science is no more about computers than astronomy is about telescopes." Computers / programming are an invaluable tool without which Computer Science could not exist, but it is in no way a definition of the subject.
User avatar
Feil
Jedi Council Member
Posts: 1944
Joined: 2006-05-17 05:05pm
Location: Illinois, USA

Post by Feil »

You're a member of the high-skill technical professional class. The rest of the world is afraid of algebra and doesn't know what defragmenting their hard drive means, much less how to do it. Do the math.

As for how to convey information: stick an asterisk or an itty "1" or something after Computer Science and append that information on a second sheet.
User avatar
Shinova
Emperor's Hand
Posts: 10193
Joined: 2002-10-03 08:53pm
Location: LOLOLOLOLOLOLOLOLOL

Post by Shinova »

Couldn't you just say you're a math major then?
What's her bust size!?

It's over NINE THOUSAAAAAAAAAAND!!!!!!!!!
User avatar
Darth Wong
Sith Lord
Sith Lord
Posts: 70028
Joined: 2002-07-03 12:25am
Location: Toronto, Canada
Contact:

Re: Computer Science - why don't people 'get it'?

Post by Darth Wong »

b3ta wrote: "To say I work in IT is like saying an architect is good at colouring in. To say I 'work with computers' is like saying an accountant 'works with a calculator'. Both technically correct but missing the point very badly. I'm a software engineer. I know the syntax and semantics of all modern programming languages including every subtlety to do with object orientation and reflection, I understand the difference between memory allocated on the stack and memory allocated on the heap and how to do garbage collection on the latter, I can pass by value, pass by reference and do pointer arithmetic, I know dozens of different abstract data types (how they're used, how they're implemented, when they're appropriate for use, what their time and memory complexities are for all associated operations). I appreciate the complexity Apple had porting applications from the PowerPC chip to the x86 chip owing to the pure little-endianess of the latter. I understand what it means for a problem to be called NP-complete and can prove it too :P I know how to calculate the big-O complexity of an algorithm, I know how to write the algorithm using recursion, how to test the bloody thing when I'm done. I know about critical sections, semaphores, concurrent processes and avoiding deadlocks in distributed environments. I know about system architectures, how to write a .Net DLL that implements a COM interface, I know about OS paging, what the kernel does, whether my program is likely to be IO, network, database or processor bound. Perhaps you'd like me to describe the ISO OSI 7-layer model to you illustrating the interfaces built on top of each other and the protocols these networking abstractions use to communicate with each other. I can even get back to philosophical fundamentals with logical truth-tables and De-Morgan's law, state whether your language is Turing complete, assert that we'll never know if your program will end owing to the Halting problem. It's not just transistors either, I understand how neural networks work as logic gates using their weighted pathways to train themselves, how it's possible to store memories in a Hopfield net. I appreciate the strengths and weaknesses of various programming paradigms: imperative, functional, logical. All this and I can write your sodding program via the waterfall, spiral or evolutionary software design methodology if you'd like.

You wouldn't attempt to draw up a will after reading a book on law for 5 minutes, you wouldn't try and build a house after watching a DVD on structural engineering and you wouldn't offer to do an appendectomy on your best mate because you saw one done on ER. I have spent 8 years at university learning my craft, give me the respect I deserve! I... am... a software engineer."
What a load of pompous bullshit. All he does is talk about how complicated computer programming can be. It doesn't change the fact that he's a computer programmer.

If we use the terminology that is used in other industries, the computer engineers are the guys who actually design computers. The computer technicians are the guys who program them.
Image
"It's not evil for God to do it. Or for someone to do it at God's command."- Jonathan Boyd on baby-killing

"you guys are fascinated with the use of those "rules of logic" to the extent that you don't really want to discussus anything."- GC

"I do not believe Russian Roulette is a stupid act" - Embracer of Darkness

"Viagra commercials appear to save lives" - tharkûn on US health care.

http://www.stardestroyer.net/Mike/RantMode/Blurbs.html
User avatar
Dooey Jo
Sith Devotee
Posts: 3127
Joined: 2002-08-09 01:09pm
Location: The land beyond the forest; Sweden.
Contact:

Post by Dooey Jo »

It took him eight years of university studies to learn that, and he thinks that makes him equivalent to a building engineer? I dare say that compared to physical engineering, "software engineering" is piss-easy, and they usually don't spend more than five years at the university. What the hell was he doing for eight years? Learning how to pass by value and by reference, I bet. That's some difficult shit...
Image
"Nippon ichi, bitches! Boing-boing."
Mai smote the demonic fires of heck...

Faker Ninjas invented ninjitsu
User avatar
Sarevok
The Fearless One
Posts: 10681
Joined: 2002-12-24 07:29am
Location: The Covenants last and final line of defense

Post by Sarevok »

If we use the terminology that is used in other industries, the computer engineers are the guys who actually design computers. The computer technicians are the guys who program them.
Speaking out of my lay ignorence here...

A lot of mechanical engineers have good understanding of how to fix engines they may have helped design right ? So do car mechanics but they don't know how to build one. They are just users. Can a similar analogy apply to computers ? You got people who design the hardware, they also may have terrific programming skills to write the drivers, BIOS etc. But the average desktop programmer ? He works with same stuff but he can't make it. Like a car mechanic.
I have to tell you something everything I wrote above is a lie.
User avatar
Resinence
Jedi Knight
Posts: 847
Joined: 2006-05-06 08:00am
Location: Australia

Post by Resinence »

Unless he's done courses in computational number theory and applied cryptography I don't see what the fuck took 8 years to learn, and codemonkey crap really isn't that complex, yet most of them have this huge chip on their shoulder... (pun intended)
“Most people are other people. Their thoughts are someone else's opinions, their lives a mimicry, their passions a quotation.” - Oscar Wilde.
User avatar
Admiral Valdemar
Outside Context Problem
Posts: 31572
Joined: 2002-07-04 07:17pm
Location: UK

Post by Admiral Valdemar »

Out of programming and bio-chem, I'd hate to have to do a thesis in the latter. Having done a few years of programming and many more in a traditional science, the traditional one has far more complexity over simply learning how to get a command understood by a machine in any of the various languages. In fact, it helps to be able to code when going about cell signalling networks in order to produce a working model for some esoteric pathway.
petesampras
Jedi Knight
Posts: 541
Joined: 2005-05-19 12:06pm

Post by petesampras »

Admiral Valdemar wrote:Out of programming and bio-chem, I'd hate to have to do a thesis in the latter. Having done a few years of programming and many more in a traditional science, the traditional one has far more complexity over simply learning how to get a command understood by a machine in any of the various languages. In fact, it helps to be able to code when going about cell signalling networks in order to produce a working model for some esoteric pathway.
To do a thesis in computer science I'd hope you'd need to demonstrate a lot more than "simply learning how to get a command understood by a machine in any of the various languages". Sure, that would be adequate knowledge to write simple windows applications, but wouldn't a fairer comparison be something like efficient compiler or operating system design?
User avatar
Mad
Jedi Council Member
Posts: 1923
Joined: 2002-07-04 01:32am
Location: North Carolina, USA
Contact:

Re: Computer Science - why don't people 'get it'?

Post by Mad »

Darth Wong wrote:If we use the terminology that is used in other industries, the computer engineers are the guys who actually design computers. The computer technicians are the guys who program them.
There is a difference between "computer engineering" and "software engineering." Software engineering essentially involves designing and building the software that runs on the computers that already exist.

It's not real engineering, but it (if the rules are followed properly) is the most analogous thing to it that the software world has.

These kinds of distinctions sometimes feel necessary because there are a lot of programmers out there who don't understand any details of their craft. They don't understand data structures or algorithms, and so they can't build an effective system. But they call themselves programmers, and nobody who knows what he or she is doing wants to be associated with them.

As for the question at hand: I usually call myself a software developer. I clarify to "computer programmer" if I need to, but that usually does the trick.
Later...
User avatar
sketerpot
Jedi Council Member
Posts: 1723
Joined: 2004-03-06 12:40pm
Location: San Francisco

Post by sketerpot »

Admiral Valdemar wrote:Out of programming and bio-chem, I'd hate to have to do a thesis in the latter. Having done a few years of programming and many more in a traditional science, the traditional one has far more complexity over simply learning how to get a command understood by a machine in any of the various languages. In fact, it helps to be able to code when going about cell signalling networks in order to produce a working model for some esoteric pathway.
How does one do a thesis in programming? Computer science theses I've seen tend to fall into a few categories:

1. Fancy algorithms for doing something. They put loads of math in this.

2. "Hey, look what I made" -- probably the closest to what you described. It could be a compiler that does some new voodoo, or a design for an OS kernel that optimizes system calls at runtime (I saw this one, and it was brilliant), or something like that. You need to put a lot of thinking into this, not just a lot of coding.

3. Nigh-pure math.

I'm going to have to agree with Destructionator: "computer science" is a sucky name and you should probably advertise yourself as a computational mathematician if you're talking to people who don't already know what computer science actually is.
User avatar
Themightytom
Sith Devotee
Posts: 2818
Joined: 2007-12-22 11:11am
Location: United States

Post by Themightytom »

Firstly, I'm sat on a train drawing trees at the moment (well obviously not *right now*, but you get the idea) to attempt to work out a problem I'm working on, and getting strange looks from people, and secondly because I'm in the process of applying to Universities with my Computer Science degree, and am worried that my application is going to get chucked by people who don't understand what I've actually done.


So, why don't people get it, and what can be done about prior to the interview stage where you actually get a chance to explain that you've essentially been studying an area of maths, not cocking about playing games for three years?
1. if your applying for a university, you will be interviewed by people who know what you do unless its the most retarded university ever. if they don't understand what you do if you tell them either they won't be able to teach them, or you can't articulate yourself. bring a porfolio demosntrating your accomplishments (On disk, and a written summary of talking points) and try to talk to the head of whatever department you are trying to take classes in.

2. your sitting on a train doodling and whose giving you strange looks? You're probably not on stage, and nobody cares what you are doing, Anyone who has advanced knowledge of what they do probably gets a little frustrated explaining it all the time, taht doesn't mean its a systematic proble. I don't bitch when people say "Oh you're in social work? So are you like a democrat?"

"Since when is "the west" a nation?"-Styphon
"ACORN= Cobra obviously." AMT
This topic is... oh Village Idiot. Carry on then.--Havok
User avatar
Knife
Emperor's Hand
Posts: 15769
Joined: 2002-08-30 02:40pm
Location: Behind the Zion Curtain

Re: Computer Science - why don't people 'get it'?

Post by Knife »

Pezzoni wrote:This has come to mind for two reasons: Firstly, I'm sat on a train drawing trees at the moment (well obviously not *right now*, but you get the idea) to attempt to work out a problem I'm working on, and getting strange looks from people, and secondly because I'm in the process of applying to Universities with my Computer Science degree, and am worried that my application is going to get chucked by people who don't understand what I've actually done.

It seems that whenever you tell someone you're doing a compsci degree that they instantly:
a) Glaze over
Why wouldn't they? The name itself is very technical if not false advertisement. I glaze over in all sorts of issues above me, be a good little elitist and smile at the implied compliment.
b) Get scared (fair enough, there are some deeply, deeply weird Computer Scientists)
Fair enough, people often are amazed at my particular profession and don't understand how some one can do it (healthcare).
c) Decide that you do 'computers'
Not my fault (or people in general) if your job description is a total misinformation term. Perhaps when asked, you should apply a moniker that more closely relates to what you do when dealing with lay people.
If I had a penny for every time someone asked me 'how are your computers going?', or states 'this is Dan, he does computers' or, 'Dan does IT', I'd be a very rich man.
Perhaps you should have taken a couple classes in effective communication then if you can't get the basic theme of what you do across so that the people you speak to are not under a misconception.
The full rant is put better by someone from another site I visit:
Sounds like a pompous ass inflating his own ego to me.

So, why don't people get it, and what can be done about prior to the interview stage where you actually get a chance to explain that you've essentially been studying an area of maths, not cocking about playing games for three years?
Take some communication classes to learn how to effectively deliver a theme, especially a highly technical one, to people outside your field so they are able to understand it more, you pompous ass.

A Computer Scientist has as much to do with a computer as an Astronomer has with a telescope indeed. But we don't call them telescopologists. It is such a basic component on the very English you are using and your ego can't let you see it. If the official term is Computer Science, fine, but always be ready to add in 'mathematician' so those of us not in the field know what the fuck you're talking about.
They say, "the tree of liberty must be watered with the blood of tyrants and patriots." I suppose it never occurred to them that they are the tyrants, not the patriots. Those weapons are not being used to fight some kind of tyranny; they are bringing them to an event where people are getting together to talk. -Mike Wong

But as far as board culture in general, I do think that young male overaggression is a contributing factor to the general atmosphere of hostility. It's not SOS and the Mess throwing hand grenades all over the forum- Red
User avatar
Admiral Valdemar
Outside Context Problem
Posts: 31572
Joined: 2002-07-04 07:17pm
Location: UK

Post by Admiral Valdemar »

sketerpot wrote:
How does one do a thesis in programming? Computer science theses I've seen tend to fall into a few categories:

1. Fancy algorithms for doing something. They put loads of math in this.

2. "Hey, look what I made" -- probably the closest to what you described. It could be a compiler that does some new voodoo, or a design for an OS kernel that optimizes system calls at runtime (I saw this one, and it was brilliant), or something like that. You need to put a lot of thinking into this, not just a lot of coding.

3. Nigh-pure math.

I'm going to have to agree with Destructionator: "computer science" is a sucky name and you should probably advertise yourself as a computational mathematician if you're talking to people who don't already know what computer science actually is.
I was typing that message on the go and it was the only term that I could think of at the time. I suppose a simple coursework project would be a better descriptor, given the work.
User avatar
Durandal
Bile-Driven Hate Machine
Posts: 17927
Joined: 2002-07-03 06:26pm
Location: Silicon Valley, CA
Contact:

Post by Durandal »

Darth Wong wrote:If we use the terminology that is used in other industries, the computer engineers are the guys who actually design computers. The computer technicians are the guys who program them.
No, the guys who maintain the computers would be the technicians. They're around to make sure that the hardware keeps doing what it's supposed to be doing, replacing defective machines, etc. Programmers design entirely new systems and implement them in software, so they're not just "technicians". Sysadmins would be far more analogous to technicians than programmers would.

In any case, "computer science" is a misnomer. The nature of the study takes place in the same world that mathematics takes place in, where one can prove a postulate absolutely. But these days, I guess anything can be a science. If you want to formalize what computer science deals with, it is essentially the study of algorithms and how they can be classified.

The best description of a computer programmer is probably an "applied discrete mathematician". There is an empirical aspect to the craft (a lot of which is in performance and optimization), but that means that the field uses the same methods that sciences do, not that it is a science.

As to the engineering aspect, well, software engineering isn't really engineering. Engineering is applied science. Computer programming is more like applied math, so I guess you could call it "mathematical engineering". The overall point, though, is that computer science is an entirely different application of math. When math first came onto the scene, it was pretty much a tool to aid science. You could do pure math stuff, but it wasn't recognized as very applicable to anything. But then things like cryptography and computing came around which were very practical maths that never touched real world systems. The numbers stayed entirely within the abstract mathematical domain.

At the end of the day, what programmers do straddles too many different boundaries to fall into one kind of field. They can't be classified as just scientists, just engineers or just mathematicians. To be a good programmer, you've got to borrow a lot from all three. And a lot of it depends on exactly what you're doing. If you're designing operating systems (or parts of an operating system), you'll be doing a lot more of these kinds of things than some contractor who was hired to maintain and maybe update some company's PHP web portal.
Damien Sorresso

"Ever see what them computa bitchez do to numbas? It ain't natural. Numbas ain't supposed to be code, they supposed to quantify shit."
- The Onion
User avatar
Darth Wong
Sith Lord
Sith Lord
Posts: 70028
Joined: 2002-07-03 12:25am
Location: Toronto, Canada
Contact:

Post by Darth Wong »

Durandal wrote:
Darth Wong wrote:If we use the terminology that is used in other industries, the computer engineers are the guys who actually design computers. The computer technicians are the guys who program them.
No, the guys who maintain the computers would be the technicians.
Why? The guys who program CNC machines in heavy industry are technicians.
They're around to make sure that the hardware keeps doing what it's supposed to be doing, replacing defective machines, etc. Programmers design entirely new systems and implement them in software, so they're not just "technicians". Sysadmins would be far more analogous to technicians than programmers would.

In any case, "computer science" is a misnomer. The nature of the study takes place in the same world that mathematics takes place in, where one can prove a postulate absolutely. But these days, I guess anything can be a science. If you want to formalize what computer science deals with, it is essentially the study of algorithms and how they can be classified.

The best description of a computer programmer is probably an "applied discrete mathematician". There is an empirical aspect to the craft (a lot of which is in performance and optimization), but that means that the field uses the same methods that sciences do, not that it is a science.

As to the engineering aspect, well, software engineering isn't really engineering. Engineering is applied science. Computer programming is more like applied math, so I guess you could call it "mathematical engineering". The overall point, though, is that computer science is an entirely different application of math. When math first came onto the scene, it was pretty much a tool to aid science. You could do pure math stuff, but it wasn't recognized as very applicable to anything. But then things like cryptography and computing came around which were very practical maths that never touched real world systems. The numbers stayed entirely within the abstract mathematical domain.

At the end of the day, what programmers do straddles too many different boundaries to fall into one kind of field. They can't be classified as just scientists, just engineers or just mathematicians. To be a good programmer, you've got to borrow a lot from all three. And a lot of it depends on exactly what you're doing. If you're designing operating systems (or parts of an operating system), you'll be doing a lot more of these kinds of things than some contractor who was hired to maintain and maybe update some company's PHP web portal.
Frankly, it sounds like computer programmers just want to apply terms like "scientist" and "engineer" to themselves because they feel demeaned by the term "programmer", for reasons which are not clear to me.
Image
"It's not evil for God to do it. Or for someone to do it at God's command."- Jonathan Boyd on baby-killing

"you guys are fascinated with the use of those "rules of logic" to the extent that you don't really want to discussus anything."- GC

"I do not believe Russian Roulette is a stupid act" - Embracer of Darkness

"Viagra commercials appear to save lives" - tharkûn on US health care.

http://www.stardestroyer.net/Mike/RantMode/Blurbs.html
User avatar
Starglider
Miles Dyson
Posts: 8709
Joined: 2007-04-05 09:44pm
Location: Isle of Dogs
Contact:

Re: Computer Science - why don't people 'get it'?

Post by Starglider »

Darth Wong wrote:What a load of pompous bullshit. All he does is talk about how complicated computer programming can be. It doesn't change the fact that he's a computer programmer.
The essential difference between computer programming and software engineering is that software engineering is the design of a complete IT system, including requirements analysis, human-computer interface design, quality assurance (including reliability and performance guarantees) and cost/time planning. For small programs in undemanding environments the distinction isn't significant; a software engineer will function just like a decent programmer. For large software systems, the difference is night and day; you simply cannot build these without an experienced software architect at the helm (you can try, but you will get a train wreck). You cannot get the skills to do this job simply by studying and practicing programming a lot - I know plenty of good programmers who simply don't have the mental tools to architecture large systems, or design interfaces to maximise user efficiency rather than just look good.

It is true that 'software engineers' are not licensed to the same standard as most other types of engineer. This is something of a chicken-and-egg problem.

'Computer science' is of course something completely different. A lot of it does look like discrete maths, but if you look at papers that describe new algorithms most of them include empirical performance tests and comparisons as well as (sometimes instead of) big-O analysis. That looks pretty scientific to me.
User avatar
Straha
Lord of the Spam
Posts: 8198
Joined: 2002-07-21 11:59pm
Location: NYC

Post by Straha »

Because a lot of people who say they study Computer Science are nothing more than glorified IT-techs. And the average person, even the average intelligent person, will almost only meet Comp Sci folk who've gone into tech support or something similar and will rarely meet computer programmers or more 'pure' comp. sci. folks.

Also, I think, a fair bit of it has to do with how little Computer Science gets explored in school. People are given very basic training in Physics, Chemistry, Biology, etc. but only a very few actually do anything with computer science in school even these days. So most people have no clue about the more theoretical fields of computer science like they do, at least in theory, with physics and/or chemistry.
'After 9/11, it was "You're with us or your with the terrorists." Now its "You're with Straha or you support racism."' ' - The Romulan Republic

'You're a bully putting on an air of civility while saying that everything western and/or capitalistic must be bad, and a lot of other posters (loomer, Stas Bush, Gandalf) are also going along with it for their own personal reasons (Stas in particular is looking through rose colored glasses)' - Darth Yan
User avatar
Durandal
Bile-Driven Hate Machine
Posts: 17927
Joined: 2002-07-03 06:26pm
Location: Silicon Valley, CA
Contact:

Post by Durandal »

Darth Wong wrote:Why? The guys who program CNC machines in heavy industry are technicians.
A CNC machine is basically meant for a single purpose. You're not going to design something new and interesting that runs on one. You're solving the same problem over and over again: how to tool a given part. There's a difference between writing a script and writing a modern application or system.
Frankly, it sounds like computer programmers just want to apply terms like "scientist" and "engineer" to themselves because they feel demeaned by the term "programmer", for reasons which are not clear to me.
I've never gotten the sense that programmers are "demeaned" by the term. I honestly think it's just a result of academia labeling everything under the sun a "science" and therefore making things conform to that model. (Hell, "parks and recreation management" is a science these days.) I don't really know of any programmers who refer to themselves as scientists, to be honest. "Engineer" is pretty common, at least here in the valley. "Developer" is another one. And even among the people out here, when we talk to a mechanical engineer or electrical engineer, we'll often say, "Oh, you're a real engineer."

But let's be honest, the term "engineer" was overloaded well before computing came onto the scene. The guy who drives the train is referred to as an engineer, for example. But I think, in the software world, the distinction between an engineer and a programmer rests in what exactly you're doing. You'll see people who design operating systems and APIs referred to as engineers more often than third parties writing applications for those operating systems. For example, third party "developers" come to WWDC and talk to Apple "engineers". The distinction is actually pretty formal in the Apple and Microsoft realms.
Straha wrote:Because a lot of people who say they study Computer Science are nothing more than glorified IT-techs.
The "IT guy" at your company almost certainly does not have a computer science degree. He likely has a degree in information systems or a Cisco certification or something.
Damien Sorresso

"Ever see what them computa bitchez do to numbas? It ain't natural. Numbas ain't supposed to be code, they supposed to quantify shit."
- The Onion
User avatar
sketerpot
Jedi Council Member
Posts: 1723
Joined: 2004-03-06 12:40pm
Location: San Francisco

Post by sketerpot »

Darth Wong wrote:Frankly, it sounds like computer programmers just want to apply terms like "scientist" and "engineer" to themselves because they feel demeaned by the term "programmer", for reasons which are not clear to me.
Occasionally some programmer will write a pretentious rant about how he's not a "programmer", he's a "software engineer". I haven't seen the same thing with "scientist", because everybody knows damn well that computer science isn't a science.

Actually, I've noticed that some universities (mine included) are trying to introduce a new major called "software engineering", in addition to computer science and computer engineering. The stated rationale is that they're trying to make a "learn to program computers real good" major that injects a healthy dose of professionalism and engineering indoctrination.

In practice, I suspect that they're just trying to attract people who want decently-paying programming jobs without the hassle of learning a bunch of math or how to actually make a computer from transistors on up. The only person I know who switched to software engineering was a computer engineering major who didn't want to have to take second-semester physics because he didn't think he's ever need it. To be honest, it looks like a half-decent idea that got hijacked by people trying to fake respectability.

So, how about some concensus? Here's a list of labels:

Computer science: bad name, actually a kind of applied math.

Computer engineering: a branch of electrical engineering that got big enough to be its own field. They make computers, and can also program them. Has a lot of overlap with EE.

Software engineering: programming plus some stuff about project management. Doesn't sound like real engineering to me.

Computer programming: exactly what it says. Very common label.

Anybody want to dispute this?
User avatar
Zac Naloen
Sith Acolyte
Posts: 5488
Joined: 2003-07-24 04:32pm
Location: United Kingdom

Post by Zac Naloen »

The "IT guy" at your company almost certainly does not have a computer science degree. He likely has a degree in information systems or a Cisco certification or something.
Definitely agree with that, no one in the support dept has a degree, at least not one relevant to IT (one has a degree in economics). We're all industry accredited by Microsoft/Cisco which ever's most relevant to the job..

The only people with degree's are the developers.
Image
Member of the Unremarkables
Just because you're god, it doesn't mean you can treat people that way : - My girlfriend
Evil Brit Conspiracy - Insignificant guy
User avatar
Darth Wong
Sith Lord
Sith Lord
Posts: 70028
Joined: 2002-07-03 12:25am
Location: Toronto, Canada
Contact:

Post by Darth Wong »

Durandal wrote:
Darth Wong wrote:Why? The guys who program CNC machines in heavy industry are technicians.
A CNC machine is basically meant for a single purpose. You're not going to design something new and interesting that runs on one. You're solving the same problem over and over again: how to tool a given part.
So? There's a lot more applied science in optimally programming a CNC machine than there is in programming computers.
There's a difference between writing a script and writing a modern application or system.
The complexity of the program has no bearing whatsoever on the question of whether the task should be called "programming".
I've never gotten the sense that programmers are "demeaned" by the term. I honestly think it's just a result of academia labeling everything under the sun a "science" and therefore making things conform to that model. (Hell, "parks and recreation management" is a science these days.) I don't really know of any programmers who refer to themselves as scientists, to be honest. "Engineer" is pretty common, at least here in the valley. "Developer" is another one. And even among the people out here, when we talk to a mechanical engineer or electrical engineer, we'll often say, "Oh, you're a real engineer."

But let's be honest, the term "engineer" was overloaded well before computing came onto the scene. The guy who drives the train is referred to as an engineer, for example. But I think, in the software world, the distinction between an engineer and a programmer rests in what exactly you're doing. You'll see people who design operating systems and APIs referred to as engineers more often than third parties writing applications for those operating systems. For example, third party "developers" come to WWDC and talk to Apple "engineers". The distinction is actually pretty formal in the Apple and Microsoft realms.
The fact that computer programmers and software developers aren't the only people who abuse the terms "engineer" and "scientist" doesn't mitigate the fact that they're doing it.
Straha wrote:Because a lot of people who say they study Computer Science are nothing more than glorified IT-techs.
The "IT guy" at your company almost certainly does not have a computer science degree. He likely has a degree in information systems or a Cisco certification or something.
Hell, a lot of the older IT guys just bluffed their way into the job. I've met guys like that.
Image
"It's not evil for God to do it. Or for someone to do it at God's command."- Jonathan Boyd on baby-killing

"you guys are fascinated with the use of those "rules of logic" to the extent that you don't really want to discussus anything."- GC

"I do not believe Russian Roulette is a stupid act" - Embracer of Darkness

"Viagra commercials appear to save lives" - tharkûn on US health care.

http://www.stardestroyer.net/Mike/RantMode/Blurbs.html
User avatar
Mad
Jedi Council Member
Posts: 1923
Joined: 2002-07-04 01:32am
Location: North Carolina, USA
Contact:

Post by Mad »

Darth Wong wrote:The complexity of the program has no bearing whatsoever on the question of whether the task should be called "programming".
So anyone who can make a VCR stop flashing "12:00" or set it to record something in advance is a programmer?

Of course, as stated earlier, I prefer the term "Software Developer" to refer to the scope of my profession. One wouldn't refer to the programming done by a CNC tech as software development. The skillset between a good CNC programmer and a good software developer is very different.

Trying to distill either down to just "programming" leaves out a lot of domain-specific skills.
Later...
Post Reply