Help us improve our site. Would you like to leave feedback?

Computer programmers are the builders of the computing world. They translate software design into code that computers can read, crafting the operating systems and software applications consumers use every day. People’s interaction with computers is at an all-time high—familiar desktop models provide a constant stream information and entertainment, while complex systems perform countless behind-the-scenes tasks. The demand for computing power is only growing, opening more career possibilities for people interested in computer programming. Read more to learn about how to enter this profession – including degree and college options – as well as career trends and salary information.

What Does a Computer Programmer Do?

Computer Programmer Career Basics

Computer programmers turn concepts into reality. After a developer creates a basic software program, a programmer creates the instructions, or code, to make that program function. Programmers may create software to be run on personal computers, tablets, smartphones or automated systems used in manufacturing. With the explosion of smartphone technology, mobile applications are increasingly important, as are software-as-a-service (SaaS) packages, which drive Internet commerce. Once a program is functional, programmers may also be responsible for testing for bugs, removing errors and installing updates. Programmers also design the user interface, which is the part of the program that consumers see and interact with.

Computer Programmer Career In-Depth

Programmers fall into two camps: applications programmers and systems programmers. Applications programmers create and upgrade software applications and customize programs to fit a certain context, whether it be patient management software at a dentist’s office or translation software for a mobile phone. Systems programmers create operating systems. They take a holistic approach to how different applications work with the computer. Applications programmers sometimes bring in systems programmers to make sure their programs will be compatible on an operating system.

Computer programmers’ primary responsibility is to write code, so they must know at least one programming language. Since different languages are suited to different applications, most programmers learn multiple languages or more versatile languages. Programmers also update code for programs to make them more secure and/or functional. They routinely test code by looking for errors — sections of code that the computer does not understand — and debugging programs.

Computer Programmer Salaries and Job Outlook

Salary Details

According to the Bureau of Labor Statistics, the median income for computer programmers in 2014 was $77,550, up more than $3,200 from 2012, a rate that significantly outpaced inflation. Those in the top 10 percent earned over $127,000 a year. Even those in the bottom 10 percent earned more than $44,000, a wage that still put them well above the national average for all occupations. Of course, average salary varies by state—as does the cost of living. Programmers in Washington, New Mexico, Colorado, Washington, D.C. and California can expect to earn more than their peers on average.

The map below shows details about the 10th, 50th and 90th percentile of earners for each state.

Computer Programmer Salary Comparison Tool

Job Prospects for Programmers

Although jobs for computer programmers are only expected to increase at a modest rate of 8% by 2022, it is also predicted that 1 million computer programming jobs will go unfilled by 2020, meaning that demand is significantly outstripping supply. Since practically all industries require software services, jobs for computer programmers should increase at a decent clip. Specifically, many firms look to Internet-based applications as a way to lower costs while simultaneously reaching customers in their homes. The boom in the healthcare sector also bodes well for computer programmers, specifically those who hold a bachelor’s degree or higher and can work in several programming languages.

The states expected to experience the greatest percentage change in job growth between 2012 and 2022 are:

1

33%Louisiana

2

30%Wyoming

3

24% Washington

4

21%Colorado

5

21%Utah

6

16%Indiana

7

16%New Hampshire

8

15%Georgia

9

15%Montana

10

14%Iowa

Of those states, Washington is projected to add the most actual jobs, with 3,990 more positions existing in 2022 than in 2012.
Select a state below for more information about employment and job growth for computer programmers.

Steps to Becoming a Computer Programmer

1

Earn a Degree

While some employers only require an associate degree, the Bureau of Labor Statistics reports that most company recruiters prefer applicants who have graduated from a four-year college. However, a two-year computer programming degree is useful for students who need to attend a community college for financial reasons. It’s also a good way for students to determine their level of interest in the field while completing prerequisites for the major. Some students take jobs in the technology field after earning their associate degree; others use it as a springboard for a four-year program. A bachelor’s degree enables students to diversify their skill set by learning several programming languages. In addition, students planning to work in a specific industry, such as health care or accounting, can take courses in that field.

"In 2014 the median earnings of young adults with a bachelor's degree ($49,900) were 66 percent higher than the medan earnings of young adult hig school completers ($30,000)." - National Center of Education Statistics

School Name

More Information

2

Choose a focus

While working toward a bachelor’s degree, students will get a sense of what aspect of computer programming most appeals to them. It’s at this stage that they begin leaning toward systems or applications, become interested in networks or databases, and get a feel for what extent they wish to work with hardware.

3

Keep learning

Since the technology industry is constantly evolving, it’s essential that workers in this field stay abreast of the latest innovations. To remain competitive in the job market, computer programmers should head back to class, getting additional training to build competency in both emerging languages and updated versions of existing ones. Equally important, earning an advanced degree can qualify programmers for more senior roles. They can advance to become software developers, computer systems analysts or information systems managers.

