Ask HN: Why are comp engineers being hired as software devs?
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?
7 comments
[ 3.3 ms ] story [ 29.2 ms ] threadDon't worry about it. You were hired for a reason and you should have complimentary strengths to the engineers
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.
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.
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.
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. :)
For example in chemistry companies will teach new hires the engineering or the science depending on which degree they have.
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.