Find the Right School Right Now

Employment And Job Outlook For Computer Programmers

Computer programmers held about 585,000 jobs in 2000. Programmers are employed in almost every industry, but the largest concentration is in the computer and data processing services industry, which includes firms that write and sell software. Large numbers of programmers can also be found working for firms that provide engineering and management services, telecommunications companies, manufacturers of computer and office equipment, financial institutions, insurance carriers, educational institutions, and government agencies.

A large number of computer programmers are employed on a temporary or contract basis or work as independent consultants, as companies demand expertise with new programming languages or specialized areas of application. Rather than hiring programmers as permanent employees and then laying them off after a job is completed, employers can contract with temporary help agencies, consulting firms, or directly with programmers themselves. A marketing firm, for example, may only require the services of several programmers to write and debug the software necessary to get a new customer resource management system running. This practice also enables companies to bring in people with a specific set of skills - usually in one of the latest technologies - as it applies to their business needs. Bringing in an independent contractor or consultant with a certain level of experience in a new or advanced programming language, for example, enables an establishment to complete a particular job without having to retrain existing workers. Such jobs may last anywhere from several weeks to a year or longer. There were 22,000 self-employed computer programmers in 2000.

Employment of programmers is expected to grow about as fast as the average for all occupations through 2010. Jobs for both systems and applications programmers should be most plentiful in data processing service firms, software houses, and computer consulting businesses. These types of establishments are part of computer and data processing services, which is projected to be the fastest growing industry in the economy over the 2000-10 period. As organizations attempt to control costs and keep up with changing technology, they will need programmers to assist in conversions to new computer languages and systems. In addition, numerous job openings will result from the need to replace programmers who leave the labor force or transfer to other occupations such as manager or systems analyst.

Employment of programmers, however, is expected to grow much slower than that of other computer specialists. With the rapid gains in technology, sophisticated computer software now has the capability to write basic code, eliminating the need for more programmers to do this routine work. The consolidation and centralization of systems and applications, developments in packaged software, advanced programming languages and tools, and the growing ability of users to design, write, and implement more of their own programs means more of the programming functions can be transferred to other types of workers. As the level of technological innovation and sophistication increases, programmers should continue to face increasing competition from programming businesses overseas where much routine work can be contracted out at a lower cost.

Nevertheless, employers will continue to need programmers who have strong technical skills and who understand an employer's business and its programming needs. This will mean that programmers will need to keep up with changing programming languages and techniques. Given the importance of networking and the expansion of client/server environments and web- based environments, organizations will look for programmers who can support data communications and help implement electronic commerce and intranet strategies. Demand for programmers with strong object-oriented programming capabilities and technical specialization in areas such as client/server programming, multimedia technology, and graphic user interface (GUI), should arise 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 and more products.

As programming tasks become increasingly sophisticated and an additional level of skill and experience is demanded by employers, graduates of 2-year programs and people with less than a 2-year degree or its equivalent in work experience should face strong competition for programming jobs. Competition for entry-level positions, however, also can affect applicants with a bachelor's degree. Prospects should be best for college graduates with knowledge of, and experience working with, a variety of programming languages and tools - including C++ and other object-oriented languages like Java, as well as newer, domain-specific languages that apply to computer networking, data base management, and Internet application development. Obtaining vendor or language specific certification also can provide a competitive edge. Because demand fluctuates with employers' needs, job seekers should keep up to date with the latest skills and technologies. Individuals who want to become programmers can enhance their prospects by combining the appropriate formal training with practical work experience.

Training, Other Qualifications, And Advancement For Computer Programmers

While there are many training paths available for programmers, mainly because employers' needs are so varied, the level of education and experience employers seek has been rising, due to the growing number of qualified applicants and the specialization involved with most programming tasks. Bachelor's degrees are commonly required, although some programmers may qualify for certain jobs with 2-year degrees or certificates. Employers are primarily interested in programming knowledge, and computer programmers are able to get certified in a language such as C++ or Java. College graduates who are interested in changing careers or developing an area of expertise also may return to a 2-year community college or technical school for additional training. In the absence of a degree, substantial specialized experience or expertise may be needed. Even with a degree, employers appear to be placing more emphasis on previous experience, for all types of programmers.

Highest level of school completed or degree received, computer programmers, 2000

Level Percent
High school graduate or equivalent or less 11.8%
Some college, no degree 17.2%
Associate degree 11.0%
Bachelor's degree 47.4%
Graduate degree 12.8%

About 3 out of 5 computer programmers had a bachelor's degree or higher in 2000. Of these, some hold a degree in computer science, mathematics, or information systems, whereas others have taken special courses in computer programming to supplement their study in fields such as accounting, inventory control, or other areas of business. As the level of education and training required by employers continues to rise, this proportion should increase in the future.

