Computer Programmer

SEARCH COLLEGES
Sponsored Schools

What Does a Computer Programmer Do?

Computer programmers write and test the code that allows computer applications and programs to function. They may translate the designs of software developers and engineers into workable code. They may also update or expand the code of existing programs. Or, they may test programs for errors, finding and resolving faulty lines of code.

According to the Bureau of Labor Statistics (BLS), employment for computer programmers in the U.S. will decrease by 7% between 2016 and 2026, driven largely by the availability of remote workers from countries with lower average wages.

Still, programmers with at least a bachelor's degree and knowledge of the latest programming tools should continue to qualify for lucrative positions in the industry. The BLS shows that computer programmers earned a median salary of around $82,200 in 2017, well above the national median salary. The highest 10% of earners, typically those with the most education and experience, earned more than $132,500 in that same year.

The BLS shows that computer programmers earned a median salary of around $82,200 in 2017, well above the national median salary.

Key Skills

In an increasingly competitive environment, computer programmers need to stay up to date on the latest technologies and practices in their field. While computer programmers typically need only an associate or bachelor's degree in computer science, employers often prefer candidates who specialize in multiple programming languages or have experience in relevant fields like healthcare or accounting. Here are some of the most in-demand skills reported by computer programmers to PayScale.com.

Key Skills for Computer Programmers

Linux

Linux is a free, open-source software operating system. While originally developed for personal computers, Linux now operates on more platforms than any other system. Owing to this accessibility and ubiquity, expertise in Linux benefits computer programmers looking for a competitive edge over other candidates.

Java

Java serves as an all-purpose computer programming language. Java boasts of “write once, run anywhere” functionality, meaning that code written in Java can run on any device equipped with a Java virtual machine. The widespread use of the Java language makes it a critical competency for programmers.

JavaScript

Along with HTML and CSS, JavaScript is one of the three core technologies of the World Wide Web. Nearly all websites use JavaScript to enable interactivity, and all major web browsers incorporate a JavaScript engine. Computer programmers working on web applications must have an intimate knowledge of JavaScript.

C++

First appearing in 1985, C++ helped lay the foundation for subsequent languages, such as C#, D, and Java. Many programmers use C++ when designing software infrastructure and resource-constrained applications, like desktop applications or e-commerce servers. Experts recommend computer programming students learn C++ as one of their first languages.

ASP.NET

Created by Microsoft, ASP.NET supports the development of dynamic web pages, or pages that display different content each time a user views them. ASP.NET allows programmers to build other dynamic web applications and web services as well. Most modern programmers learn a newer variation of ASP.NET known as ASP.NET Core.

C#

C#, pronounced C-sharp, is a general-purpose and multi-paradigm programming language. Released in 2000, C# offers exceptional flexibility, allowing programmers to create dynamic web pages, applications, development tools, and compilers. Hailed as modern, simple, and powerful, C# represents one of the core languages computer programmers must know to qualify for most jobs in this field.

SQL

SQL, or Structured Query Language, manages data within a relational database management system. Originally developed in 1974, SQL remains in use today in applications like Microsoft Access. While computer programmers can benefit from understanding and using SQL, the language mostly serves programmers specializing in database design and management.

HTML

HTML, or Hypertext Markup Language, is one of the most commonly used languages in web design. Internet browsers receive HTML documents from a server and then turn these documents into multimedia web pages. Given the universality of HTML, computer programmers should strive to learn the language even before beginning an undergraduate program in computer science.

PHP

PHP, a server-side scripting language, enables the creation of web sites, intranets, internet applications, and social networks. Often embedded in HTML code and implemented using the C programming language, few programmers work exclusively with PHP. Still, its ubiquity makes it an invaluable secondary language for the programming professional.

Visual Basic

Event-driven programming languages, such as VB, allow programs to respond to user actions, sensor outputs, or external messages. In 2008, Microsoft stopped supporting VB, though some software developers continue to use it. While potentially helpful in some environments, aspiring programmers should prioritize learning other languages over VB.

icon-computer-desk

Areas of Programming

People who can code are needed in every field imaginable and their skills are being used to streamline and improve the systems all industries rely on. The applications of coding knowledge are broad and far-reaching, but being an expert in a specific area of coding can greatly increase your job prospects.

How Much Do Computer Programmers Make?

