One of the more interesting things to learn over the course of my career has been just how expansive the field I am in is from the standpoint of what you can do. It is far more expansive than I ever imagined, especially as a college kid 20 years ago.
In college, the Department of Electrical and Computer Engineering at Northeastern allowed for three different concentrations at the time I went: electrical, computer and power systems. At that time, I figured that alone said a lot about the distinctions within the field. Few students went for the power systems option, and I don’t suspect many changed from the default option of electrical since there was not a big difference between that and computer – it was basically a distinction without a difference, and if you wanted to go in a certain direction, you let your technical electives dictate that more than anything.
That, however, only began to distinguish how wide the field is for professionals within.
Start with electrical. There are control systems, digital hardware, analog hardware (yes, it still very much exists!), microprocessors, interconnects, and more. Some of these break down further – microprocessors are often designed to specialize in certain applications, as one example. There are various programmable devices that come into play like FPGAs, and one might design chips or PCBs that include much more than chips.
Now we go to software. You have C and C++ developers, for one, and they range from low-level right down to the hardware to not needing to know a thing about the underlying hardware. You have Java developers, C# developers, and web development is a world unto itself. There are Linux and Windows developers, and within there, you have low-level, higher level and graphical user interface. There are compilers, linkers, CAD programs and many other tools that are developed for use by electrical engineers and fellow software engineers. Overlaying all of this are the software architects, although every engineer should think and approach their work like an architect in my view. (I want to be clear that software engineering involves more than just writing code.)
Within both areas, you have things like communications, networking and DSP. DSP encompasses both, with DSP chips and even microprocessors that have DSP capabilities, and software used to implement various algorithms. (In fact, at one time it was a big deal that a microprocessor might have some of what you would find in a DSP chip, but that novelty has long worn off.)
And power systems is another world entirely.
A company with a full suite of hardware and software products often employs a wide variety of engineers. Some cover more bases than others, especially if they have a bigger/deeper product line.
All of this points to part of the difficulty in finding a job in this field. Included is well-meaning people who are not in the industry trying to help out by sharing a job they find, only to learn the job requires different skills – i.e., an embedded software engineer like myself hearing about a web development job. It’s not unlike how there is a distinction between IT and engineering (especially software engineering), and one that I am admittedly a bit annoyed about when a survey or form does not make in the choices they present for the industry in which one works.
In the end, though, there are probably more pluses than minuses to this. It means one can enter the industry and go in many directions. Changing directions is possible as well, though it isn’t trivial – if I wanted to go from what I’ve done to becoming more like a Java or web developer, I would have to ramp up my skills in those areas (I’m not entirely new to them, especially Java) or find an employer I can convince to take a chance on me with a background in them but no solid work experience.
There’s a big world out there, and that holds true in my field as well as the larger world. It’s bigger than I ever imagined when I was younger. The possibilities are many, both in terms of directions you can go and the potential.