Programmer, Developer, Software Engineer: What’s the Difference?

In the information technology industry, the line between different jobs can be very blurry.

Such is the case with programmers, developers, and software engineers.

They all create computer programs, right? So what’s the difference between these roles?

The answer largely depends on who you ask. Every company defines the positions slightly differently, and some use the job titles interchangeably.

However, there can be important distinctions between these three roles.

In this post, we show you how the roles of programmers, developers, and software engineers compare.

You’ll see how these three jobs stack up in terms of tasks, salaries, training requirements, and more.

Let’s get to it.



First, the basics: what does the job description for each role look like?

☑️ Programmers are the hands-on technicians of the software development world. They are coding whizzes who transform technical specifications into actual instructions that a computer understands.

Programmers work with many different programming languages, such as Java, C, C++, and Python. They write and test code and fix any bugs.

These professionals apply creative solutions to coding challenges, but they are not typically responsible for defining the application’s purpose or overall structure.


☑️ Developers are in charge of bringing a piece of software from conception to completion.

They might write code, but they’re also involved in analyzing requirements, designing the software structure and coding framework, and creating specifications (which they might then hand off to programmers).

Developers manage the software development process and solve problems. Their job is to come up with creative ways to produce software that meets functional and business requirements.


☑️ Software engineers are very similar to developers, but they tend to focus more on big-picture architecture.

Engineers take a systematic approach to software design. They consider how a piece of software will achieve its goal and how it will affect other parts of the system.

While developers are generally concerned with solving a specific problem, engineers look for broader solutions that work across the whole system.

Some industry insiders say software engineers are like architects (who design the entire system) while developers are like contractors (who oversee the building of the actual product).

Note: In some cases, you must be provincially licensed to use the title “software engineer.”



Programmers, developers, and software engineers all work for the same types of employers. They often find opportunities with:

☑️ Software development firms

☑️ IT consulting firms

☑️ Video game companies

☑️ Healthcare facilities

☑️ Telecommunications providers

☑️ Retail stores

☑️ Educational institutions

☑️ Government agencies

☑️ Finance and insurance firms



So how do these roles compare in terms of earnings?

It’s difficult to pin down specific figures. The Government of Canada Job Bank lumps programmers and developers together in the same category, with a median salary of about $79,000.

However, PayScale has very different data. It says the median salary for programmers in Canada is around $57,000, while developers have median earnings closer to $68,000.

Software engineers typically make more than either programmers or developers. PayScale pegs the median salary for software engineers at about $77,000.

The Job Bank puts the median salary for software engineers considerably higher, at around $95,000.

The bottom line: Software engineers typically have the highest salaries, followed by developers and then programmers.

But a lot depends on how a company defines the roles and how much experience you have.



A university degree is not always required to become a programmer or developer. Many employers will accept applicants with college diplomas.

College-level programming courses generally take about 2 years. Some schools offer accelerated programs that take even less time.

For example, the programmer training at Herzing College Montreal can be completed in as little as 15 months.

Our graduates can work as programmer analysts, application programmers, system programmers, and even full-stack software developers.

Software engineers usually need a bachelor’s degree. In some cases, you must graduate from an accredited software engineering program and register as a Professional Engineer (P.Eng.) with your provincial or territorial authority in order to call yourself a software engineer.



Interested in getting started in programming? Looking for a shorter alternative to a university degree?

Check out the programmer course at Herzing College Montreal.

The course can be completed in 15 to 24 months, depending on the option you choose. A 14-week internship is included.

Our graduates qualify for a wide range of roles in programming and software development. They’ve been hired by Montreal companies like Jesta I.S., Robert Transport, Pente Group, and Physio Extra.

Wondering if the training is right for you? Talk to Admissions.

An Advisor can provide details on course schedules, costs, financial aid, application procedures, and more.

Click below to explore Herzing’s Programmer Analyst program and chat live with an Advisor. We’re here to help!

Explore Programmer Analyst Training