CS / EE / ME / BME people -- whyfor hardware/software split?

Mundane & Pointless Stuff I Must Share: The Off Topic Forum

Moderator: Moderators

Post Reply
Lago PARANOIA
Invincible Overlord
Posts: 10555
Joined: Thu Sep 25, 2008 3:00 am

CS / EE / ME / BME people -- whyfor hardware/software split?

Post by Lago PARANOIA »

I can understand why the layman would have a false impression of the fact that 'software' and 'hardware' with respect to digital computing is composed of two different processes, but why does the computer industry seem to maintain this split up to and including paying software engineers lower salaries than hardware engineers or 'pure' computer scientists for that matter?

If you take anything more than remedial computer programming classes, the instructors will emphasize very strongly that there's nothing weird or magical about hardware. A good class (usu. embedded systems, but I've seen upper-level ME and BME classes that do the same) will even have lab assignments which lets you see and manipulate exactly what happens when computer programming gets translated to non-computer work for vice-versa. So what gives?
Josh Kablack wrote:Your freedom to make rulings up on the fly is in direct conflict with my freedom to interact with an internally consistent narrative. Your freedom to run/play a game without needing to understand a complex rule system is in direct conflict with my freedom to play a character whose abilities and flaws function as I intended within that ruleset. Your freedom to add and change rules in the middle of the game is in direct conflict with my ability to understand that rules system before I decided whether or not to join your game.

In short, your entire post is dismissive of not merely my intelligence, but my agency. And I don't mean agency as a player within one of your games, I mean my agency as a person. You do not want me to be informed when I make the fundamental decisions of deciding whether to join your game or buying your rules system.
User avatar
RobbyPants
King
Posts: 5201
Joined: Wed Aug 06, 2008 6:11 pm

Post by RobbyPants »

I imagine it's because you can only fit so much material into a 4 year program. I majored in CS and took mostly programming and math classes, with just a handful involving networking and architecture. The IS (Information Systems) program was mostly networking and business classes with a bit of programming. The CE (Computer Engineering) program was a bit of programming and a lot of engineering classes.

At the end of the day, I have no use for any of the business classes or engineering stuff.

It's kind of like why you have some people that design cars, some that build them, and some that repair them.
ishy
Duke
Posts: 2404
Joined: Fri Aug 05, 2011 2:59 pm

Post by ishy »

Because they are two different things.
Gary Gygax wrote:The player’s path to role-playing mastery begins with a thorough understanding of the rules of the game
Bigode wrote:I wouldn't normally make that blanket of a suggestion, but you seem to deserve it: scroll through the entire forum, read anything that looks interesting in term of design experience, then come back.
sabs
Duke
Posts: 2347
Joined: Wed Dec 29, 2010 8:01 pm
Location: Delaware

Post by sabs »

I do Client/Server Engineering for a Bank/EvilCreditcard company.
There's actually a picture of our credit card with a pitchfork and hell flames somewhere on the internet :) we're that bad.

Technically I build and support windows servers, domain controllers, and do image management for all of our workstations. But the amount of credit card/collections specific business knowledge I have had to pick up in order to do my job properly is REALLY high.

I know things about bankruptcy and charge off collection process i wish I didn't. But I've needed to learn them to do my job properly.

IT is not always about programming. And even when it is, if you have no idea what your business does, you can't really give them a workable solution that you can support.
fectin
Prince
Posts: 3760
Joined: Mon Feb 01, 2010 1:54 am

Post by fectin »

ishy wrote:Because they are two different things.
This.
Vebyast wrote:Here's a fun target for Major Creation: hydrazine. One casting every six seconds at CL9 gives you a bit more than 40 liters per second, which is comparable to the flow rates of some small, but serious, rocket engines. Six items running at full blast through a well-engineered engine will put you, and something like 50 tons of cargo, into space. Alternatively, if you thrust sideways, you will briefly be a fireball screaming across the sky at mach 14 before you melt from atmospheric friction.
User avatar
Ancient History
Serious Badass
Posts: 12708
Joined: Wed Aug 18, 2010 12:57 pm

Post by Ancient History »

Yeah, not to put too fine a point on it but the different specializations exist for a reason. There is some considerable overlap between software and hardware in certain jobs, but I know plenty of electrical engineers that couldn't code "Hello World" and plenty of software engineers that wouldn't know ohms from assholes.

A big part of it is how tightly the software is tied to the hardware. I'm working on test equipment right now where it is absolutely essential to select the right pin and the right voltage or I'm going to fry a circuit card; somebody coding a Java applet generally doesn't need that level of technical detail.
cthulhu
Duke
Posts: 2162
Joined: Fri Mar 07, 2008 7:54 pm