Levels of Computer Programming Degrees

A bachelor’s degree is usually the minimum educational requirement in this field, as it demonstrates to employers that students have not only a broad range of experience with programming languages and concepts, but also that they have developed the problem-solving skills that are vital to this type of employment. However, there typically aren’t actual computer programming degrees available past the associate degree level. Instead, programming is included as an integral component in a bachelor’s degree in a related area, such as the ones mentioned above—software engineering, computer science, information technology, information systems security and computer engineering—or a similar field.

Associate Degrees

Students who are interested in programming can always start with an associate degree, where they will learn fundamental programming skills that underpin a degree at any level. They will receive practical preparation for entry-level information technology (IT) positions as computer programmers, Web developers and database designers. By the end of the program, which typically lasts two years, students should be able to analyze what end users need, and then design and code programs to fit these needs. As part of their training, they learn to test and debug applications to make them more efficient and functional, and to match appropriate programming languages with project specifications. Additionally, students will gain a working knowledge of computer systems and technology, as well as get hundreds of hours of practice using multiple programming languages, designing databases and creating Web applications.

Computer programming relies on logic, so students will be expected to develop both their math and problem-solving skills in concert. For students who choose not to continue on to a bachelor’s degree, such skills will help guide their future learning as they build their knowledge on-the-job, becoming proficient in specific programming languages. Although every degree program is different, the example courses below show the types of skills students can expect to gain at the associate degree level.

Introduction to Computing

This course provides an overview of various computer systems, from hardware and software applications to operating systems; it is designed for students with minimal subject knowledge, so more advanced students can sometimes test out.

Skills & Knowledge Gained

Understand the history of computing

Use software for word processing, spreadsheets, databases and presentations

Be able to use computers in business and educational settings

Programming Fundamentals

This course introduces students to the logic of programming, laying the groundwork for students to learn specific programming languages in-depth in future classes.

Skills & Knowledge Gained

Use commands to manage operating system files

Design and implement basic algorithms using a programming language

Java Programming/Data Structures

This course introduces object-oriented programming techniques as a method of structuring software. It also introduces students to Java, a versatile and widely used programming language.

Skills & Knowledge Gained

Build JAVA programs

Test and debug JAVA programs to ensure they function as intended

Computer Programming – C++

This course covers C++ programming language concepts, including control structures, arrays and strings.

Skills & Knowledge Gained

Design and code basic programs using C++

Test and debug programs to ensure proper functionality

Bachelor’s Degrees

A computer science degree is a common choice for aspiring high-level programmers. Computer science students who earn a Bachelor of Science (BS) degree learn the fundamentals of computer programming as well as the mathematical and scientific principles that provide the underpinnings. Specifically, students become proficient in discrete math—a branch of mathematics that deals with objects that have distinct values—as well as computer organization and architecture, algorithms, programming and software design. Some schools offer Bachelor of Arts (BA) programs in computer science, which typically provide more general education and less math and science. However, each school is different, so students should research the options to determine which programs’ requirements best fit their needs.

In addition to coursework, most schools require students to conduct a culminating project that integrates what they have learned over the course of the degree. Typically, students meet regularly with an adviser who gauges their progress and offers advice and guidance. They then present their results in a final paper or presentation.

The bachelor’s degree courses listed below show the types of skills students can expect to gain at this level:

Algorithms

Students in this course learn how to design and analyze algorithms for correctness and efficiency.

This course introduces basic techniques to solve problems with a countable set of possibilities. It covers set theory, difference equations, counting techniques, graphs and algebra.

Skills & Knowledge Gained

Use math and inductive reasoning to solve problems

Determine the size of complex objects through advanced counting techniques

Create and communicate math proofs

Apply algorithms to problems

Computer Architecture

This course covers how computer hardware and software programs work together, starting with the basic logic of how systems and components interact, and proceeding to high-level programming languages.

Skills & Knowledge Gained

Use digital representation and digital logic

Understand how computers are internally structured and organized

Use machine, assembly and programming languages in tandem

Computer Networks

This course introduces students to Internet-based communications and delves into solving problems related to network size, security and access.

Skills & Knowledge Gained

Design network protocols

Scale up and secure communication networks

Master’s Degrees

As with a bachelor’s degree, there is no specific computer programming degree at the master’s level. That does not mean, however, that students interested in programming don’t have more advanced options. In fact, computer science degrees at the master’s level provide a breadth of academic knowledge while allowing students to gain depth in a specific area.

