Computer Programmers

Computer programmers focus on writing, testing, and maintaining the detailed instructions that computers follow when performing specific functions. These instructions are known as programs, and programmers construct them with the help of other computer specialists. For example, software engineers and computer systems analysts are often in charge of designing software, or explaining how they envision a program working. Programmers will then convert each of these designs into a logical sequence of instructions that a computer can follow. Modern computing technologies, sophisticated programming languages, and advanced programming tools have transformed this industry and elevated the level of work expected of contemporary computer programmers.

The instructions, or programs, that programmers create are coded using conventional programming languages like COBOL, artificial intelligence languages such as Prolog, or advanced object-oriented languages like Java or C++. Most computer programmers are familiar with more than one programming language, as these languages are often interrelated and are easier to learn once one variation has been mastered. Programmers also specialize in repairing, altering, updating, and expanding existing programs. With the help of computer-assisted software engineering (CASE) tools, programmer environments, and libraries of basic code, today's computer programmers can bypass much of the generic coding process and concentrate on building the unique components of a program. Programmers are also responsible for testing and debugging completed programs. As long as a program is still in use, programmers will continue to run and test the program and repair any problems that they encounter as result of this testing.

Two broad categories of programming professionals exist in the U.S.: applications programmers and systems programmers. Applications programmers revise packaged software, customize general applications, and write programs that enable specific jobs. Systems programmers deal with computer operations in a broader sense. They construct programs that will control and maintain the software used in operating systems, networked systems, and database systems. In other words, a systems programmer alters the instructions that determine how a system communicates with peripheral equipment, as well as how a system's network, workstations, and central processing unit handle assigned tasks.

Programs can vary in complexity and function. Because different types of programs deal with, access, and generate different types of information, there is no standard time frame that applies to the work that programmers do. While some programs take only a few hours to write, others can take months or years to complete. The majority of computer programmers work in teams under the direction of senior programmers, and most workers in this profession put in an average of 40 hours per week. Deadlines and serious technical issues can sometimes result in weekend and overtime hours. People who are detail-oriented, patient, creative, and who have a capacity for abstract concepts and analytical thinking often do well in this line of work.

Only a small percentage of U.S. programmers work part time, and as of 2006, nearly 80 percent of all computer programmers in the country held an associate's degree or higher. Professionals in this field generally find employment in computer systems design, software publishing, finance, the insurance industry, education, government, and enterprise and company management. A large number of programmers also work as independent consultants. Findings from the Bureau of Labor Statistics show that computer programmers in this country were making a median annual income of $65,510 in 2006. According to Robert Half Technology, the average starting salary for applications programmers in 2007 ranged from around $55,000 to $90,000 a year, while most entry-level systems programmers in the U.S. were offered between $50,000 and $70,000 annually.