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. Manyprogrammers 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++, 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.
Other titles and keywords for this career.
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.
Organize, plan, and prioritize work.
Make decisions and solve problems.
Get information needed to do the job.
Update and use job-related knowledge.
Communicate with supervisors, peers, or subordinates.
Analyze data or information.
Establish and maintain relationships.
Document and record information.
Identify objects, actions, and events.
Monitor events, materials, and surroundings.
Provide advice and consultation to others.
Schedule work and activities.
Estimate sizes, quantities, time, cost, or materials needed.
Develop goals and strategies.
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.
Are sometimes placed in conflict situations.
Communicate with others daily by e-mail, telephone, and in person.
Write letters and memos often.
Works as part of a team.
Physical Work Conditions
Always work indoors.
Are sometimes exposed to sounds and noise levels that are distracting and uncomfortable.
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."
People in this career frequently:
Sit for long periods of time at a computer.
Use their hands to handle, control, or feel objects, tools, or controls.
Repeat the same movements.
It is important for people in this career to be able to:
See details of objects that are less than a few feet away.
Speak clearly so listeners can understand.
Understand the speech of another person.
It is not as important, but still necessary, for people in this career to be able to:
Hold the arm and hand in one position or hold the hand steady while moving the arm.
Use hands and fingers to grasp, move, or assemble very small objects.
Make quick, precise adjustments to machine controls.
Use stomach and lower back muscles to support the body for long periods without getting tired.
Skills and Abilities
People in this career need to:
Read and understand work-related materials.
Understand spoken information by listening to others and asking questions.
Express ideas clearly when speaking or writing.
Reason and Problem Solve
Analyze ideas and use logic to determine their strengths and weaknesses.
Identify problems and review information. Develop, review, and apply solutions.
Develop rules or follow guidelines for arranging items.
Understand new information or materials by studying and working with them.
Use reasoning to discover answers to problems.
Combine several pieces of information and draw conclusions.
Notice when something is wrong or is likely to go wrong.
Determine how a system should work. Study how changes in conditions affect outcomes.
Judge the costs and benefits of a possible action.
Concentrate and not be distracted while performing a task.
Think of new ideas or original and creative ways to solve problems.
Use Math and Science
Use math skills to solve problems.
Manage Oneself, People, Time and Things
Manage the time of self and others.
Work with People
Use several methods to learn or teach new things.
Be aware of others¿ reactions and change behavior in relation to them.
Work with Things
Write computer programs.
Analyze user needs and requirements when designing products.
Determine the causes of technical problems and find solutions for them.
Determine the tools and equipment needed to do a job.
Test and inspect products, services, or processes. Evaluate quality or performance.
Install equipment, machines, wiring, or programs to meet specifications.
Repair machines or systems.
Perceive and Visualize
Identify a pattern (a figure, object, word, or sound) that is hidden in distracting material.
Quickly and accurately compare letters, numbers, objects, pictures, or patterns.
People in this career need knowledge in the following areas:
Computers and Electronics: Knowledge of computer hardware and
English Language: Knowledge of the meaning, spelling, and use of the English language.
Mathematics: Knowledge of the rules and uses of numbers. Areas of knowledge include arithmetic, algebra, geometry, and statistics.
People in this career are people who tend to:
Consider achievement important. They like to see the results of their work and to use their strongest abilities. They like to get a feeling of accomplishment from their work.
Consider independence important. They like to make decisions and try out ideas on their own. They prefer jobs where they can plan their work with little supervision.
Consider good working conditions important. They like jobs offering steady employment and good pay. They want employment that fits their individual work style. They may prefer doing a variety of tasks, working alone, or being busy all the time.
Consider support from their employer important. They like to be treated fairly and have supervisors who will back them up. They prefer jobs where they are trained well.
Consider recognition important. They like to work in jobs which have opportunities for them to advance, be recognized for their work, and direct and instruct others. They usually prefer jobs in which they are looked up to by others.
Have investigative interests. They like work activities that have to do with ideas and thinking. They like to search for facts and figure out solutions to problems mentally.
Have realistic interests. They like work activities that include practical, hands-on problems and solutions. They like to work with plants, animals, and physical materials such as wood, tools, and machinery. They often prefer to work outside.
Have conventional interests. They like work activities that follow set procedures, routines, and standards. They like to work with data and detail. They prefer working where there is a clear line of authority to follow.
To work as a computer programmer, you must:
complete a college degree
have strong problem solving skills; and
Most new computer programmers have at least a bachelor's degree. In the past formal training was not as important. Many programmers learned on the job or through technical or associate programs. Now, with increasingly complex programming tasks and a growing number of college-trained applicants, a bachelor's degree is the common way to prepare.
Computer science is the most common major. However, a major in math or information systems is also acceptable. Another approach is to major in a specialty area such as engineering, science, or business. If you do not major in computer science, be sure to take programming courses.
You should consider participating in an internship while in college. An internship is usually part of a four-year degree program. It offers you a chance to apply what you have learned in the classroom to a work situation. It also allows you to build skills and make contacts with people in the field.
New graduates work under the guidance of experienced programmers. In large companies, you may also receive formal classroom training. You receive greater independence and work on more difficult tasks as you gain knowledge and experience.
Because of the fast changing nature of this field, employers often offer training in the newest computer technologies, languages, and applications.
Training and experience as a computer systems specialist in the armed forces is also good preparation.
Areas of Study (What to study to prepare for this career)
Artificial Intelligence and Robotics
Computer Engineering Technology
Computer Programming, Specialized Certification
Computer Systems Analysis
Computer Systems Networking and Administration
Computer Systems Networking, Specialized Certification
Computer Systems Technology
Database Administration, Specialized Certification
Management Information Systems
Technical and Business Writing
Web Page and Multimedia Design
Webmaster and Web Management
Helpful High School Courses
If you are interested in this occupation, you should take courses in high school that prepare you to enter college.This typically includes four years of English, three years of math, three years of social studies, and two years of science. Some colleges also require two years of a second language.
Below is a list of high school courses that will help prepare you for this specific occupation. While you do not have to take all of them, you should consider them in course planning. Some of these courses are also available at the technical or college level.
Introduction to Business
Banking and Finance
Computer and Information Sciences
General Computer Applications
Business Computer Applications
Computer Science and Programming
Computer and Information Sciences Work Experience
English Language and Literature
English and Language Arts (Four years)
Business and Applied English
Life and Physical Sciences
Principles of Technology
Advanced Physics courses
Advanced Algebra courses
Advanced Calculus courses
Probability and Statistics
Advanced Business Math courses
Advanced Computer Math courses
Social Sciences and History
Required skills vary by employer. Some employers use computers for scientific or engineering applications. They often prefer college graduates with degrees in computer or information science, math, engineering, or the physical sciences. Graduate degrees are required for some jobs. Other employers use computers for business applications. They generally prefer applicants with college courses in information systems and business
Employers often prefer applicants who know newer programming languages and tools, such as C++, Visual Basic, and Java. Employers also seek programmers familiar with languages that involve graphic user interface (GUI) and systems programming. Employers also prefer applicants with general business skills and experience related to the operations of the firm. Students can improve their job prospects by completing an internship
In general, employers look for people with excellent programming skills. They also look for applicants who can think logically and pay close attention to detail. This occupation requires patience, persistence, and the ability to do analytical work, especially under pressure. Creativity is also important when programmers design solutions. The ability to work with abstract concepts is especially important. Programmers also must be able to communicate well with non-technical staff.
Licensing / Certification
Computer programmers can obtain voluntary certification from the hardware and software manufacturers who offer certification programs on their products. Certification is occasionally required for employment.
In Minnesota, the median wage for computer programmers is $30.68 per hour, or $5,317 per month for a full-time worker. Half of all computer programmers earn between $23.61 and $39.03 per hour, or between $4,094 and $6,765 per month.
Nationally, the median wage for computer programmers is $5,140 per month ($29.68 per hour). Half of all computer programmers earn between $3,910 and $6,650 per month ($22.53 and $38.35 per hour).
Wages vary widely based on the programmer's level of education and experience. Wages also vary based on the tasks performed. For example, systems programmers tend to earn more than applications programmers. In addition, wages vary by employer and area of the country.
Benefits also vary by employer. Full-time programmers usually receive typical benefits. These include vacation, sick leave, health insurance, and a retirement plan.
For more current and specific wage data, refer to the following Regional Wage Comparison Chart(s) produced by the Occupational Employment Statistics (OES) survey:
In Minnesota, about 10,232 computer programmers work in this medium-sized occupation.
Nationally, about 498,600 computer programmers work in this medium-sized occupation. They work in almost every industry.
Computer systems design companies
Business management companies
Wholesale equipment sales companies
A growing number of computer programmers work on contract or as independent consultants."
By: Selwyn Christian