Post by cthulhu »

The gap between a Java coder and an electrical engineer skillset wise is immense, though both will write software and know what bytecode is!
Lago PARANOIA
Invincible Overlord
Posts: 10555
Joined: Thu Sep 25, 2008 3:00 am

Post by Lago PARANOIA »

So why the gap in pay, then? Yes, the specializations are different but the basic underlying skillset is not.
Josh Kablack wrote:Your freedom to make rulings up on the fly is in direct conflict with my freedom to interact with an internally consistent narrative. Your freedom to run/play a game without needing to understand a complex rule system is in direct conflict with my freedom to play a character whose abilities and flaws function as I intended within that ruleset. Your freedom to add and change rules in the middle of the game is in direct conflict with my ability to understand that rules system before I decided whether or not to join your game.

In short, your entire post is dismissive of not merely my intelligence, but my agency. And I don't mean agency as a player within one of your games, I mean my agency as a person. You do not want me to be informed when I make the fundamental decisions of deciding whether to join your game or buying your rules system.
User avatar
Ancient History
Serious Badass
Posts: 12708
Joined: Wed Aug 18, 2010 12:57 pm

Post by Ancient History »

If you mean "Detail-oriented and proficient with advanced math and related concepts of engineering practice and design," then yes. If you mean familiarity with and ability to utilize basic or advanced circuit theory, software architecture, etc. - well, no, they don't necessarily have that in common at all.

With regards to the fundamentals, it is entirely up to the school and program how much Computer Science or Computer Engineering overlaps with Electrical Engineering - and that for that matter, how much Electrical Engineering overlaps with Mechanical Engineering or many of the other engineering disciplines and degree programs. It used to be EEs at my school had to take Statics and Thermodynamics and MEs had to take basic circuit theory - now, they retain the option but are not required to do so. Likewise, CS majors rarely delve into the applied physics of semiconductors or electromagnetics, and EE majors very rarely take any of the advanced programming concept classes (or much programming at all past C). So, you have graduates of Bachelor of Science in Engineering programs coming out with different skillsets, with perhaps less overlap than you would think - and even within a major there's considerable variation with regard to specific areas of interest; a particular EE might take more classes wireless engineering, power engineering, circuit design, etc.

EE has a reputation of being one of the more difficult majors, but I think that's primarily because it is so broad, and I don't think really impacts how much we're worth outside the university. As to why there might be a salary discrepancy - which hasn't been my experience in practice, but then I'm fairly new in the workplace yet.
User avatar
Blasted
Knight-Baron
Posts: 722
Joined: Wed May 26, 2010 5:41 am

Post by Blasted »

Ancient History wrote:well, no, they don't necessarily have that in common at all.

EE has a reputation of being one of the more difficult majors, but I think that's primarily because it is so broad, and I don't think really impacts how much we're worth outside the university. As to why there might be a salary discrepancy - which hasn't been my experience in practice, but then I'm fairly new in the workplace yet.
My experience in teaching these courses is that EE & CE had a higher failure rate than CS, and this at the time when a CS degree was seen as a license to print money. EE was always considered more difficult.

The difference in degrees is hard to understate. The only reason a course co-ordinator could say that hardware is not magical, is that a damn good engineer has designed it. I've been unfortunate enough to work with lesser hardware and magical is a reasonable description of some of the outcomes.

I think that the best reason for the difference in mid level salaries would be that the CE doesn't always have the luxury of being able to patch a product when something fouls up. It's worth paying the wage, to avoid the liability.
User avatar
RobbyPants
King
Posts: 5201
Joined: Wed Aug 06, 2008 6:11 pm

Post by RobbyPants »

Lago PARANOIA wrote:So why the gap in pay, then?
Probably because one group is considered more valuable and/or is more scarce than the other. There are a lot of four-year degrees that don't even compare when you look at the effort you put in or the money you get out. I don't see why this should be any different just because the two majors in question involve computers in one way or the other.

Lago PARANOIA wrote:Yes, the specializations are different but the basic underlying skillset is not.
What underlying skill-set are you talking about? Lol-computers? If so, that's so broad as to be meaningless. If not, how are they really overlapping?

The closest I ever get to dealing with hardware at all is when I build my own personal computer on my own time. I don't deal with any of that low-level architecture in my job at all. The only overlap I can see between me and an EE or CE major is lol-computers.
fectin
Prince
Posts: 3760
Joined: Mon Feb 01, 2010 1:54 am

Post by fectin »

