Wednesday, 26 Dec 2007 Home Advertise Contact Us Site Map Testimonials Newsweek.com Disclaimer

Computer Science

<< Back to subjects spotlights

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.

U.S. Department of Labor, Bureau of Labor Statistics

<< Back to subjects spotlights

Navigation for Newsweek Distance Learning Resources Index

Newsweek Distance Learning Home Page
What is Accreditation?
Ask the Experts
Glossary of Distance Learning and Online Learning Terminology
Spotlight on Jobs Associated with Distance Learning Courses

 
National Universities Degree Consortium - NUDC
National Universities Degree Consortium - NUDC
Click here for more information

Upper Iowa University Online Program
Upper Iowa University Online Program 1101 5th Street
West Des Moines,
IA 50265
Tel: 800 603 3756
www.uiuonline.info
Click here for more information

European-American University
8, Copthall,
Roseau Valley,
Commonwealth of Dominica 00152
Click here for more information

Tiffin University
155 Miami St.
Tiffin, OH 44883
Tel: 800-968-6446
[email protected]
Click here for more information

The University of Toledo - Ohio
The University of Toledo - Ohio M.S. 516
Toledo OH
43606-3390
Tel: 866-886-5336
Tel: 419-530-8835
Click here for more information

Liberty University
Distance Learning Admissions
1971 University Blvd
Lynchburg, VA 24502
Tel: 1-866-418-8734
Fax: 1-800-628-7977
Click here for more information

Amberton University
Amberton University
1700 Eastgate Dr.
Garland, TX 75041
Tel: 972 279 6511 ext.180
Click here for more information

OSU Spears School of Business
215 Business Building
Stillwater, OK 74078-4011
Tel: 866 678 3933
[email protected]
http://spears.okstate.edu/cepd/dl/
Click here for more information

The American University of London (AUOL)
The American University of London (AUOL) The International Distance Learning Centre,
2 Old Brompton Rd.,
London, SW7 3DQ
Tel: + 44 (1)494 730 571
Tel: 877-215-0009
Click here for more information

Careers and Education
3501 University Blvd. East
Adelphi, MD 20783
Tel: +1 800 888 8682
Click here for more information

Ashford University
400 North Bluff Blvd.
Clinton, Iowa 52732
Click here for more information

The University of Liverpool Laureate
The University of Liverpool Laureate
Click here for more information

Henley-Putnam University
25 Metro Drive, Suite 500
San Jose, CA 95110
Tel: 408-453-9900
Click here for more information

Kaplan College
Kaplan College 6409 Congress Avenue
Boca Raton,
FL 33487
Tel: 866 522 7747
(Toll Free)
Click here for more information

University of Massachusetts - UMassOnline
University of Massachusetts - UMassOnline 100 Morrissey Blvd.
Boston
MA 02125-3393
Tel: 617 287 7925
Click here for more information

Virginia Tech - Northern Virginia Center
7054 Haycock Road, Suite 361
Falls Church VA 22043
703-538-8384 (T)
703-538-8415 (F)
[email protected]
Click here for more information

West Texas A&M University
West Texas A&M University
Office of Admissions
2501 4th Avenue
Old Main Room 124
Canyon, Texas 79016-0001
Click here for more information

American Military University - 100 percent online degree programs for civilian and military students
111 West Congress Street
Charles Town, WV 25414
Toll Free: 1-877-468-6268 (Press 2)
Click here for more information