I'm with you--got a BS in EE&CS, and an MS in Software Engineering, but I can't really honestly say I'm an engineer, electrical, software, or otherwise, nor a computer scientist. Maybe a computer scientician... And while I did very well in my studies (many, many years ago) and am pretty highly compensated for my work with computers, I needed the explanation too.
If it's any consolation I am and describe myself as a computer scientist because it's what my 1982 degree was in but I am a notoriously bad programmer and for historical reasons of timing (the year after I graduated my degree qualified for B.Eng status) I am not and cannot call myself an engineer software or otherwise.
I earned a B.S. in an ABET accredited Computer Science program taught by the College of Science and Mathematics at a state University. Before that, I designed electrical control systems and software for industrial machinery, and I still don't consider myself an engineer.
That said, I think 'Software Engineer' is an acceptable title, and is more representative of the work we do in the profession than simply 'Computer Programmer'.
100% agrees, I didn't say I didn't do engineering, I just don't call myself an engineer. Ironically, I do call myself a programmer though, and I don't need a degree to do that. The state of CS degrees is a whole other topic, which from the sound of it we agree upon so far. Maybe I just can't call myself a scientist ;)
I hold a Masters degree in Computer Engineering and actually did my share of digital logic design, MIPS assembly, programming interrupt handlers, circuits and other things that supposed give you a large e-penis.
I also work as a software engineer. My title is not "computer programmer" (although I certainly program), professional programmers (e.g., "programmer/analyst" in an IT organization of a bank) typically
encode domain-specific business requirements (e.g., "if the job code is 0123 add $0.75 to hourly rate") into internal applications. There's nothing wrong with that, it's a vital role and will soon be a part of most any white collar job.
I'm not a scientist. I don't build mathematical models and validate them experimentally (typically via simulation): it's an important and difficult job, but it's not what I do.
I build software systems by applying mathematical models to solve technical challenges. This is a lot closer to engineering than it is to science or programming in the traditional sense of the word. Of course, I also don't care: you could call me a "a computer janitor" and I would still love what I do.
Maybe because some of us are really Engineers (with a degree in Engineering)
It's not because I specialized in Computer Science at the very end of my studies that I'm not an Engineer.
If by that you mean you're a software engineer, I do think it's fair to distinguish between getting an EE/CS degree vs say a BA in CS plus programming experience.
I studied engineering and got a degree in computer science. So I like to call myself a software engineer. At my job I do a lot of things: analysis, design, development, project management.
Great comment, thanks. I agree on the difference between a Computer Science degree and a Software engineering degree. I have the former (Comp Sci), and that's the premise for my article. Many folks were never taught the strict definition of "engineering", and believe that's what they do as software devs. I know that's not what I do.
> Computer engineering is an umbrella term, although it's usually implied that they have an above-average understanding of hardware. It's not a synonym for programmer.
I've given up on explaining that to most people. My degrees are CS and Math. I work in a software shop. There is hardware work being done, but mostly of the "did we hook up the right cables?" sort of work. However, whenever I start explaining that it's not engineering in the sense that they mean (which really is the computer/electrical engineer sense) they start thinking I'm in IT.
Personally, even though I have a BS in Physics, have done research for 4 years, and develop software exclusively with astrophysics experiments at a physics lab (I'm even on the most cited astronomy paper of 2012)... I have a hard time calling myself a physicist, or even an engineer for that matter.
Calling myself a "computerist" or even a "computer scientist" would feel a lot like I'd be furthering the dilution of titles with the inclusion of mediocrity, akin to the "technical support engineer".
I'm employed as a Software Engineer now but my degree is in ECE. The engineering curriculum at my university (Rutgers) was extremely math intensive. I didn't take a whole lot of software classes but I'm glad I did take all that math. I think it's dishonest to call yourself a Software Engineer and not have an engineering degree. Semantics, but I earned the title.
I used to be reluctant to call myself an engineer. I don't actually get to do too much engineering in my work. But I've seen too many less qualified people calling themselves engineers so I might as well... Besides, my degree is from the Engineering faculty at my university rather than Science where the CS/SE degrees are. At least that's how I justify it to myself.
As much as I agree that everyone is just quibbling about semantics it is something that needs to be finalized and agreed on.
In some states it's illegal to say you're an engineer unless you specifically have an engineering degree. Most CS degrees are offered as a science degree with an alternate Software Engineering degree being an engineering degree. There's also a noticeable gap in what you're taught depending on which path you take. Friends of mine who majored in software engineering ended up learning more practical languages, how to use source control, software engineering practices, and never had to take a class related to the theory side of it. Whereas half of my classes were information theory, and abstract or theory based math classes.
Does this make them better programmers because they know more languages and tools? That's subjective. However, there are times when you need a computer scientist and not a software engineer but most companies and even developers themselves couldn't tell you the difference between the two.
Purely hypothetical at this point but suppose you were tasked with creating the first ring based authentication system. This involves a decent understanding of group theory . I don't doubt for a second that a software engineer would be able to accomplish this after first teaching them self about group theory but my first bet would be to go to the person with the CS training. Sure they might not be able to code it as well but once the idea has been developed and proven to be mathematically sound it can just be sent off to the engineer.
Computer science isn't a science and it's not about actual computers. Software engineering isn't engineering and is really about the limits of people, not software in and of itself.
Nevertheless, my job title is "Software Engineer". Where it makes sense, I model myself after our elder cousin professions. When it doesn't, I don't.
"Software engineers", in my experience, mostly aren't. Having a computer science degree doesn't make you an engineer, nor is stitching javascript libraries together to make a web app engineering.
There are software engineers out there, doing engineering work, but most of the people who call themselves software engineers are not.
Sure, he's an engineer. Most people who have computer science degrees work in software engineering jobs and wouldn't think of themselves as "computer scientists" since that is a scientific/mathematical academic discipline. (A very small percentage of software engineers are doing work that is both advancing theoretical computer science and building practical engineering solutions but they probably still think of themselves as engineers)
reply