Computer Programmers

Broadly speaking, there are two types of computer programmers. Systems programmers write the instructions, called programs or software, that control the entire computer system, including both the central processing unit and the equipment with which it communicates, such as terminals, printers, and disk drives. Application software is the software that is most familiar to computer users. Applications programmers write the software that is used to create word-processing, spreadsheets, and e-mail packages, commonly used in business; games, accounting, and reference software used by the average consumer; Web browsing applications; and subject- or skill-based software used in schools.

One popular career in this specialty is that of Internet applications programmer. These professionals write the computer programs that are used for Internet applications that allow people to surf the Internet, use search engines, purchase products online, play online video games, watch movies, listen to podcasts, communicate with friends on social networking sites, and perform many other tasks on the Internet. Another specialty is graphics programming. Graphics programmers write software programs that produce designs, illustrations, and animations that help business, industry, and schools.

Some job aspects of programming are the same, regardless of the specialty. A software designer or engineer will present the concept of what they are trying to achieve (such as a an online, multiplayer video game or a powerful new search engine) to the programmer and request that the programmer write the necessary code to accomplish their goal. Before actually writing code for part of a game, the programmer must analyze the designer or engineer's request and the desired results. The programmer must decide on how to approach it, and plan what the computer will have to do to produce these desired results. They must pay attention to minute details and instruct the computer in each step of the process. These instructions are coded in one of several programming languages, such as C/C++, Java, Python, or Assembly. Programmers may use computer-assisted software engineering tools, applications that combine compiling, code walk-through, code generation, test data generation, and debugging steps. These tools and environments handle the routine steps, allowing programmers to work faster and focus on writing the unique parts of the program.

When the program is completed, the programmer tests its working practicality. If it responds according to expectations, the programmer is finished. If the program does not respond as anticipated, it will have to be debugged—that is, examined for errors that must be eliminated.

Because of increased automation of programming, many programmers are now handling some tasks that were once in the software engineers' domain, such as identifying user needs and designing certain parts of computer programs, as well as other functions.

Next Section: Earnings

Career Update Newsletter

Tips and tools to help you manage your ideal career.