Is software engineering a trade?

Software engineering is not considered a trade but has many hallmarks of a trade. It requires an advanced skill set that is predominantly learned in one or two years and then improved upon while on the job. However, there is no accreditation or governing body which is one reason why it isn’t seen as something people go to trade school for. 

There are multiple routes into software engineering: a college degree, boot camps, and teaching yourself. Quicker routes into software engineering, like coding boot camps, mirror the shorter time frames that people spend at trade school. But the different ways industry means it’s difficult to simply classify it as a trade, despite it having many of the features of one.

Let’s take a closer look at what a trade job is, and whether software engineering qualifies as a trade under the current definition. Plus reasons why people are hesitant to categorize software engineering as a trade 

What is a trade job?

Box of tools

A trade job is any occupation that requires specialized skills which are learned primarily through on-the-job training, and vocational education. Trade jobs focus on a particular skill set and individuals are referred to as an apprentice until they have qualified and mastered the skill. 

Typical trade jobs include: 

  • Carpenter
  • Electrician
  • Landscaper
  • Painter
  • Plumber
  • Auto mechanic
  • HVAC installer
  • Machinist
  • Locksmith

Trades traditionally involve some form of physical work however they are not restricted to this as dental assistants, phlebotomists, and respiratory therapists are considered trades.

Most tradesmen go to trade school, do an apprenticeship, and complete on-the-job training. You typically go to trade school for one or two years but depending on what you want to study it can vary. Many companies also do a hybrid approach where apprentices study one or two days a week while working. In contrast, a bachelor’s degree is four years long and most people don’t get any work experience until after they finish.

Is programming considered a trade?

Programming is not currently considered a trade by most people because most routes into the industry require a four-year bachelor’s. However, starting a career in programming has many of the same traits as other jobs that are considered trades. However, in some circles software engineering is starting to be informally considered a trade.

Most tradesmen spend the early part of their career split between learning at a trade school for one or two years and learning on the job. Typically, you serve as an apprentice and work under someone fully qualified – while learning your craft. In contrast, programmers often need a four-year bachelor’s degree and don’t serve as an apprentice. 

However, programming and software engineering do fit the definition of being a trade. It is a specialized skilled labor position that requires on-the-job training to master the craft. You don’t serve as an apprentice, but as a junior developer, you are frequently mentored by people with more experience. 

Education could be one of the main sticking points for software engineering to be considered a trade. More than 65% of developers hold a bachelor’s degree or higher so in reality software engineering may be considered closer to a profession than a trade. But, around a quarter of programmers have less than a bachelor’s degree, so formal education isn’t the only path to being a full-time software engineer.

If you take the college degree route and then become a software engineer it is unlikely you’d consider it a trade. But if you join a coding boot camp, which gets you job-ready in a matter of months, it is much more aligned with a trade.

Software engineering as a trade: The coding boot camp route

Taking the boot camp route into the software engineering world is the most similar to trade school. You are learning a specific set of skills which you will then apply to the job you get afterward. Also as a student, you are directly mentored by your tutor to learn the necessary skills.

Becoming a developer off the back of a coding boot camp is the most likely way for it to be considered a trade. It may not fit the criteria to the tee but there are similarities.

The time commitment for a boot camp is significantly shorter than a degree. Unlike a bachelor’s, most coding boot camps range from 12 weeks to a year in length which is much more in line with a trade school education. On the shorter side you even have people trying to learn JavaScript in a week.

Like trade schools, boot camps are significantly cheaper than going to college. You can also get courses where you don’t pay anything until you get a job, or you get a future employer to foot the bill. The average boot camp costs less than $15,000 which is far cheaper than an undergrad program.

The biggest similarity between coding boot camps and trade schools is the career-specific training they provide. They provide specific skills which help their graduates excel in their chosen field. On the other hand, a college education is much broader.

Programming may not be considered a trade by many but it comes down to the route you take into the industry. Some trade schools have started teaching coding so it is essentially a trade but just not referred to as one. There is also a big push to make software engineering a protected profession, hence why many may be reluctant to refer to it as a trade.

Why isn’t software engineering a trade? 

Software engineering isn’t considered a trade because you typically need a degree, there is no apprenticeship scheme, and there is a big push to try and make it a protected profession instead of a registered trade. 

In all honesty, it depends on where you decide to draw the lines between what is and isn’t a trade. Software engineering has some similarities to trade work but most people don’t see it as one. 

There are a few reasons why software engineering isn’t a trade:

  1. Education – More than two-thirds of software engineers have a bachelor’s degree or higher. While it isn’t a formal requirement it helps with getting a job and isn’t comparable to the two years spent at trade school. 
  2. No apprenticeships – Software engineering does not have an apprenticeship system. You may learn from more experienced developers but there is not a specific person tasked with passing their knowledge on to you.
  3. Becoming a profession – Since 1993 there has been considerable effort to make software engineering a profession. In some countries, including parts of the U.S. this has already been achieved. Being a profession and a trade are essentially two goals at odds with one another. 
  4. Solo work – Most tradesmen can provide their services without the need for a big team. This just isn’t possible with software engineering. You work in large teams and need the support of multiple functions in the software development life cycle. 
  5. Skillset – Technology moves so fast that it is almost impossible to define a prescribed set of skills that a software engineer must have before they are qualified. The things you need to learn to depend entirely on which part of development you want to get into.
  6. Unions – Unlike most other industries, software engineers don’t unionize which some people believe rules it out as a trade.

Many people do see software engineers as tradesmen and some similarities make the point valid. However, software engineering generally isn’t considered a trade – regardless of all of the different aspects that it aligns with.


Software engineering is not a trade but does share some similarities with occupations that are considered trades. You initially learn a narrow set of skills which are later expanded on with on-the-job training. You often have experienced developers act as mentors who pass down their knowledge to you as the ‘apprentice’.

Some routes into the industry, like boot camps, share far more similarities with trade school than going to college or university. However, in reality, most people don’t consider coding a trade, and the movement to make it a protected profession means this is unlikely to change.