Typical master’s programs in computer science require students to take courses in multiple areas, including math and theoretical foundations, artificial intelligence, and computer systems. Students might specialize in one of these areas, or they might choose to focus on another area such as computer and network security, database systems, human-computer interaction or scientific computation. Advanced programming skills come into play with any of these specializations. Specifically, graduates with a master’s degree in computer science will be thoroughly trained in the following skills:

Courses in computer architecture, operating systems and computer networking will provide students with an understanding of how computer systems work. At the master’s level, they go several steps farther by giving students practice in building functional software and networks that fit into such systems.

Designing and implementing algorithms

Computers can perform tasks at a pace that far outpaces humans—but only if they’re programmed correctly. That’s where complex algorithms come in. The giant technology company Google, for instance, uses one to optimize the results returned by its search engine, making it more likely for users to see the results that matter to them. Master’s students will work on similar problems, learning to apply mathematical methods to compute results.

Leveraging existing software to develop new software systems

There’s no point in reinventing the wheel, and no one knows this as well as computer programmers. Seldom do they want or need to spend the time, effort, and money building a program from scratch when an existing one will do the job. Students will be well-versed in established software and systems and are expected to use their proficiency to build large systems that can run multiple applications.

Similar Degrees

A degree or certificate in computer programming is just one way to enter the profession. Earning a degree in a broader technology field allows students to explore other computer concepts even as they become expert programmers. Because programming requires a solid foundation in math, logic and computer engineering and architecture, the following degree options are ideal paths for aspiring computer programmers:

Computer Programming

Software Engineering

In this degree program, students learn how to develop software products and services. Such skills depend on gaining expertise in fundamental programming languages, so this degree can prepare students for a career as a computer programmer or a software engineer. Degree programs are offered from the associate through the doctoral level. Most software engineers have at least a bachelor’s degree.

Computer Science

This is the degree of choice for many students planning to become computer programmers. Such programs take a thorough approach to studying the uses and operations of computers. They cover fundamental mathematical and computational principles, and teach students how to design computer software and hardware systems.

Information Technology

This degree gives students the skills and knowledge they need to design and develop multi-user networks, as well as to configure and administer complex information technology systems. Coursework also covers application programming, databases, and security.

Information Systems Security

Privacy and information protection are becoming increasingly important in our data-driven society. A degree in information systems security provides a student with working knowledge of how to set up security networks, use coding languages, and analyze systems.

Computer Engineering

A degree in computer engineering focuses on the seamless integration of hardware and software components. Professionals in this field must have a solid understanding of computer programming, including the ability to develop, design, and test software or hardware.

Online Computer Programming Degrees: What to Look For

Computer programming degrees are ideal for online study. The only equipment needs are a high-speed Internet connection and the appropriate software. However, that doesn’t mean students should send a tuition check to the first school they find. Online schools can vary considerably in terms of course offerings and overall quality. Prospective online students should first make sure the program has the following:

Student Engagement

Computer programming requires a lot of time in front of a computer screen, which is why some people like it. But students should be careful to ensure they have opportunities to interact with faculty and other students, which will serve them well in their future careers. Many projects are behemoth affairs, employing a host of programmers to work on the various parts, and employees will be expected to interact with a variety of team members. Students should check that their chosen distance program has integrated participation built into the curriculum.

Archived Lectures

One of the advantages of taking classes online is that most modern computers have webcams that are easily able to record lectures for further use. Many schools take advantage of this and archive their lectures so that students can review them when they are studying or have trouble understanding a concept or figuring out a problem.

Proper Accreditation

Accreditation is an important benchmark for all programs because it ensures the school and/or program has met rigorous academic standards. On top of that, it’s absolutely essential for students who want access to federal financial aid. With a four-year online computer science degree easily costing $20,000 or more depending on the college, financial aid can be a lifesaver.

Components of a Successful Career as a Computer Programmer

Computer Programmer Skills

In addition to knowledge of multiple programming languages, computer programmers must be detail-oriented. When it comes to writing and debugging code, even one misplaced character can cause a program to malfunction.

Being a critical thinker is essential, as there are usually multiple ways to approach a programming problem, some more efficient or elegant than others.

Programmers are also focused and patient, since they may be tasked with writing line after line of code for long periods of time or conducting several tests to properly evaluate the quality and performance of a program.

Because computer programmers are often required to write code based on a client or employer’s request, it’s important that they be active listeners and strong communicators. Lastly, an understanding of how people typically use computers helps when designing user interfaces.

Computer Programmer Credentials

Programmers can earn certifications in both languages and platforms. Most major systems vendors also offer certifications. For example, Oracle and Microsoft offer exams that benchmark programmers’ abilities in specific areas.

Available certifications include:

Java

GIAC Secure Software

SAS Certified Base Programmers

SAS Certified Advanced Programmers

