What is Computer Programming and How to Become a Computer Programmer
What Does a Computer Programmer Do?
At its most basic, computer programming is little more than a set of instructions to facilitate specific actions. Computer programmers create instructions for a computer to act upon by writing and testing code to enable applications and software programs to operate successfully. Based on the requirements or purpose for these instructions, computer programming can be as simple as taking two numbers and adding them together. It can also be as complex as reading data from temperature sensors to adjust a thermostat, sorting data to complete intricate scheduling or critical reports or taking players through multi-layered worlds and challenges in games.
"Computer programming is usually a very collaborative process, with contributors at various stages offering components, like bricks in a wall," said Dr. Cheryl Frederick, associate dean of STEM programs at Southern New Hampshire University (SNHU). "The hope is that the computer program will become such a widely adopted system that it needs long term support, particularly to extend its current functionality. The terms computer software and computer programming are used interchangeably, except software can get rather large. If a computer program is successful - such as Microsoft Word, initially released in 1983 -programmers will be constantly nurturing and growing the program."
What is Computer Programming?
Computers can do amazing things, from basic laptops capable of simple word processing and spreadsheet functions to incredibly complex supercomputers completing millions of financial transactions a day and controlling the infrastructure that makes modern life possible. But no computer can do anything until designed to behave in specific ways. That's what computer programming is.
Computer programmers use specialized languages to communicate with computers, applications and other systems to get computers and computer networks to perform a set of specific tasks. Languages like C++, Java, Python and more allow programmers - often working closely with software developers and engineers - to build programs that allow "searching, surfing and selfies," according to ComputerScience.org.
There are many programming languages but some have emerged as the most popular. Industry blog The Crazy Programmer recently listed the top 10 programming languages being used in 2018 based on a survey of 100,000 programmers. They included:
Some of the common tasks a computer programmer is required to master were compiled by O*Net online and include:
- Testing software performance.
- Resolving computer software problems.
- Modifying software programs to improve performance.
- Writing computer programming code.
- Collaborating with others to resolve information technology issues.
How to Become a Computer Programmer
Many computer programmers begin as self-taught enthusiasts. Dr. Ed Lavieri, began as a self-taught gamer, and served 25 years in the Navy before becoming a full-time teacher. As technical program facilitator of game programming and development, he said, "Computer programming becomes fun when you have the core knowledge."
"But, you can't rest on information you've learned," Lavieri said. "A degree is an indication of past knowledge. Skills, certifications, degrees, an e-portfolio - all of those will help you get your foot in the door - but if you want to be the one to create Windows 11, you have to get a broad range of experience and take advantage of opportunities as they come."
Frederick agreed. She held jobs with the Department of Defense and in the financial and telecommunications sectors before turning to education. "It takes a lot of grit and it's not enough to earn a degree; you need workplace experience," she said. "We give students a foundation - based on data structures, algorithms, math and logical engineering - but you have to be able to plan, write, design, test and manage software. You have to know at least two or three programming languages, including proficiency in JAVA and C++."
Beyond classroom and experiential learning, however, computer programmers must understand that when writing a program, it never works the first time. "This field requires patience, and the ability to troubleshoot and get at errors. You need to be a learning worker, be self-disciplined, have the motivation to learn on your own, be able to brainstorm with others, and have a lot of hands-on practice," Frederick said. "You must be a practitioner and adapt to what's trending."
"Game programming - a multi-billion dollar industry which requires much more than graphics and sound -is among the hardest programming there is," said Lavieri. "But every industry, without exception, needs programmers, from healthcare and real estate to banking, travel and every other sector."
While working to complete a computer science degree, students are encouraged to create a portfolio of their software work. "Though this portfolio isn't graded, students can share it with potential employers as proof of coding capabilities," Frederick said. "The entire degree program gives students broad exposure and proficiencies in traditional and trending technologies, including such specialties as computation graphics, software testing and writing code for commonly used programs, as well as deeper, more specific skills."
Computer Programming Certifications Beyond a Degree
Most computer programming positions require at least a bachelor's degree, according to the U.S. Bureau of Labor Statistics, and many advanced degree programs are also available. In addition to those academic avenues, there are dozens of professional and nonprofit professional certifications available. BLS notes that certifications exist for specific programming languages and that some employers may require programmers to become certified in the products the company uses.
Some of the professional certifications available include:
- CISCO - Certified Network Associate, Certified Network Profession Routing and Switching, Certified Network Associate Security Credential
- Microsoft - Certified Solution Developer for Web Applications, Certified Solutions Associate Windows Server
- Professional Associations - Software Development Associate Certification, Comptia's Security+, Comptia's A+ Certification, Comptia's Linux+
- Nonprofit - Certified Information Systems Security Professional, Certified Information Security Manager, Certified Secure Software Lifecycle Professional Credential
Learning Software Engineering
Dr. Curtis George, faculty lead of undergraduate IT at SNHU, was previously employed by NASA, the National Oceanic and Atmospheric Administration (NOAA) and other high-tech leaders, and has been integral to the development of the university's computer science curriculum.
"In my jobs, I trained a lot of junior software engineers, and I would stand behind them, show them parts of code and, by giving them hands-on experience, they would eventually get better," said George. "Having a basic knowledge of software programming, including working with others (on) teams, is a good starting point for any job."
In pursuing a computer science degree with a focus on software engineering, it's important to learn in a collaborative environment, whether in-person or virtually, as these experiences will mirror what will be expected in the workplace. George noted that students learn computer programming and build software in online labs that provides independent work opportunities along with team collaboration.
Explore more content like this article
MBA Alumnus Helped in Deployment of the Internet, Now Teaches Sales
Though Jim Naro '85MBA knew there was something special happening in technology, he had no idea his MBA would lead him to a team that would be instrumental in the deployment of the internet.
SNHU Team Reaches Finals of Teradata Analytics Competition
A group of three Southern New Hampshire University students made the finals of a global data analytics challenge this fall, beating out dozens of teams from around the world.
What is Information Technology (IT)?
Information technology (IT) is a broad professional category covering functions including building communications networks, safeguarding data and information, and troubleshooting computer problems.