ABOUT SSL CERTIFICATES
Search Schools

Computer Programming Salary Guide

Computer Programmers Overview
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.

Online Degrees
High School Diploma
Associate's Degree
Bachelor's Degree
Master's Degree
Doctorate
Certificate
Courses
Diploma
License
Online Programs
Accounting
Arts & Design
Business
Communications
Computer & IT
Counseling & Therapy
Education & Teaching
Engineering
Health & Medicine
Humanities
Legal Education
Mechanics
Nursing
Psychology
Religious Education
Social Sciences
Trade Schools
Community Resources
Accrediting Agencies
Financial Aid
Military Aid Guide
Popular Online Degrees
Salary Guide
Resume Guide
Education Articles
Education Articles
Online Degrees
International Schools
Canadian Universities
International Students
Social Networking
Visit us at Facebook
Visit us at Myspace
Visit us at Twitter

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. 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. 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.

Different Computer Programming Positions
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.

The Computer Programming 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.

Training & Qualifications
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.

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.

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.

Important 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.

Estimated Earnings
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 Systes 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.

Employment Information
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.

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 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 cyber security will lead to increased demand for programmers who are familiar with digital security issues, and are skilled in using appropriate security technology.

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.

Related Occupations
Other professional workers who deal extensively with data include computer software engineers, computer scientists and database administrator, computer systems analysts, statisticians, mathematicians, engineers, commercial and industrial designers, and operations research analysts.

Resources and Other Additional Links
State employment service offices can provide information about job openings for computer programmers. Municipal chambers of commerce are an additional source of information on an area’s largest employers.

Further information about computer careers is available from:

A special thanks to the US Bureau of Labor and Statistics United States. U.S.Bureau of Labor and Statistics. Occupational Outlook Handbook. 2008-2009 Edition http://www.bls.gov/OCO/.

