woman at desk

A computer programmer could...

Program an infusion pump's embedded system for safer drug delivery. medicine infusion Program a barcode reader, allowing stores to track inventory. person using a barcode reader
Help studios create cutting-edge and cool video games. gamer Program and test the autopilot for an airplane's flight control system. autopilot
Find out more...

Key Facts & Information

Overview Computers are essential tools in the modern world, handling everything from traffic control, car welding, movie animation, shipping, aircraft design, and social networking to book publishing, business management, music mixing, health care, agriculture, and online shopping. Computer programmers are the people who write the instructions that tell computers what to do.
Key Requirements Good analytical, troubleshooting, problem-solving, and logic skills, as well as attention to detail and the ability to communicate well with others.
Minimum Degree Bachelor's degree
Subjects to Study in High School Physics, computer science, algebra, geometry, calculus
Median Salary
Computer Programmer
U.S. Mean Annual Wage
Min Wage
Projected Job Growth (2014-2024) Decline Slowly or Moderately (-3% to -9%)
  • Read the gaming history of Carl Muller, a computer programmer who worked on once popular video games, like Mortal Kombat 2 and The Last Ninja.
  • Meet Nathan Mates, a computer programmer at Pandemic Studios who develops computer games for PlayStation 2, Xbox, GameCube, and PC's.
Related Occupations
  • Computer and information systems managers
  • Computer support specialists
  • Computer systems analysts
  • Computer software engineer
  • Operations research analysts
  • Computer science teachers, post-secondary
  • Computer operators
  • Computer, automated teller, and office machine repairers
  • Numerical tool and process control programmers
Source: O*Net

Training, Other Qualifications

A bachelor's degree is commonly required for computer programming jobs, although a two-year degree or a certificate may be adequate for some positions. Employers favor applicants who already have relevant programming skills and experience. Skilled workers who keep up to date with the latest technology usually have good opportunities for advancement.

Education and Training

Most programmers have a bachelor's degree, but a two-year degree or a certificate may be adequate for some jobs. Some computer programmers hold a college degree in computer science, mathematics, or information systems, whereas others have taken special courses in computer programming to supplement their degree in a field such as accounting, finance, or another area of business. In 2006, more than 68 percent of computer programmers had a bachelor's degree or higher, but as the level of education and training required by employers continues to rise, this proportion is expected to increase.

Employers who use computers for scientific or engineering applications usually prefer college graduates who have a degree in computer or information science, mathematics, engineering, or the physical sciences. Employers who use computers for business applications prefer to hire people who have had college courses in management information systems and business, and who possess strong programming skills. A graduate degree in a related field is required for some jobs.

Most systems programmers hold a four-year degree in computer science. Extensive knowledge of a variety of operating systems is essential for such workers. This includes being able to configure an operating system to work with different types of hardware and being able to adapt the operating system to best meet the needs of a particular organization. Systems programmers also must be able to work with database systems, such as DB2, Oracle, or Sybase.

In addition to educational attainment, employers highly value relevant programming skills, as well as experience. Although knowledge of traditional programming languages still is important, employers are placing an emphasis on newer, object-oriented languages and tools such as C++ and Java. Additionally, employers seek people familiar with fourth- and fifth-generation languages that involve graphic user interface and systems programming. College graduates who are interested in changing careers or developing an area of expertise may return to a two-year community college or technical school for specialized training. In the absence of a degree, substantial specialized experience or expertise may be needed.

Entry-level or junior programmers may work alone on simple assignments after some initial instruction, or they may be assigned to work on a team with more experienced programmers. Either way, beginning programmers generally must work under close supervision.

Because technology changes so rapidly, programmers must continuously update their knowledge and skills by taking courses sponsored by their employer or by software vendors, or offered through local community colleges and universities.

Other Qualifications

When hiring programmers, employers look for people with the necessary programming skills who can think logically and pay close attention to detail. Programming calls for patience, persistence, and the ability to perform exacting analytical work, especially under pressure. Ingenuity and creativity are particularly important when programmers design solutions and test their work for potential failures. The ability to work with abstract concepts and to do technical analysis is especially important for systems programmers because they work with the software that controls the computer's operation.

Because programmers are expected to work in teams and interact directly with users, employers want programmers who are able to communicate with non-technical personnel. Business skills are also important, especially for those wishing to advance to managerial positions.

Certification is a way to demonstrate a level of competence and may provide a job-seeker with a competitive advantage. In addition to language-specific certificates, product vendors or software firms also offer certification and may require professionals who work with their products to be certified. Voluntary certification also is available through various other organizations.

Nature of the Work

Programmers receive detailed job descriptions that identify the goal of the program. Programmers then may prepare systems flow charts that show diagrammatically how information will flow through the computer and its peripheral, or related, equipment. If much creativity and expertise are demanded at this step, systems analysts or computer software engineers may prepare the systems flow charts. In most medium to large computer installations, programmers receive their instructions from systems analysts or computer software engineers.

