What It Takes to Be a Programmer
Computer programmers work in big companies and small companies all over the United States and throughout the world. The software they create makes it possible for computers to operate. Software also controls automobiles, airplanes, telephones, Web browsers, and production lines in factories. As people continue to use computers for new and different tasks, computer programmers will become even more valuable than they are today. Because of the work that programmers do, computers are able to make life easier for people everywhere.
People who are interested in computers often start tinkering with them at a very young age. Many programmers say that they wrote their first programs when they were still in grade school. As they continued to create new programs, they gained experience and were able to take on more difficult programming challenges.
Writing programs for fun is a good way for someone to get a feel for the career. Becoming a programmer, however, takes education and training. Most programming jobs today require a college degree in a field such as computer science or engineering.
One of the most important skills programmers need is a familiarity with programming languages. Some common languages are Visual Basic, HTML, Python, and C++, although there are many others. Programming languages are made up of a collection of letters, numbers, and/or symbols, which together form a special code that computers can understand. Programmers choose which language to use based on what task they need to accomplish. According to Microsoft’s Dave Cutler, sometimes programmers use more than one language. Cutler was the creator of a version of Windows called Windows NT (NT means “new technology”). He and his team used a language called Assembler, as well as both C++ and C, an earlier version of C++.
Most programmers know how to read and write two or three computer languages. They also need some understanding of older languages, and they must keep current on new ones that are developed. When programmers use computer languages to write programs, it is called writing code. Chris Seaman, a programmer in Salt Lake City, Utah, describes programming languages this way: “It’s really not that different from learning a new language like Spanish or French. Just as you would translate English into Spanish, you’re translating your instructions into a language that a computer can understand.”2
Most anyone can be a computer programmer if they enjoy technology and are willing to work hard to achieve their goals. As with any career, though, there are certain qualities that computer programmers need in order to be successful.
Creativity
Programming involves more than just typing symbols on a computer keyboard. It is a job that requires creativity, imagination, and the ability to solve problems. This same creative thinking applies no matter what type of software programmers develop.
All computer software starts with a task that needs to be done. The more complicated the task, the more difficult the software will be to write. One of Jack Baty’s customers tests motor oil for big mining companies to help them keep heavy equipment, such as large cranes and bulldozers, in good running order. Baty developed software that helped the customer speed up testing and analysis of the oil samples. This software required a great deal of time to develop. He describes his creative thinking process, which he says is typical for programmers: “When you’re programming, you have to focus on a problem for a long time and let your mind wander, as you imagine all the possibilities. It’s really similar to an artist, who gets lost in the process of creating a drawing, or a sculpture, or a painting. You’re writing code and you get into a creative place, a zone, and wow, you can really rock.”3
Attention to Detail
Creating new software is only about half of a computer programmer’s job. The other half is spent finding and fixing problems that cause software not to work properly. These problems are called bugs, and they can be caused by the tiniest details. Just one wrong number, for example, can cause a bug that takes hours, days, or weeks to find and fix. The more complicated a program is, the more details are involved in the programming—and the more problems will likely pop up later. So, it is important for programmers to pay close attention to the details from the very beginning of a project.
Cutler says the really good programmers are the ones who pay close attention to details and review their work to see what they may have overlooked. He also says that computer programming is a field that can show how imperfect humans really are: “Computers do exactly what we tell them to do. Nothing more and nothing less. Unfortunately, as we program we forget little details that can make the entire program inoperable. Then we have a bug and the job now becomes to find and fix.”4
Troubleshooting
While Cutler’s team was developing Windows NT, they ran into several hundred thousand bugs. Some were as minor as icons that were not displayed correctly. Others were more serious and could cause a computer system to crash, or stop operating. To illustrate the importance of details in programming, Cutler uses the example of building a birdhouse: “You select a simple plan and buy the materials, cut them to size, and start to put the birdhouse together. When you do this, you will probably find things that don’t fit just right. However, you can probably slide something one way or another and the birdhouse will come out looking just fine when it is finished. But this is not true of computer programmers.”5 He says that if programs are not exactly correct, they usually do not work at all. If they do, they work sometimes but not all the time.
It usually takes much longer to find bugs than it does to fix them. Searching for bugs can be frustrating, and it requires a great deal of patience. Amanda Hyde, a programmer in England, explains this: “The kind of problems a programmer has to solve aren’t usually the kind that can be instantly resolved. It takes hours and hours of careful work to isolate the cause of a problem, and even then you could well be barking up the wrong tree, and will have to backtrack and start again.”6
Flexibility
In addition to coping with endless details, computer programmers must also be able to handle a job that is often unpredictable. They must be able to switch from one project to another and to work on several projects at the same time. So, programmers must be flexible and able to “switch gears” quickly when necessary. That can be stressful, especially when they are concentrating on a project and are frequently interrupted.
Sometimes programming is a solitary job because programmers spend large chunks of time working alone on their own projects. So, it is important that they be comfortable working independently. They must, however, be able to relate well with people because programmers often work in teams with other staff members. They need good communication skills, both verbal and written, and the ability to listen well.
Programmers often face tight deadlines, which means it is common for them to work long hours. Hyde explains: “It’s a rare programmer that finds himself able to stick rigidly to a 9–5 office routine. You may spend all day trying to solve a problem, only to hit on the solution at 5:45 p.m., with another two hours of [writing code] to completely correct the issue.”7 Hyde says if that happens, the programmer must stay as long as necessary until the problem is solved. She also says she sometimes takes work problems home with her. At night, it is not uncommon for her to lie in bed thinking about programming problems—even writing code in her head before she falls asleep.
Computer programmers are creative and imaginative, and they love the challenge of finding new ways to help computers do things. When they face problems, they may find it frustrating. Yet being able to solve those problems can be one of the most satisfying parts of their jobs. Baty sums this up: “When somebody who uses the software says, ‘Oh my goodness, this is so much better than it was before!’ I know I did my job right. That does happen. And when it does, it’s a great feeling.”8
2 Chris Seaman, interview with author, October 14, 2002. fn3. Baty, interview with author. fn4. Dave Cutler, interview with author, January 2, 2003. fn5. Cutler, interview with author. fn6. Amanda Hyde, “So You Want to Be a Computer Programmer?” DooYoo, Campus & Careers. www.dooyoo.co.uk. fn7. Hyde, “So You Want to Be a Computer Programmer?” fn8. Baty, interview with author.
Additional topics
Job Descriptions and Careers, Career and Job Opportunities, Career Search, and Career Choices and ProfilesComputer Programmer Job Description