According to the BLS, computer programmers earned a median salary of $82,240 in 2017. The lowest 10% of earners made less than $47,090 that year, while the highest 10% earned more than $132,530.

Salaries vary depending on factors like the industry in which you work, your job function, your location, and your education level. As you can see in the table below, professional experience affects your earning power. The average computer programmer's starting salary approaches just $52,000, while late-career programmers earn, on average, about $89,000 per year.

Average Salary of Computer Programmers by Job Level

Entry-Level (0-5 Years) $52,000
Mid-Career (5-10 Years) $68,000
Experienced (10-20 Years) $78,000
Late-Career (20+ Years) $84,000

Source: PayScale


How to Become a Computer Programmer

Earn Your Degree

To become a computer programmer, you typically must hold a bachelor's degree in computer science or a related field. Some employers, however, may hire candidates with just an associate degree.

More importantly, a computer programmer's job outlook depends on their proficiency in multiple programming languages. Undergraduate study offers you the opportunity to learn dynamic, object-oriented, and functional languages. Through internships and project-based learning, college programs can also provide the practical experience desired by most employers.

To qualify for senior-level positions, you may need a master's degree. Graduate programs often combine technical and business-oriented coursework, equipping students with the skills needed to shape and implement organizational strategy.

Computer programming students can earn their associate, bachelor's, or master's degrees entirely online. Fully asynchronous online programs allow you to watch lectures and complete assignments on your own schedule, making them ideal for working professionals looking to advance or change careers.

Gain Experience

Computer programmers need hard skills to succeed in their jobs. While you can develop and practice these skills as a student, most employers prefer to hire candidates with professional programming experience.

If you are an undergraduate student pursuing either an associate or bachelor's degree, you should consider an internship. Internships offer students the opportunity to learn about the realities of working as a programmer. They can also help you grow your professional network, making it easier to find an entry-level position after graduation.

Mid-level roles, such as software developer, usually require at least several years of work experience. In addition to keeping your resume updated and requesting letters of recommendation from former supervisors, programmers can benefit from creating a portfolio of their work. A portfolio allows prospective employers to quickly determine whether you possess the necessary skills to take on a particular role.

Earn Credentials

Earning a professional credential signals your expertise with a particular technology or in a specific area of practice. For example, the International Council of E-Commerce Consultants offers an “ethical hacker” certification. This credential helps information technology professionals demonstrate their skills in the use of legal means to probe an organization's cybersecurity readiness. Cisco, a multinational technology conglomerate, also offers professional certifications in areas like cloud computing, data center administration, and industrial networking.

Earning a professional credential signals your expertise with a particular technology or in a specific area of practice.

Some employers specifically require certifications in the technologies they use, meaning you may need to seek a credential to qualify for certain jobs. In other instances, certification can give you a competitive edge over other candidates or put you in line for a promotion or salary increase.

Numerous organizations offer professional certifications for programmers. If you have recently graduated, consider earning a credential from the Institute of Electrical and Electronics Engineers (IEEE) Computer Society, one of the most widely respected professional associations in the industry.

Types of Computer Programming Careers

A computer programmer's education level plays a critical role in determining their career path. For example, individuals with just an associate degree typically only qualify for entry-level roles, such as web developer or computer support specialist.

A bachelor's degree qualifies you for more professional opportunities. After completing your undergraduate studies, you can take on positions such as computer programmer, computer network architect, database administrator, or even software developer. Mid-level roles like these usually require several years of professional experience or demonstrated competency in multiple programming languages.

Finally, a master's degree positions you to pursue the most lucrative and senior-level jobs in information technology. Most computer and information systems managers have completed graduate coursework in subjects like organizational development and project management, equipping them with the skills needed to lead teams and departments. Computer scientists, conversely, often take master's-level classes in data collection and analysis to prepare for more research-oriented roles in academia or the private sector.

Web Developer

Web developers create websites. They often build the overall structure of a site, design individual pages, and ensure that web applications on the site function properly. Developers need a solid understanding of programming languages, such as HTML and XML, to write code for their sites. Most employers prefer to hire candidates with at least an associate degree.

Degree Level and Experience Required

Associate, entry-level

Median Annual Salary

$67,990

Computer Programmer

Computer programmers write the code that enables applications and programs to perform their intended tasks. For example, a programmer may create and test code for a social networking site that allows users to connect with their neighbors. In addition to proficiency in multiple programming languages, most programmers hold a bachelor's degree.

Degree Level and Experience Required

Bachelor's, entry-level

Median Annual Salary

$82,240

Database Administrator

Database administrators use software to store, organize, and provide access to specialized data. An administrator working for a healthcare company, for instance, may work to ensure doctors and nurses can easily review patient information. Database administrators usually hold a bachelor's, though some advanced roles may require a master's.

Degree Level and Experience Required

Bachelor's, entry-level

Median Annual Salary

$87,020

Software Developer

Software developers design computer programs and applications. They may also update existing programs based on an assessment of user needs. While some developers work independently, others manage teams of coders and information technology professionals at larger firms. To qualify for these roles, you need at least a bachelor's degree.

Degree Level and Experience Required

Bachelor's, mid-level

Median Annual Salary

$103,560

Computer or Information System Manager

Computer and information system managers oversee computer-related activities at their organization. They may lead a department or serve in a senior leadership role, such as chief information officer. While you can take on supervisory positions at smaller companies with just a bachelor's, many of these managers hold a master's.

Degree Level and Experience Required

Master's, senior-level

Median Annual Salary

$139,220

Where Can I Work as a Computer Programmer?

Computer programmers live and work around the globe. You may hope to live in California or Washington, working for a technology giant like Facebook, Amazon, or Microsoft. Or, you may prefer to settle in a smaller community like Huntsville, Alabama, working for a government agency or defense contractor. As a freelance programmer, you can work from any location with an internet connection, giving you the freedom to travel the world while earning a living remotely.

Locations

A computer programmer's salary and job prospects depend on where they live. Urban centers, for example, often provide more career opportunities than rural areas. In addition, certain cities, like San Francisco and Seattle, feature thriving technology industries, making it easier for programmers to find steady work.

As you can see in the table below, San Francisco and Seattle also offer some of the highest median salaries for programmers. However, the cost of living in these two metropolitan areas is very high. In 2018, the average monthly rent for a two-bedroom apartment in San Francisco exceeded $4,600, the highest rate in the country.

Metropolitan Areas With the Highest Employment Level of Computer Programmers

Location Employment Median Salary
New York-Jersey City-White Plains, NY-NJ Metropolitan Division 13,740 $97,320
Seattle-Bellevue-Everett, WA Metropolitan Division 9,510 $124,750
Chicago-Naperville-Arlington Heights, IL Metropolitan Division 8,700 $92,380
Dallas-Plano-Irving, TX Metropolitan Division 7,370 $86,410
Los Angeles-Long Beach-Glendale, CA Metropolitan Division 6,740 $91,470

Source: BLS

Top-Paying Metropolitan Areas for Computer Programmers

Location Employment Median Salary
Seattle-Bellevue-Everett, WA Metropolitan Division 9,510 $124,750
Bellingham, WA 50 $110,220
San Francisco-Redwood City-South San Francisco, CA Metropolitan Division 4,600 $105,890
San Jose-Sunnyvale-Santa Clara, CA 5,010 $104,470
Huntsville, AL 2,730 $104,380

Source: BLS

Settings

Computer programmers work in a variety of settings. They may work for technology firms like Apple, writing code for a new computer or smartphone operating system. Or, they may work for large finance companies, creating proprietary software that analyzes fluctuations in the stock market. Programmers can also work as freelancers or on a contract basis for multiple clients.

Working in specialized industries may require additional education or experience. For example, a programmer that develops code for a health information database may benefit from an understanding of privacy laws and the specific end user needs of doctors and nurses.

The Five Largest Employers of Web Developers

Setting Percent Employed Median Annual Salary
Computer Systems Design and Related Services 38 $81,240
Finance and Insurance 7 $88,300
Software Publishers 7 $97,360
Manufacturing 55 $81,750
Self-Employed Workers 5 Varies

Source: BLS

Working as a Freelancer

Working as a freelancer offers a great deal of flexibility. You can set our own hours, pick your own projects, and choose your own clients. While you must respond to the needs of your customers, you remain your own boss. Freelancers often have specialized knowledge or skills, so they may charge more than programmers working in institutional roles.

Freelancing does come with some drawbacks, however. Most freelance programmers do not receive benefits, such as health insurance. In addition, the availability of freelance work fluctuates, meaning you may have an abundance of opportunities one month and very few the next. And when freelancers do not work, they do not get paid.

