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.

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 or customize generic applications called middleware. 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 to determine the source of problems that may occur with their programs.

In some organizations, particularly small ones, workers commonly known as programmer-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 based primarily on personal computers (PCs) 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, such as spreadsheet and database management software packages, allows users to write simple programs to access data and perform calculations.

Job Outlook and Growth Potential:

Employment of programmers is expected to grow about as fast as the average for all occupations through 2012. 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 systems design and related services and software publishers, which are projected to be among the fastest growing industries in the economy over the 2002-12 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 more slowly 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. Furthermore, as the level of technological innovation and sophistication increases, programmers are likely to face increasing competition from programming businesses overseas, to which 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 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 to 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, wireless applications, 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 products. Finally, growing emphasis on cyber-security will lead to increased demand for programmers who are familiar with digital security issues and skilled in using appropriate security technology.

As programming tasks become increasingly sophisticated and additional levels of skill and experience are 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 such as Java, as well as newer, domain-specific languages that apply to computer networking, database management, and Internet application development. Obtaining vendor-specific or language-specific certification also can provide a competitive edge. Because demand fluctuates with employers’ needs, jobseekers 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.

Wages and Earnings Potential:

Median annual earnings of computer programmers were $60,290 in 2002. The middle 50 percent earned between $45,960 and $78,140 a year. The lowest 10 percent earned less than $35,080; the highest 10 percent earned more than $96,860. Median annual earnings in the industries employing the largest numbers of computer programmers in 2002 were:

Professional and commercial equipment and supplies merchant wholesalers $70,440
Software publishers $66,870
Computer systems design and related services $65,640
Management of companies and enterprises $59,850
Data processing, hosting, and related services $59,300

According to the National Association of Colleges and Employers, starting salary offers for graduates with a bachelor’s degree in computer programming averaged $45,558 a year in 2003.

According to Robert Half International, a firm providing specialized staffing services, average annual starting salaries in 2003 ranged from $51,500 to $80,500 for applications development programmers/analysts, and from $55,000 to $87,750 for software developers. Average starting salaries for mainframe systems programmers ranged from $53,250 to $68,750 in 2003.

Copyright © 2014, Ohio's 2-Year Council of Deans and Directors of Engineering & Industrial Technologies

Career information from Bureau of Labor Statistics, U.S. Department of Labor,
Occupational Outlook Handbook, 2004-05 Edition and member schools.