Required skills vary from job to job, but the demand for various skills generally is driven by changes in technology. Employers using computers for scientific or engineering applications usually prefer college graduates who have degrees in computer or information science, mathematics, engineering, or the physical sciences. Graduate degrees in related fields are required for some jobs. Employers who use computers for business applications prefer to hire people who have had college courses in management information systems (MIS) and business and who possess strong programming skills. Although knowledge of traditional languages still is important, increasing emphasis is placed on newer, object-oriented programming languages and tools, such as C++ and Java. Additionally, employers are seeking persons familiar with fourth and fifth generation languages that involve graphic user interface (GUI) and systems programming. Employers also prefer applicants who have general business skills and experience related to the operations of the firm. Students can improve their employment prospects by participating in a college work-study program or by undertaking an internship.

Most systems programmers hold a 4-year degree in computer science. Extensive knowledge of a variety of operating systems is essential. This includes being able to configure an operating system to work with different types of hardware and adapting 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, for example.

When hiring programmers, employers look for people with the necessary programming skills who can think logically and pay close attention to detail. The job calls for patience, persistence, and the ability to work on exacting analytical work, especially under pressure. Ingenuity and imagination also 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 nontechnical personnel.

Entry-level or junior programmers may work alone on simple assignments after some initial instruction or 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 training by taking courses sponsored by their employer or software vendors.

For skilled workers who keep up to date with the latest technology, the 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 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 multimedia or Internet technology. As employers increasingly contract out programming jobs, more opportunities should arise for experienced programmers with expertise in a specific area to work as consultants.

Technical or professional certification is a way to demonstrate a level of competency or quality. In addition to language-specific certificates that a programmer can obtain, 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 other organizations. Professional certification may provide a job seeker a competitive advantage.

Nature Of The Work Of Computer Programmers

Computer programmers write, test, and maintain the detailed instructions, called programs, that computers must follow to perform their functions. They also conceive, design, and test logical structures for solving problems by computer. Many technical innovations in programming - advanced computing technologies and sophisticated new languages and programming tools - 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. In this occupational statement, computer programmer refers to individuals whose main job function is programming; this group has a wide range of responsibilities and educational backgrounds.

Computer programs tell the computer what to do, such as which information to identify and access, how to process it, and what equipment to use. Programs vary widely depending upon the type of information to be accessed or generated. For example, the instructions involved in updating financial records are very different from those required to duplicate conditions on board an aircraft for pilots training in a flight simulator. Although simple programs can be written in a few hours, programs that use complex mathematical formulas, whose solutions can only be approximated, or that draw data from many existing systems, may require more than a year of work. In most cases, several programmers work together as a team under a senior programmer's supervision.

Programmers write programs according to the specifications determined primarily by computer software engineers and system analysts. After the design process is complete, it is the job of the programmer to convert that design into a logical series of instructions that the computer can follow. They then code these instructions in a conventional programming language, such as COBOL; an artificial intelligence language, such as Prolog; or one of the most advanced object-oriented languages such as Java, C++, or Smalltalk. Different programming languages are used depending on the purpose of the program. COBOL, for example, is commonly used for business applications, whereas Fortran (short for "formula translation") is used in science and engineering. C++ is widely used for both scientific and business applications. Programmers generally know more than one programming language; and since 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 the type of function they perform or environment in which they work, such as database programmers, mainframe programmers, or Internet programmers.

Many programmers update, repair, modify, and expand existing programs. When making changes to a section of code, called a routine, programmers need to make other users aware of the task the routine is to perform. They do this by inserting comments in the coded instructions, so others can understand the program. 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 the program, because the tools automate various pieces of the program being built. CASE tools generate whole sections of code automatically, rather than line by line. This also yields more reliable and consistent programs and increases programmers' productivity by eliminating some routine steps.

Programmers test a program by running it, to ensure the instructions are correct and it produces the desired information. 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 debugging. Programmers may continue to fix these problems throughout the life of a program. Programmers working in a mainframe environment may prepare instructions for a computer operator who will run the program. They also may contribute to a manual for users.

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 may also revise existing packaged software. Systems programmers, on the other hand, write programs to maintain and control computer systems software, such as operating systems, networked systems, and database systems. These workers make changes in the sets of instructions that determine how the network, workstations, and central processing unit of the 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.

Programmers in software development companies 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 educational software to programs for desktop publishing, financial planning, and spreadsheets. Much of this type of programming is in the preparation of packaged software, which comprises one of the most rapidly growing segments of the computer services industry.

