What Computer Programmers Do
All programming jobs are different. One programmer may create operating systems and another may develop computer games. Still, all programmers have two tasks in common: They all write code, and they all solve problems.
The Basic Process
When programmers create any type of software, there is a certain process that they follow. First, they decide on the purpose of the software, or what it will make the computer do. Then they figure out the separate functions, or tasks, that the computer will perform. This is called designing the program, and the amount of time it takes depends on how large or difficult the program will be. Programmers determine a “flow” for their instructions, which tells the computer the exact order to do things. As they continue working on their design, they make sure all the different pieces and parts will work together—similar to the way puzzle pieces fit together. Programmers decide which computer languages would work best. Then they start writing the code that will bring the program to life. Once the code is written, programmers start testing the software to see how well it works. They correct errors and keep testing and making corrections until the program runs smoothly.
No matter what type of software they create, all programmers have their own ways of doing their jobs. Chris Seaman says there is never just one right way to develop a program. He also says that one of the biggest programming challenges is choosing the best way to solve a problem, because there can be many different solutions. He explains: “An interesting thing about programmers is that if you give ten of us the exact same assignment, you’ll get back ten different answers—and they will all probably work just fine. If you look at the way we coded the programs, that’s where you’ll see the style differences between us. We may have different methods of approaching problems, but we all specialize in solving them”9
Creating Applications Software
Like all programmers, Jack Baty has his own method of creating software. Once he decides what he wants a program to do, he figures out what features to include. Then he uses his computer to draw a model, which is a collection of various-sized boxes and lines. He explains: “By using a model, I can see the program on the screen as I’m creating it. That way, I have a clear idea of how the different elements will connect with each other, and how they’ll work together. I use special modeling tools to build the model, piece by piece. When I’m happy with how it looks, I’m ready to start writing code.”10 After he is finished with the code, Baty tests the program to see how it works and fixes any bugs. Then he builds the interface, which he says is just a fancy word for what appears on the screen so users are able to access the information. After more testing and debugging, his software is complete, and he hopes his customer will like it. If not, he goes back to the drawing board, makes changes, and does more testing and debugging. Baty says that depending on how complicated software is, it can take weeks, months, or even years to create it from start to finish.
Seaman describes a similar process for creating games. He says his first step is to decide what kind of game to create and what he wants it to do. Then he figures out who the bad guys are, who the good guys are, and how the game will be played. He explains the next steps: “Once the planning is out of the way, you break your idea down into various pieces and start drawing them on the computer. You decide what the characters are going to do, how they will attack each other, and how they will defend themselves. You figure out how you want them to move around, what sounds they make, what their weapons should look like and sound like.”11 When he has all the details figured out and sketched, Seaman writes the code that makes his game come alive on the screen.
Creating Operating Systems
Computer games and operating systems have very different functions, yet the process for creating them is similar. According to Dave Cutler, the biggest difference is the size of the project and the expense involved in creating it. For instance, operating systems cost a great deal of money to develop. So, they must be designed to last for many years and work with many different types of computers and applications software. He explains this: “Developing an operating system is a very large and expensive effort. It has to be carefully designed so it can be changed and enhanced over the years without requiring changes to the application programs that run on it.”12
Before Cutler’s team started developing Microsoft NT, they wrote detailed specifications, which served as a blueprint for the project. Then they wrote the programming code. The code was very lengthy. It was so lengthy, in fact, that if the pages were printed out, there would be over eight hundred thousand sheets of paper. It took the team five years to create Windows NT, and it has developed four more versions since. Cutler says the code for the newest version is about ten times as much as the first one—or enough to fill more than eight million sheets of paper.
Bugs, Bugs, and More Bugs
No matter if programmers create operating systems or applications software, they always deal with bugs. Even one tiny bug in a program can cause a computer to crash, as Seaman explains: “If a programmer’s instructions don’t work, the computer says ‘Hey, I did exactly what you told me to do, and you told me wrong!’ So you deal with it, fix the problem, and then move on.”13
Many programmers say that the debugging process is the worst part of their jobs. They often spend as much time ironing out bugs as they do creating the program, as Baty explains:
The last part of a project is not particularly fun because that’s when you’re doing nothing but debugging. You sort through lines of code and you’re no longer being creative; you’re just hunting for mistakes. This could be things you forgot to add, things you added that you shouldn’t have, typos. The tiniest bug can take you a week to fix when you thought you were finished with the project. The truth is you’re never really finished.
Some computer bugs cause very expensive problems. In 1996, a rocket called the Ariane 5 exploded less than forty seconds after its liftoff from French Guiana, a country in South America. The rocket, which took the European Space Agency ten years to develop, was on its first voyage. An investigation determined that programmers had made arithmetic errors, which caused a bug in the software. After the explosion, the error was discovered and programmers began working on software for a new rocket. However, the computer bug had cost the agency over seven billion dollars in losses.
Making Computers Work Better
Computer programmers are problem solvers. They spend their time creating software that addresses some kind of need, whether it is helping a businessperson handle financial duties or occupying a ten-year-old’s time with a computer game. Programmers write new programs, and they fix old programs. They all have their own ways of going about their tasks, and they all have jobs that revolve around making computers work better tomorrow than they did yesterday.
9 Seaman, interview with author. fn10. Baty, interview with author. fn11. Seaman, interview with author. fn12. Cutler, interview with author. fn13. Seaman, interview with author. fn14. Baty, interview with author.