Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Levels of difficulty in Electrical and Computer Engineering

  1. Jul 31, 2011 #1

    I had a discussion with a group of professors recently about the different disciplines one can master in electrical and computer engineering. There seems to be a prevailing notion that the closer one works to the physical layer, the harder his job is. Most of my professors seem to believe that.

    When I asked why, the answer was more or less that electronics are much harder to design and troubleshoot than software because of a lack of tools that software people have. For example, when troubleshooting a circuit design burned on an fpga (I have no experience in these so forgive me if anything sounds strange) a slight delay in an input signal, or a small shift in its bandwidth above or below what is expected by the circuit could cause the circuit to behave completely differently than expected. Because it takes time to burn a design on an fpga and run it, testing to see what goes wrong may take a lot of time, and this simple bug could take days to figure out. Also, analog IC design and RFIC are considered the most difficult by most, due to the heavy background in mathematics and physics required. Applied math (probability, statistics, calculus, discrete, linear algebra etc and more advanced, information theory, control theory, signals and systems, etc) is considered the easiest, because it deals with abstract ideal forms of the real systems.

    Is this really the case? Before this conversation, I was of the idea that the difficulty of a subject is not a matter of the subject itself, but how deep knowledge one has about it. Now, I'm not sure, since acquiring deep knowledge in a field is varying in difficulty from field to field, but once you learn something, doesn't it stop being difficult?

    Do you actually believe there is such a hierarchy of difficulty in electrical and computer engineering? Moreover, do you believe an electronics engineer could do the job of a software engineer with less training required than the other way around?

  2. jcsd
  3. Jul 31, 2011 #2
    I rather find that everybody is working hard all the time. Yeah, it goes like this
    Its difficult to make a descent working analog circuit fully debugged in 1 week. Its easy to make a small working software in say 1 week. But its still difficult to make 2 working software in 1 week. So, everybody is trying to push things to the limit of their capacity and everybody feels that equally difficult.
    I hope you got what I meant.
    I think it all boils down to how hard should you work to make ## money. That determines what is hard.
  4. Jul 31, 2011 #3
    I actually have degrees in both electrical and computer engineering. For me (and for most in my school), electrical was the more difficult of the two. The difference was just a few classes: differential equations, electromagnetic theory, and discrete math.

    BUT, now that I have a job which does have some of both, and having interviewed for many jobs, I can tell you the computer engineering/CSCI education did not prepare me nearly as well.

    In EM theory, the struggle was just to understand and apply the equations. I found the CSCI and CE problems to be rather trivial, and were not graded upon real-world standards. There were students who would write the most inefficient algorithms for things, and still get A's. That would never fly in the real world.

    I can't explain it all, but I think some of it comes down to grading. CE had a lot of programming, and frankly the professors did not have the resources to truly grade a program on things such as elegance, robustness, and efficiency. On the other hand, a 2-hour EM problem might boil down to a single answer that can be checked in a few seconds.
  5. Aug 1, 2011 #4
    I got my B.S in Comp. Engineering w/ a minor in Comp Science. For me, digital design and programming was more intuitive and easy to understand (i.e. intellectually tangible) than Electrical Engineering. However, I am now pursuing my M.S. in Elec Eng. I find it much more difficult, for me anyway, in part due to the increased applicability and usage of mathematics, which is in direct relation to the analog nature of things. Especially the varied disciplines of mathematics (I cannot speak fully to this as I have not yet received my M.S.) Not to trivialize digital logic, but the discipline for me seemed straightforward (I do not like using the term easier).

    Perhaps thinking of it in terms of abstractness helps. In Comp Eng, we use/study, lets say, a DFF. A nice digital building block. Now go look at a transistor-level schematic for a DFF, and explain the functionality of all components via some time slice w/ respect to state/inputs, etc. In other words, I view it as what "layer" one is working within. Go lower, and you start blending EE with the Physics folks. With that being said, each discipline has its place and purpose, but having a broader scope doesn't hurt. Hope that contributes to your query.

    One last thing; do not get hung up on (not saying you are) that SW engineers program, EE's do xyz, etc. Programming skills benefit any engineer. Example:
    SW Eng: C/C++/Java, add dozens/hundreds more languages, even ones below
    Comp Eng: Any or all the above, with possible emphasis in embedded, Verilog/VHDL
    EE/Physics: Matlab/Simulink, Maple, Mathematica - any or all the above
  6. Aug 2, 2011 #5
    You're familiar with the Lumped Equivalent model, yes? The abstraction of resistors, capacitors and inductors, which don't actually exist - they are only a model that mostly works really well for a particular set of problems. There is really only Maxwell's Equations and Quantum Mechanics (Schrödinger's Equation) - i.e. the pure physics. And these could be taken to Grand Unified Field Theory, like maybe String Theory, eventually.

    Well digital itself (1's and 0's as circuit levels) is a Lumped Equivalent model approximation/simplification of the Lumped Equivalent analog model using in linear circuit analysis (ohms and reactances of linear components)

    Analog lumped models are at large relative wavelength dimensions an approximation of Distributed models (s-parameters and return losses) using in microwave/RF.

    Microwave/RF distributed models are approximations of Maxwell's Equations (well, the 4+2 partial differential equations). At each level, you reach a point where the approximation fails badly and you have to dig deeper into a more physics-real model.

    At small dimensions, the Lumped Equivalent analog model also breaks down into quantum mechanics which definitely more hairy. Most all semiconductor devices in microelectronics ICs are modeled by a hybrid of classical Lumped with quantum corrections. But as dimensions shrink more and more quantum effects come to dominate. Currently quantum tunneling dominates gate leakage currents in MOSFETs and are major brick wall for Moore's Law. We're on the cusp of nanoelectronics where even Ohm's Law fails in device models - channel resistance in transistors can only be determined as a design parameter accurately by solving Schrödinger's equation on the device or by directly measuring it!

    The digital view of the world is pretty disconnected from reality in this respect because it's a very highly abstracted model representation of what's really going on. So, yeah, it gets hairier as you get closer to real devices and higher performance levels. Digital is actually all analog, analog is all microwave/optics and microwave/optics is all Maxwell's equations.
  7. Aug 2, 2011 #6
    Thank you all for your answers!

    Yes I understand. But does this indeed apply in the real world? I mean that employers may still expect 2 working circuits in a week from e-engineers and 2 working software from sw-engineers regardless of the intrinsic difficulty of the job. That would tend to populate the EE jobs with people who are smart enough to do it. And because they are "smarter", the expectations an employer has from them rises, and thus it becomes something of a positive feedback situation (a self-fulfilling prophecy I believe is the right term?) which tends to make the job of an e-engineer more difficult.

    Now, that's just speculation, I don't really know what the expectations of each job are in the real world, but it seems plausible.
  8. Aug 2, 2011 #7
    Yes, I find EE classes more difficult generally as well. The CE problems I also found trivial, but time consuming since they require a lot of boring programming. I always struggle to make the best of my code though, although no one is going to grade me for that. People require that it "just works" and if you do some crazy optimization, no one will really care. Indeed I remember sometime I was given to do a network file system that supports 2 or 3 clients. When a remote user needs to open a file, the file can be retrieved directly from the server ( slow) or from some cache if it was retrieved earlier (fast). The program's efficiency is affected by the efficiency of the cache so I tried to use the best algorithms for it. Regardless, those that graded the work didn't care since they only required me to use a cache no matter the algorithms used to discard packets or fill it. That's understandable in a way, if it is only required of you to get a conceptual idea of how an NFS works. But in a real system with many simultaneous clients the efficiency of the cache is crucial!
  9. Aug 2, 2011 #8
    Yes that's a nice way to put it.

    From the experience I have with certain professors, those that are working on some level of abstraction seem to have a wider understanding of all the levels above their own. So the closer one works to physics, the wider ones knowledge is about all of the above levels (not an expert in everything of course, just more knowledgeable) and seems able to work on one if need arises. Maybe that's a coincidence though, I only know professors from my department!
  10. Aug 2, 2011 #9
    This reminds me of this OpenCourseware lecture:

    I'm still in doubt though. Even if the digital view is far above what really happens, why does that mean that it is less difficult to work there? Some computer architecture systems for example are indeed very intricate and complex and require a lot of creativity to be designed. Its like playing a different kind of game, with different rules, but people seem to believe that some games are easier than others because their rules are derived from the rules of other games. Sure a player of a "lower level" game can understand how the rules of the other games come to be what they are and could play them with some level of competence, but does that make these games easier than his/hers? Doesn't it require just a qualitatively "different" kind of mindset or creativity to play them?
  11. Aug 2, 2011 #10
    I am an EE student and I can say that I fear the programming and software side of the EE program. For me, the designing and applications of e-mag theories and circuit designs of become second-nature but if you ask me to use a simple Matlab program then you will find me in the corner, crying.

    That being said, I had an electrical lab where we were working with computer communications and an FPGA, and my lab partner and I could not get the thing to work. We had the lab professor come by and look at the setup and our code and even he was puzzled as to why it would not work, and this professor is so old that he was around when they discovered electricity. We finally had the department head for EE come and check out our lab and he could not figure out how it worked either. Everyone in the lab was surprised that both professors, two of our best professors in the whole college, could not get the lab to work properly. After two lab periods of the professors playing with everything, our department head just stuck a capacitor in our circuit to clear out some noise and low-and-behold the lab was working. From the very beginning my lab partner and I had done everything correctly but no one could see because there was too much noise in our setup.

    From that story, I can tell you that the physical application of EE is for more difficult than the software side of things. But I'm still scared to use any type of software programmer out there.
  12. Aug 3, 2011 #11
    Hi, I have a MSc in System on Chip which is both electrical engineering and computer science.
    In my oppinion computer science and electronic engineering is difficult in different ways so its hard
    to compare the two. But one is not more difficult than the other for sure, maybe if you think one is more booring than the other you will think it's more difficult. But I can agree with that it's harder if you look at it how long it takes from the drawing board to a finished product.

    For electronic engineering such as designing a chip, i.e I made an AD-converter with succecive approximation. It has a digital part and a analog part to it. The analog part was a comparator and a DAC which had the difficulty of sizing the transistors for better performance etc (more physics involved). And the digital part was more logical thinking and the challenge there was to design it with as few transistors as possible to optimize it for area (make it small) and low energy (more transistors more switching) (math and logical thinking). This relativly small digital part took a very long time to design because you have to build everything from scratch, transistors, doping and everything, and not to speak of is how to place the transistors on the chip to optimize it for area. (exactly the same functionality on an FPGA would take a couple of hours to design and implement).

    This is why I like more digital design on FPGA and software programming, it takes alot less time from the drawing board to a finished design. To compare my AD-converter project it took the same amount of time to design a DSP processor and write firmware, linux driver and a software application exept I was alone and for the AD-project we were 4 people working on that. The downside is you cannot optimize it like you do with an ASIC. The size of the FPGA is what it is and also the energy consuption can not optimized as much. Still you can optimize it so you can buy the smallest and cheapest FPGA :)

    So the conclution in my oppinion is that it is equally difficult but in different ways. Programming hardware on FPGA gets the job done faster, but is less optimized for speed, area, energy and even money if you want to sell alot of chips.

    Its like comparing writing software in assembler or C++. C++ you will be finished by breakfast and you can sell you application by lunch. Then the compiler parse it into assembler language and there migth be alot of redundant code which makes the program slower or use more memory. If you write the same program directly in assembler and write it in a way that is optimal for the hardware you use, you can gain processing speed and saving memory allocation which in turn results in that your program can run on cheaper systems (slower CPU and less RAMs).

    I belive that if you want to compete on the market today you need to design application specific hardware or software which are optimized to make it faster and cheaper than an off-the-shelf general CPU which has more hardware than you actually need.
  13. Aug 6, 2011 #12
    Ok people, thanks for helping me make up my mind.

    I conclude that the difficulty of a subject of study in ECE is not really a matter of the subject itself, but rather of the effort one is willing to put and the requirements a project has. So I think that saying "electronics is more difficult than software" is meaningless. It depends on what each project is about.
  14. Aug 6, 2011 #13
    I was an engineer and the manager of electronic engineering for close to 30 years. I started out as more a firmware and software engineer and then to hardware digital engineer and then to high speed analog, bi-polar analog IC design, FPGA etc. Towards the end, I got into RF design. Now I am not working and I still spend about 15 to 20 hours a week studying electromagnetics, PDE, antenna theories. This is my experience:

    1) Software, progamming:
    Easiest is Programming, software to learn and get into the field. You pretty much need a strong does of common sense to get into the field. BUT the field is very dynamic, always new. You have to keep learning. Also headache is you always work in group environment. It is very easy to make mistake because there are so many "variables" to keep track. Debugging is very difficult because one small little thing can cause error and you constantly have to go up and down, down and up the codes to look for the little things, keeping track of all the variables.

    To top it all, you almost always work with a group of people. When you integrate the big program, things almost always don't work and then everybody get defensive and fight starts. It is a constant headache. I was so into the programming until I wrote a time share( slicing) control firmware in 1981. I did it, but it was like a constant headache( physically). I change my emphasis right after that.

    2) digital hardware engineering including FPGA:

    This is in a lot of ways similar to software. Just require a more knowledge. Still a good does of common sense and some study. Big headache is the field change so fast, every little new technology call for new protocols, eg, Firewire is totally different from USB and others. Once the technology is out of style, your experty is wasted and you have to learn new things again. Also you tend to have to work with more people, not nearly as bad as software but still headache.

    3) RF microwave

    This is the hardest to get into. I spend a lot of years studying. BS degree don't even come close to give you enough knowledge to do it. You have to go deeper than the undergrad EM, PDE to even get started. I don't even know RFIC so I can't comment on that. You need all the undergrad EM to even get started on designing transmission line distribute element circuits.

    I have a lot of engineering EM books including Ulaby, Cheng, Popovic, Schwarz, Hayt. but I end up had to study Griffiths "Intro to Electrodynamics" to understand more in this topics to get ready for the antenna that I am currently studying. It is a long and winding road full of obstacles.

    BUT the rewarding thing is it does not go out of style. You learn it once and you always got it. Things change very slow, what you learn from years ago still useful. It is the utmost difficult field to get in, but once you are in, life get easier. You almost always working alone, not much argument. A good RF engineer is always in demand particularly digital circuits are getting higher and higher speed and it become analog and rf.


    This is just my opinion. They are all hard, it is like you either pay now or you pay later. RF need a lot of overhead, but once you are in, life gets easier. When you are young, learning is easier, but when you have a family, your brain is going down hill, keep learning new things can be very hard. You can easily be obsoleted if you are in software and hardware. Where is for RF, it'll take you a lot....I repeat.....A LOT of heart and soul, a lot of midnight oil to get into, but it is almost like experience comes with age and the better you are, the more valuable you become. So choose your poison.
  15. Aug 7, 2011 #14
    This is because the professors never work in real world. They concentrate on the theory, but never thought of the real life situation. As a practice engineer, this usually can be spotted in minutes. When I hire engineers, I gave some very simple test and I was stunned that graduates have no clue on things. FPGA and processor stuff is easy already, wait until you deal with high speed analog and rf, it is a different world. As speed goes up, pcb layout become more and more part of the circuit and design. I layout most of my boards because pcb designer don't know anything about the intricate of the parasitic circuits.

    See if you can conquer all the parasitics, the circuits given in the books actually work!! But if you have no idea in the real world and just build a circuit, it almost won't work unless it is very slow circuits. That's the art of electronics. And that's the reason why I find RF some fascinating, nothing is what it seems.
  16. Aug 8, 2011 #15
    That was very comprehensive yungman, thanks! A question though. Why is it that RF/microwave engineering changes slow?
  17. Aug 8, 2011 #16
    RF is mostly about modulation and demodulation that involve impedance matching for max power transfer. You still use passive components like capacitors and inductors ( in lump or distributed form). You still use power transistors for power amp. The change in the last so many years are from Bi-Polar transistors to more exotic transistors. But the amp is mostly the same.

    As modulation format change, the requirement change, but components still looks the same. Through the years, more discrete transistor replaced by ICs, but inside is still very simple, the matching technique is exactly as with transistors. It takes a lot of effort to learn the matching technique, you need very strong EM knowledge even to get started, using smith charts for stability and max power transfer............That never change from the day when people start transmitted signal into the air to at least 5 years ago when I left the industry!!!!

    I am still studying antenna, math and into advanced electrodynamics everyday for about 15 to 20 hours a week for my own interest. This is by far the hardest subject in EE bar none, there is no comparison. I have been digital hardware design for many years, you cannot even compare the two. Particularly when digital speed goes up, you have to start worry about RF. Notice the field of "Signal Integrity" engineer appear in the last few years. Those are RF in the easy form. The digital guys are so afraid of RF and they need help from RF people. Then they have the high speed communication like SONET type of fiber optic link that I was into for a little while. It is another easier form of RF. The use is more and more popular.

    Also, because it is so difficult, most students stay away from this, just struggle through the EM and move on, that's the reason a good RF engineer should be easier to find a job. The problem is whether you have the tenacity and the discipline to endure the process of learning. It is a long hard road, not like simple things like FPGAs, it only took me 3 weeks to learn the Quartus programming those Alteras. The programming is like any software langauge, if you know one langauge, only take you two to three weeks to learn the second one. In no time, you can be programming FPGAs.....and I am talking about big programs, not as simple decoder or simple replacement of simple logics.
  18. Sep 3, 2013 #17
    I am an electrical engineer but I believe I am also an amateur computer scientist because of just the things that I do require a lot of computer science too such as interfacing a circuit to the computer. Interfacing a circuit to a computer is a sentence but that can be a whole degree program in itself. Apart from EM, transmission media, information theory, analog, digital and data communication, control systems, analog and digital electronics and system design, power electronics, electrical machines, power systems etc etc which were part of my undergraduate degree I had to take classes in computer architecture and organization, microprocessor and micro-controllers, data processing etc.
    However the nice part of the thing is that all the courses are related. Its not that you they are biology or chemistry. A solid foundation in digital systems from PLAs to FPGAs will help a lot when you see them in action in microprocessor courses. However we did no courses in OS and Software Engineering.
  19. Sep 4, 2013 #18


    User Avatar
    Gold Member

    Actually there are a few major differences between hardware engineering and software engineering. There are tendencies, not hard facts.

    1. hardware engineering tends to be a more constrained space. Process speeds, component specifications, Interface requirements, all hard limits constraining the design. There are parallels in SW design, but it isn't as intense. hardware engineering needs to balance more variables because of the lack of flexibility. You are working with hardware, and there are limited choices that need to be balanced creatively.
    2. hardware engineering needs to get it right the first time since turns are long and costly. This requires an intense focus on testing and evaluation that many SW engineers leave to the customer. Hardware engineers simulate simulate simulate.
    3. The hardware design toolset is more constrained. At its worst your job is to figure out how the tool designer wanted you to do what you are trying to do, and support can suck. It's kind of an Adventure game (especially digital IC design).
    4. Hardware engineers can and will tweak and tune forever until stopped by the schedule. SW engineers tend to get it done and move on.
    5. SW has more flexibility - a virtual universe can be created as required. But, the SW has to work within the constraints of the HW, which often was designed before the SW was started. Still, it has more flexibility in the long run.

    Modern digital HW design requires basic SW skills to work with the tools (TCL, Perl, Python, Verilog in its various forms, etc). Analog design, not so much.

    If you are a free thinker that likes creating reality in a virtual vacuume then SW design is a good bet.
    If you are very detail oriented and like solving (pounding your head against) highly constrained puzzles then HW design is the choice.

    I'm not saying one is harder than the other, just different. Because if done well they are both hard enough to keep you learning.
  20. Sep 5, 2013 #19


    User Avatar
    Science Advisor
    Gold Member

    No. But I do think that a given persons interests, strengths and personalities may make them better suited for particular specializations.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook