How to Become a Computer Programmer
LearnHowToBecome.org is an advertising-supported site. Featured or trusted partner programs and all school search, finder, or match results are for schools that compensate us. This compensation does not influence our school rankings, resource guides, or other editorially-independent information published on this site.
Discover your program in minutes
Computer programmers are the builders of the computing world. They translate software design into code that computers can read, crafting the operating systems and software applications consumers use every day. People's interaction with computers is at an all-time high—familiar desktop models provide a constant stream information and entertainment, while complex systems perform countless behind-the-scenes tasks. The demand for computing power is only growing, opening more career possibilities for people interested in computer programming. Read more to learn about how to enter this profession – including degree and college options – as well as career trends and salary information.
What Does a Computer Programmer Do?
Computer programmers turn concepts into reality. After a developer creates a basic software program, a programmer creates the instructions, or code, to make that program function. Programmers may create software to be run on personal computers, tablets, smartphones or automated systems used in manufacturing. With the explosion of smartphone technology, mobile applications are increasingly important, as are software-as-a-service (SaaS) packages, which drive Internet commerce. Once a program is functional, programmers may also be responsible for testing for bugs, removing errors and installing updates. Programmers also design the user interface, which is the part of the program that consumers see and interact with.
Computer Programmer Salaries and Job Outlook
According to the Bureau of Labor Statistics, the median income for computer programmers in 2014 was $77,550, up more than $3,200 from 2012, a rate that significantly outpaced inflation. Those in the top 10 percent earned over $127,000 a year. Even those in the bottom 10 percent earned more than $44,000, a wage that still put them well above the national average for all occupations. Of course, average salary varies by state—as does the cost of living. Programmers in Washington, New Mexico, Colorado, Washington, D.C. and California can expect to earn more than their peers on average.
The map below shows details about the 10th, 50th and 90th percentile of earners for each state.
Job Prospects for Programmers
Although jobs for computer programmers are only expected to increase at a modest rate of 8% by 2022, it is also predicted that 1 million computer programming jobs will go unfilled by 2020, meaning that demand is significantly outstripping supply. Since practically all industries require software services, jobs for computer programmers should increase at a decent clip. Specifically, many firms look to Internet-based applications as a way to lower costs while simultaneously reaching customers in their homes. The boom in the healthcare sector also bodes well for computer programmers, specifically those who hold a bachelor's degree or higher and can work in several programming languages.
The states expected to experience the greatest percentage change in job growth between 2012 and 2022 are:
Here are the Stats:
Of those states, Washington is projected to add the most actual jobs, with 3,990 more positions existing in 2022 than in 2012.
Select a state below for more information about employment and job growth for computer programmers.
Steps to Becoming a Computer Programmer
Levels of Computer Programming Degrees
A bachelor's degree is usually the minimum educational requirement in this field, as it demonstrates to employers that students have not only a broad range of experience with programming languages and concepts, but also that they have developed the problem-solving skills that are vital to this type of employment. However, there typically aren't actual computer programming degrees available past the associate degree level. Instead, programming is included as an integral component in a bachelor's degree in a related area, such as the ones mentioned above—software engineering, computer science, information technology, information systems security and computer engineering—or a similar field.
Students who are interested in programming can always start with an associate degree, where they will learn fundamental programming skills that underpin a degree at any level. They will receive practical preparation for entry-level information technology (IT) positions as computer programmers, Web developers and database designers. By the end of the program, which typically lasts two years, students should be able to analyze what end users need, and then design and code programs to fit these needs. As part of their training, they learn to test and debug applications to make them more efficient and functional, and to match appropriate programming languages with project specifications. Additionally, students will gain a working knowledge of computer systems and technology, as well as get hundreds of hours of practice using multiple programming languages, designing databases and creating Web applications.
Computer programming relies on logic, so students will be expected to develop both their math and problem-solving skills in concert. For students who choose not to continue on to a bachelor's degree, such skills will help guide their future learning as they build their knowledge on-the-job, becoming proficient in specific programming languages. Although every degree program is different, the example courses below show the types of skills students can expect to gain at the associate degree level.
Introduction to Computing
This course provides an overview of various computer systems, from hardware and software applications to operating systems; it is designed for students with minimal subject knowledge, so more advanced students can sometimes test out.
Interior Design Skills & Knowledge Gained
Understand the history of computing
Use software for word processing, spreadsheets, databases and presentations
Be able to use computers in business and educational settings
This course introduces students to the logic of programming, laying the groundwork for students to learn specific programming languages in-depth in future classes.
Skills & Knowledge Gained
Use commands to manage operating system files
Design and implement basic algorithms using a programming language
Java Programming/Data Structures
This course introduces object-oriented programming techniques as a method of structuring software. It also introduces students to Java, a versatile and widely used programming language.
Skills & Knowledge Gained
Build JAVA programs
Test and debug JAVA programs to ensure they function as intended
Computer Programming - C++
This course covers C++ programming language concepts, including control structures, arrays and strings.
Skills & Knowledge Gained
Design and code basic programs using C++
Test and debug programs to ensure proper functionality
A computer science degree is a common choice for aspiring high-level programmers. Computer science students who earn a Bachelor of Science (BS) degree learn the fundamentals of computer programming as well as the mathematical and scientific principles that provide the underpinnings. Specifically, students become proficient in discrete math—a branch of mathematics that deals with objects that have distinct values—as well as computer organization and architecture, algorithms, programming and software design. Some schools offer Bachelor of Arts (BA) programs in computer science, which typically provide more general education and less math and science. However, each school is different, so students should research the options to determine which programs' requirements best fit their needs.
In addition to coursework, most schools require students to conduct a culminating project that integrates what they have learned over the course of the degree. Typically, students meet regularly with an adviser who gauges their progress and offers advice and guidance. They then present their results in a final paper or presentation.
The bachelor's degree courses listed below show the types of skills students can expect to gain at this level:
Students in this course learn how to design and analyze algorithms for correctness and efficiency.
Skills & Knowledge Gained
Create algorithms that sort lists and search databases for specific criteria
Use algorithms to break down problems and find optimal objects
Create graphs using algorithms
Structure data efficiently
This course introduces basic techniques to solve problems with a countable set of possibilities. It covers set theory, difference equations, counting techniques, graphs and algebra.
Skills & Knowledge Gained
Use math and inductive reasoning to solve problems
Determine the size of complex objects through advanced counting techniques
Create and communicate math proofs
Apply algorithms to problems
This course covers how computer hardware and software programs work together, starting with the basic logic of how systems and components interact, and proceeding to high-level programming languages.
Skills & Knowledge Gained
Use digital representation and digital logic
Understand how computers are internally structured and organized
Use machine, assembly and programming languages in tandem
This course introduces students to Internet-based communications and delves into solving problems related to network size, security and access.
Skills & Knowledge Gained
Design network protocols
Scale up and secure communication networks
As with a bachelor's degree, there is no specific computer programming degree at the master's level. That does not mean, however, that students interested in programming don't have more advanced options. In fact, computer science degrees at the master's level provide a breadth of academic knowledge while allowing students to gain depth in a specific area.
Typical master's programs in computer science require students to take courses in multiple areas, including math and theoretical foundations, artificial intelligence, and computer systems. Students might specialize in one of these areas, or they might choose to focus on another area such as computer and network security, database systems, human-computer interaction or scientific computation. Advanced programming skills come into play with any of these specializations. Specifically, graduates with a master's degree in computer science will be thoroughly trained in the following skills:
Utilizing software development tools to design, code, test, and debug programs
Courses in computer architecture, operating systems and computer networking will provide students with an understanding of how computer systems work. At the master's level, they go several steps farther by giving students practice in building functional software and networks that fit into such systems.
Designing and implementing algorithms
Computers can perform tasks at a pace that far outpaces humans—but only if they're programmed correctly. That's where complex algorithms come in. The giant technology company Google, for instance, uses one to optimize the results returned by its search engine, making it more likely for users to see the results that matter to them. Master's students will work on similar problems, learning to apply mathematical methods to compute results.
Leveraging existing software to develop new software systems
There's no point in reinventing the wheel, and no one knows this as well as computer programmers. Seldom do they want or need to spend the time, effort, and money building a program from scratch when an existing one will do the job. Students will be well-versed in established software and systems and are expected to use their proficiency to build large systems that can run multiple applications.
A degree or certificate in computer programming is just one way to enter the profession. Earning a degree in a broader technology field allows students to explore other computer concepts even as they become expert programmers. Because programming requires a solid foundation in math, logic and computer engineering and architecture, the following degree options are ideal paths for aspiring computer programmers:
Online Computer Programming Degrees: What to Look For
Computer programming degrees are ideal for online study. The only equipment needs are a high-speed Internet connection and the appropriate software. However, that doesn't mean students should send a tuition check to the first school they find. Online schools can vary considerably in terms of course offerings and overall quality. Prospective online students should first make sure the program has the following:
Computer programming requires a lot of time in front of a computer screen, which is why some people like it. But students should be careful to ensure they have opportunities to interact with faculty and other students, which will serve them well in their future careers. Many projects are behemoth affairs, employing a host of programmers to work on the various parts, and employees will be expected to interact with a variety of team members. Students should check that their chosen distance program has integrated participation built into the curriculum.
One of the advantages of taking classes online is that most modern computers have webcams that are easily able to record lectures for further use. Many schools take advantage of this and archive their lectures so that students can review them when they are studying or have trouble understanding a concept or figuring out a problem.
Accreditation is an important benchmark for all programs because it ensures the school and/or program has met rigorous academic standards. On top of that, it's absolutely essential for students who want access to federal financial aid. With a four-year online computer science degree easily costing $20,000 or more depending on the college, financial aid can be a lifesaver.
Components of a Successful Career
as a Computer Programmer
Computer Programmer Skills
Because computer programmers are often required to write code based on a client or employer's request, it's important that they be active listeners and strong communicators. Lastly, an understanding of how people typically use computers helps when designing user interfaces.
Computer Programmer Credentials
Available certifications include:
- GIAC Secure Software
- SAS Certified Base Programmers
- SAS Certified Advanced Programmers
Prospective employers may require certifications for hiring, while programmers who earn them in their current positions can prove their readiness to be promoted to a better job within the company.
Tools and Technology for Computer Programs
|Source code editing software||Writing code requires more rigorous software than a word processing application. Some popular programs include Notepad++, Sublime Text and TextMate.|
|Compiler software||Takes source code written in one programming language and translates it to another.|
|Database management systems software||Used for managing large volumes of information. Programs include Microsoft SQL Server, MySQL software, Oracle and Pick software.|
|Development environment software||Software such as Microsoft Visual Basic and Xerces2 Java Parser provides a virtual test kitchen for programmers to develop and refine software before its release.|
Spotlight Career Interview
Sean Madden is the executive managing director of client experience at Ziba Design in Portland, Oregon. Before his current position, he spent eight years in Silicon Valley as a programmer and associate creative director. Sean works to improve how clients experience technology, and also teaches at the Yale Executive School of Management.
What prompted you to go into computer science?
You were working on the hardware side of things. Were you interested at all in programming?
In your current work, how do you work with programmers, and what do you look for when you're hiring a programmer?
What are some cool job opportunities that a lot of people may not know about if they're just starting out?
It seems like you were perfectly placed to go into the biggest industry of our time.
So, you were able to adapt pretty quickly.
For people who like computers but aren't necessarily interested in the programming side of things, or who want to work on a larger scale than personal computers and mobile phones, there are several other careers to choose from:
Related Careers at a Glance:
Sources: Bureau of Labor Statistics, Payscale
What do related computing careers pay?
Computer programmers write code and work with software applications and systems, but the field of computer science in general offers more extensive opportunities. Individuals who have a mechanical or engineering bent may gravitate toward working with hardware, while others will excel in network or information technology positions. In any case, people with a computer science background earn salaries much higher than the national average. Check out the annual wages for the 10th, 50th, and 90th percentile of earners in the following occupations:
Computer programmers and Related Job Salaries
Related Careers at a Glance
How to Become a Nurse Practitioner
Learn about the education, practical steps, and experience you’ll need to become a nurse practitioner.
How to Become a Nurse: Nursing Programs & Careers
Learn about the education, practical steps, and experience you’ll need to become a Nurse
LearnHowToBecome.com is an advertising-supported site. Featured or trusted partner programs and all school search, finder, or match results are for schools that compensate us. This compensation does not influence our school rankings, resource guides, or other editorially-independent information published on this site.
View the most relevant programs for your interests and compare them by tuition, acceptance rate, and other factors important to you.