COLLEGE COMPASS -- Occupational Overview

Computer Programmers

Nature of the Work

Computers increasingly affect our daily lives. They control the temperature and air quality in office buildings, expand dramatically the capabilities of our telephones, control manufacturing and other business processes, and even control the scoreboards at major athletic events. Computer programmers write, update, and maintain the detailed instructions (called programs or software) that list in a logical order the steps that computers must execute to perform these and other functions.

In many large organizations, programmers follow descriptions prepared by systems analysts who have carefully studied the task that the computer system is going to perform. These descriptions list the input required, the steps the computer must follow to process data, and the desired arrangement of the output. (A more detailed description of the work of systems analysts is presented in the statement on computer scientists and systems analysts elsewhere in the Handbook.) Some organizations, particularly smaller ones, do not employ systems analysts. Instead, workers called programmer-analysts are responsible for both systems analysis and programming. Programmers in software development companies often work without the contribution of systems analysts. Instead, they may work directly with experts from various fields to create software either programs designed for specific clients or packaged software for general use ranging from games and education software to programs for desktop publishing, financial planning, and spreadsheets.

The transition from a mainframe environment to primarily a PC-based environment has brought about a blurring of the once rigid distinction between the programmer and the user. Increasingly adept users are taking over many of the programming tasks previously performed by programmers. For example, the growing use of packaged software, like spreadsheet and data base management software packages, allows users to write simple programs to calculate or access data.

Regardless of setting, programmers write specific programs by breaking down each step into a logical series of instructions the computer can follow. They then code these instructions in a conventional programming language, such as C and FORTRAN, or one of the more advanced artificial intelligence or object oriented languages, such as LISP, Prolog, C++, or Ada.

Much of the programming being done today is the preparation of packaged software, one of the most rapidly growing segments of the computer industry. Despite the prevalence of packaged software, many programmers are involved in updating, repairing, and modifying code for existing programs. When making changes to a section of code, called a routine, programmers need to make other users aware of the task that the routine is to perform. They do this by inserting comments in the coded instructions so others can understand the program. Programmers using computer-aided software engineering (CASE) can concentrate on writing the unique parts of the program because the computer automates some of the more basic processes. This also yields more reliable and consistent programs and increases programmers' productivity by eliminating some of the routine steps.

When a program is ready to be tested, programmers run the program to ensure that the instructions are correct and will produce the desired information. They prepare sample data that test every part of the program and, after trial runs, review the results to see if any errors were made. If errors do occur, the programmer must change and recheck the program until it produces the correct results. This is called debugging the program.

Finally, programmers working in a mainframe environment prepare instructions for the computer operator who will run the program. (The work of computer operators is described in the statement on computer and peripheral equipment operators elsewhere in the Handbook.) They may also contribute to a user's manual for the program.

Programs vary with the type of information to be accessed or generated. For example, the data involved in updating financial records are different from those required to simulate a flight on a pilot trainee's monitor. 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 most cases, several programmers may work together as a team under a senior programmer's supervision.

Programmers often are grouped into two broad types: applications programmers and systems programmers. Applications programmers usually are oriented toward business, engineering, or science. They write software to handle specific jobs, such as a program used in an inventory control system or one to guide a missile after it has been fired. They also may work alone to revise existing packaged software. Systems programmers, on the other hand, maintain the software that controls the operation of an entire computer system. These workers make changes in the sets of instructions that determine how the central processing unit of the system 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 the entire computer system, systems programmers often help applications programmers determine the source of problems that may occur with their programs.

Many programmers develop packaged software.

Working Conditions

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 longer hours in order to meet deadlines or fix critical problems that occur during off hours.

Because programmers spend long periods of time in front of a computer monitor typing at a keyboard, they are susceptible to eyestrain and back discomfort and hand and wrist problems.

Employment

Computer programmers held about 555,000 jobs in 1992. Programmers are employed in most industries, but the largest concentrations are in data processing service organizations, including firms that write and sell software; firms that provide engineering and management services; manufacturers of office, computing, and accounting machines; banks; educational institutions, and government agencies.

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.

A small but growing number of programmers are employed on a temporary basis. A marketing firm, for example, may need the services of several extra programmers to write and debug the software necessary to get a new data base management system running. Once the software is functioning, however, their services are no longer needed. Rather than hiring these programmers as permanent employees and then laying them off after the job is done, employers increasingly are contracting with temporary help agencies, consulting firms, or directly with programmers themselves. Such temporary jobs usually last several months but some last a year or longer.

Training, Other Qualifications, and Advancement

There are no universal training requirements for programmers because employers' needs vary so much that computer applications have become so widespread and varied. 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 obtain 2-year degrees or certificates. Two-year colleges are targeted toward producing graduates for entry level jobs and may have strong ties to the local job market.

The majority of programmers hold a 4-year degree. Of these, some hold a B.A. or B.S. in computer science or information systems while others have taken special courses in computer programming to supplement their study in fields such as accounting, inventory control, or other business areas. College graduates who are interested in changing careers or developing an area of expertise may Return to a junior college for more training.

The level of education and quality of training that employers seek have been rising due to the growth in the number of qualified applicants and the increasing complexity of some programming tasks. Bachelor's degrees are now commonly required; in the absence of a degree, substantial specialized experience may be needed.

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. Knowledge of C and FORTRAN programming languages is desirable since these are the most common languages used in this area.