In some organizations, particularly small ones, workers commonly known asprogrammer-analysts are responsible for both the systems analysis and the actual programming work. Advanced programming languages and new object-oriented programming capabilities are increasing the efficiency and productivity of both programmers and users. The transition from a mainframe environment to one that is primarily personal computer based has blurred the once rigid distinction between the programmer and the user. Increasingly, adept end-users are taking over many of the tasks previously performed by programmers. For example, the growing use of packaged software, like spreadsheet and database management software packages, allows users to write simple programs to access data and perform calculations.

Working Conditions Of Computing Professionals

Computer programmers generally work in offices in comfortable surroundings. Many programmers may work long hours or weekends, to meet deadlines or fix critical problems that occur during off hours. Given the technology available, telecommuting is becoming common for a wide range of computer professionals-including computer programmers. As computer networks expand, more programmers are able to connect to a customer's computer system remotely to make corrections or fix problems, using modems, e-mail, and the Internet.

Like other workers who spend long periods of time 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.

Computer software engineers normally work in well-lighted and comfortable offices or computer laboratories in which computer equipment is located. Most software engineers work at least 40 hours a week; however, due to the project-oriented nature of the work, they also may have to work evenings or weekends to meet deadlines or solve unexpected technical problems. And like other workers who sit for hours at a computer typing on a keyboard, software engineers are susceptible to eyestrain, back discomfort, and hand and wrist problems such as carpal tunnel syndrome.

Many computer software engineers interact with customers and coworkers as they strive to improve software for users. Those employed by software vendors and consulting firms, for example, spend much of their time away from their offices, frequently traveling overnight, to meet with customers. They call on customers in businesses ranging from manufacturing plants to financial institutions.

As networks expand, software engineers may be able to use modems, laptops, e-mail, and the Internet to provide more technical support and other services from their main office, connecting to a customer's computer remotely to identify and correct developing problems.

Computer support specialists and systems administrators normally work in well lit, comfortable offices or computer laboratories. They usually work about 40 hours a week, but that may include evening or weekend work if the employer requires computer support over extended hours. Overtime may be necessary when unexpected technical problems arise. Like other workers who type on a keyboard for long periods, computer support specialists and systems administrators are susceptible to eyestrain, back discomfort, and hand and wrist problems such as carpal tunnel syndrome.

Due to the heavy emphasis on helping all types of computer users, computer support specialists and systems administrators constantly interact with customers and fellow employees as they answer questions and give valuable advice. Those who work as consultants are away from their offices much of the time, sometimes spending months working in a client's office.

As computer networks expand, more computer support specialists and systems administrators may be able to connect to a customer's computer remotely using modems, laptops, e-mail, and the Internet to provide technical support to computer users. This capability would reduce or eliminate travel to the customer's workplace. Systems administrators also can administer and configure networks and servers remotely, though it not as common as with computer support specialists.

Systems analysts, computer scientists, and database administrators normally work in offices or laboratories in comfortable surroundings. They usually work about 40 hours a week-the same as many other professional or office workers. However, evening or weekend work may be necessary to meet deadlines or solve specific problems. Given the technology available today, telecommuting is common for computer professionals. As networks expand, more work can be done from remote locations using modems, laptops, electronic mail, and the Internet.

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

Earnings & Pay Rate Of Computer Programmers

Median annual earnings of computer programmers were $57,590 in 2000. The middle 50 percent earned between $44,850 and $74,500 a year. The lowest 10 percent earned less than $35,020; the highest 10 percent earned more than $93,210. Median annual earnings in the industries employing the largest numbers of computer programmers in 2000 were:

Personnel supply services

$65,780

Professional and commercial equipment

$63,780

Computer and data processing services

$61,010

Commercial banks

$60,180

Management and public relations

$57,120

According to the National Association of Colleges and Employers, starting salary offers for graduates with a bachelor's degree in computer programming averaged $48,602 a year in 2001.

According to Robert Half International, average annual starting salaries in 2001 ranged from $58,500 to $90,000 for applications development programmers/developers, and from $54,000 to $77,750 for software development programmers/analysts. Average starting salaries for Internet programmers/analysts 

Earnings & Average Salary Of Computer Software Engineers

Median annual earnings of computer software engineers of application software, who worked full time in 2000, were about $67,670. The middle 50 percent earned between $53,390 and $85,490. The lowest 10 percent earned less than $42,710, and the highest 10 percent earned more than $106,680. Median annual earnings in the industries employing the largest numbers of computer applications software engineers in 2000 were:

Computer and office equipment

$74,300

Computer and data processing services

$69,520

Engineering and architectural services

$68,790

Professional and commercial equipment

$64,920

Management and public relations

$62,660

Median annual earnings of computer software engineers of systems software, who worked full time in 2000, were about $69,530. The middle 50 percent earned between $54,460 and $86,520. The lowest 10 percent earned less than $43,600, and the highest 10 percent earned more than $105,240. Median annual earnings in the industries employing the largest numbers of computer systems software engineers in 2000 were:

