Occupation Profile for Computer Programmers

Convert project specifications and statements of problems and procedures to detailed logical flow charts for coding into computer language. Develop and write computer programs to store, locate, and retrieve specific documents, data, and information. May program web sites.


Significant Points

  • Almost 8 out of 10 computer programmers held an associate’s degree or higher in 2006; nearly half held a bachelor’s degree, and 2 out of 10 held a graduate degree.
  • Employment of computer programmers is expected to decline by four percent through 2016.
  • Job prospects will be best for applicants with a bachelor’s degree and experience with a variety of programming languages and tools.


$65,510.00 Median Annual Wage 9,000 Average Job Openings Per Year
3.5 Average Unemployment Percentage 5.5 Percentage That Completed High School
435,000 Employment Numbers in 2006 21.8 Percentage That Had Some College
417,000 Employment Numbers in 2016 (est.) 72.7 Percentage That Went Beyond College Degree

Sample Job Titles
Applications Programmer
Beta Tester
Bioinformatics Specialist
Business Programmer
Business Systems Analyst
Client Server Programmer
COBOL Programmer (Common Business Oriented Language Programmer)
Computer Animator
Computer Game Designer
Computer Game Programmer
Computer Game Tester
Computer Graphic Artist
Computer Graphic Designer
Computer Programer
Computer Programmer
Computer Video Game Designer
Content Manager
Database Designer
Database Developer
Database Programmer
Engineering Programmer
Enterprise Architect
Game Designer
Game Developer
Game Programer
Graphic Engineer
Information Architect
Internet Designer
Internet Programmer
Internet Webmaster
Java Developer
Java Programmer
Mainframe Programmer
Network Administrator
Object-Oriented Programmer
Oracle Developer
Programmer Analyst
Programmer, Engineering and Scientific
SAS Programmer
Software Developer
Software Development Engineer
Software Engineer
Software Programmer
Software Tester
Supervisor, Computer Programming
Systems Programmer
Video Game Designer
Video Game Developer
Video Game Maker
Video Game Programmer
Video Game Tester
Web Analyst
Web Application Developer
Web Architect
Web Designer
Web Editor
Web Graphic Designer
Web Page Designer
Web Programmer
Web Site Designer
Web Site Developer
Website Designer
Website Developer

  • Many of these occupations involve coordinating, supervising, managing, or training others. Examples include accountants, human resource managers, computer programmers, teachers, chemists, and police detectives.
  • Most of these occupations require a four - year bachelor's degree, but some do not.
  • A minimum of two to four years of work-related skill, knowledge, or experience is needed for these occupations. For example, an accountant must complete four years of college and work for several years in accounting to be considered qualified.
  • Employees in these occupations usually need several years of work-related experience, on-the-job training, and/or vocational training.

A bachelor’s degree commonly is required for computer programming jobs, although a two-year degree or 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 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.

Certification and 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 jobseeker 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.

Advancement. For skilled workers who keep up to date with the latest technology, prospects for advancement are good. In large organizations, programmers may be promoted to lead programmer and be given supervisory responsibilities. Some applications programmers may move into systems programming after they gain experience and take courses in systems software. With general business experience, programmers may become programmer-analysts or systems analysts, or may be promoted to managerial positions. Programmers with specialized knowledge and experience with a language or operating system may work in research and development and may even become computer software engineers. As employers increasingly contract with outside firms to do programming jobs, more opportunities should arise for experienced programmers with expertise in a specific area to work as consultants.

Nature of Work

Computer programmers write, test, and maintain the detailed instructions, called programs, that computers follow to perform their functions. Programmers also conceive, design, and test logical structures for solving problems by computer. With the help of other computer specialists, they figure out which instructions to use to make computers do specific tasks. Many technical innovations in programming—advanced computing technologies and sophisticated new languages and programming tools, for example—have redefined the role of a programmer and elevated much of the programming work done today.

