Computer Science graduates will encounter a wide range of possibilities when choosing a career. Additionally, new job types are being created in the field all the time. Below are a few different careers you may choose from, including some key courses you might consider taking during your degree.

Career Description

Game Developers are the programmers who build video games, from small indie titles to the biggest AAA games.  Game Developers need to be flexible programmers who can both work alone on independent projects and as part of a team on one of the many complex sub-components of modern games.

Important Skills

  • Familiarity with industry-standard collaborative tools for software management and version control
  • Proficiency with modern programming languages and powerful game-programming platforms (Python, Unity)
  • Ability to work effectively in teams of any size

Recommended Degree Options

  • B.Sc. Four-Year – Computer Science
  • B.A.&Sc. - Interactive Systems Design

Important Classes

  • CMPT 306 – Game Mechanics
  • CMPT 370 – Intermediate Software Engineering
  • CMPT 381 – Implementation of Graphical User Interfaces
  • CMPT 406 – Game Design Workshop

 

Career Description

Systems programmers create and improve the underlying computer software infrastructure upon which application-level programming depends.  They are familiar with hardware constraints and can perform low-level programming to take these constraints into account

Important Skills

  • Proficiency in lower-level systems programming languages (C, Assembly language)
  • Familiarity with core operating systems tasks such as process scheduling and memory management
  • Ability to work at multiple levels of program abstraction 

Recommended Degree Options

  • B.Sc. Four-Year – Computer Science
  • B.Sc. Honours 

Important Classes

  • CMPT 332 – Operating Systems Concepts
  • CMPT 340: Programming Language Paradigms
  • CMPT 432: Advanced Operating Systems Concepts
  • CMPT 435: Foundations of Concurrent Programming

 

 

Career Description

UX Designers create software interfaces that enhance an end-user’s experience of a software product. They are experts in understanding user psychology to make software more intuitive and easier to use, and are flexible and creative enough to create wireframes and prototypes based on customer needs.

Important Skills

  • Skilled at visual design with a strong attention to detail
  • Strong communication skills
  • Ability to conduct rigorous user studies and assess user needs
  • Ability to work effectively in teams of any size

Recommended Degree Options

  • B.A.&Sc. - Interactive Systems Design

Important Classes

  • CMPT 370 – Intermediate Software Engineering
  • CMPT 353 – Full Stack Web Programming
  • CMPT 381 – Implementation of Graphical User Interfaces
  • CMPT 481 – Human Computer Interaction

Career Description

Data Scientists use computational methods to extract meaning from enormous volumes of data.  Sophisticated visualization tools are applied to the results in order to help make effective leadership decisions in areas ranging from finance to health care to government.

Important Skills

  • Understanding algorithms and methods from machine learning and statistics
  • Proficiency in common statistical languages – R, Python, SQL
  • Strong aptitude for math, include statistics, multivariable calculus, and linear algebra
  • Ability to visualize high dimensional data 

Recommended Degree Options

  • B.Sc. Four-Year – Computer Science
  • B.Sc. Honours – Computer Science
  • B.Sc. Double Honours – Computer Science and Math or Statistics
  • B.Sc. Bioinformatics 

Important Classes

  • CMPT 317 – Artificial Intelligence
  • CMPT 360 - Algorithms
  • CMPT 384 – Information Visualization
  • CMPT 423 – Machine Learning
  • CMPT 484 – Graph Drawing and Network Visualization

Career Description

Security Analysts are responsible for the cyber security and robustness of large-scale computer networks.  They are the front-line defenders in preventing cyberattacks and in ensuring the safety and privacy of digital data.

Important Skills

  • Proficiency with systems level programming
  • Familiarity with network protocols, architectures and their vulnerabilities
  • Familiarity with cryptography and related mathematical number theory

Recommended Degree Options

  • B.Sc. Four-Year – Computer Science

Important Classes

  • CMPT 332 – Operating Systems Concepts
  • CMPT 353 – Full-Stack Web Programming
  • CMPT 434 – Computer Networks
  • CMPT 438 – Introduction to Computer Security

Career Description

Web developers design and build applications that run over the World Wide Web.  The “front end” of these applications run in a web browser or on mobile devices like phones and tablets, communicating over the web with a remote server (the “back end”).

Important Skills

  • Familiarity with client-server network architectures
  • Proficiency with both front-end and back-end programming languages and tools (Javascript, CSS, PHP)
  • Familiarity with network communication protocols and technologies

Recommended Degree Options

  • B.Sc. Four-Year – Computer Science
  • B.Sc. Honours

Important Classes

  • CMPT 332 – Operating Systems Concepts
  • CMPT 353 – Full Stack Web Programming
  • CMPT 434 – Computer Networks
  • CMPT 436 – Mobile and Cloud Computing

Career Description

Software developers work in small to large teams to create, improve, or maintain a wide variety of software applications, ranging from specialized software used in business and industry to the publicly available software apps that are used by practically everybody.

Important Skills

  • Familiarity with industry-standard collaborative tools for software management and version control
  • Ability to work effectively in teams of any size
  • Proficiency in core popular programming languages (Java, Python, Modern C variants)
  • Ability to learn new frameworks and languages

Recommended Degree Options

  • B.Sc. Four-Year – Computer Science
  • B.Sc. Honours – Software Engineering

Important Classes

  • CMPT 353 – Full Stack Web Programming
  • CMPT 370 – Intermediate Software Engineering
  • CMPT 371 – Software Management
  • CMPT 470 – Advanced Software Engineering