I used to wonder about it, and being an engineer, I found this very funny answer in Quora:
- If you have a clear problem and a clear solution in human or pseudo-human language, all you need is a Coder to code it in the appropriate computer language for you
- If you have a clear problem but don’t have a solution, you can hire a Programmer to solve it and code it for you.
- If you have a feeling that you have a problem but cannot even define it clearly, then you need a Developer to help you find the problem first, and then solve it.
- If you have a problem, but you know it’s just the beginning of a huge series of problems and you cannot predict what’s gonna happen next but you want to be as future-proof as possible, you need an Architect. Same if you are in the middle of that mass, having tens or hundreds of developers working on different stuffs and none of them care about the big picture.
- If you have no idea about what is needed and you don’t really care about the details, and having it done as a whole black box works fine for you, then can get a Consultant.
- If you want to write an email to any of the above persons but have forgotten this breakdown, you can just call them Engineer!
Credit: Aideen NasiriShargh @ Quora