Employers who use computers for business applications prefer to hire people who have had college courses in management information systems (MIS), programming, and business. Knowledge of Cobol, C, Fourth Generation Languages (4GL), CASE tools, C++ and other object oriented programming languages is highly desirable. General business skills and experience related to the operations of the firm generally are preferred by employers. In the future, it may be common for applications programmers to obtain a multidisciplinary degree to provide adequate knowledge of the application area along with programming skills. A relatively small number of employers promote workers such as computer operators who have taken courses in programming to programmer jobs because of their knowledge of and particular work experience with computer systems.

Most systems programmers hold a 4-year degree in computer science. Extensive knowledge of operating systems is essential. This includes being able to configure the operating system to work with different types of hardware and adapting the operating system to best meet the needs of the particular company.

The Institute for Certification of Computer Professionals offers the Certificate in Computer Programming (CCP) to those who pass a core examination plus exams in two specialty areas. College graduates with little or no experience may be tested for certification as an Associate Computer Professional (ACP). Certification is not mandatory but it may give a jobseeker a competitive advantage.

When hiring programmers, employers look for people who can think logically and who are capable of exacting analytical work. The job calls for patience, persistence, and the ability to work with extreme accuracy even under pressure. Ingenuity and imagination are also particularly important when programmers test their work for potential failures. Increasingly, interpersonal skills are valued because of the use of programmer teams and user support centers. 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.

Beginning programmers may spend their first weeks on the job attending training classes. After this initial instruction, they may work alone on simple assignments, or on a team with more experienced programmers. Either way, they generally must spend at least several months working under close supervision. Because of rapidly changing technology, programmers must continuously update their training by taking courses sponsored by their employer or software vendors.

For skilled workers, the prospects for advancement are good. In large organizations, they may be promoted to lead programmer and be given supervisory responsibilities. Some applications programmers become systems programmers after they gain experience and take courses in systems software. With general business experience, both applications programmers and systems programmers may become systems analysts or be promoted to a managerial position. Other programmers, with specialized knowledge and experience with a language or operating system, may work in research and development areas such as artificial intelligence or CASE.

Job Outlook

Employment of programmers is expected to grow faster than the average for all occupations through the year 2005 as computer usage expands. The demand for programmers will increase as organizations seek new applications for computers and improvements to the software already in use. The rising demand for information, further automation of offices and factories, advances in health and medicine, and continuing scientific research will stimulate the demand for skilled programmers.

One important area of progress will be data communications. Networking computers so they can communicate with each other is necessary to achieve the greater efficiency that organizations require to remain competitive. Expert systems and other artificial intelligence principles and languages will increasingly be used in the years ahead, becoming productivity-enhancing tools available to programmers. Programmers will be creating and maintaining expert systems and embedding these technologies in more and more products. As this trend continues, knowledge of C++ and other object-oriented languages will become increasingly important.

Employment, however, is not expected to grow as rapidly as in the past as improved software and programming techniques, including CASE and 4GL, simplify or eliminate some programming tasks. Someone who can apply CASE tool programming along with design and systems analysis is able to produce applications quickly and more cheaply. Employers are increasingly interested in workers who can combine both of these skills.

In addition, the introduction of data base management systems is allowing users to take over many of the tasks previously performed by the programmer. Greater use of packaged software such as word processing and spreadsheet packages also may moderate the growth in demand for applications programmers.

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. Opportunities will exist throughout the economy, but jobs for both systems and applications programmers should be particularly plentiful in data processing service firms, software houses, and computer consulting businesses.

Because the number and quality of applicants have increased, employers have become more selective. Competition has increased for entry level positions, affecting even applicants with a bachelor's degree. Graduates of 2-year programs in data processing and people with less than a 2-year degree or its equivalent in work experience are facing especially strong competition for programming jobs. Many observers expect opportunities for people without college degrees to diminish in coming years as programming tasks become more complex. Prospects should be good for college graduates who are familiar with a variety of programming languages, particularly newer languages that apply to computer networking, data base management, and artificial intelligence.

Many employers prefer to hire applicants with previous experience in the field. Firms also desire programmers who develop a technical specialization in areas such as structured methodology programming, multimedia programming, graphic user interface, or 4th and 5th generation programming tools. Therefore, people who want to become programmers can enhance their chances by combining work experience with the appropriate formal training. Students have various options: Holding a summer or part-time job in a data processing department, participating in a college work-study program, or undertaking an internship. Students can greatly improve their employment prospects by also taking courses such as accounting, management, engineering, or science allied fields in which applications programmers are in demand.

Earnings

Median earnings of programmers who worked full time in 1992 were about $35,600 a year. The lowest 10 percent earned less than $19,700, and the highest 10 percent, more than $58,000. On average, systems programmers earn more than applications programmers.

In the Federal Government, the entrance salary for programmers with a college degree or qualifying experience was about $18,300 a year in 1993; for those with a superior academic record, $22,700.

Related Occupations

Programmers must pay great attention to detail as they write and debug programs. Other professional workers who must be detail-oriented include statisticians, engineers, financial analysts, accountants, auditors, actuaries, and operations research analysts.


Return to Beginning of Page

Return to Technology - Non Health Page

Return to Computer Science and Math Page

Reprinted with Permission of U. S. Department of Labor

Copyright 1995 - 1997 -- Educational On-Line Inc.