When the preliminary stages are completed, programmers write the actual program using special computer languages. Different computer languages are used for different applications. For instance, HTML and XML are useful when creating Web applications, and COBOL is useful for business applications. Since most programs are long and complex, they must be tested to see whether they run as expected. This step is called debugging. If the test run is not satisfactory, the programmers examine the program for errors in logic and data and make corrections or report the problem to a software engineer. It may take a few days to write a simple program, while more than a year may be required to develop a sophisticated one.

Most programmers are involved in applications programming. They work on specific tasks that have a direct application, such as designing accounting procedures. Applications programmers usually specialize in either writing programs just for one professional field, such as science or business. Applications programmers meet with clients and designers to understand the scope of the project before they begin to write the code. They work alone or in teams depending on the budget, deadline, and the size of the project.

Systems programmers write programs to maintain and control systems software that may run systems such as a large office's computer network. They would, for instance, write a program that enables a new printer to work with an old computer. They generally work for computer manufacturers or for companies that have large computer installations. Some are involved in developing new computer languages. Computer software engineers, who are very experienced programmers, design and implement complex programs from scratch. They are familiar with computer hardware design, memory, and the inner workings of computers.

Work Environment

Programmers spend the majority of their time in front of a computer terminal, and work in clean, comfortable offices. Telecommuting is becoming more common, however, as technological advances allow more work to be done from remote locations.

Most computer programmers work about 40 hours per week. Long hours or weekend work may be required, however, to meet deadlines or fix unexpected technical problems. About 4 percent work part-time, compared with about 15 percent for all occupations.

Like other workers who spend long periods in front of a computer terminal typing at a keyboard, programmers are susceptible to eye strain, back discomfort, and hand and wrist problems, such as carpal tunnel syndrome.

On the Job

  • Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.
  • Conduct trial runs of programs and software applications to be sure they will produce the desired information and that the instructions are correct.
  • Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.
  • Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking inventory, storing or retrieving data, or controlling other equipment.
  • Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.
  • Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements.
  • Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.
  • Write or contribute to instructions or manuals to guide end users.
  • Investigate whether networks, workstations, the central processing unit of the system, or peripheral equipment are responding to a program's instructions.
  • Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.

Source: BLS

Companies That Hire Computer Programmers

Explore what you might do on the job with one of these projects...

