| I don't like these kinds of questions because more often than not people get it wrong. People who aren't actually performing any of these actions often mislabel and completely misunderstand the distinction, but also we often don't understand it either. It's not very difficult, but I feel being precise is important because it classifies exactly what your skills are and what can be expected of you. First, a programmer is simply, as the word implies, someone who programs. A programmer can be a polyglot or monoglot — either way, a programmer programs. A developer is someone who develops. Developers write code, but they do so on a more macro level than programmers. Developers tend to work on whole projects, so they'll start from scratch and finish the project out. This term is pretty commonly applied to people who built websites or web apps. So the key difference between a programmer and a developer is the scope and length of their work. A developer can be working on many projects at once and only for a short time; a programmer likely works on only a few projects for a very long time. An engineer, however, is completely different. An engineer is a trained professional with a college degree. Engineering is the long respected art of developing solutions for problems using mechanical devices. Engineering might employ the use of programming, but programmers and developers are not engineers. I've held each title. Programmer and developer can sometimes be interchanged, but engineer can't. I personally identify myself as an engineer — after a grueling four year degree — and it really gets to me when engineer is just handed out as a title. You're not looking for a 'web engineer,' you're looking for a web programmer. Not only is it disingenuous, it's also harmful to a profession that has been around for centuries. I wish there were more consistency in which titles are applied. |