 |
|
 |
- In 2004, 67 percent of computer programmers had some formal training; almost half held a bachelor’s degree, and about 20 percent held a graduate degree.
- Employment opportunities for other computer specialists are expected to decline more than for programmers.
- Job prospects will most likely be best for college graduates with a working knowledge of a variety of programming languages and tools; programmers with less or no formal education or its equivalent in work experience will have opportunities, but are more likely to face strong competition for programming jobs.
Nature of the Work
Computer programmers write, test, and maintain programs that computers must follow to perform their functions. Programmers also create and test logical structures for solving problems by computer. Advanced computing technologies and sophisticated new languages and programming tools have redefined the role of a computer programmer and elevated much of the programming work done today. Computer programmers are individuals whose main job function is programming; programmers have a wide range of responsibilities and educational backgrounds.
Computer programs tell the computer what to do. Programs tell the computer which information to identify and access, how to process it, and what equipment to use. For example, programming instructions involved in updating financial records are very different from those required to duplicate conditions on an aircraft for pilots training in a flight simulator. While simple programs can be written in a few hours, computer programs that use complex mathematical formulas whose solutions can only be approximated or that draw data from many existing systems may take years of work to complete. Often several programmers will work together as a team under a senior programmer’s supervision.
Computer software engineers and systems analysts usually determine the specifications programmers use to write programs. When the design process is complete, the programmer must adapt that design into a logical series of instructions that the computer can follow. Programmers 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 ACTOR. The programming language used depends on the purpose of the program. While COBOL is commonly used for business applications, Fortran (short for "formula translation") is used in science and engineering. C++ is utilized for both scientific and business applications. Extensible Markup Language (XML) is a popular programming tool for Web programmers, as well as J2EE (Java 2 Platform). Most programmers know more than one programming language. Since many languages are similar, they often can learn new languages easily. Often programmers are referred to by the language they know, such as Java programmers, by the type of function they perform, or by the environment in which they work—for example, database programmers, mainframe programmers, or Web programmers.
Computer programmers generally are grouped into two broad types—applications programmers and systems programmers. Applications programmers write programs to handle a specific job; for example a program to track inventory within an organization. They may also revise and update existing packaged software or customize generic applications which are purchased from vendors. Systems programmers write programs to maintain and control systems software, such as operating systems, networked systems, and database systems. These programmers revise the instructions that determine how the network, workstations, and central processing unit of the computer system handle the various tasks they have been given and how they communicate with peripheral equipment such as terminals, printers, and disk drives. Due to their knowledge of the entire computer system, systems programmers frequently help applications programmers determine the source of problems that sometimes occur with their programs.
In software development companies, programmers may work directly with experts from various fields to create software—this software could be designed for specific clients or packaged software for general use—ranging from games and educational software to programs for desktop publishing or financial planning. Programming of packaged software makes up one of the fastest growing segments of the computer services industry.
Working Conditions
Generally, programmers work in offices with comfortable surroundings. Many times programmers work long hours or weekends to meet deadlines or fix critical problems that occur during off hours. Telecommuting is becoming common for computer professionals, including computer programmers; as computer networks expand, more programmers are able to make corrections or fix problems remotely using modems, e-mail, and the Internet to connect to a customer’s computer.
Like other workers who spend long periods in front of a computer terminal typing at a keyboard, computer programmers are vulnerable to eyestrain, back discomfort, and hand and wrist problems such as carpal tunnel syndrome.
Training, Other Qualifications, and Advancement
Though there are many training paths available for programmers, usually because employers’ needs are so varied, the level of education and experience employers seek has been rising. Commonly, Bachelor’s degrees are required, although many programmers may qualify for certain jobs with 2-year degrees or certificates. An associate degree is a broadly used entry-level credential for computer programmer candidates. Many community colleges and most independent technical institutes and proprietary schools offer an associate degree in computer science or a related information technology field.
Employers are most interested in programming knowledge. Computer programmers can become certified in a programming language such as C++ or Java, and 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 extra training. With no degree, substantial specialized experience or expertise may be required. Even when hiring programmers with a degree, employers seem to place more emphasis on previous experience.
While some computer programmers hold a college degree in computer science, mathematics, or information systems, others have taken special courses in computer programming to supplement their degree in a field such as accounting, inventory control, or another area of business. As the level of education and training required by employers continues to increase, the proportion of programmers with a college degree should increase in the future. More than two-thirds of computer programmers had a bachelor’s or higher degree in 2004.
|
High school graduate or less |
8.3% |
|
Some college, no degree |
14.1 |
|
Associate degree |
10.2 |
|
Bachelor's degree |
49.1 |
|
Graduate degree |
18.3 |
Demand for various skills generally is driven by changes in technology; therefore, required skills vary from job to job. Employers using computers for business applications prefer to hire people who have had college courses in management information systems and business and who have acquired strong programming skills. Even though knowledge of traditional languages is important, more and more employers are placing emphasis on newer, object-oriented programming languages and tools such as C++ and Java. Employers are additionally seeking persons familiar with fourth-generation and fifth-generation languages that involve graphic user interface and systems programming. Often prospective employers look for candidates who have general business skills and experience related to the operations of the firm.
Most systems programmers hold a 4-year degree in computer science, and extensive knowledge of a variety of operating systems is essential. Including being able to configure an operating system to work with different types of hardware and having the skills needed to adapt the operating system to best meet the needs of a particular organization, systems programmers must also be able to work with database systems, such as DB2, Oracle, or Sybase.
When hiring programmers, employers look for candidates with the necessary programming skills who think logically and pay close attention to detail. Patience, persistence, and the ability to work on exacting analytical work, especially under pressure is a must. Creativity is particularly important when programmers design solutions and test programs for potential failures. Programmers must be able to work with abstract concepts and the ability to do technical analysis is especially important for systems programmers because they work with the software that controls the computer’s operation.
Skilled programmers who keep up to date with the latest technology, have the best prospects for advancement. In large organizations, programmers have the opportunity to be promoted to lead programmer and may be given supervisory responsibilities. Applications programmers may move into systems programming after gaining experience and taking courses in systems software. With general business experience, some programmers may become programmer-analysts or systems analysts. They may also have the opportunity to be promoted to managerial positions. Some programmers, who have specialized knowledge and experience with a language or operating system, may work in research and development. Employers increasingly outsource programming jobs, so more opportunities should arise for experienced programmers with expertise in a specific area to work as consultants.
Certification is the best way to demonstrate a level of competence, and may provide a competitive advantage for those seeking programming jobs. A programmer can obtain language-specific certificates, and product vendors or software firms also offer certification and often require professionals who work with their products to be certified.
Employment
In 2004, computer programmers held about 455,000 jobs. Programmers are employed in nearly every industry, but the largest population is in computer systems design and related services. Many programmers work for telecommunications companies, software publishers, financial institutions, insurance carriers, educational institutions, and government agencies.
Computer programmers are often employed on a temporary or contract basis or work as independent consultants. They provide companies expertise with new programming languages or specialized areas of application. Instead of hiring programmers as permanent employees and then laying them off after a job is completed, employers contract with temporary help agencies, with consulting firms, or directly with programmers themselves. An independent contractor or consultant with experience in a new or advanced programming language allows the firm to complete a job without having to retrain existing workers. These type of jobs may last anywhere from several weeks to a year or longer. In 2004, there were 25,000 self-employed computer programmers.
Job Outlook
Over the next 10 years, 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. Vendor-specific or language-specific certification can also provide a competitive edge for candidates. Since demand fluctuates with employers’ needs, jobseekers should keep up to date with the latest skills and technologies. People who want to become programmers should enhance their prospects by combining the appropriate formal training with practical work experience.
Job prospects for computer programmers are expected to grow more slowly than the average for all occupations through the year 2014. Highly advanced software now has the capability to write basic code, eliminating the need for many programmers to do this routine work; 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 means that more of the programming functions can be transferred from programmers to other types of information workers.
Outsourcing of these jobs to other countries is another factor limiting growth in employment. Computer programmers are able to perform their job duties from anywhere in the world. They can digitally transmit their programs to any location via e-mail and other file transfer methods. Because computer programming has become an international language, requiring little localized or specialized knowledge, 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 engineers.
Even so, employers will need programmers who have strong technical skills and who can understand an employer’s business and its programming needs. Programmers must keep abreast of changing programming languages and techniques. Due to the importance of networking and the expansion of client/server, Web-based, and wireless environments, businesses will look for programmers who can support data communications and help implement electronic commerce and intranet strategies. Increased 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 will develop due to the expansion of intranets, extranets, and Internet applications. Programmers will be needed to create and maintain expert systems and embed these types of technologies in more products. Lastly, an increased emphasis on cybersecurity will lead to a growing demand for programmers who are up-to-date with digital security issues and skilled in using appropriate security technology.
Job prospects for both systems and applications programmers are expected to be most plentiful in data-processing service firms, software houses, and computer consulting businesses. These types of businesses 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 2004-14 period. Additionally, many 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.
Earnings
In 2004, median annual earnings of computer programmers were $62,890; the middle 50 percent earned between $47,580 and $81,280 a year; the lowest 10 percent earned less than $36,470; the highest 10 percent earned more than $99,610. In May 2004 median annual earnings in the industries employing the largest numbers of computer programmers were:
|
Software publishers |
$73,060 |
|
Computer systems design and related services |
67,600 |
|
Data processing, hosting, and related services |
64,540 |
|
Insurance carriers |
62,990 |
|
Management of companies and enterprises |
62,160 |
Starting salary offers for graduates with a bachelor’s degree in computer science averaged $50,820 a year in 2005, according to the National Association of Colleges and Employers.
Robert Half International, a specialized staffing services firm, reported average annual starting salaries in 2005 ranged from $52,500 to $83,250 for applications development programmers/analysts, and from $55,000 to $88,250 for software developers, while average starting salaries for mainframe systems programmers ranged from $50,250 to $67,500.
Visit the directory of career training programs, including computer programming training and certification at:
eLearningYellowPages.com
*Source: Bureau of Labor Statistics, U.S. Department of Labor. This work is licensed under a Creative Commons Attribution-No Derivative Works 3.0 License.
|
 |
|
 |