Hacker News new | past | comments | ask | show | jobs | submit login
Electrical Engineering vs. Computer Science (greenspun.com)
39 points by ssp on April 8, 2010 | hide | past | favorite | 48 comments



Hardware solutions can be quite beautiful in their simplicity. HP's first product was a precision oscillator. To get the necessary precision, they needed a negative feedback mechanism to stabilize their oscillation circuit. They used a lightbulb. As the circuit drew more current, the lightbulb element heated up, causing its resistance to go up and thus acting to reduce the current through the circuit.


Using a light bulb as a non-linear element in a circuit dates back at least to Western Electric and its 1915-era Panel switch: http://en.wikipedia.org/wiki/Panel_switch

(By the way, if you're near Seattle, interested in electronics and history, and can spare a Tuesday morning, you might enjoy going to visit the Museum of Communications in Georgetown: http://www.museumofcommunications.org/ . I volunteer there when school's not in session.)


I believe some audio compressors work like this.


This is just zero-insight flamebait.


Exactly this is stooping incredibly low. Here's a different story: A king called an electrical engineer and a computer scientist together and gave them a task best suited to an electrical engineer (something which the computer scientist very well realized). He then tried to execute the computer scientist for the inferior design. But the computer scientist ran away and started a search engine and provided people with cryptography. These helped in getting information to the people who realized that being ruled by a king who executes people is stupid so they overthrew him and built a democracy of entrepreneurs where engineers and computer scientists worked together on cool products for the mutual gain of all. It was a vibrant society with free speech, which unfortunately meant there were a lot of stupid Internet trolls who had to be ignored. Luckily computer scientists designed systems of information aggregation where the trolls could be downvoted from serious forums of discussion. Unfortunately those left without the power to downvote had to try to find amusing ways to get other people to do it.


Hold on a minute - that isn't fair. I am an Elec Eng who works in CS. Had to go back and learn stuff (who doesn't). And I can't blame the king for executing a CS for bad inheritance based OO design.


We (CS or SE) do tend to do things more complicated than they should be. This has been recognized by many. There is a very interesting article (I think by Martin Fowler, but I can't find it ) about why you can make any aspect of software flexible. But you can't make every aspect flexible. Making one aspect flexible has the cost of increasing the complexity of the software; making every aspect flexible increases the complexity to the point where the software cannot be changed any more. There is also the YAGNI principle, which is clearly broken by the CS engineer on the king's story. http://en.wikipedia.org/wiki/You_aint_gonna_need_it


This is not a good example of the two professions. Give the CS person hardware constraints, and he or she would design an equally good system.

+ Both people here are fundamentally asked to solve a hardware problem. Of course the CS person does not know how to design complicated hardware, so of course he or she will just stick in an arduino and write code ...

+ The CS person easily also could have said "it's a toaster" and then would have an almost identical solution to the EE (or vice versa). Keep in mind that EEs are limited because of manufacturing expenses ... again, we seem to be penalizing the CS majors because they would ignore hardware manufacturing costs!

+ Hardware is redesigned every few years to accommodate needs, just as software is.


EEs write code too.


I've always been a little interested in this. How competent are EEs at general programming? This is a serious question -- the only EEs I know that program wrote some really crappy assembly code for a robotics project I helped on (don't even get me started on their C).


I'm a EE in a day job. I design processors. I write programs in hardware descriptive languages such as Verilog and Object Oriented languages such as SystemVerilog. I write Perl, Shell scripts too.

Every day, I write code.

I build websites in the part-time too. I write all PHP, CSS, MySQL, Javascript on my own, and build beautiful websites like http://shopalize.com.

Every night, I write code too.

So trust me, we're competent.


Cool, thanks for the info. I was sincere in my question. :) I guess I could wonder how many CS students could actually code too...


So trust me, we're lot competent.

Ironically, this needs editing.


" > So trust me, we're lot competent.

Ironically, this needs editing."

Agreed ( I didn't say it) but so does this

"I saw some EE student C code once"

(from your earlier comment) ;-)


Sorry, but that's a valid sentence. Thanks for displaying your, "lot competent."


You say "I saw some EE student C code once" is grammatical?

How about "I saw some American woman English speak once"? ;-)

I wonder who is "lot competent" here!

Look, it is all right to make minor mistakes in grammar, especially if you are not a native speaker (the "lot comment" guy seemed Indian).

I was just pointing out your hypocrisy in using that as a marker of competence and ask for editing, when you write more ill structured sentences yourself. He who would be a Grammar Nazi should first write grammatically correct sentences.

Relax and let live.


    You say "I saw some EE student C code once" is grammatical?
    How about "I saw some American woman English speak once"? ;-)
    I wonder who is "lot competent" here!
Your example is wrong because "code" in my sentence is a noun, not a verb as you assumed.

Is English your 1st language? Thanks for showing us more "lot competent."

