# What is the difference between a developer and programmer?

**Developer** is a person who solves problems and usually aren't focused deeply
on the code unlike a programmer. They deal more with the project from a bigger
picture point of view. For example, they connect together different technologies
and people involved in the project. They are responsible for organizing the
requirements and specifications of the project and deliver these to a programmer,
who then implements them. Usually developers don't need so much programming skills.

**Programmer** is a person who writes programs based on the requirements or
specification they receive. They write beautiful code and have thorough knowledge
about a programming language, algorithms and how to do things really well and
optimized in code. Usually they don't need people skills much.

**Coder** can be someone who writes code and deals directly with tasks that are
clearly defined and problems already recognized. For example, they create an HTML
and CSS layout of the website. Many times this title means the same as programmer.

**Architect** is someone who looks at the big picture of the project. They need
management, people and general technology skills.

Important thing to understand is that many times these titles are also a matter
of a perspective and can be used interchangeably in the coding world. Sometimes
they are used to differentiate the responsibility, knowledge and skill levels.
So if you're confused about this terminology, you can just refer to them
all as **engineers**.

**Technology evangelist** is someone who promotes particular technology or product
by blogging, conference and meetup talks, writing articles, sharing information
on social networks and similar in order to convince other people to use it as well.
