In terms of education, it is possible to become involved in software
through an engineering department, or through a computer science
department - I'm not sure if that would make a difference to what those
graduates market themselves as!
- Laura
I study in a computing engineering department alongside electrical and
electronic engineers (
http://www.eee.bham.ac.uk/eece/). Here we study
modules that include project management, OOP design, industrial
awareness... (For those interested the list is available here
(
http://www.eee.bham.ac.uk/eece/ug/ccs_structure.aspx). There are a lot
of engineering modules there that are of use to all of the engineering
disciplines. You want my opinion on programmers, however, I'm sure the
fact that the Birmingham uni computer science dept website isn't working
says more than I can
... J/K
Seriously though, and of course this is only my opinion, Software
Engineers have studied engineering principles, and these principles are
common to many engineering disciplines. The alternative (academically)
is Computer Science, where there is less emphasis on design and
management, and more on the nitty-gritty of each programming paradigm
etc. I think both of these, if taught well, teach you how to become a
programmer, as well as tools that are invaluable to implement that
programming knowledge well. As such anyone who can justifiably claim to
be either should... If you were to call yourself a programmer, in my
mind I see you as self taught. I don't blame you for that, I'm £21,000+
in debt and starting to wish I went that direction, however there are
things that you learn that you just don't pick up when self taught,
which although may not be worth the money it has cost, do make a
difference. For example I worked on a programming project for my final
year project (with some help from the kind people on this newsgroup) and
I used UML and other knowledge to design my program before
implementation. I wouldn't call it invaluable, but I would definitely
say that it saved me countless re-writes of 2000+ lines of code. If I
were self-taught, I doubt I would have gone to the extra trouble of
learning any OOP design principles.
There is so much grey area around all of these terms though it isn't
something I would worry about. If you are asking for job applications
make sure experience shows what you are capable of, which is more
important than a title. If you are claiming to be an engineer though, I
would have to suggest you make sure you have a piece of paper to back it
up
I suppose to summarise, a Software Engineer establishes how to use
software as a tool to perform a job (and indeed which kind of tool etc),
a computer scientist studies the tool of computers (software for this
specific example) to learn how to better the tool, and a programmer is
simply someone who knows how to use the tool.
Thus you need the engineer to decide if/what/why/when/who/how the tool
is to be used, you need the computer scientists to make/alter a tool to
be as efficient and useful as it can be, and you need a farm of monkeys
to use the tool to do your bidding