Computers can process vast quantities of information rapidly and accurately, but only if they are correctly programmed. Computer programmers write the detailed instructions (called programs or software) that list in a logical order the steps the machine must follow to organize data, solve a problem or do some other task.
Programmers often work from descriptions prepared by systems analysts who have carefully studied the task that the computer system is going to perform -- perhaps organizing data collected in a survey or estimating stress on portions of a building during a hurricane. These descriptions contain a detailed list of the steps the computer must follow, such as retrieving data stored on a tape or disk, organizing it in a certain way, and performing the necessary calculations.
Some organizations, particularly smaller ones, do not employ systems analysts. Instead, workers called programmer-analysts are responsible for both systems analysis and programming. A programmer writes the specific program for the problem by breaking down each step into a series of instructions coded in one of the languages, such as BASIC or COBOL, developed especially for computers.
Programmers developing instructions for billing customers, for example, would first take the appropriate company records and then specify a solution by showing the steps the computer must follow to obtain old balances, add new charges, deduct payments, and calculate finance charges and the new amount due. Programmers then code the actual instructions the computer will follow in a programming language, such as COBOL, which is commonly used for career applications. They also insert comments in the coded instructions so other programmers can understand the program.
Next, programmers test the operation of the program to be sure the instructions are correct and will produce the desired information. Programmers prepare sample data that will test every part of the program and review the results to see if any errors were made. If errors did occur, the program must be changed and rechecked until it produces the correct results. This is called "debugging" the program.
Finally, programmers prepare an instruction sheet for the computer operator who will run the program.
Programs vary with the type of problem to be solved. For example, the arithmetical calculations involved in payroll accounting procedures are different from the mathematical calculations required to determine the flight path of the Space Shuttle. Although simple programs can be written in a few hours, programs that use complex mathematical formulas or many data files may require more than a year of work. In some cases, several programmers may work together in teams under a senior programmer's supervision. Programmers often are grouped into two broad types: Applications programmers and systems programmers. Applications programmers are usually oriented toward career, engineering or science. They write software to handle specific jobs, such as a program used in any inventory control system or one to control the temperature in an entire office building. Systems programmers, on the other hand, maintain the software that controls the operation of the entire computer system. These workers make changes in the sets of instructions that determine how the central processing unit of the computer handles the various jobs it has been given and communicates with peripheral equipment, such as terminals, printers, and disk drives. Because of their knowledge of entire computer systems, systems programmers often help applications programmers determine the source of problems that may occur with their programs.
Programmers work in offices in comfortable surroundings. They usually work about 40 hours a week, but their hours are not always from 9 to 5. Programmers may report early or work late to use the computer when it is available; occasionally, they work on weekends to meet deadlines.
Computer programmers held about 526,000 jobs in 1990. Most are employed by data processing service organizations -- including firms that write and sell software; other career services; manufacturers of office, computing and accounting machines; machinery and equipment wholesalers; banks; and educational institutions.
Applications programmers work for all types of firms that use computer systems. Systems programmers, on the other hand, usually work for organizations with large computer centers and for firms that manufacture computers or develop software.
Training, Other Qualifications, and Advancement
There are no universal training requirements for programmers because employers' needs vary. Computer programming is taught at public and private vocational schools, community and junior colleges, and universities. High schools in many parts of the country also offer introductory courses in data processing. Many programmers are college graduates; others have taken special courses in computer programming to supplement their experience in fields such as accounting, inventory control, or other career areas. The level of education and quality of training that employers seek, however, has generally been rising due to the growth in the number of qualified applicants and the increasing complexity of some programming tasks.
Employers using computers for scientific or engineering applications prefer college graduates who have degrees in computer or information science, mathematics, engineering, or the physical sciences. Graduate degrees are required for some jobs.
Employers who use computers for career applications prefer to hire people who have had college courses in programming and career; however, a bachelor's degree is not required by all employers. Also, experience in accounting, inventory control, and other career skills generally is preferred by employers. Some employers promote workers such as computer operators who have taken courses in programming to programmer jobs because of their work experience.
An indication of experience and professional competence at the senior programmer level is the Certificate in Computer Programming (CCP). This designation is conferred by the Institute for Certification of Computer Professionals upon candidates who have passed a basic five-part examination. In addition, individuals may take another section of the exam in order to specialize in career, science, or systems applications.
In hiring programmers, employers look for people who can think logically and are capable of exacting analytical work. The ability to work with abstract concepts and do technical analysis is especially important for systems programmers because they work with the software that controls the computer's operation. The job calls for patience, persistence, and the ability to work with extreme accuracy even under pressure. Ingenuity and imagination are particularly important when programmers must find new ways to solve a problem.
Beginning programmers may spend their first week on the job attending training classes. After this initial instruction, they work on simple assignments, such as maintaining existing programs. Programmers generally must spend at least several months working under close supervision. Because of rapidly changing technology, programmers must continue their training by taking courses offered by their employer and software vendors.
For skilled workers, the prospects for advancement are good. In large organizations, they may be promoted to lead programmers and be given supervisory responsibilities. Some applications programmers become systems programmers after they gain experience and take courses in system software. Both applications programmers and systems programmers may become systems analysts or be promoted to managerial positions.
Employment of programmers is expected to grow much faster than the average for all occupations through the year 2000 as computer usage expands. Although the proportion of programmers leaving the occupation each year is smaller than in most occupations, most of the job openings for programmers will result from replacement needs. Most of the programmers who leave the occupation transfer to other occupation, such as manager or systems analyst.
The need for applications programmers will increase as careeres, government, schools, and scientific organizations seek new applications for computers and improve the software already in use. Employment, however, is not expected to grow as rapidly as in the past as improved software and programming techniques simplify or eliminate some programming tasks. The greater use of packaged software that can meet the needs of many users also may moderate the growth in demand for applications programmers. More systems programmers will be needed to develop and maintain the complex operating programs that allow the use of high level computer languages, and the networking of computer equipment and systems.
In addition to jobs resulting from increased demand for programmers, many openings will arise each year from the need to replace workers who leave the occupation. Although the proportion of programmers leaving the occupation each year is smaller than in most occupations, most of the job openings for programmers will result from replacement needs. Most of the programmers who leave the occupation transfer to other occupations, such as manager or systems analyst. Job prospects should be best for college graduates who are familiar with a variety of programming languages, particularly new languages that apply to computer networking and data base management. Participating in a work-study program or training in an applied field such as accounting, management, engineering, or science also will improve prospects for college graduates seeking entry level jobs.
Graduates of 2-year programs in data processing and people with less than a 2-year degree or its equivalent in work experience will face competition. The rapid growth of employment opportunities in this occupation has led to substantial increases in the number of courses in programming being offered by postsecondary schools, junior colleges, and 4-year colleges, and consequently, in the number of people seeking jobs. As the number and quality of applicants have increased, employers have become more selective. Because shorter curriculums may offer limited training in applied fields and some aspects of programming, graduates of those curriculums are expected to have more difficulty finding jobs than in the past.
Median earnings of programmers who worked full time in 1990 were about $32,100% a year. The middle 50 percent earned between $23,425 and $42,300 annually. The lowest 10 percent earned less than $17,700, and the highest 10 percent more than $52,475.
In the Federal Government, the entrance salary for programmers with a college degree was about $16,650 a year in 1990.
Programmers working in the West and Northeast earned somewhat more than those working in the South and Midwest. Salaries tend to be highest in mining and public utilities and lowest in finance, insurance, and real estate. On average, systems programmers earn more than applications programmers.
Other workers in mathematics, career, and science who solve detailed problems include systems analysts, mathematical statisticians, engineers, financial analysts, actuaries, mathematical technicians, and operations research analysts. Sources of Additional Information
Additional information about the occupation of programmer is available from:
Data Processing Management Association, 505 Busse Hwy, Chicago, IL 60068.