Prospective employers may require certifications for hiring, while programmers who earn them in their current positions can prove their readiness to be promoted to a better job within the company.

Tools and Technology for Computer Programs

Computer programmers are the original techies—creating and using technology every day. They work with servers and mainframe operating systems, as well as a host of software including:

Source code editing software

Writing code requires more rigorous software than a word processing application. Some popular programs include Notepad++, Sublime Text and TextMate.

Compiler software

Takes source code written in one programming language and translates it to another.

Database management systems software

Used for managing large volumes of information. Programs include Microsoft SQL Server, MySQL software, Oracle and Pick software.

Development environment software

Software such as Microsoft Visual Basic and Xerces2 Java Parser provides a virtual test kitchen for programmers to develop and refine software before its release.

Spotlight Career Interview

Sean Madden is the executive managing director of client experience at Ziba Design in Portland, Oregon. Before his current position, he spent eight years in Silicon Valley as a programmer and associate creative director. Sean works to improve how clients experience technology, and also teaches at the Yale Executive School of Management.

What prompted you to go into computer science?

I chose computer science because in high school I spent quite a lot of time tinkering with computers, building them and constructing my own hardware. I felt like it would be a good continuation. I found that it was dramatically different than my expectations, but ultimately I enjoyed it.

You were working on the hardware side of things. Were you interested at all in programming?

I ended up getting a degree in programming. I just had a general interest in computers, so I signed up for computer science, and rapidly came to realize what programming and the art of computer science is, and it was very different from my previous experience with computing. But I enjoyed it, so I ended up selecting it as a major.

In your current work, how do you work with programmers, and what do you look for when you’re hiring a programmer?

Ziba is a creative firm. Increasingly, a huge part of our workload—probably 65 to 70 percent of our work—touches on a digital experience in some way. For us, a programmer is a person who brings our vision to life and makes sure it’s out in the world in the way we’ve imagined it. They can work in a lot of different contexts because the world we operate in is increasingly complex and connected. So we need people that are relatively up to speed, but also we need people that value design and understand that while there are always a million ways to program something, what we want are people that are invested in achieving the vision, not necessarily doing something as quickly as possible. Those people are rare.

What are some cool job opportunities that a lot of people may not know about if they’re just starting out?

I think there’s no better degree right now to graduate with than a computer science degree. Essentially any company that starts today has to also be a software company. Almost everyone is moving a product or service to market. But the thing that powers that ability is a robust appreciation and understanding of software. You can be a programmer in literally any industry. You can be in transportation, hospitality, consumer electronics, or sports entertainment. Everybody needs software. So programmers are becoming entrepreneurs. I think what’s going to happen in the future is that fluency in software is going to be as important to companies as fluency in finance and marketing.

It seems like you were perfectly placed to go into the biggest industry of our time.

Graduation was tough because the bubble burst in 2002. So we were in our senior year working on our theses, watching the ship we were going to sail sink in the harbor. My school took a liberal arts approach to computer science. We were taught how to think and be lifelong learners. And so it wasn’t about being awesome in Java. It was about using Java to understand the principles. When I got my first job actually as a programmer, I had three weeks to teach myself a programming language so that I could come into my job and actually contribute.

So, you were able to adapt pretty quickly.

In computer science, when your secret super power is you’re also a great communicator and conductor of ideas, you have a skill that the gnarly computer science people tend to not have. So when you look at why people have had success, it partially is the computer science, but it’s also the ability to write, the ability to communicate and the ability to collaborate.

Related Occupations

For people who like computers but aren’t necessarily interested in the programming side of things, or who want to work on a larger scale than personal computers and mobile phones, there are several other careers to choose from:

Software Systems Developers

Web Developer

20%

Salary

$63,490

Education and Training:

Associate degree or vocational training

Sources: Bureau of Labor Statistics, Payscale

What do related computing careers pay?

Computer programmers write code and work with software applications and systems, but the field of computer science in general offers more extensive opportunities. Individuals who have a mechanical or engineering bent may gravitate toward working with hardware, while others will excel in network or information technology positions. In any case, people with a computer science background earn salaries much higher than the national average. Check out the annual wages for the 10th, 50th and 90th percentile of earners in the following occupations:

Computer programmers and Related Job Salaries

Browse Computer Programming Degrees

Use the database below to browse a comprehensive list of schools with degrees related to computer programming.

Stay up to date with us.

Stay up-to-date with Learn How to Become. Join our email list to receive the quarterly
newsletter.

You're about to search for degree programs related to a career that you are researching. It's important to
recognize that a degree may be required for a career or increase your chances of employment but it is not a
guarantee of employment when you complete your degree.

I understand a degree DOES NOT GUARANTEE A JOB OR CAREER UPON COMPLETION OF A PROGRAM