Computer programming entails writing the code for software programs. While software designers and engineers may create the framework or outline for the desired software application, computer programmers are the ones who write the instructions for the program that computers can follow. Software applications not only vary in complexity, but they are necessary for a variety of operating systems and hardware types, including computers, tablets and mobile phones, among others.
Depending on the company or job, computer programming positions may also include duties that overlap with software designers and engineers. Job duties typical for programmers may include the following:
- Creating plans for software, including developing models and flowcharts that explain how the code is to be written
- Designing an application or systems interface
- Writing programs in a variety of computer languages, such as C++ and Java
- Updating and expanding existing programs
- Debugging programs by testing and fixing errors
- Automating code writing by building and using computer-assisted software engineering (CASE) tools or code libraries
It is common for computer programmers to specialize in a particular area, for example a certain type of programming language, operating system or aspect of the process. Alternatively, some programmers may function in a project management role, overseeing a venture from concept to completion. Most computer programmers have a bachelor's or graduate degree alongside professional certifications. Because this industry is fast-paced and always evolving, many successful professionals continue their educations via formal training programs.
Coursework in Online Computer Programming Programs
While required coursework depends on an individual's eventual career goals as well as the university and program selected, there are subjects common to online computer programming degrees.
Computer programming languages
Programming languages are formal constructed languages designed to communicate instructions to computers. Common languages for computer programming students to learn include C++, Java and Python, though there are literally hundreds of others in use with more being developed all the time.
In a course on Java, for example, the basic concepts of object-oriented programming will be discussed, and topics may include algorithmic logic, control structures, data and program design, objects and classes. Students generally create several programs in the language they are learning during a course.
Software design defines and describes the behavior of a software system. In a software design course, students learn to select and apply a design method and use a modeling notation to clearly communicate and document a software solution. An overview course will cover a variety of design processes, methods, tools and types of software designs. More advanced courses may cover a single process or method in greater depth.
Students apply whatever theory they are learning by developing a software design specification. Instructors will incorporate particular requirements into the design and use a requirements traceability matrix to ensure completeness, correctness and consistency.
An overview course on this topic will cover a variety of testing practices and methods and then give the students the opportunity to apply the theory as they perform software tests. Students will develop a test procedure and plan, conduct system and usability testing, and write a test report that documents the results.
There are numerous types of tests that are conducted during the software development lifecycle, including unit testing, usability testing, operational testing, integration testing, stress testing and system testing. While an introductory course may briefly cover all of these and more, advanced or graduate coursework may delve into greater detail on a single type of testing.
Software project management
These courses cover the fundamentals of project management that are specific to the aspects of software projects, such as manufacturing, research and development, and business operations, among others. Topics include the methods, tools and techniques for planning and estimating, measuring and controlling, leading and directing, and managing risk in software projects.
User interface design
While computer programs are designed by experts, many if not most are used by ordinary people without specialized technical skills. As a result, developing usable software products is vital in today's competitive marketplace. Courses in user interface design provide in-depth coverage of the computer human interface, user interface design, user profiling, prototyping and usability testing that will ensure those who operate the programs find them user-friendly.
Many students consider these subjects challenging. Especially if one is pursuing an online computer programming degree, having strong study habits is essential to success. While people may be drawn to these careers because many jobs in the field have the potential to be extremely lucrative, it is important to remember that careers in this field require strong technical skills and a willingness to participate in lifelong learning. In addition to coursework, workplace experience is essential, so students should be prepared to seek out internships or similar opportunities while in school.
Career Outlook for Professionals With Computer Programming Degrees
Computer programming encompasses a wide variety of practice areas and potential careers. Because this type of work can often be completed remotely, workers can live in low-cost areas while still working for industry titans, though boutique companies may require a physical presence. Generally, at least a bachelor's degree and working knowledge of several programming languages are required.
According to the Bureau of Labor Statistics (BLS), employment of computer programmers is projected to grow 8 percent from 2012 to 2022, which is about as fast as the average for all occupations. The BLS also states that in 2014, salaries for computer programmers generally ranged from $44,140 to $127,640 per year, with a median annual wage of $77,550. States with the highest employment in this profession include California, New York, Washington and Illinois.
Computer programmers, Bureau of Labor Statistics Occupational Outlook Handbook, 2014, http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm#tab-1
15-1131 Computer Programmers, Bureau of Labor Statistics Occupational Employment Statistics, 2014, http://www.bls.gov/oes/current/oes151131.htm