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—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 systems analysts. (Separate statements on computer software engineers and on computer systems analysts, database administrators, and computer scientists appear elsewhere in the Handbook.) 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. The programmer then codes 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. Many programmers at the enterprise level are also expected to know platform-specific languages used in database programming. 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, as are Java programmers, or the type of function they perform or environment in which they work, which is the case for database programmers, mainframe programmers, or Web 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 that the routine is to perform. They do this by inserting comments in the coded instructions, so that 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. Programmers also utilize libraries of pre-written code, which can then be modified or customized for a specific application. 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 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 these problems throughout the life of a program. Programmers working in a mainframe environment, which involves a large centralized computer, may prepare instructions for a computer operator who will run the program. (A separate statement on computer operators appears elsewhere in the Handbook.) They also may contribute to a manual for persons who will be using the program.
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.
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 and financial planning. Much of this type of programming takes place in the preparation of packaged software, which constitutes one of the most rapidly growing segments of the computer services industry.
In some organizations, particularly small ones, workers commonly known as programmer-analysts are responsible for both the systems analysis and the actual programming work. (A more detailed description of the work of programmer-analysts is presented in the statement on computer systems analysts, database administrators, and computer scientists elsewhere in the Handbook.) 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.

Related news articles
Authors: Fan writer's own fantasy comes true - 16 Oct 2006
International Herald Tribune,The deal has completed her ascent from a computer programmer to a virtually unknown writer to a newly minted member of a select group of authors - JRR Tolkien ...

HERD OF HOT ‘BOTS’ - 16 Oct 2006
Columbus Dispatch,With computer programmer Matt Howard, Rinaldo has made a small herd of batterypowered "spider bots" — creatures about 2 feet square that sense people along ...

UK blind golfer wins charity event - 16 Oct 2006
Standard,...besides athletics. Tomlinson, a retired computer programmer, and Peter Hodgkinson are in Kenya to raise funds towards eye care.

Brianiac is coming to town Wednesday: Test your wits against him - 16 Oct 2006
The Desert Sun,Your brain can’t keep pace,�? he says. “And after two days, I’d go back to my dull job as a computer programmer. It was a very odd existence.�?. ...

Writer Mixes Humor, Fantasy - 16 Oct 2006
Fort Smith Times Record,...let her write during slow periods. Morris married Godsey, a computer programmer, in April 2004. She said he reads and critiques ...

Robert S. Rich - 16 Oct 2006
Baraboo News Republic,In 1966, he graduated from Washburn University and was employed by the state of Kansas as a systems analyst and computer programmer in the accounting ...

Witness: Nichols admitted "blood on his hands" - 16 Oct 2006
Atlanta Journal Constitution (subscription),Almeta Kilgo, a computer programmer who works for The Atlanta Journal-Constitution, told Judge Hilton Fuller that she was trying to park her car in a downtown ...

MARY AGNES WELCH - 16 Oct 2006
Winnipeg Free Press (subscription),...assistance. Recreation programs and street crime are key issues. Current job: A computer programmer/analyst at Agricore United. Community ...

Going Locos Comic trio will have you howling at Fiesta Palace ... - Oct 15, 2006
nwitimes.com,In the early '80s, Ramirez was toiling away as a computer programmer and analyst when, on a dare to himself, he took the stage at an open mic night at a New ...

Software floors industry - Oct 15, 2006
Tuscaloosa News (subscription),There was available software, but none tailored to the floor-covering industry. So he hired a computer programmer who designed a database. ...

Portland cyclists to Hummer: Peddle your bikes elsewhere - Oct 15, 2006
OregonLive.com,..."It didn't elicit very good feelings," said Jones, a Portland computer programmer and avid cyclist. "Hummer bike: It just might be the ultimate oxymoron.". ...

Technology and Pseudo-Journalism - Oct 15, 2006
OhmyNews International,The only problem is that I have never been to Afghanistan, Central Asia or Middle East, I am a non-Muslim and by training I am a computer programmer. ...

Author combines reality and fiction in Riley's Fire - Oct 14, 2006
Houston Chronicle,John, now 33, and Andy, 30, lead lives without yearly hospital visits or masks. Andy is a computer programmer in San Antonio. John ...

Contessa of cake finds a way to deliver party - Oct 15, 2006
Denver Post,Lakewood resident Stuart Klug ler has self-published a book chronicling his 17-year career as a computer programmer and systems administrator for AT&T and IBM ...






More information on Computer programmers from The U.S. Department of Labor Bureau of Labor Statistics Occupational Outlook Handbook
Overview of Computer programmers occupation
Number of Computer programmers in the U.S.
Salary and earnings for Computer programmers
Working conditions for Computer programmers
Significant points for Computer programmers
Training requirements for Computer programmers




Labor Information Home | Occupational data by city | Search
Rainforests | Madagascar | What's new