views:

225

answers:

9

I have taken enough cs courses to know that I'm not interested in hardware. I'm much more interested in programing for the web.

Now, I'm nearing the end of my degree, and I'm presented with the option to take some higher level EE courses than the intro I took freshman year. Are there any real-world-job-boosting reasons I should take more EE course? Any courses in particular that people think would be helpful?

+4  A: 

If you want to work with embedded systems, knowing a little bit of EE doesn't hurt. Especially when you realize that your software "bugs" are not caused by your programming logic but by insufficient current.

Mike
Sounds familiar.
Taylor Leese
+5  A: 

I don't know if this'll help you, but I actually started off doing an Electrical Engineering degree (with a plan to do a double Elec Eng/Comp Sci degree). It started off great and we were learning all sorts of interesting stuff: chemistry, mathematics, a bit of computer science, physics.

But then, once I hit 3rd year, I had a major problem: the subjects were so boring! An entire semester learning about transistors! Now sure, transistors are very important in this day and age, but the practical tutorials were torture! Apply a voltage here, measure the response there. Apply a slightly different voltage, measure the response. Apply a slightly different voltage, measure the response. Ad infinitum!

My marks took a nose-dive, I stopped attending tutorials and things were looking pretty bleak. Eventually, it got to the point where I just dropped the EE component to my degree and went with a 100% CS degree. I was much happier, and to be honest it never really affected my job prospects once I got out.

Of course, it's entirely up to you where you want to go. There are some cool things to learn in an EE degree and Electrical Engineering is actually a pretty diverse field. But that was just my experience anyway :)

Dean Harding
I was really interested in EE too, but it didn't click for me. The "EE for CS majors" was fine, interesting, all of that stuff, but once we got to analog signal processing I was just, "huh?" despite actually wanting to know and learn about that stuff...
dash-tom-bang
"Apply a slightly different voltage, measure the response. Ad infinitum!" I might suggest you encountered a bad teacher or possibly a bad EE department. That kind of "repetition teaching" (aka lazy) is no longer the rule...but I feel for you and you make a good point.
Rusty
+7  A: 

Just my opinion, but if you want to do web work you're probably going to be so far removed from the hardware that it won't really matter.

Knowing more EE will probably make you a better programmer. So will learning Lisp, Prolog, Python, and Smalltalk. If you're interested in seeing how strong you are at calculus, EE might be useful, but otherwise it's probably not necessary. It's unlikely any web programming jobs are going to care about an EE minor (insofar as its absence on your resume/CV will not be noted).

I've been working on "embedded systems" (aka "video game consoles") for almost 14 years ago (just one week to go 'til!) and I don't think my failure to grok deep EE has held me back. I won't be doing any (hardware) system design, but that's not where my passion is so...

dash-tom-bang
+3  A: 

Some of the high level EE courses I took were in Signal Processing which was quite interesting. Starting from simple signal generation and analysis to complete control systems, complete with all applied differential equations! I found that side of EE to be almost as fun as micro controllers.

Since you have the CS, I'm assuming you have a fair amount of math, the Signal Processing classes could pose a fun challenge that, who knows, might help land you a neat job in wireless communications :)

Robb
+5  A: 

I'll go ahead and be the dissentor of the group.

If you know for a fact that you want to do web programming, don't waste a second of your time at anything below the assembly level, and limit the time you spend there. Your primary concern should be honing your algorithmic skills, data modeling techniques, and security. Each of these topics is sufficiently huge to keep you busy for a LONG time to come. Each one is a necessity.

If you aren't sure you want to do web programming but may enjoy something closer to systems programming, then I would recommend that you do take the EE course(s)

By the way, this is coming from someone who lives embedded programming.

San Jacinto
+1  A: 

If amused or interested, sure. Just that amplifiers and theoretical electronics take long time to not even understand completely, and physics and electronics are quite a way away from logic and software engineering which relates more to a softer theme like natural language, marketing, usability, psychology or artificial intelligence. Read AI book and very little is physics and electronics and more logic, probability and reasoning. A distributed logic may have close to the opposite behavior than a physical: Load a physical load physically and more you load will decrease performance while a distributed network eg torrents increase performance with more load.

LarsOn
+1  A: 

I would say that EE is fun, but you can take those courses anytime you want on iTunes U. Most schools let you audit a course or two for free once you graduate as well. Don't worry about challenging yourself with an EE course when you can take more relevant courses to web programming.

Also, think about the skills that you will need in a web programming job. Those are the things you should be concerned about. Here is the advice I received that I think holds true today; if you really want to make yourself more salable in the web-programming-market.

  1. Pick a language you like to program in, or a new one you want to learn.
  2. Find an open source project, preferably a big one, in that language.
  3. Once you have the program running, pick something about that app you want to change.
  4. Once you've changed it, test your changes to be sure they work.
  5. Find something more difficult to change, or add a feature that doesn't exist.

This is something that most web programmers deal with all the time. Regardless of if you work in an IT dept. or for a software company, you will be expected to modify giant projects that you didn't write. This is a skill not often covered in CS coursework.

So, perhaps you should just take a fun CS class that doesn't require a lot of work. You'll enjoy it more, and you'll have time to prepare for the job hunting game :) .

Hope that helps.

Stephano
+1  A: 

I have taken enough cs courses to know that I'm not interested in hardware.

Based on that statement, plus that my first bachelors is in Electrical Engineering, then I'm going to recommend that you don't bother with any EE classes unless they tickle your fancy and sound real interesting.

I just don't want to waste my money on an elective that, while interesting, won't help my career at all.

Also, based on my experiences working in "the real world" then I'd say that you will probably get far more bang from taking a minimum of one class on public speaking, and a couple of business school classes (finance and economics). I recommend public speaking as you will find that you will stand up in front of coworkers to make presentations. I recommend the b-school classes as many new techies try to make or promote decisions that are counter to what is "good for business" (also if you decide to go into business for yourself, a class or 2 in b-finance should cut way down on the learning curve).

Tangurena
More programmers (or technical people in general) need to learn how to communicate with the non-autistic and how to actually understand business decisions.
JUST MY correct OPINION
+4  A: 

I'll stick my head in the flames:

Art.

Not art appreciation. Not a lecture class. Not visual design for web sites.

Find a class that is all practical: life drawing, sculpting, etc. Get some color under your finger nails, pour some bronze.

This will help you to see patterns in systems (without resorting to math), to visualize structure and express your ideas visually. The world is full of smart, technically trained people that cannot draw a graph others can read (don't get me started on Power Point).

Humans have been using visual communication much, much longer than language or math. Learn something about why and how.

Rusty
+1 for a unique perspective that doesn't cross the border into Crazytown.
JUST MY correct OPINION
+1 for having a daring answer; begging to be downvoted by hords of former EE majors :) .
fakeit