Computer and office equipment

$74,600

Computer and data processing services

$70,150

Telephone communication

$68,930

Engineering and architectural services

$68,030

Commercial banks

$65,620

According to the National Association of Colleges and Employers, starting salary offers for graduates with a bachelor's degree in computer engineering averaged $53,924 in 2001, and those with a master's degree averaged $58,026. Starting salary offers for graduates with a bachelor's degree in computer science averaged $52,723.

According to Robert Half International, starting salaries for software engineers in software development ranged from $62,750 to $92,000 in 2001.

In addition to typical benefits, computer software engineers may be provided with profit sharing, stock options, and a company car with a mileage allowance.

Earnings & Average Salary Of Support Specialists & System Administrators

Median annual earnings of computer support specialists were $36,460 in 2000. The middle 50 percent earned between $27,680 and $48,440. The lowest 10 percent earned less than $21,260, and the highest 10 percent earned more than $63,480. Median annual earnings in the industries employing the largest numbers of computer support specialists in 2000 were:

Professional and commercial equipment

$42,970

Computer and data processing services

$37,860

Personnel supply services

$34,080

Colleges and universities

$32,830

Miscellaneous business services

$21,070

Median annual earnings of network and computer systems administrators were $51,280 in 2000. The middle 50 percent earned between $40,450 and $65,140. The lowest 10 percent earned less than $32,450, and the highest 10 percent earned more than $81,150. Median annual earnings in the industries employing the largest number of network and computer systems administrators in 2000 were:

Computer and data processing services

$54,400

Telephone communication

$52,620

Management and public relations

$51,340

Elementary and secondary schools

$45,450

Colleges and universities

$44,010

According to Robert Half International, starting salaries in 2001 ranged from $30,500 to $56,000 for help-desk support staff, and from $48,000 to $61,000 for more senior technical support specialists. For systems administrators, starting salaries in 2001 ranged from $50,250 to $70,750.

Earnings &Amp Salary Of System Analysts, Computer Scientists & Database Administrators

Median annual earnings of computer systems analysts were $59,330 in 2000. The middle 50 percent earned between $46,980 and $73,210 a year. The lowest 10 percent earned less than $37,460, and the highest 10 percent earned more than $89,040. Median annual earnings in the industries employing the largest numbers of computer systems analysts in 2000 were:

Computer and data processing services

$64,110

Professional and commercial equipment

$63,530

Federal Government

$59,470

Local Government

$52,490

State Government

$51,230

Median annual earnings of database administrators were $51,990 in 2000. The middle 50 percent earned between $38,210 and $71,440. The lowest 10 percent earned less than $29,400, and the highest 10 percent earned more than $89,320. In 2000, median annual earnings of database administrators employed in computer and data processing services were $63,710, and in telephone communication, $52,230.

Median annual earnings of network systems and data communication analysts were $54,510 in 2000. The middle 50 percent earned between $42,310 and $69,970. The lowest 10 percent earned less than $33,360, and the highest 10 percent earned more than $88,620. Median annual earnings in the industries employing the largest numbers of network systems and data communications analysts in 2000 were:

Management and public relations

$60,260

Commercial banks

$59,910

Computer and data processing services

$59,160

Telephone communications

$51,780

State Government

$42,000

Median annual earnings of computer and information scientists, research, were $70,590 in 2000. The middle 50 percent earned between $54,700 and $89,990. The lowest 10 percent earned less than $41,390, and the highest 10 percent earned more than $113,510. Median annual earnings of computer and information scientists employed in computer and data processing services in 2000 were $71,940.

Median annual earnings of all other computer specialists were $50,590 in 2000. Median annual earnings of all other computer specialists employed in computer and data processing services were $51,970, and in professional and commercial equipment, $80,270 in 2000.

According to the National Association of Colleges and Employers, starting offers for graduates with a master's degree in computer science averaged $61,453 in 2001. Starting offers for graduates with a bachelor's degree in computer science averaged $52,723; in computer programming, $48,602; in computer systems analysis, $45,643; in information sciences and systems, $45,182; and in management information systems, $45,585.

According to Robert Half International, starting salaries in 2001 ranged from $72,500 to $105,750 for database administrators. Salaries for Internet-related occupations ranged from $58,000 to $82,500 for webmasters and $56,250 to $76,750 for Internet/Intranet developers.

Administrative Assistant & Office Professional Training Programs In The U.S.

Office professionals are needed in every industry and every business sector. Office professionals can acquire their skills through high schools, community colleges, business schools, or self-teaching aids such as books, tapes, or Internet tutorial applications. Overall, employment is projected to decline due to the proliferation of personal computers and other technologies; however, the need to replace workers who leave this large occupation each year should produce many job openings. Those with expertise in popular computer software applications should have the best job prospects.