I know of one system (mounted in the passenger compartment of vehicles) which would literally explode under certain conditions. The root cause was that the display screen was too big (on the order of 2.4" vice 2.2"), and so allowed microwaves in at a resonant frequency of one of the power supply's wiring loops, and shorted the battery.

It is very difficult to do that with software. In the few cases where that is possible, the software folks are quite well paid.
Vebyast wrote:Here's a fun target for Major Creation: hydrazine. One casting every six seconds at CL9 gives you a bit more than 40 liters per second, which is comparable to the flow rates of some small, but serious, rocket engines. Six items running at full blast through a well-engineered engine will put you, and something like 50 tons of cargo, into space. Alternatively, if you thrust sideways, you will briefly be a fireball screaming across the sky at mach 14 before you melt from atmospheric friction.
User avatar
RobbyPants
King
Posts: 5201
Joined: Wed Aug 06, 2008 6:11 pm

Post by RobbyPants »

fectin wrote:It is very difficult to do that with software. In the few cases where that is possible, the software folks are quite well paid.
Good point. From my understanding, if you need something done in assembly code for efficiency, those programmers tend to be well paid, too.
name_here
Prince
Posts: 3346
Joined: Fri Mar 07, 2008 7:55 pm

Post by name_here »

CS majors are actually pretty well-paid. The difference between the two is pretty small in pay terms.

So far as there is one (according to a site I checked, four thousand anually for entry level positions), I imagine part of it is that it's not really that hard to learn how to write terrible yet functional code. Therefore, you don't actually need someone with a CS degree if you want to do software but don't care if it's any good. But if you want a chip, you need someone with an EE or CE degree.

And yeah. Assembly language coders command huge salaries because there's not very many of them and fuck Assembler. Presumably people who are skilled at writing high-efficency Java command similar salaries if they find a job that wants efficent code that people can actually maintain.
DSMatticus wrote:It's not just that everything you say is stupid, but that they are Gordian knots of stupid that leave me completely bewildered as to where to even begin. After hearing you speak Alexander the Great would stab you and triumphantly declare the puzzle solved.
Emerald
Knight-Baron
Posts: 565
Joined: Sun Jul 26, 2009 9:18 pm

Post by Emerald »

name_here wrote:CS majors are actually pretty well-paid. The difference between the two is pretty small in pay terms.

So far as there is one (according to a site I checked, four thousand anually for entry level positions), I imagine part of it is that it's not really that hard to learn how to write terrible yet functional code. Therefore, you don't actually need someone with a CS degree if you want to do software but don't care if it's any good. But if you want a chip, you need someone with an EE or CE degree.
Speaking as someone who is graduating with a CS degree in 4 days and who spent the last 8 semesters tutoring people in various programming classes, it's generally the Computer Systems or IT or similar majors who do the whole terrible-but-functional code thing. All of the IT, ECSE, etc. majors here only have to take an intro programming class and a data structures class, with the option to take some CS-for-dummies electives that are basically math or management courses with a CS veneer, so I've run into plenty of people who think that just because they can program Hello World they can be a CS major but are quickly disabused of that notion. A lot of people who think they want to do CS but find out they can't make the cut switch into those easier majors, and a lot of people who start out in those majors but find themselves taking some "real" electives switch into CS. Same thing with the engineering people: a lot of them start off all "look at me, I know physics, I can do EE!" and switch majors after their first programming or circuits course, while some CS people switch to engineering after they find they like their engineering electives.

It seems to me that the difference between EE and the other "hardware majors" on one side and CS and the other "software majors" on the other is just a matter of focus. There's plenty of cross-pollination going on in most of the classes I've taken, and at least at my school you can switch majors very easily, so which one you go with really depends on which higher-level electives look more interesting. My EE and CS friends who have jobs lined up were offered comparable salaries, and they all have a good grasp of both hardware and software; I've taken enough courses in both hardware and software areas that I could have done a CE or EE MS as easily as my CS MS. Honestly, the main reason I went with CS is that, of the two thesis advisors I was choosing between, the professor in Integrated Circuits Design is a massive dick to his grad students while the professor in Parallel Computation actually responds to email sometimes. ;)

The majors in the middle that dabble in software and hardware but are mostly IT and management are probably the ones getting the low-paying software engineering jobs that Lago mentioned and that name_here searched for. The people who are software-focused enough for high-end CS jobs or hardware-focused enough for high-end EE jobs can skip over the entry-level jobs and land something cushier (like I did :biggrin:), but since the software engineers who suck at life and get promoted into management are more visible, it just seems like CS majors in general get the short end of the salary stick.
Post Reply