Continuing Education for Computer Programmers

More than almost any other occupation, computer programmers must continue to develop new skills and knowledge to remain competitive in the job market. They can do so on a self-directed basis, by earning an industry-recognized credential offered by a professional organization, or through a postsecondary certificate or degree.

Self-directed education, like learning a new programming language through an online provider like Khan Academy, is one of the easiest and least expensive ways to develop yourself professionally. To demonstrate skills you have learned on your own, consider creating a portfolio of work to share with prospective employers.

How Do I Find a Job as a Computer Programmer?

According to the BLS, programmers with a bachelor's degree and knowledge of multiple programming languages should experience the best job prospects, though the demand for programmers in the U.S. will continue to decrease through 2026.

To improve your odds of finding a job, focus on building your professional network during your undergraduate studies. Participate in internships, attend job fairs and recruiting events on campus, and ask if your college or university has an alumni mentorship program.

You can also join a professional organization, like the IEEE Computer Society or the Association for Computing Machinery, to learn about networking events in your area. Finally, make sure to update your resume and work portfolio frequently.

Professional Resources for Computer Programmers

Professional Organizations

  • Association for Computing Machinery ACM is the world's largest educational and scientific computing society. In addition to international conferences, ACM also organizes regional chapters around the globe and special interest groups in areas like artificial intelligence and data management.
  • Association for Women in Computing AWC represents women working in computer science. It hosts networking events, provides online and in-person professional development opportunities, and administers a mentorship program for recent graduates.
  • IEEE Computer Society A branch of IEEE, the Computer Society serves more than 60,000 computer science and information technology professionals. Members can attend technical conferences, read scholarly journals and practice guides, and earn professional certifications.
  • National Association of Programmers Established in 1995, NAP specifically represents computer programmers. It offers formal certifications, maintains a professional code of ethics for those working in the field, and hosts an annual conference.

Code Training

  • Codecademy Millions of aspiring programmers begin their education at Codecademy. The site offers interactive online training modules in subjects like HTML, CSS, JavaScript, and SQL. Learners can ask questions and receive personalized support through the Codecademy Forums.
  • Khan Academy Khan Academy features short, online courses on topics like object-oriented design, web development tools, and jQuery interactivity. Its “Meet the Professionals” videos and conversations can also help you learn about possible career paths in programming.
  • Code.org Code.org aims to expand access to programming training and computer science education in schools, with a particular focus on increasing participation among women and underrepresented minorities. You can browse coding courses and free tutorials by grade level and subject area.
  • Massachusetts Institute of Technology OpenCourseWare MIT makes its undergraduate-level coursework in computer programming available for free online through its OpenCourseWare platform. Learn coding and other computer science topics directly from MIT faculty and doctoral students.

Finding a Job

  • Indeed Indeed hosts thousands of job listings across almost every industry. Computer programmers can search for openings by location, job description, and salary level. Indeed also features company reviews, helping you make a more informed decision about where to apply.
  • ZipRecruiter ZipRecruiter helps accelerate the job search and hiring processes. After creating a profile, you can review listings and apply for jobs through an app on your phone. Candidates on ZipRecruiter can also see when a prospective employer views their application.
  • Computer Society Jobs The Computer Society's job board features hundreds of career opportunities. It also advertises summer research positions and college internships. Members can post their resumes and access career advice from established professionals.
  • ACM Career Center ACM's career center allows members to post their resumes, search job listings, and directly apply to openings. You can search by job title, keywords, location, or within categories like cybersecurity or emerging technologies.

Continuing Education

  • ACM Advancing Education ACM's website features a variety of continuing education resources. For example, you can watch ACM “TechTalks” to explore topics like machine learning. You can also participate in webinars on subjects such as agile project planning or programming for the healthcare industry.
  • Computer Society Professional Education The IEEE Computer Society administers six professional certifications and credentials. Programmers can earn certification as an associate or master software developer or apply for a certificate of achievement in security or embedded systems.
  • edX Prestigious universities like Harvard and MIT offer free online courses through the edX platform. Programmers can explore topics like blockchain, Azure, artificial intelligence, or Android development.
  • Edhesive Edhesive offers continuing education resources for computer programming teachers. It features sample curricula, assignments, and case studies to help high school teachers educate students on topics like Java, Python, and introduction to computer science.