Programmers write awesome code. Programmers do not develop or design or invent anything new just use existed languages like HTML, CSS and python, and they are expert in those languages
The developer is programmers to a greater or lesser extent. They are same as like programmer, but they are not expert like programmers and they perform general development and designing like web designers and developers
Software Engineer Designs and Make new Software and contribute to their engineering. An engineer position would usually imply that you are a developer who has a specific type of degree, some knowledge of engineering, and is capable of designing a system.
Coder-Anyone who can write some code that compiles and runs, which will do something they want when its given the right inputs. This could be a program, a script, some classes or a library
What’s in a name?” Juliet Capulet knew what was up. However, different titles can mean different roles and responsibilities, which means getting down to the bottom of what developers and programmers actually do.
‘Learn to code’?
What’s the question under the question? Does she want to make websites? Design them? Does she want to make mobile applications and take them on the go? Does she want to create a gadget that will text her when she leaves the garage door open too long? These are all very different endpoints and there’s lots of great ways to get started if we dig in a little.
Understanding what people do can lead others to better understand someone’s actual job. In the case of the aspiring-learner-of-code, Hanselman puts forth some questions that can start them on the path to where their interests lay:
- Are you interested in Web Development?
- Or are you interested in Hardware?
- Perhaps you’re interested in the code and history under the code you use every day?
- Or are you just interested in being a well-rounded developer?
Hands up if you think these terms are interchangeable? If you’re like Daniel Kaplan, then you’d agree that these titles mean just about the same thing. Kaplan wrote up his own treatise for the “not technical” folk out there to facilitate a better understanding of job titles.
9 times out of 10, you can consider these job titles to be synonymous. The main specialty of all three is that they will write code to build custom software. If you meet one person that refers to themselves as a Coder and another that refers to themselves as a Programmer, you can think of them as doing the same thing.
Moving into programmer territory is where the definitions really start to get interesting. Team Hanselman states nonchalantly that they write code and understand algorithms. They’re good at working alone. Full stop.
Skorkin, on the other hand, has nothing but praise for those that be programmers. He expands a little more on Hanselman’s one line description:
Programmers write awesome code. It is all about knowing the meaning of “good code” within their domain.
What about a Software Engineer?
For the jobs out there that require a ‘software engineer’, what exactly does this entail? Kaplan occupies a certain stance on the matter:
But, a Software Engineer has the connotation of treating software development as a craft that he is constantly trying to improve. He’s not just slapping things together recklessly, he’s engineering what he builds.
They’s fighting words, heh? It should probably be noted at this point that the term ‘engineer’ can be very loosely applied in the United States, however, Canada and Europe don’t share the same legal interpretation and rationale. If you don’t have an engineering degree, then you cannot call yourself a ‘Professional Engineer’.