Job titles and descriptions may vary, depending on the organization, but computer programmers are individuals whose main job function is programming. Programmers usually write programs according to the specifications given by computer software engineers and systems analysts. (Sections on computer software engineers and on computer systems analysts appear elsewhere in the Handbook.) After engineers and analysts design software—describing how it will work—the programmer converts that design into a logical series of instructions that the computer can follow. The programmer codes these instructions in a conventional programming language such as COBOL; an artificial intelligence language such as Prolog; or one of the more advanced object-oriented languages, such as Java, C++, or ACTOR.

Different programming languages are used depending on the purpose of the program. Programmers generally know more than one programming language, and because many languages are similar, they often can learn new languages relatively easily. In practice, programmers often are referred to by the language they know, such as Java programmers, or by the type of function they perform or environment in which they work—for example, database programmers, mainframe programmers, or Web programmers.

Programmers also update, repair, modify, and expand existing programs. Some, especially those working on large projects that involve many programmers, use computer-assisted software engineering (CASE) tools to automate much of the coding process. These tools enable a programmer to concentrate on writing the unique parts of a program. Programmers working on smaller projects often use programmer environments, applications that increase productivity by combining compiling, code walk through, code generation, test data generation, and debugging functions. Programmers also use libraries of basic code that can be modified or customized for a specific application. This approach yields more reliable and consistent programs and increases programmers’ productivity by eliminating some routine steps.

Programs vary widely depending on the type of information they will access or generate. For example, the instructions involved in updating financial records are very different from those required to simulate flight for pilot training. Simple programs can be written in a few hours, but some programs draw data from many existing systems or use complex mathematical formulas. These programs may take more than a year to create. In most cases, several programmers work together as a team under a senior programmer’s supervision.

Programmers test a program by running it to ensure that the instructions are correct and that the program produces the desired outcome. If errors do occur, the programmer must make the appropriate change and recheck the program until it produces the correct results. This process is called testing and debugging. Programmers may continue to fix problems for as long as a program is used.

Programmers working on a mainframe, a large centralized computer, may prepare instructions for a computer operator who will run the program. (A section on computer operators appears elsewhere in the Handbook.) Programmers also may contribute to the instruction manual for a program.

Programmers in software development companies may work directly with experts from various fields to create specialized software—either programs designed for specific clients or packaged software for general use—ranging from games and educational software to programs for desktop publishing and financial planning. Programming of packaged software constitutes one of the most rapidly growing segments of the computer services industry.

Increasingly, advanced software platforms are bridging the gap between computer programmers and computer users. New platforms, such as spreadsheet, accounting, and enterprise resource planning applications, have created demand for computer specialists who have first-hand knowledge of a user-base. These workers use such platforms to develop programs that meet the specific needs of this base. Computer programmers often are responsible for creating the software platform, and then fine-tuning the final program after it has been made.

Computer programmers often are grouped into two broad types—applications programmers and systems programmers. Applications programmers write programs to handle a specific job, such as a program to track inventory within an organization. They also may revise existing packaged software or customize generic applications purchased from vendors. Systems programmers, in contrast, write programs to maintain and control computer systems software for operating systems, networked systems, and database systems. These workers make changes in the instructions that determine how the network, workstations, and central processing unit of a system handle the various jobs they have been given, and how they communicate with peripheral equipment such as terminals, printers, and disk drives. Because of their knowledge of the entire computer system, systems programmers often help applications programmers determine the source of problems that may occur with their programs.

In some organizations, workers known as programmer-analysts are responsible for both the systems analysis and programming. (A more detailed description of the work of programmer-analysts is presented in the section on computer systems analysts elsewhere in the Handbook.)

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 four 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 eyestrain, back discomfort, and hand and wrist problems such as carpal tunnel syndrome.

Related Occupations

Sources: Career Guide to Industries (CGI), Occupational Information Network (O*Net), Occupation Outlook Handbook (OOH)

Median annual earnings of wage-and-salary computer programmers were $65,510 in May 2006. The middle 50 percent earned between $49,580 and $85,080 a year. The lowest 10 percent earned less than $38,460, and the highest 10 percent earned more than $106,610. Median annual earnings in the industries employing the largest numbers of computer programmers in May 2006 are shown below:

Software publishers $79,270
Computer systems design and related services 67,880
Management of companies and enterprises 67,170
Insurance carriers 65,650

