On the Job
Computer programmers write and test the instructions that computers follow to perform tasks.
Did you know that the first computer program was developed in 1843? How can that be? Computers weren't even around then. But the idea was. Ada Byron Lovelace published a paper that predicted the use of computers in everyday life. She also suggested a way to calculate "Bernoulli" numbers using another person's idea for a calculating machine, then called the "Analytical Engine." While she wasn't able to actually make the program, Ada designed it. Over a century later, the U.S. Department of Defense named a computer language after her: Ada.Computer programmers write detailed instructions that tell computers how to perform tasks. Programmers determine the steps that must be followed and the processes that must be completed in each step. Simple as this sounds, technical advances have changed the role of programmers. Sophisticated new languages and tools have made much of the programming work done today very complex. Job titles shift rapidly to reflect new areas of specialization or changes in technology. In general, computer programmers are those whose main job is to write programs. They have a wide range of duties.
Computer programs tell a computer what to do. They tell it which information to access, how to process it, and what equipment to use. Programs vary widely based on the type of information to be used or produced. For example, the instructions used to update financial records are very different from those used to create the conditions on board an aircraft for pilots in flight training. While simple programs can be written in a few hours, complex programs may require more than a year of work. In most of these cases, several programmers work together as a team under the supervision of a senior programmer. Programmers in large organizations may follow descriptions prepared by software engineers or systems analysts. Many programmers work with existing programs. They update, modify, and expand them based on the company's needs.
Programmers write programs by breaking each step into a logical series of instructions the computer can follow. They then code these instructions in one of several ways. They may use a programming language, such as COBOL. They may use an artificial intelligence language, such as Prolog. They may use one of the advanced languages, such as Java, C++, Delphi, or Visual Basic. Programmers usually know more than one language. Since many languages are similar, programmers may be able to learn new languages easily. They may use computer-aided software engineering (CASE) tools to add commands. CASE tools generate whole sections of code automatically. Use of these tools allows a programmer to focus on the unique parts of the program. It also makes programs more reliable and consistent. Programmers also insert comments in program instructions so other programmers can understand the coding.
Programmers test programs by running them to be sure they produce the correct results. If errors do occur, they make the necessary changes and recheck the program. This process is called debugging. Some programmers prepare instructions for a computer operator who runs, or debugs, the program.
Programmers are often grouped into two types. Applications programmers usually focus on business, engineering, or science programs. They write software to handle a specific job, such as tracking inventory. They may also modify packaged software. In contrast, systems programmers control software that runs the whole computer system. They make program changes that affect how the network, workstations, and central processing unit (CPU) of the system handle jobs. These changes also affect how the network communicates with auxiliary equipment, such as printers. Systems programmers have the highest level of expertise. They sometimes help other programmers determine the source of problems.
Programmers prepare various types of records and reports. They may also write user manuals. Experienced programmers may train or direct other workers.
The following list of occupational tasks is specific to this career.
- Write, update, and maintain computer programs or software to do specific tasks.
- Correct computer program errors.
- Test programs and software to be sure it works correctly.
- Keep a record of program development and changes so others will understand the process.
- Update, modify, and expand existing programs.
- Write or contribute to technical or user manuals.
- Study how a computer network responds to a program.
- Work with computer users and analysts to find and fix program problems.
- Debug programs by testing them, making changes, and rechecking them until they run correctly.
- Work with computer manufacturers and users to develop new programming methods.
- May train or direct other programmers or computer operators.
- Attend workshops and seminars to keep skills up to date.
People in this career perform the following list of tasks, but the tasks are common to many occupations.
- Use computers.
- Make decisions and solve problems.
- Get information needed to do the job.
- Identify objects, actions, and events.
- Communicate with supervisors, peers, or subordinates.
- Analyze data or information.
- Think creatively.
- Update and use job-related knowledge.
- Organize, plan, and prioritize work.
- Process information.
- Establish and maintain relationships.
- Explain the meaning of information to others.
- Monitor events, materials, and surroundings.
- Evaluate information against standards.
- Develop goals and strategies.
In a typical work setting, people in this career:
- Are responsible for the work done by programmers they supervise.
- Have a medium level of social contact with coworkers. Programmers generally work alone while coding, but may meet with others to plan the program.
- Communicate with others daily by e-mail, telephone, and in person.
- Write letters and memos often.
- Work as part of a team.
- Always work indoors.
- Work near other people but have a few feet of space separating self from others.
- Must be sure that all details of the job are done and their work is exact. Programming errors could cost the company money in lost time or data.
- Must sometimes repeat the same physical and mental tasks.
- Work in a moderately competitive environment.
- Must meet strict deadlines often.
- Can set most tasks and goals without talking to a supervisor.
- Rarely consult a supervisor before making a decision.
- Often make decisions that affect others.
- Work 40 hours per week.
- May work long hours to solve critical problems or meet deadlines.
- May be able to perform some of their work at home by "telecommuting."
Physical Work Conditions
In a typical work setting, people in this career:
- Sit for long periods of time at a computer.
- Repeat the same movements.
- Use their hands to handle, control, or feel objects, tools, or controls.
- See details of objects that are less than a few feet away.
- Speak clearly so listeners can understand.
- Understand the speech of another person.
- Use hands and fingers to grasp, move, or assemble very small objects.
- See details of objects that are more than a few feet away.
- See differences between colors, shades, and brightness.
- Hold the arm and hand in one position or hold the hand steady while moving the arm.
People in this career frequently:
It is important for people in this career to be able to:
It is not as important, but still necessary, for people in this career to be able to:
Source: Minnesota Department of Education.