John Gruber said:
As a sidenote, I’m fascinated at how code has, seemingly all of a sudden, eclipsed program in common usage.
Titles are always vague, misleading, and abused.
Engineer? Developer? Programmer? Coder?
Coder
Coder has now indeed become a cool “job title”. The imaginary for coding is a hacker typing rapidly to save the world. 😎 Of course, that’ not reality.
As such, you will find courses such as Coding for Kids (instead of Programming for Kids).
Programmer
On the other hand, Programmer is a older name.
But specifically, a programmer does coding, and also other tasks such as debugging, testing, writing documentation.
Developer
Developer does even more then programming: also designing, brainstorming, releasing..
That’s why there are indie app developers (NOT indie app programmer/coder). As an indie, we not only design and write apps, but also launch it, doing the business development and marketing.
Yet there are many titles with “Mobile Developer”, which really is just Programmer for mobile. With the rise of mobile platforms, the title of “app developer” became popular.
Engineer
Software Engineer is Programmer. It is derived from the other engineering titles – Civil Engineer, Mechanical Engineer, Electrical Engineer.
It is most common to have software job titles using “Engineer” eg. Senior Software Engineer, iOS Engineer
Who is better?
There is no “better” among the job titles. Everyone has 24 hours a day.
A developer has broad skill set, but with the same 24 hours a day, he will definitely spend less time coding than a full fledged coder.
A coder has narrow skill set, and is able to go deep into writing code.
But I don’t think anyone can function exceptionally without going broad, and without understanding the full spectrum of a development cycle.
Oh, and there is rank
Companies will have ranks/grades/salary bands/seniority. Basecamp has 5 ranks like this:
- Junior Programmer
- Programmer
- Senior Programmer
- Lead Programmer
- Principal Programmer