Hint, if you're wrong, but mistakenly try to come back and tell me I'm wrong, I'm going to let you have it with both barrels.


You are wrong, as it happens - if not strictly (though I am not sure it is strictly correct) then in usual use.

EDIT: if you're using it as a noun, by the way, you are wrong - I think student needs to be possessive. e.g.

"I saw some EE students C code once"

But that's immaterial - why are we attacking people's grammar. It's irrelevant to the discussion!


"if your'e using it as a noun, by the way, you are wrong - I think student needs to be possessive."

Exactly. And you need an apostrophe to indicate that if you want your readers to parse the sentence properly.

"I saw an EE student's C Code once" (student is singular) or " I saw some EE students' C code once" (students are plural). I've seen some grammar books recommend an extra s anyway for the latter case as in "I saw some students's C code once" though I suspect that is unused these days. [1]

"why are we attacking people's grammar. It's irrelevant to the discussion!"

This.

Speaking or writing 100% grammatically correct English (assuming such a beast exists, which is a separate discussion) or making a typo here and there is irrelevant to someone's competence as a programmer.

Using minor grammatical errors to judge people as incompetent is, at the least, foolish.

I don't think strcredzero is incompetent because he missed an apostrophe or wrote an ill formed sentence. But by the same token I don't think Aditya is incompetent as a programmer (which was the topic under discussion btw - EE students being good programmers or not) just because he said "lot competent". Give the guy a break.

[1] From Strunk's "Elements of Style"

"Form the possessive singular of nouns with 's.

Follow this rule whatever the final consonant. Thus write,

Charles's friend Burns's poems the witch's malice

This is the usage of the United States Government Printing Office and of the Oxford University Press."


Who ever said anyone was a bad programmer? This is the same irony as the "qualaty" initiative from Dilbert. At that point it was an ironic and relevant quip. It's you guys that turned it into ego bashing -- while displaying grammatical incompetence even as you incorrectly criticize my grammar.

Incidentally you're still wrong. Ambiguously parse-able English sentences are still grammatically correct if one of the possibilities is correct.

Oh, and you assumed student was a noun when it's an adjective in your analysis. Sheesh! Is English your 1st language? "Student code" where student is a noun acting as adjective is a commonly accepted pattern of use in North America and Britain.


"you assumed student was a noun when it's an adjective in your analysis. Sheesh! "

Well that reflects on how well you structure your sentences as a writer doesn't it?

Why take the attitude of "my sentence looks completely ill structured but it has multiple possible parses and I know one of them is right and I leave you to figure out which one vs writing clearly in the first place and meanwhile I'll "ironically quip" on some other fellow's minor errors vs sticking to the argument at hand"?

"Is English your 1st language?"

I already said it wasn't. And I don't need to have it as my first language to show you your sentence structure is sucky. Everyone who has English as a first language doesn't write it well. Conversely some people who have English as a their n-th language speak or write well. So what?

" "Student code" where student is a noun acting as adjective is a commonly accepted pattern of use in North America and Britain."

And "lot competent" is Indian English. again, so what? Who said adherence to "North American English" is the metric of programming competence of EE students (which was what Aditya was talking about) and you explicitly pointed his sentence as "ironic"?

I quote

"Aditya:- So trust me, we're lot competent.

StrcredZero: Ironically, this needs editing.""

It is hard to read your "ironically" as anything other than "you are not as competent as you claim and your sentence structure reveals it" . What was the "irony" here?

Bigotry and irony are different.

But, whatever, I tire of this bickering and this thread is overlong. I rest my case and yield you the field and the (dubious) victory! [Exit thread]


It is hard to read your "ironically" as anything other than "you are not as competent as you claim and your sentence structure reveals it" . What was the "irony" here?

Apparently you have a penchant for jumping to conclusions, then behaving defensively when your shortcomings are pointed out. Thanks for revealing yourself so cheaply and easily.


But that's immaterial - why are we attacking people's grammar. It's irrelevant to the discussion

It was just an ironic quip in the first comment, and topical there. Subsequently, I was merely reacting to the erroneous counterattack that I was wrong.


"It was just an ironic quip in the first comment, and topical there. Subsequently, I was merely reacting to the erroneous counterattack that I was wrong."

I didn't say you were wrong, leave alone attack you (at least no more than you attacked Aditya - Mine was an "just an ironic quip" too, just like yours ;-) )

I said if Aditya's sentence needed editing for bad structure/incorrect usage of English (as you implied in your coment), then so did yours by the same token. I guess you just missed the "irony"!


The (ironic) problem is that you assumed the wrong part of speech. (Twice? I can't be bothered to keep track.)


"The (ironic) problem is that you assumed the wrong part of speech"

The real irony is that you write as ill structured sentences as you accuse other people of doing and you don't see it yet. If you can't write clear, uambigous sentences in your ( I assume) native language and have to resort to "but ambigous entences are all right if you can parse it some way" as a defence, it reflects on you as a writer.

In comparison, the "lot competent" phrase Aditya used is much more clear and unambigous in communicating what he intended, though it isn't quite the Queen's English. The real irony here is that you think you are doing a better job!.

But, yeah whatever! May you ever be so ironic ;-). I am done talking to you on this topic! Cheers!


