Let’s say you’re a recruiter at a networking event. You’ve just met Chris – a bespectacled nerd with a beard like Hagrid the Half-giant, and he’s just told you what he does for a living. You can tell it’s something web-related. You smile and nod, and in a few seconds, you’ve already forgotten what it was he said he did.

Here’s the truth about technical roles: they’re often made up amalgamations that have a lot of overlap. It only takes a basic understanding of the nuances of these ultra-techie sounding labels to prevent your eyes from glazing over. In this post, we’re going to stick to terms found in the web world to keep things simple. However, you’ll find most of this information applies to other computer industries.

Terms That Describe A Person Who Writes Code

Coder

You saw this one coming, didn’t you? This is probably the easiest role to understand, but as it’s something of a layman’s term, is not commonly used by professionals. However, a coder is anyone who writes code – anything from HTML to C++.

Programmer

A programmer is very similar to a coder, but we get into some slightly debatable territory when differentiating these terms. Many people argue that HTML & CSS specifically do not count as “real programming”, and for the sake of clarifying things, we’re going to adopt this assertion. Programming tends to refer to much more complex computer languages that make use of logic like loops, variables, and conditional statements. Programming languages are able to be much more articulate and thus can command computers to perform actions that are much more involved.

Developer

This is definitely the most popular term in the web industry used to refer to people who write code in some way. It’s a term you’ll see used in other industries as well, even non-computer related industries. The reason that developer has become more popular in recent years is because it encompasses not only the technical responsibilities of a programmer, but also the strategic and architectural planning involved in building complex software and websites.

Engineer

The term engineer is, like developer, a commonly used role in a number of different industries, and because it’s so vague and sounds quite loft and impressive, has been adopted by the web professionals as well. An engineer, in both tone and definition, is most synonymous with “developer”. The difference, however, is that you’ll find people opting for “engineer” more when the work is backend related, and/or falls into a more senior role.

At the end of the day, if anyone gives you shit about this difference between these roles, you have my permission to smack them upside the head for being trivial. It would be like arguing over the difference between a “cook” and a “chef”.

blog_techroles_inline_1

Before moving on, I think it’s worth noting something about these roles in relation to the industry in which they are used. The term programmer is used more when the terms developer or engineer also mean something entirely different. For example, in the video game industry, almost everyone involved is considered a game developer, so the individuals responsible for writing the code are considered programmers, as this level of specificity is necessary.

In the world of web professionals though, the above terms are pretty synonymous.

Front-end vs Back-end Developers

blog_techroles_inline_2

Now that I’ve defined the above general terms, we can get into the vocabulary that actually differentiates these technical roles.

Just like you can’t have a phone conversation without two phones, you can’t display a website without two computers. One computer makes the call with an application called the client. The second computer involved receives and interprets the call and returns the website code with software called a server. The client is just your browser of choice, like Chrome, Firefox or Internet Explorer. The server is something most people never deal with unless they have a website of their own, in which case the server is essentially their web host.

The client and the server are what divide the different fields that web developers specialize in.

Front-end

A front-end developer means someone who builds websites using HTML, CSS & and possibly JavaScript. Front-enders live in the client-side of things, meaning everything they build is what the client spits out when a website is loaded. Your browser is the software that reads their HTML, CSS, and JavaScript files and knows how to display the page based on those instructions.

Back-end

Back-end developers are the people who build the heavy lifting that goes into complex websites. If any content needs to be dynamic – like a shopping cart, or a users’ profile – that’s where you’ll find a back-end developer. Languages that these guys tend to use are probably PHP, Ruby, ASP.Net, Python, sometimes even JavaScript. Back-end developers are also people who work on database schemas and plan the architecture of a site.

It’s worth noting that not all websites have back-end developers. If you’ve heard people talk about “static HTML pages”, it means that there was no backend development involved at all, only front end.

Full Stack Developers

A developer that does both front and back end work is often referred to as a “full stack” developer. A sort of jack-of-all-trades in the web world.

All Those Other Terms You May Have Heard

What about Web Designers?
This is a tricky term, because it means different things to different people. Generally though, it implies a set of skills involving both graphic design and usually some knowledge of front-end code.

What about Information Architects?
While less common in the web world, this term refers to someone who focuses on the structural design of data or information and how information is displayed and interacted with. Often this individual has expertise in UX (user experience) as well. If this person does any programming, they are probably a back-end developer.

What about an IT Person?
Web developers aren’t really IT people, despite what our parents might think. An “IT Person” is often the guy in the office who works on more general computer hardware, software, and networking.

By now, you probably get the main point – when defining technical roles, a lot of it comes down to nuance. While these job titles can sound intimidating and fancy, this post should give you a high level understanding of the work and experience level of these people. So the next time you meet Hagrid the Half-giant (err…Chris), you won’t just smile and nod out of courtesy – but because you’ll totally know what it is that he does for a living.