Jixee-blog-programmer

in Development

What’s the Difference Between a Programmer, Coder, Developer, and Engineer?

Jixee-blog-programmerComputer scientist. Programmer. Coder. Developer. Engineer. Even for those of us in the industry, all these titles can get confusing. What do they all mean? And who do you turn to when you just need to get something done? Industry-wide, the terms are often used interchangeably, vary from organization to organization, and can even mean different things depending on the circumstance.

So how do you know who’s who and what kind of expert you’ll need for which job? Frankly, there is no hard and fast rule—so it’s best to clarify on a case-by-case basis. But as a starting point, here’s a breakdown of how we at Jixee typically define each title:

Coders

People outside of the tech industry will often refer to anyone who writes code as a coder. But for those of us who live and breathe programming every day, this all-encompassing term can be considered pejorative. Usually, coders are considered the least trained or experienced level of programmers. These individuals are often newer to the field, versed in just one coding language and don’t have the same algorithmic knowledge as a programmer or developer. Coders are usually tasked with writing straightforward pieces of code that can easily be delegated by the developers. Because some are put-off by the title, it is sometimes used interchangeably with “Junior Programmer” or “Junior Developer.”

Developers and Programmers

At Jixee, we tend to use the terms developer and programmer interchangeably for our own in house purposes. These are more experienced code-writers who are versed in at least two to three languages and can apply their algorithmic knowledge to create more sophisticated levels of software coding.

Jixee-Blog-HTMLAt other firms, developers are sometimes referenced as the start to finish overseers of a project, who are responsible for the overall design of the application. Within these companies, the developer will often oversee a team of coders (excuse me, Junior Developers) and programmers in order to ensure the application’s user-friendly design and create a cohesive end product. In these cases, the developer would most likely be the client’s direct point of contact and would then interface with the rest of the team to problem solve, make requested changes, and answer client questions.

Engineers

We tend to reserve the title of engineer or software engineer for the big kahunas—the highest level, most expert coders around. Engineers are well versed in three programming languages or more and use their skills to design and implement the overall architecture of the application. They’re the ones modularizing the final product to create a clean interface, then working with the programmers and developers to implement the more detailed aspects of the design.

So that’s how we at Jixee tend to define these titles, but we know you may not agree. That’s why we don’t want to leave our customers stuck using our predefined terms. Unlike with other software, the Jixee product management tool allows you to set your own labels for your team so that you can keep your terminology. Want to call your senior engineer “The Incredible Hulk?” Don’t let us stop you! Jixee is all about letting you manage your team, your way.

How does your organization differentiate between coders, programmers, developers and engineers? Do you agree with our definitions, or have a completely different interpretation of these titles? Let us know in the comments below. We want to hear from you!

[Featured Image Courtesy of Financial Times]

[Second Image Courtesy of Marjan Krebelj]

  • Stefan Parvu

    Not only that a software engineer must be able to have skills in high and low level software architecture and design but they must be able to understand performance and they must be able to measure it. They need to be able to understand Little’s Law and how performance affects how software works. They need to practically be able to build scalable things and be able to measure and validate what means scalable, and keep others aware of the danger of not doing so.

    So, an engineer without numbers is not an engineer. So if you see somebody talking, whining all day long without real facts and numbers that’s not a software engineer.