Computer programs -- from the operating system that runs a Smartphone to the Web browser that displays the page you’re reading right now -- were all coded by computer programmers. These programs, called software or applications in their completed forms, are created by writing code with potentially thousands of commands, line by line, in a programming language. Without this software, microchips, circuit boards and touch screens would be an expensive collection of paperweights and simple calculators.
Computer programmers also update existing programs and test programs, and the Bureau of Labor Statistics adds that they fix or "debug" errors that they may find. In addition to writing code and script, computer programmers could work with a software developer to design programs, which may include planning an application or system interface (BLS.gov, 2012).
Programming languages and the design process
Many programs start with prototyping, or making a proof of concept for new programs to verify that a proposed design can work. Creating this prototype can take months of work and multiple people working together. To simplify the process, prototyping tools can assist programmers with the construction of flowcharts to help them visualize the end result. These charts can be created with computer-aided software engineering (CASE) software or drawn out by software developers.
As the process of coding can take up to several weeks or more depending on the size and complexity of the program, the use of various CASE tools, such as AgileJ StructureViews or Eclipse’s EGL tools may help cut down the time needed to produce a computer program. These specialized pieces of software can be used collectively to create a detailed program more rapidly or to allow a individual programmers to focus on different aspects of the program.
There are literally thousands of programming languages that are designed for specific hardware or the internal components of a computer, or used to create a specific type of program. However, every programmer doesn't encounter all the various programming languages. Popular languages include the following ten, according to January 2013 ratings from TIOBE Software, which bases rankings on the number of skilled engineers, courses and third-party vendors:
- (Visual) Basic
What it takes to program code
Most programmers have a bachelor's degree, usually in computer science or a related field, but some may have an associate degree. The BLS (BLS.gov, 2012) notes that programmers with general business experience, specialized knowledge and experience with programming languages can be promoted to system analysts or software developers. Some may be promoted to managerial positions, however some companies may require programmers to have earned a master’s degree in addition to a BA in computer science (BLS.gov, 2012). Since no two programming languages are the same, the BLS writes that it is common to specialize in a few languages; still, a degree in computer science can provide the fundamentals for learning new programming languages more easily (BLS.gov, 2012). The BLS has compiled a list of personal qualities that may be useful for programmers (BLS.gov, 2012):
- Analytical skills
- Detail oriented
- Troubleshooting skills
Some of the modern trends in computer programming may require programmers to either understand multiple programming languages or work closely with software developers or specialists in various languages. Software-as-a-service, for instance, provides software through Web browsers on diverse computer operating systems, such as Microsoft’s Windows, Apple's OS or Unix-based operating systems, according to the BLS (BLS.gov, 2012).
Where the jobs are now
Companies have taken advantage of the ability to work remotely from any location with an Internet connection, outsourcing many programming jobs to countries with lower wages than the U.S. Nonetheless, the BLS notes that programmers may find growth in their national employment options of up to 12 percent from 2010 to 2020. This projected employment growth is expected to be partly a result of a drive for mobile applications and medical software. The BLS reports that job prospects should be best for programmers who have a bachelor’s degree, knowledge of multiple programming languages, and familiarity with emerging tools and technology (BLS.gov, 2012).
Opportunities vary according to factors such as location, and the BLS reports that California, New York and Texas are the states with the highest level of employment for programmers. The BLS notes that computer programmers earned a median annual wage of $72,630 nationally, as of May 2011, with regional variations in salary (BLS.gov, 2012).
For more details on computer programming and the education required, you can contact individual schools about study programs.
Sources and Further Readings:
Computer-Aided Software Engineering, Federal Financial Institutions Examination Council, 2012
Computer Programmers, Occupational Employment Statistics, Bureau of Labor Statistics, 2012
Computer Programmers, Occupational Outlook Handbook, Bureau of Labor Statistics, 2012
"Google offers SDK for Dart language," JavaWorld, Oct. 2012
"Red Hat's Ceylon a Java killer? Not likely," InfoWorld, April 2011
Software Developers, Occupational Outlook Handbook, Bureau of Labor Statistics, 2012