Log in to add favorite
Science Fair Project Idea
We use passwords every day for our email and other computer accounts. How secure is the password that you use? How hard would it be for someone to guess your password? How hard is it to write a computer program to guess a password? You can see for yourself by writing a simple password guesser in the computer language Python. We will get you started with some ideas, a little sample code, and a few passwords for your computer program to try and guess. Read more
Log in to add favorite
Science Fair Project Idea
Lights and music make a great combination! Getting sound and lights to complement each other just right helps set the mood for everything from DJ parties and concerts, to theater shows, the circus, and ballet performances. You can put together your own lights and music show using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project looks like: … Read more
Log in to add favorite
Science Fair Project Idea
When you picture video games, you probably picture realistic figures, a lot of color, and a lot of detail, right? Those descriptions do not really describe video games from the early 1980's. So why do video games today look better than video games from the 80's? One major change between then and now is the number of pixels, or dots on the screen, used to represent video game objects. When Nintendo® first introduced the Super Mario Bros game for the Nintendo Entertainment System (NES) in… Read more
Log in to add favorite
Science Fair Project Idea
This project is a follow-up to the Science Buddies project Explore Optical Illusions: Build an Infinity Mirror, which shows you how to build a basic infinity mirror using light emitting diodes (LEDs) and arts and crafts materials. What if you wanted to build an infinity mirror that could change colors, like the one in Figure 1? Figure 1. A color-changing infinity mirror. You can do this by using special RGB (red, green, and blue) LEDs. Just like the… Read more
Log in to add favorite
Science Fair Project Idea
Are you artistic? Do you enjoy creating art? Some may think that art is something only humans can make, but what about robots: can they be artistic? They can if you build them that way. In this robotics engineering project, you will build a robot that creates art. And who knows? Someday your robot art may be worth millions! Read more
Log in to add favorite
Science Fair Project Idea
Have you ever wished you could create an alarm system to guard your stuff? Or what about throwing a surprise party for someone and automatically playing music and flashing lights when they walk in the door? You can do either of these things using the Raspberry Pi Projects Kit. The kit includes a motion sensor, which can detect when people move in front of it. Check out the video to see what this simple, but fun, project looks like: … Read more
Log in to add favorite
Science Fair Project Idea
Have you ever had to take prescription medicine to get over an illness? To get better, it is important to take the medication in the proper manner and at the proper time. Wouldn't it be cool if there were a tool or piece of automated equipment that held your medicine and reminded you to take it? A tool that would know when you picked up the bottle and took your medicine? Building a smart medicine cabinet is what this science project is all about! Read more
Log in to add favorite
Science Fair Project Idea
Have you ever used a toy like a Spirograph® to draw precise, repeatable patterns on a piece of paper? What if you could use a computer to automatically draw the patterns for you? This project will show you how to do just that using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project looks like: … Read more
Log in to add favorite
Science Fair Project Idea
How can you motivate students and teachers to make positive changes in their school? Why not try using what is in everyone's pocket—a smartphone! With this project you'll try your hand at harnessing the power of crowdsourcing and mobile technology by creating an app that motivates users to change their school for the better. Do not worry about the app creation, the MIT App Inventor tool makes that part easy; the instructions provided here will lead you through it step-by-step. Will… Read more
Log in to add favorite
Science Fair Project Idea
If you have seen any of the "Star Wars" movies, then you probably remember when Jedi knights like Luke Skywalker and Obi-Wan Kenobi used "The Force" to push, pull, and even throw objects — including some helpless battle droids. Have you ever wished you could do that in real life? In this robotics project, you will build and program a LEGO® robot that you can push and pull using an "invisible force" — almost like a real Jedi! We make no promise that you will be taking down the… Read more
Log in to add favorite
Science Fair Project Idea
Although fractal images can be intriguingly complex, fractals are more than just pretty pictures. In this project, you'll explore the mathematical properties of the famous Mandelbrot (illustration on the Background tab) and Julia sets. You'll learn about how these images are generated, and about the relationship between the Mandelbrot set and the Julia sets. Read more
Log in to add favorite
Science Fair Project Idea
When is an animal considered endangered? When will it become extinct? What happens when a population has reached the limits of its resources? What happens to a population when a habitat changes? These are some of the questions population biologists try to answer. They use population models, created from math equations, to predict what will happen to a population over time. If you want to see how modeling is done and make some predictions of your own, you certainly won't need a crystal… Read more
Log in to add favorite
Science Fair Project Idea
Do you like to play cards? Here's a project that will get you thinking about strategy in card games and help you become a better card player. Read more
Log in to add favorite
Science Fair Project Idea
This project is a fun way to try your hand at programming. You'll learn how to create some simple animations, and you'll perform tests and make measurements to help you create more realistic-looking animations. All you need to get started is a Web browser and a text editor (like Notepad). Read more
Log in to add favorite
Science Fair Project Idea
"Pow!" Wow, what an awesome punch that character has! Ever wondered what goes into making a punch look good in a video game? Or any other character motion sequence, for that matter? Try this science fair project for a firsthand look at how art and timing can create memorable game action. Read more
Log in to add favorite
Science Fair Project Idea
Have you ever played a game that tested the steadiness of your hands? Operation® is a popular board game that requires you to perform "surgery" without bumping a tool against the edges of the game. There are also popular amusement park or carnival games where you try to move a metal loop along a wavy metal wire without letting the two touch. You can build your own version of these games using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project… Read more
Log in to add favorite
Science Fair Project Idea
Are you an artist, or do you enjoy the process of making art? What kind of art do you create? Do only humans make art? Not all the time. Robots can create art, too. Robots can be programmed and "taught" to do all kinds of things, such as delivering medications to hospital patients or putting together a car on an assembly line. The Vangobot™, shown in the video below, paints pictures with brushes and paint, and in a distinct, unique style—just like a human artist. Watch… Read more
Log in to add favorite
Science Fair Project Idea
Have you ever tried to ride your bike up a flight of stairs? Vehicles with wheels are great at traveling on paved roads or flat ground, but when it comes to stairs or uneven ground in the woods, wheels are not always such a great option. Inspired by real-life all-terrain robots, in this engineering project you will design and build a LEGO® robot that can travel over bumpy ground, through your yard, or even up a stack of textbooks — and almost anything else you can think of! Read more
Log in to add favorite
Science Fair Project Idea
The Incredibles, Ratatouille, Up. What do these Pixar films have in common? They are all computer-animated films. While the writers and directors came up with the compelling stories and the kinds of scenes that would best tell the stories, the computer animation experts brought the films to life. In this computer science project, you will easily be able to create your own animated story using a simple computer programming environment called Storytelling Alice. To create your animation, you will… Read more
Log in to add favorite
Science Fair Project Idea
Use sound recording and analysis software to record voices of your family members. Can you figure out ways to identify each family member by just looking at the analyzed sound patterns from their voice (e.g., spectral frequency analysis)? Develop a hypothesis about what types of sound analysis will identify an individual. Have a helper record additional test files of your family members, without telling you which file belongs to whom. Unplug your computer speakers and see if you can… Read more

Ask Questions

Do you have a specific question about a career as a Computer Programmer that isn't answered on this page? Post your question on the Science Buddies Ask an Expert Forum.

Additional Information

State employment service offices can provide information about job openings for computer programmers. Municipal chambers of commerce are an additional source of information on an area's largest employers.

Further information about computer careers is available from:


Additional Support

We'd like to acknowledge the additional support of:

  • AMD
  • Intel
  • Seagate
Free science fair projects.