What Does a Computer Programmer Do?

by Alan Hughes, Demand Media
    Computer programmers translate user requests into working software applications.

    Computer programmers translate user requests into working software applications.

    The computer revolution spawned many new jobs, one of the most important and most abundant being that of a computer programmer. Computer programmers write instructions to computers. These instructions are in a form that humans can read, and are translated by compilers into code that computers can read and execute. A good programmer must be a logical thinker, as well as a good problem solver. According to the U.S. Bureau of Labor Statistics, the average annual pay for a computer programmer as of 2011 was $76,010. Financial services firms and computer manufacturing companies often pay 20 percent or higher for particular programming expertise, so a degree in computer science with a minor in finance or business can pay off well.

    Program Specifications

    In most companies business analysts and software engineers interact with users of software to find out their needs and determine the approach that should be taken to provide a software solution to those needs. The analysts and engineers create program specifications and hand them off to a computer programmer for program development. The programmer must be able to read the specifications and logically convert them into programs. If the programmer does not follow the specifications, the user may not like the result, resulting in expensive rewriting of programs. Programmers also interact with the analyst during the initial phase with questions and suggestions for improvement in the specifications.

    Program Design

    A computer programmer armed with good specifications designs the process flow of the information and programs. Many programmers use diagramming tools to lay the flow out visually, making it easier to catch problems before code is written. Many older, experienced programmers still have an old plastic IBM flow chart tool in a desk drawer just in case they ever need it. Modern design tools provide this capability electronically, making such diagrams easier to produce and share.

    Program Coding

    Once design is complete the programmer begins to write the actual code. While a programmer may get the choice of programming language, most companies actually dictate the language, based on the company’s established technology environment. Programmers code in English-like languages, with COBOL being the most English-like. Languages like Java and C-Sharp (C#) are more cryptic and require more technical expertise. COBOL is also a compiled language, which means that the code must be processed into machine language before it can be executed. Modern computers have shortened compile time for programs from hours to minutes or seconds, making the programmer’s time much more efficient.

    Alpha Testing

    When a programmer finishes writing a program he must test it to be sure it functions correctly and satisfies the customer. This first level is typically called “alpha” testing. Program-level testing is also referred to as “unit” testing. Once all of the programs are complete the programmer may perform “integration” testing to be sure all the parts work together. After this preliminary level of testing is complete the code is turned over to official testers whose job it is to more thoroughly test the software application.

    Maintenance

    Many programmers start out performing maintenance on someone else’s code. They work under the supervision of a more senior programmer who helps them learn from other programmers’ coding. While this is not always the most enjoyable part of a programmer’s career, it is an important one. In reviewing how other people have approached business problems in code, they learn a lot about the right way to write computer programs.

    About the Author

    Alan Hughes has more than 30 years of experience in IT including mainframes, programming, client/server, networks, project management, security, disaster recovery, information systems and hardware. He holds a master's degree in applied computer science and several certifications. He currently teaches information technology at the university level.

    Photo Credits

    • Visage/Stockbyte/Getty Images