I was part of a conversation the other day that really struck a nerve with me and has resonated in my mind since. We were discussing Programmer versus Developer and what we were. This lead to a more generalized conversation about programmers/developers.For now, I am going to use Programmer/Developer as interchangeable names/titles. Both of these can be part of a large corporation, small company or self-employed. Both of these titles are universally used and interchanged in job titles, want ads, resumes and regular day to day conversation. Most probably don't care what they are called or what their title is as long as they are getting paid what they want.
We can look at the dictionary definitions for these as well:
From Wikipedia:
A programmer writes computer software. A developer may take part in design, computer programming...
Now, my opinion....
In the end, both Programmers and Developers write code and in that sense are very much the same. The difference that I see and will argue about is everything else. A Programmer is given the task of writing the code. This might entail writing tests as well. I picture the Programmer as a person in a large organization that is an assembly line worker ant. They are given a task and expected to complete it. The Programmer may never meet the client and may never see the final product. The Programmer s one spoke in the wheel of the entire project. The Programmer is never asked what they think or for suggestions, they just write code. Good Programmers strive to learn more and to be Developers. If I worked for a large company, I would just be a Programmer and there is absolutely nothing wrong with that at all. I do not look down on or think that I am better than a Programmer. Programmers are not Developers.
Developers on the other hand are also Programmers. Large companies have Developers and they are responsible for the Programmers. Small companies and self-employed, are mostly Developers. A self-employed person cannot just program. They interact with clients, they are part of the design process, they develope and they program. The developer may be every spoke of the wheel or they may work closely with other developers. Developers can take a clients idea and make it a reality. Developers must be flexible and know when to offer the client advice and when not to. Sometimes the client may not know what they really want and it is the Developers job to tell them. And in the end, the Developer sits down, puts on their Programmers hat and writes code.
There is a place and a need for both Programmers and Developers. Right now I am still learning and I would say that I am a Programmer.