I continue to pursue my holy grail of career change. As per older threads I have interests in engineering, software engineering and sciences. It seems my local university now has a computer engineering program that looks appealing to me. I need help with the following questions:
I seem more excited to learn about software design than hardware (even though it does interest me). However I like the breadth of learning in the computer engineering program. There is about seven computer science classes, and I can always further my computer science knowledge through online training, whereas I don’t think i can in computer engineering. Do you think computer engineering will give me a good foundations in software engineering as well?
What possible careers could I receive from these prospective degrees? Who could I end up working for?
I like the creativity involved with software engineering, is there creativity in a computer engineering degree?
What is the pay scale difference upon hiring? What is the hiring outlook? (generally speaking.)
Which would serve me better if I wished to obtain a biomedical engineering masters?
What do you see as the pros and cons to each? For me, the largest concern is that I would need to go to school longer for the computer engineering degree (4 years vs 21/2) and the cost.
I know I have to choose what fits me best, but hearing other opinions really helps guide my own. Thanks for your honest input
Don’t choose until you have to. There’s likely enough overlap in the lower level classes that you can take a few and see what they’re like before you have to commit to one or the other.
That said, if your ultimate goal is to get into biomedical engineering, you’d be much better served by going after a degree in mechanical or electrical engineering. Trying to get there through anything else is a goofy plan.
I have a computer engineering degree, and I do software engineering. Think of CompE as a marriage of digital HW EE and Computer Science.
I have a very unique talent with this that I can do software easily, but also design hardware to run it; I very often have to do the physical interfacing of an embedded processor module to the outside system. FWIW.
If your goal is Biomedical engineering, why not get into a BioMed program? Otherwise, pick an engineering major and do a dual major in biology, preferably pre-med.
ETA: Nothing stops a ME or EE from working in a Biomed arena. In fact, a EE or CompE with a strong background and talent for signal processing will go a long way on their own.
Back when I was in school, a CS degree involved both. My PhD was a compiler for microcode, part of Computer Architecture, and I’ve worked in developing software tools for hardware designs.
They have diverged quite a bit since then. Besides the fundamentals of what makes a computer operate (which you hardly need in software engineering any more) learning one will not give you a good basis for the other.
There are a lot more software engineering jobs than computer engineering jobs. The IEEE Computer Society is 95% pure software, which frustrate us few hardware types still there. I don’t know about money, but I think finding a software job is easier.
I’d advise you taking classes in each, and seeing which you prefer. Computer engineering puts you at the mercy of the natural world, while software is purely artificial. You may prefer one arena or the other. If you do take the computer engineering route, though, learn some software. Very few computer designers these days can program worth a damn, and I spend a lot of time producing capabilities the packages we use cannot do. Excellent job security.
Career wise, the degrees are essentially identical. Most jobs just advertise for BS in Computer Science, Software Engineering, Computer Engineering or equivalent. Get the one that lets you take the courses you most want to take.
Computer science is definitely not the equivilent of computer engineering, and arguably not software engineering. Computer science should be a very mathematically-oriented, largely theoretical curriculum; most working computer scientists are not typically great programmers in the sense of producing servicable code, any more than a theoretical mathematician could work as an actuaty or industrial statistician.
A degree in software engineering definitely gives a wider bredth of options (both geographical and across industries) but they’re also a dime a dozen, and a lot of software houes have been known for chewing up and spitting out software engineers as basic programmers and mid-level managers, to be dispensed with when the latest programming fad comes along. There are a whole host of experienced Java mashers competing for the dwindling number of jobs in core Java development. Software is also an easy thing to outsource on the cheap, even if the product isn’t as well-tied together as you’d like from an integrated product team. I personally think knowing hardware engineering is more valuable, although there are fewer companies that work directly in hardware development, and it is easier to build up skill in software or embedded programming from a hardware background than vice versa.
You also appear to be comparing an associates-level degree in software to a bachelor’s degree in computer engineering, which is not really an apples-to-oranges comparison. The associates degree basically buys you five to ten years of industrial cred before you are depricated by the newest fad; a bachelor’s degree in software engineering focusing on system architecture or a computer engineering degree will give you a more rigorous foundation of fundamentials that will be applicable regardless of changes in programming languages, styles, or even generational leaps in hardware. Voyager can speak to this in more depth I’m certain, having worked through at least a couple of major changes in the computer industry, but having strong fundamentals and working as close as you can to the bleeding edge of new development is the key to a long and varied career.
As for supporting a biomed masters, either (as a bachelors degree) will give you the fundamentals to be capable of going to grad school, but both will require that you take some additional bio and biochem prereqs, which is no big deal as a lot of engineering, science, and math studens going into the biomed and bioengineering field do. Having some embedded systems design and programming experience, however, may help in terms of career options as there is a lot of embedded systems in medical equipment. (Embedded systems use compact, lightweight, real-time operating systems like that used in your cell phone or personal appliances; embedded systems for medical equipment obviously also have to be highly reliable and robust.)
Whatever you choose, good luck to you in your future endeavors.
Are computer engineering/software engineer seperate degrees? When I was in school (10 years ago) we had a computer engineering program, nothing called “software engineering.” I thought software engineer was just a title that gets bestowed upon some computer engineers. Therefore, in my experience, computer engineering = software engineering.
Computer science, on the other hand is somewhat different from computer engineering. I’ve heard that a computer engineering degree is more useful than computer science, as jobs that require the specific skills of computer science are pretty few and far between. Thus, most CS majors end up doing jobs more suitable for CE majors.
The hiring outlook and pay for someone who is quite good at developing software is, in my opinion, pretty good right now. I personally know computer engineers who have found entry level jobs in the last five years that pay 60k+ per year. A good friend of mine with five years experience as a computer engineer is near six figures.
This is all based on my observations/experience/opinions. I am an electrical engineer, but work closely with many computer (software) engineers.
So, is the software engineering degree a B.S. or A.S.? Because if it’s not a B.S. and your end goal is grad school, it might make things more difficult.
But you don’t need a degree in CS to be a programmer or software engineer. There are plenty of EE people who get into programming. AN EE or Computer Engineering degree should give you the engineering techniques, and both are going to require some programming anyway.
Assuming you want to get into Software Engineering, call up some companies and ask what they are looking for. I’m almost certain they will accept any related degree as long as you can do your stuff.
Spend some time studying modern frameworks and languages. If you can come out of the program with a good foundation in either Java or .NET, you’re set. If I was hiring, I’d take someone with a degree in EE and a solid foundation in .NET as well as engineering practices. With the academic background of EE, they may think a little differently and have a different perspective on projects than the more ordinary CS guy - this can be a positive since you might see something or have an idea that wasn’t obvious to anyone else.
Take the degree program that you think you’ll like best and do best in.
Even some of us with mechanical engineering and physics degrees get to crunch out a few lines of code now and again.
Coding is a specific skill that anyone with an analytical mind can pick up. Understanding computing architecture–on hardware or software–is a larger discipline of engineering.
It is true that nearly anyone can program, but you don’t get a deep understanding of data structures or what is actually going on inside a language implementation by picking up a book on how to program in Java/C++, what have you. My experience in teaching data structures and defining and implementing a programming language is very useful in coming up with the right solution out of many possible.
Not only are CS and CE different degrees, in some places they are different departments. Most of my faculty friends are in CE or EE departments, very few in CS any more.
The reason for the split is the explosion of what needs to be learned. When I was in school relational databases hadn’t been invented, only a few computers used advanced pipelines, and CMOS was that odd technology found at the back of the text which the professor usually didn’t get to.
I agree with Stranger that the degrees are in no way equivalent. A software engineer need not worry about logic design and voltages besides what the computer gets plugged into. The computer engineer probably doesn’t need to worry much about databases, and compilers. It is good for CEs to know how to program, but not essential - I know successful ones who can do some shell programming and that’s about it.
I think in general computer engineering is lumped into the electrical engineering department, and computer science tends to be lumped in with or adjacent to the mathematics department, which is appropriate insofar as CS is basically applied mathematics and logic. Software engineering (as opposed to programming) is actually more of a systems engineering-type function, planning out an architecture, performing systems requirements analysis, defining and tracking requirements flow between different levels and working groups, et cetera. Too often, however, this work is done or treated by others as just advanced programming, which doesn’t work at the level of program where you have hundreds or thousands of people working on a major software system like an operating system or database management system.
You will have a much more thorough physics background if you choose to go with computer engineering as compared to software “engineering”. I’m not even sure why it’s called engineering, honestly.
That may be true in theory but, in practice, labels and curriculums vary so much across different schools that hiring managers end up just treating them as the same degree. Nowhere in my answer did I mention an associates degree of any kind.
Hmm. Even back 35 years ago I didn’t know any CS departments lumped in with Math. At Illinois, a lot of professors had joint appointments with the Math Dept., but they were primarily in CS. My undergraduate CS degree came from the EE department, but both my graduate degrees are CS only. There was no CE back then.
I do a lot of conference work where a lot of papers are by CE type professors, and run a best student paper award for it, and I know there are a lot more independent CE departments nowadays than there once was, possibly because “Computer” in the title at one point drew in the students.
Software engineering has expanded in meaning a lot in the 35 years or so since Dijkstra’s letter. Today it is industrial, but Barry Boehm’survey from 1977 or so didn’t have a lot of business in it, and more development methodology. The first step was structured programming, an attempt to get people to develop vaguely maintainable code. Software engineering of course was an attempt to shame people into being like “real” engineers, who managed to build bridges completed more or less on time and which tended not to fall down, unlike many if not most of the large software projects back then. In 1972, just pre-SSE, we were given a paper and some articles bemoaning the fact that no one knew how to do large projects. That’s the prehistory. Now, everyone assumes programmers know how to code in a reasonable way, and the emphasis is on more global issues.
Probably because writing software that meets its specification is literally one of the hardest intellectual tasks that humans are currently employed in, usually involves large teams spread over various locales, and very often fails. It just so happens that traditional engineers found ways to surmount similar problems in their discipline that are applicable, perhaps with a bit of massaging, to building correct software.
Focussing on physics is a red herring. Engineering is the art of building structures that don’t fall down. Why wouldn’t this be applicable to software?
You are absolutely right. You will find a diversity of degrees in the actual positions in most cases. For jobs that are purely hardware oriented there may be a preference for Computer Engineering, but I’m sure with the right coursework or experience that won’t matter either. You can’t really tell much about a person’s skill set from the difference in those degrees by name.
Or you could end up in a company like the one that was my last stop in the tech sector. It had a four-way open war going, the main factions being the (microcontroller) hardware division and the (development system) software division, each of whom thought they were the real company and the other was just an enabler.
The only time in my career I literally swept everything into a box and walked out.
I don’t know if any surviving companies are still that infantile about the issues, but I['d suggest maintaining an intellectual and professional straddle of the two fields as much and as long as you can. A deep understanding of both can only help you, even if your efforts are within one.