In comparison, the "lot competent" phrase Aditya used is much more clear and unambigous in communicating what he intended, though it isn't quite the Queen's English. The real irony here is that you think you are doing a better job!.

Wow, you aren't a native English speaker, are you? I've never had someone mistake the phrase "student code" until now.


"Your example is wrong because "code" in my sentence is a noun, not a verb as you assumed."

It doesn't matter. You can still make unparseable sentences using code as a noun.

"I saw some EE student C code" (where code is used as a noun) is just as wrong as " I saw some kids Basketball play" (where play is a noun). You need something more to craft an unambigous sentence.

"I saw someone noun-used-as-adjective+noun" is wrong anyway.

To use your logic "I saw someone C code" == "I saw someone English speech". (speech is a noun)

"Hint, if you're wrong, but mistakenly try to come back and tell me I'm wrong, I'm going to let you have it with both barrels."

I am terrified ;-).

"Is English your 1st language? "

no, but is it yours? ;-)


Wow you really are a prolific unconscious irony generator! (Left as exercise to the student.)


Depends; because EE is a wide field.

I know EE's who are mainly physicists and ones who are mainly programmers, for example.

On my course, generally speaking, those of us interested in digital electronics were competent programmers. Ironically most of us were better than our CS peers (but only because cs at our Uni was not a great course)

Don't forget their programming will have been taunt working on pics - so programs will tend to be terse and efficient (die to memory constraints) and employ lots of "hacks" (again due to memory/compiler constraints). Luckily I learned c before these habits :-p


They probably say the same thing about your circuit design


The difference being that circuit design isn't part of the CS curriculum and most programmers wouldn't claim to know circuit design.


I agree that most wouldn't, but it depends. Over here (Uruguay), if you want to be an IT Engineer, you do have to learn to design circuits (and lots of other stuff like advanced calculus that the state deems required to give you a recognized "Engineer" degree).

On the other hand, if you just want to code, you can study some Programming or Information Systems career and never learn advanced calculus or circuit design (I ended up with a degree in Information Systems myself, but I started the Engineering career and took a course on circuit design)


Basically the same here in Sweden, Computer Engineering and Computer Science are two different degrees, and computer engineers have to learn hardware as well as software.


Actually, it is covered in some courses like "NAND to Tetris." It should be covered.


I saw some EE student C code once. It seems there was a class-wide notion that indentation was optional, so everyone just left it out as a shortcut.


I saw this kind of code more than once :) I was a TA for programming 101 for engineers. And yes, every time I asked a student to fix up the indenting before I could figure out why their program was broken they thought I was being difficult just to spite them. But you can't judge people just learning to program too harshly.


I'm a TA for such a class right now, and you're absolutely right. No matter how often I tell them to indent, they never get in the habit. Which is particularly galling considering that the text editor they're using has damn near foolproof auto-indent; it would literally take less than two seconds to fix their code, and yet they don't do it.

"EE code" is another way of saying "probably total crap code". With some exceptions, of course. (And don't get me started on the people who cheat their way through most classes.)


> But you can't judge people just learning to program too harshly.

This just sounded much more cynical than it's probably meant.


Nice catch. The intended meaning was the "good" one.


Exactly. The EE and the CS major could both have added the kitchen sink to the spec. If the spec is already there, then both may produce similar solutions, depending on their hardware ability.


"this looks like something i've seen before. i can get you a better one by tomorrow." mark it up by a factor of 2 to buy a toaster someone else built and sell it for profit. assure the king you can massively produce the toasters, but you must retain the licensing rights to sell to other countries. you buy the rights to the toaster and make millions.


As an engineer; the engineering solition presented here is very poor. It ignores the problem domain almost entirely and focuses on only one minor (and hard to quantify) variable.

The cs solution is banal too - but it appears thisis down to the writers bias.


Lots of assumptions are being made that might not apply to the kingdom. No one asks if people want toast done on one side or both. Does everyone even have electricity? The best solution might even be wire racks to put over gas burners.


Software "engineering" != CS. I know Greenspun knows that, and I know the CS label is just for the purposes of the joke, but still. Java has already been harmful enough to CS. :-p


Greenspun didn't write it, he just posted it on his website.


The earliest I can trace it back to is this post to comp.lang.ada in 1994:

http://groups.google.com/group/comp.lang.ada/msg/7a96d45d5cc...

I like how he opens with "I felt like wasting bandwidth" so here's a funny story. Little could he imagine it would become #1 link on Hacker News, 15 years later :-)


I'm a software guy, and I'd just use a bimetallic-strip thermostat with an adjustable spring, whose tension is controlled by the knob.

Off to the patent office...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: