Computer programers write, maintain and test the detailed instructions known as programs that computers follow in order to perform their functions. After the design procedure is finished the programmer has the responsibility to convert the design into a logical series of instructions for a computer to follow. The programmer selects one program language for writing the code. Computer programmers work in a variety of environments such as software companies, information technology departments, consulting companies and service firms.
Computer programmers write computer software. They create and write computer programs to store, locate and retrieve specific information, documents and data. Programmers typically write programs based on the specifications provided by systems analysts and senior programmers that have more experience. Some computer programmers specialize in a specific field and others write code for a variety of software.
Computer programmers are usually placed in one of two groups, systems programmers or application programmers. Systems programmers write computer programs to maintain and control computer systems software including database management systems, networked systems and operating systems. Systems programmers configure an operating system to work with various types of hardware and adapt an operating system to best meet a company's needs.
Application programmers write computer programs for a specific task such as for tracking inventory within a company. Sometimes they modify an existing software package or customize generic applications. Application programmers often specialize in a specific field such as business.
COBOL is a common language for business applications. It runs on midrange and mainframe computers. Java, PHP and C# are commonly used for web and business projects and Fortran is often used for science and engineering applications. C++ is commonly utilized for business and scientific projects.
Programmers usually have the skills to write in more than one type of computer language. Some programmers are known by the computer language they primarily use such as Java programmer or by the environment or function they perform such as database programmer, game programmer, web programmer or mainframe programmer.
Programs that utilize complicated mathematical formulas can take more than a year to complete. Often several programmers work together on a computer program. Some simple programs may take only a a few hours or days to write.
- Test and debug programs
- Update and modify programs
- Write, update and maintain programs or software packages
- When changing source code, inform other computer programmers of the task the routine will perform
- Consult with engineering, technical and managerial personnel
- Compile and create documentation of program development and revisions
- Develop detailed workflow charts and diagrams and convert them into a series of instructions using a particular computer language
- Expand existing programs
- Work with systems analysts and computer operators to define and fix problems in running computer programs
Most computer programmers work 40 hours per week. Working in the evenings and on the weekends may occasionally be necessary in order to meet deadlines or fix technical problems. They spend the majority of their time working with a computer terminal. Some analysts telecommute, using computers to work from remote locations. In addition, a computer programmer needs to have technical and analytical skills. They need to be detail oriented and be good at thinking logically.
According to the Bureau of Labor Statistics the growth rate for computer programmers is expected to decline by 4 percent from 2006 to 2016. Off shoring of computer programming work and Foreign Worker Visas have filled some of the demand for computer programmers.
The writing of software packages is one of the fastest growing sectors in the computer services industry. Due to the popularity of the Internet, web development is a major part of the computer programming industry. A large number of software applications are web applications.
The median annual salary for computer programmers in 2008 was $69,520. Experienced programmers may move up to a lead programmer position or to a supervisor position.
Education, Certification, and Licensing
Employers typically look for candidates that have at least a bachelor's degree in computer science, information systems or mathematics along with knowledge and skills with the major programming languages. Along with a bachelor's degree some programmers also take courses in finance, accounting and other business subjects. Most systems programmers have earned a bachelor's degree in computer science. Some computer programming positions may only require a two-year degree or a certificate.
Often employers prefer candidates that have the ability to work with database systems such as Sybase and Oracle. Traditional computer languages are still important, however employers are placing an emphasis on the newer object-oriented computer languages and tools including Java and C++. Employers are also looking for candidates that have knowledge with fourth and fifth generation languages that involve systems programming and graphic user interface.
Due to rapid changes in technology, programmers update their knowledge and skills by continually taking courses provided by their employer or software vendors or schools. Certification demonstrates a level of competence and can give a job seeker a competitive advantage. Language specific certificates and product specific certificates are available. National certification courses are provided for most of the popular computer languages such as C++, XML and Java.
- Association for Computing Machinery
- IEEE Computer Society
- Institute for Certification of Computing Professionals
The top job providing industries are software publishers, computer systems design and related services, hospitals, manufacturing, insurance companies, engineering firms, educational institutions and the government.
Schools for Computer Programmers are listed in the Browse Schools Section.