Featured Schools
More Schools
American InterContinental University Online
(BIT) - Network Administration
Ashworth College - Featured
Computer Networking
Bryant & Stratton College
IT-Security
Lincoln College Online
Information Management and Security
Northcentral University
DBA - Management Information Systems
Saint Leo University
Bachelor of Science in Computer Information Systems
University of Phoenix
Bachelor of Science in Information Technology/Software Engineering
Accounting & Business School of the Rockies
Microsoft Power User
Advanced Training Associates
Fiber Optics
American Career Institute
Oracle Administration & Enterprise Solutions Developer
American InterContinental University
Master - Instructional Technology
American Sentinel University
BS, Information Systems Security
Antonelli College
Technical and Network Support
Ashford University
BA/Business Administration - Computer Science Studies
Beckfield College
Computer Network Administration (CNA)
Berkeley College
AAS, Business Administration - Information Systems Management
Branford Hall Career Institute
Computer Networking Management
Briarcliffe College
Office Technologies - Computer Tech - Applied Science
Brown-Mackie College
Associate of Applied Business in Database Technology
California College San Diego
BS in Computer Science
Canadian Tourism College
Computer Office Environment
Capella University Online
PhD - General IT
Career Technical College
AOS in Information Processing
Career Technical Institute
PC Specialist Plus
CDI Career College
Network and Database Administrator
Central Pennsylvania College
Information Technology-Network Management
Coleman College
BS in Computer Information Systems
Coleman University
AS - Computer Network Technology
CollegeAmerica
AOS Computer Programming
Collins College
Game Design
Colorado Christian University
Computer Information Systems
Colorado Technical University
Associate of Science in Network Systems Security
Colorado Technical University Online
Doctor of Computer Science (Executive Format)
Daymar College
Network Support Administration
DeVry University
Information Sciences
Dover Business College
PC Support and Network Administration
ECPI College of Technology
Information Technology - Bachelor
Empire College
Information Technology
Everest College Canada
Network Administrator
Everest Institute
Computer Technology
Everest University
Computer Information Science
Florida Career College
Associate's Degree - Computer Network Engineer
Florida Tech University Online - Graduate
Master of Science in Information Technology
Florida Tech University Online - Graduate - MBA
Master of Business Administration With a Specialization in Information Technology Management
Florida Tech University Online - Undergraduate
Associate of Science in Computer Information Systems
Friends University
Bachelor of Science in Computer Information Systems
Globe University
Information Technology
Hallmark College of Technology
Associate of Applied Science Degree in Computer Network Systems Technology
Harrison College
Information Technology
Herzing College
Computer Networking Technology
ICS Canada
PC Maintenance and Repair
IIA College
Diploma - Business Technology Specialists
Iowa Central College Online
AAS In Computer Networking Technology
Island Drafting and Technical Institute
Electronics and Computer Tech Degree
ITT Technical Institute
Technical Project Management
ITT Technical Institute Online
Computer and Electronics Engineering Technology
Ivy Bridge College Of Tiffin University
Computer & Information Technology
Jones International University
BBA Information Security Management
Kaplan University Online
Information Technology Pathway Certificate
Kaplan University Online - Direct
AAS in Information Technology
Keiser Career College
Associate in Computer Networking with Emerging Technologies
Keiser University
Associate of Science in Computer Programming
Keiser University eCampus
Information Technology
Keller Graduate School of Management
Certificate-Network and Communications Management
Keystone Technical Institute
Computer Network Technician
Lewis University
Master of Science in Information Security - Managerial Track
Lincoln College of Technology
Network Communications and Information Systems
Lincoln Technical Institute
Networking
Max The Mutt Animation School
Classical and Computer Animation
McCann School of Business and Technology
Associate in Computer Science and Programming
Medix
Computer Support Technician
Miami Jacobs Career College
AAS - Computer Support Specialist
Miller Motte Technical College
AAS in Microcomputer Applications
Minnesota School of Business
Information Technology
National American University
Information Technology Emphasis in Network Management/Microsoft
National College
Computer Network Technician
National Institute of Technology
Electronics and Computer Technology
New England Institute of Technology
Bachelor's Degree - Software Engineering
Northwestern College
Information Management Systems
Norwich University
Master of Science in Information Assurance
Ottawa University
Bachelors - Management of Computer Services
Penn Foster College
PC Maintenance and Repair
Pennsylvania Institute of Health and Technology
Computer Technology
Pioneer Pacific College
Computer and Networking Technology
Plaza College
Certificate - Computer Operations Assistant
Potomac College
Information Systems-A.S.
Prism PJA Campus
Paralegal including Computer Applications
Rasmussen College
Business Mgmt Associates - Child Development
Reeves College
Computer Graphic Design
Regis University
BS in Computer Information Systems
Remington College
Electronics and Computer Technology
Salem International University Online
Information Technology (BS)
San Joaquin Valley College
Associate - Computer Support Technology
Sanford Brown College
Computer Network Operations
Southwest Florida College
Computer Programming & Database Management
Spencerian College
Certificates in Drafting - Architecture
Stanbridge College
Diploma in Information Technology
Stevens Henager College
AOS in Computer Programming
Stratford Career Institute
Personal Computer Specialist
Strayer University
BS in Information Systems: Database Developer Concentration
Strayer University Online
BS-IS: Networking
Sullivan College of Technology and Design
Computer Network Administration
Sullivan University
Managing Information Technology - MA
Summit Career College
Applied Computer Office Administration
Technical Career Institute
Computer Software Applications
The Career Institute of American International College
Network Engineer and Security (MCSE, CompTia Security+)
The Hub
CompTIA A+
Tri-State Business Institute
Computer Career - Microcomputer Applications
University of San Francisco
Advanced Web Analytics
US Career Institute
PC Literacy
Utah Career College
Bachelor of Science - Information Technology
Utica College
Bachelor's in Cybersecurity - Cybercrime investigation
Vatterott College
Programming and Data Simulation
Vatterott Education Center
Information Systems Security
Villanova University Online
Maximizing IS/IT Team Effectiveness
Virginia College Online or Campus
Cisco Network Associate
Walden University
Bachelor of Science (B.S.) in Computer Information Systems - Information Systems Security
West Virginia Junior College - Morgantown
Information Technology
Western Governors University
B.S. in Information Technology
Westwood College
Associate - Information Technology
Westwood College - Anaheim
Bachelor Degree - Information Technology: Major in Network Management