Hello. First off, let me say that if this has been brought up before I apologize.

I'm currently a junior at the University of Colorado and am majoring in CS with a minor in business. I was an ECE major and switched to CS due to the fact that I just didn't care about how the computer works. However, after taking some more classes, the process of computers and electronics have grown on me. I am considering switching majors to EE and getting a minor in CS.

Let me say this, I enjoy programming. There is nothing more exciting [well, almost nothing :)] then seeing your code or program run successfully. Seeing all that hard work come together is just a great feeling.

Here's my main issue. I have heard many different views/opinions on what the industry is looking for. I heard that the industry prefers EE majors over CS for programming because of the fact that EE majors know more about how computers work and that's what companies what.

Now I see this to be true for programming in assembly or for hardware. Even programming for firmware. But software? That just doesn't make any sense.

I would like to develop software/games for a living. I wouldn't mind doing firmware/hardware either. Can CS majors program firmware/hardware? Or is it EE/ECE exclusive?

Any help from the people involved in industry or just any info at all regarding this topic will be greatly appreciated.

Again, if this post doesn't belong here, please move it to the proper place. Thanks.

>But software? That just doesn't make any sense.
Why not? A good understanding of the machine can improve code quality even in high level applications. As a good example, the system cache is becoming more and more important in high level data structures, and if you don't program with it in mind, your program will probably run more slowly. If you don't know how the machine works, you can't write code that works with the cache.

>I have heard many different views/opinions on what the industry is looking for.
Screw the industry. Do what you enjoy. :)

>Can CS majors program firmware/hardware? Or is it EE/ECE exclusive?
If you're capable of doing it, you can do it. I write system software and application back-ends for a living, but I'm neither a CS major nor an EE major.

TheGroove,

I think your statement...

Now I see this to be true for programming in assembly or for hardware. Even programming for firmware. But software? That just doesn't make any sense.

...might be a little inaccurate. Although you are very right about the true use of assembly, the underlying principal is to understand the mechanics of the hardware. This knowledge/understanding will help you learn to program (in practice and learning) small and incredibly efficient assembly programs. Taking and applying this “know-how to the object-oriented realm, where I’m sure you’re headed, will be very beneficial. Within the corporate structure of meeting code/program specifications and time restraints, “good code doesn’t always reflect the true question: How does the computer handle it? The user may benefit from a seemingly good program, however, quite the contrary to the true programmer. Even the misconception about “good algorithms has caused some confusion about whether or not a program is truly efficient. Again, how does the machine handle it?

Most of the time you won’t run into a problem of good vs. bad code ramifications/consequences. The answer sometimes is to just relax and wait until the next newest chip comes around, then it will be efficient. I don’t agree with this at all.

My point?; learn assembly, and learn it well. Assembly forces you to make 2 entities happy with your code, the user and the machine, and I like peace.

J_

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.