Computer Programmer

Analyst Programmer, Computer Programmer, Programmer, Programmer Analyst
Job Description

A Computer Programmer is a professional who writes and tests code that allows computer applications and software programs to function properly. They translate software designs and specifications into high-quality, executable code.

Typical Preparation

Education: Bachelor's degree

Years in related career: None

On-the-job training: None

Outlook

Projected Growth: -11.2% (negative growth)

Annual job openings: 5 500

Direct AI exposure: 43% of tasks

Potential AI exposure: 93% of tasks

Income data is from Employment and Social Development Canada's 2025 wage tables. The closest match for this career in Canada’s occupational classification system is Computer Systems Developers and Programmers. According to the wage tables, average income is $90K per year.
Bottom 10%Bottom 25%Median (average)Top 25%Top 10%
$53K
per year
$70K
per year
$90K
per year
$107K
per year
$135K
per year
Compared to other careers: Median is $25K above the national average.

What does a Computer Programmer do?

Intro video

(less than 2 minutes)

Duties

  • Writes and tests code for new software applications.
  • Updates, repairs, modifies, and expands existing software.
  • Collaborates with software developers and engineers to design software solutions.
  • Debugs code and resolves technical issues.
  • Documents the design and code for future reference and maintenance.

Work environment

Computer Programmers typically work in offices, often within IT departments of various organizations or at software development companies. Some may work remotely from home or have flexible working arrangements. Their work usually involves collaboration with other programmers, software engineers, and IT professionals, and can include long periods of coding and problem-solving.

Typical Schedule

Areas of specialization

  • Web Development: Creating and maintaining websites and web applications.
  • Application Development: Designing, building, and maintaining software applications.
  • Systems Programming: Writing software for operating systems and hardware interfaces.
  • Game Development: Developing interactive games for various platforms.
  • Mobile App Development: Creating applications for mobile devices.

Description

Computer programming is a dynamic and evolving field that is central to technology and software development. Programmers are responsible for writing the code that powers everything from simple desktop applications to complex operating systems. They work closely with software developers to translate software designs into functional programming code, using languages like Java, C++, and Python. Their role involves not only writing new code but also updating and fixing issues in existing software, ensuring that applications run smoothly and efficiently.

The occupation requires strong analytical skills, as programmers must be able to understand complex software designs and turn them into code. Attention to detail is crucial, as even small mistakes in code can cause significant issues in software functionality. Programmers must also be adept at problem-solving and logical thinking, as they often encounter unexpected challenges and bugs that need to be resolved.

Continuous learning is a significant aspect of being a Computer Programmer. The field is constantly evolving with new programming languages, technologies, and methodologies. Staying up to date with the latest trends and advancements in programming is essential. Despite the challenges, the occupation offers a rewarding career for those passionate about technology and software development.

Job Satisfaction

Sources of satisfaction

You might make a good Computer Programmer if you are...

Pros:

  • High demand in various industries and the potential for remote work.
  • Opportunities for creative problem-solving and project variety.
  • High earning potential and career advancement opportunities.

Cons:

  • Can involve long hours of screen time and intense concentration.
  • The need to constantly learn and adapt to new technologies.
  • Can be stressful due to tight deadlines and complex problem-solving.

How to become a Computer Programmer

Typical education

Most Computer Programmers have a bachelor's degree in computer science, information technology, or a related field, typically requiring 4 years of post-secondary education. Some positions accept a college diploma, associate degree, or equivalent training, especially when paired with strong programming experience, technical skills, and a portfolio of work.

High school preparation

Courses:

  • Computer Science to learn the basics of programming and software development.
  • Mathematics, especially algebra and calculus, to develop logical thinking skills.
  • Information Technology to understand the fundamentals of computer systems.

Extra-Curricular Activities:

  • Join or start a coding club.
  • Participate in coding competitions or hackathons.
  • Develop personal programming projects or contribute to open-source software.

Preparation after high school

  • Obtain a bachelor's degree in computer science, information technology, or a related field.
  • Consider coding bootcamps or online courses to learn specific programming languages or frameworks.
  • Gain experience through internships, freelance projects, or contributing to open-source projects.

More resources

  • Codecademy - Interactive platform offering coding classes in various programming languages.
  • GitHub - A repository hosting service to collaborate on and share coding projects.
  • Stack Overflow - A question-and-answer site for programmers to discuss coding issues and solutions.
  • Coursera – Computer Science Courses - Online courses in computer science and programming from universities around the world.

Similar careers

Similarity is based on what people in the careers do, what they know, and what they are called. The process of establishing similarity lists is described in this white paper.