According to the National Association of Colleges and Employers, starting salary offers for computer programmers averaged $49,928 per year in 2007.

According to Robert Half Technology, a firm providing specialized staffing services, average annual starting salaries in 2007 ranged from $55,250 to $90,250 for applications development programmers/analysts, and from $60,250 to $94,750 for software developers. Average starting salaries for mainframe systems programmers ranged from $52,250 to $70,750.

For the latest wage information:

The above wage data are from the Occupational Employment Statistics (OES) survey program, unless otherwise noted. For the latest National, State, and local earnings data, visit the following pages:

  • Computer programmers
  • Job Outlook

    Employment of computer programmers is expected to decline slowly. Job prospects should be best for those with a bachelor’s degree and experience with a variety of programming languages and tools.

    Employment change. Employment of computer programmers is expected to decline slowly, decreasing by 4 percent from 2006 to 2016. The consolidation and centralization of systems and applications, developments in packaged software, advances in programming languages and tools, and the growing ability of users to design, write, and implement more of their own programs mean that more programming functions can be performed by other types of information workers, such as computer software engineers.

    Another factor contributing to employment decline will be the offshore outsourcing of programming jobs. Because they can transmit their programs digitally, computer programmers can perform their job function from anywhere in the world, allowing companies to employ workers in countries that have lower prevailing wages. Computer programmers are at a much higher risk of having their jobs outsourced abroad than are workers involved in more complex and sophisticated information technology functions, such as software engineering. Much of the work of computer programmers requires little localized or specialized knowledge and can be made routine once knowledge of a particular programming language is mastered—and computer programming languages have become known internationally.

    Nevertheless, employers will continue to need some local programmers, especially those who have strong technical skills and who understand an employer’s business and its programming requirements. This means that programmers will have to keep abreast of changing programming languages and techniques. Given the importance of networking and the expansion of client/server, Web-based, and wireless environments, organizations will look for programmers who can support data communications and help implement business and intranet strategies. Demand for programmers with strong object-oriented programming capabilities and technical specialization in areas such as client/server programming, wireless applications, multimedia technology, and graphic user interface likely will stem from the expansion of intranets, extranets, and Internet applications. Programmers also will be needed to create and maintain expert systems and embed these technologies in more products. Finally, a growing emphasis on cybersecurity will lead to increased demand for programmers who are familiar with digital security issues, and are skilled in using appropriate security technology.

    Job prospects. Although employment is projected to decline, numerous job openings will result from the need to replace programmers who leave the labor force or transfer to other occupations. Prospects for these openings should be best for applicants with a bachelor’s degree and experience with a variety of programming languages and tools. The languages that are in demand today include C++, Java, and other object-oriented languages, as well as newer, domain-specific languages that apply to computer networking, database management, and Internet application development. As technology evolves, however, and newer, more sophisticated tools emerge, programmers will need to update their skills in order to remain competitive. Obtaining vendor-specific or language-specific certification also can provide a competitive edge.

    Jobs for both systems and applications programmers should be most plentiful in computer consulting businesses. These establishments are part of the computer systems design and related services industry, which is projected to be among the fastest growing industries in the economy over the 2006 to 2016 period.


    Computer programmers held about 435,000 jobs in 2006. Programmers are employed in almost every industry, but the largest concentration is in computer systems design and related services. Large numbers of programmers also work for software publishers, financial institutions, insurance carriers, educational institutions, government agencies, and management of companies and enterprises. Many computer programmers work independently as consultants on a temporary or contract basis, some of whom are self-employed. About 17,000 computer programmers were self-employed in 2006.

    • Mathematics — Knowledge of arithmetic, algebra, geometry, calculus, statistics, and their applications.
    • Engineering and Technology — Knowledge of the practical application of engineering science and technology. This includes applying principles, techniques, procedures, and equipment to the design and production of various goods and services.
    • Sales and Marketing — Knowledge of principles and methods for showing, promoting, and selling products or services. This includes marketing strategy and tactics, product demonstration, sales techniques, and sales control systems.
    • Medicine and Dentistry — Knowledge of the information and techniques needed to diagnose and treat human injuries, diseases, and deformities. This includes symptoms, treatment alternatives, drug properties and interactions, and preventive health-care measures.
    • Physics — Knowledge and prediction of physical principles, laws, their interrelationships, and applications to understanding fluid, material, and atmospheric dynamics, and mechanical, electrical, atomic and sub- atomic structures and processes.
    • Equipment Maintenance — Performing routine maintenance on equipment and determining when and what kind of maintenance is needed.
    • Coordination — Adjusting actions in relation to others' actions.
    • Active Learning — Understanding the implications of new information for both current and future problem-solving and decision-making.
    • Writing — Communicating effectively in writing as appropriate for the needs of the audience.
    • Troubleshooting — Determining causes of operating errors and deciding what to do about it.
    • Near Vision — The ability to see details at close range (within a few feet of the observer).
    • Stamina — The ability to exert yourself physically over long periods of time without getting winded or out of breath.
    • Explosive Strength — The ability to use short bursts of muscle force to propel oneself (as in jumping or sprinting), or to throw an object.
    • Oral Comprehension — The ability to listen to and understand information and ideas presented through spoken words and sentences.
    • Hearing Sensitivity — The ability to detect or tell the differences between sounds that vary in pitch and loudness.
    • Core — 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.
    • Core — Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer.
    • Core — Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.
    • Core — Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.
    • Supplemental — Collaborate with computer manufacturers and other users to develop new programming methods.
    • Monitoring and Controlling Resources — Monitoring and controlling resources and overseeing the spending of money.
    • Guiding, Directing, and Motivating Subordinates — Providing guidance and direction to subordinates, including setting performance standards and monitoring performance.
    • Assisting and Caring for Others — Providing personal assistance, medical attention, emotional support, or other personal care to others such as coworkers, customers, or patients.
    • Repairing and Maintaining Electronic Equipment — Servicing, repairing, calibrating, regulating, fine-tuning, or testing machines, devices, and equipment that operate primarily on the basis of electrical or electronic (not mechanical) principles.
    • Getting Information — Observing, receiving, and otherwise obtaining information from all relevant sources.

    2154 Computer Programmer Jobs Found

    Sotera, a Top 50 Government Contractor recognized by the Washington Business Journal, is looking for top talent to join our team! The Computer Prog...
    Sotera Defense Solutions - VA - Quantico - posted 10 days ago
    Immediate opening for a Computer Programmer to create and maintain internalsoftware programs. The ideal candidate has a strong backgroundin softwar...
    Express Employment Professionals - CA - Visalia - posted 25 days ago
    State of Iowa - Judicial Branch seeks a Computer Programmer. Qualified candidates must have Master’s degree or foreign equivalent in Computer Scien...
    State of Iowa - Judicial Branch - Des Moines, IA - posted 5 days ago
    Since 1996, Plug'n Pay Technologies has been on the forefront of bringing secure, reliable eCommerce solutions to businesses of all sizes. Plug'n P...
    Plug & Pay Technologies Inc - NY - Hauppauge - posted 6 days ago
    Consultant (Computer Programmer) needed for GDN, Inc., Indianapolis, IN. Program, create, modify, and test code and script of .Net based applicatio...
    GDN, Inc - IN - Indianapolis - posted 14 days ago
    Battelle is guided by a founding mission. We invest our knowledge, talents and resources, helping our customers achieve their most important goals....
    Battelle Memorial Institute - OH - Columbus - posted 3 days ago
    Primary Function : Writes programs for machines in order to fabricate metal and other materials which are then created into finished products. Posi...
    - Shiner, TX - posted 6 days ago
    We are looking for an experienced CNC programmer to support programming using MasterCam. The position will be a contracted position for periods of ...
    Techounds - Redmond WA - posted 26 days ago
    Trumpf Laser Programmer (CNC Programmer) We currently have great assignments for experienced and highly skilled CNC Programmers with some of our to...
    The Onin Group - Harmony, NC - posted 10 days ago
    CNC Programmer and Set up Operator- IMMEDIATE OPENING! Would you enjoy being part of cutting edge technology in the field of medical devices? Is be...
    Tecomet Inc - WI - Kenosha - posted 2 days ago

    More Computer Programmer Job Results...