Terms like web developer, web programmer, webapp developer, and software engineer get thrown around a lot. But, what’s the difference?
This is just a generalization. For every point I can make, there are always counter-points and things that don’t fit the mold 100%. Hopefully, this points you in the right direction, though.
Prefixes are used to distinguish the focus of the role from others that are named similarly. This is why you’ll see the most common one, web, used to indicate that this role focuses mainly on the internet (eg web developer, web designer, web app programmer).You might also see software used to indicate a wider range of expertise beyond just the internet (eg software engineer, software developer).
There are no hard and fast rules for using any of these prefixes. Generally, though, they focus on a realm (like the internet) or a cross-discipline role (software).
These tend to indicate the level and discipline at which the role functions. Let’s look at some examples:
The term designer indicates this role is focused on user-facing, visual functionality. Some web designers can design and create attractive designs and interfaces with rich user experiences. But, perhaps, they’re unable to actually create the code required to represent them. Others may have some rudimentary skills in design, but can also code the exact representation of what they created.
Web designers are essential to develop a user-friendly website. While other roles may have some overlap, designers tend to be talented at design whereas others are just skillful. Designers tend not to focus on code, even the ones who are able to do it, and use it as a tool to get the design out the door and in front of the user.
Web developer is probably the broadest term available. It tends to indicate that someone is familiar with programming and coding enough to create standard functionalities of websites. A lot of web developers tend to either have design skills or, at least, heavy experience implementing other designs which they can pattern.
As time has progressed, the web developer role tends to mean someone who can put together a website, potentially design it, host it, and set up other ancillary services should you need. The jack of all trades, but not necessarily a master of any. For many people businesses, this is all the role and person they need.
The web programmer role tends to be more focused on the actual coding, architecting, structure and testing of websites. While they are sometimes referred to as web developers (and then, tend to have the skills of that role), they focus more on custom-coded solutions for unique business problems. Put another way, a web developer might put together a blog for you, but a web programmer would create a unique application that manages your inventory, integrates with your third-party ERP, processes payments and follows your unique business process.
Web programmers can suffer from the scourge of making things too difficult. They are likely to want to invent a new way of doing something than cobble together a bunch of other nearly fully functioning tools. That’s not to say that they won’t use libraries and other shared code, but they tend to be best suited to combining things to make something unique. When your business is uniquely based on tech, you want a programmer.
This term tends to indicate that the developer or programmer focuses on mobile applications. Lately, there have been many crossovers between technologies in web and apps, that you might also see this - especially prefixed with ‘web’ - to indicate a developer or programmer may be focusing on building websites that tend to appear function similarly to a desktop application.
This title indicates that the role probably has more experience than just a web application programmer. They may be considered a full-stack developer (one who programs, designs, and implements software), or they might interact heavily with the systems and server teams. The engineer title indicates that this role focuses on architecture along with programming. They’re meant to look at the whole picture of the software implementation, not just the piece they are creating.
Since it does not contain the prefix “web,” it’s likely this role has experience programming with other languages and realms besides the internet and websites.
What this Means in Practice
Ok, so this is useful, but it all sounds still like a lot of theory. What’s this look like in real life? Let’s just break this down into three archetypes: designer, developer, programmer.
I need a designer when… I have a very simple website to create that requires no interactive items. I have a team of programmers and developers, but need someone to help make better user interfaces. I want to generate mockups of my new product for my customers to validate.
I need a developer when… I need a more complex website that requires some interaction. I need a blog or a simple e-commerce site. I don’t have complex needs, but I need someone who can be good enough all around.
I need a programmer when… I have a complex product that I’d like to build. My business process that will be facilitated by software is unique and different than anyone else. I expect high traffic in unique ways.
Now, as I stated above, this is just all my opinion. For every point I make, you can find other counterpoints. The smartest coder you know refers to herself as a web designer, you say. Or “he called himself a software engineer, but he couldn’t even troubleshoot his mac” I’ve heard. These are just general ideas that should help those who are not as familiar with our world understand what and why all of these terms exist. Oh - and for those companies calling everyone a Software Ninja - or referring to their designers as engineers…. no. No thanks.