

Ask HN: Why are comp engineers being hired as software devs? - DarkHaado

Hi HN,
I recently started a new position in a software development firm and most of the devs there have a computer engineering background rather than a computer science background.  I actually feel like the odd person out with my comp sci degree.  Is this a growing trend in the field?  What does this mean for the newer disciples of computer science coming out of school also having to compete with computer engineers for the same job and why do engineers have a leg up on them?
======
joelmaat
Computer Engineers and Computer Scientists take essentially the same software
design related courses. The difference is that Computer Engineers don't have
to write an Operating System, and instead dig deeper into Electrical
Engineering. I had to do Software Engineering, software theory, electrical
design, hardware/chip design, embedded systems design, web design, all of it.

Being a Computer Engineer myself, and choosing Computer Engineering over
Computer Science, I'd say the degree is tougher to earn, and you learn a lot
more random things (there are a lot of quality algorithms and design
approaches that Electrical Engineers learn, and it's very convenient to have
been exposed to them, to have my mind open to the possibilities, and to have
them in mind as I work) that give a slight edge everyday. Also, to generalize,
Computer Engineers tend to be more versatile, open-ended, jack-of-all-trades
types (fits with the Entrepreneurial thing), versus the specializing Computer
Scientist. They also tend to keep up with new developments and look for new
and different ways to do things. Of course, a crappy Engineer is a crappy
Engineer, and many that make it through the Computer Engineering course end up
specializing, because they can't handle it all.

I don't think it's a growing trend, though, and my experience had always been
similar to that of a designer's: not enough credit/appreciation. Maybe that's
changing, I don't know. Also, all these random things I know, and the
difference in my approach to problems has always been continually suppressed,
watered down, and stomped on by management, and after a few months/years, I
realized the only way to make full of my potential, my approach to things, and
what I know was to branch out on my own.

~~~
dalke
I thought a CE degree tends to learn less theory than a CS degree. For
example, my favorite CS course was language and automata theory. I looked at
the ECE courses for UIUC (<http://www.ece.illinois.edu/courses/> ) and they
don't offer an automata course, or data structures. For that you need to take
a CS course
[http://cs.illinois.edu/undergraduates/academics?quicktabs_1=...](http://cs.illinois.edu/undergraduates/academics?quicktabs_1=3#quicktabs-1)

In my career so far developing software for chemistry I've made heavy use of
graph theory, formal language theory, and data structures that I learned while
an undergraduate.

I don't have the same assessment as you in the advantage of a CE degree over a
CS degree. I suspect there's a bias error, as you did not enter a field where
a CS degree would have been more useful. Nor do I think that a CS degree is
specializing, given the courses I took in operating systems, programming
language theory, computer graphics, databases, etc. Of course, from my
perspective "electrical design, hardware/chip design, embedded systems design"
are all variations of the same thing, so it's a definite matter of
perspective.

In any case, after 5 years or so in a career, the specific advantages of one
background over the other get pretty weak.

~~~
joelmaat
Yes, I didn't take the Automata Theory course, but I learned essentially the
same thing in Discrete Mathematics, Control Systems, and Digital Design
(albeit with an eye towards Electrical Engineering applications). I remember
looking through the courses, as you did, and the only gap I remember noticing
was Operating Systems (and maybe graph theory, now that you mention it). It
would have been nice to be introduced to machine learning while in school, but
that's fine, I ended up learning it on my own.

There could easily be a bias error, but I said what I said simply because
everything covered in the CS curriculum seems to also be present in the CE
curriculum, but in the CE curriculum more is added. So I see the CE degree as
a CS degree plus the essentials of an Electrical Engineering degree.

The advantages, if there are any, can definitely fade away after a few years
of real experience, assuming everyone continues to better their knowledge, and
those years aren't spent, as is typically the case, repeatedly re-implementing
the same solution.

~~~
dalke
Now I'm curious - which of those courses covered the pumping lemma or LR(1)
grammars? I'm surprised to hear that they are relevant to a Discrete
Mathematics, Control Systems, or Digital Design course.

Or was those covered in your compiler course?

We covered graph theory in discrete math - it wasn't an independent topic - so
I'm surprised that you didn't cover it in your discrete math courses. As I
recall, first semester was more combinatorics and second was more graph
theory, but I don't recall at this point.

Also, in reading the ACM curricula guidelines, I came across the comment "As
is typical of most programs in engineering, this program has a smaller general
education component than Curriculum A described in this appendix, with more
hours devoted to computer engineering topics."

That is (and using your earlier terminology), a computer engineering degree is
more specialized, while a computer science degree will include more non-CS
courses and give a 'more versatile, open-ended' education. :)

------
genwin
Likely it's coincidental. The firm probably just hired whomever they thought
could best do the job, largely ignoring the degrees. Maybe the people with a
computer engineering background demonstrated better software development
skills or aptitude.

Suppose the company wants experience in Obscure and one of those computer
engineers spent the weekend reading Obscure's manual and playing with the
software before the interview. That could be the leg up.

------
tdubbed
Comp engineers may have an initial leg up because their field of study is more
practical than computer science which is more theoretical.

Don't worry about it. You were hired for a reason and you should have
complimentary strengths to the engineers

------
tdubbed
Also worth mentioning. Many schools don't have engineering and some
engineering schools don't have comp sci.

For example in chemistry companies will teach new hires the engineering or the
science depending on which degree they have.

