Without software, your computer’s just a pricy piece of plastic. Software career professionals design, build, and implement the programs that make computers perform tasks, from the most basic to the incredibly complex. They develop software that improve operations, make professionals more efficient, and solve problems.
The Bureau of Labor Statistics (BLS) projects 22% growth for software developers and related professionals between 2020 and 2030, nearly three times the projected rate for all occupations. These workers are in demand and may enjoy salaries to match.
Here, we explore the many possible software career paths and what you might expect from each role. We’ll also hear advice from a software engineering professional.
What kinds of options do I have?
In the table below, we look at the most common software career paths for professionals. For each profession, you’ll see the technical skill requirements and things that these professionals tend to have in common.
Note that depending on the employer, each position varies in duties and requirements. The table provides a general snapshot of the field to help you choose a direction.
Career path |
Technical requirements might include: |
You might like it if: |
|
|
|
|
|
|
Cloud development |
|
|
Desktop development |
|
|
DevOps |
|
|
Embedded systems development |
|
|
Enterprise development |
|
|
Front end web development |
|
|
|
|
|
Graphic developers |
|
|
Mobile app development |
|
|
|
|
|
Software testing |
|
|
|
|
SEE: How to make your own video game
Lifestyle of a software professional
Most software developers and other software professionals work traditional full-time office hours.
While the positions are collaborative and require extensive teamwork and communication, they may allow for remote work. Still, many software professionals work from a centralized office location to stay connected.
With constant developments and many possible industries, software careers offer a dynamic experience for most professionals. However, research requirements, tight deadlines, and overcoming stubborn development challenges can lead to stressful times on the job.
Software professionals need to adapt and stay up to speed in the evolving information technology world to stay competitive. That means regular continuing education.
Salary expectations as a software professional
The salary expectations for software professionals depend on their specific career. The median annual wage for computer programmers was $93,00 in May 2021 and $110,140 for software developers in May 2020.
While both fields pay high wages, demand differs considerably. The BLS projects a 10% decline in employment for programmers but a 22% growth for developers between 2020 and 2030.
Demand may impact expected salaries, along with location, employers, and the professional’s education and experience.
Computer and information research scientists typically have the highest salaries, earning median annual wages of $131,490 in May 2021. Information security analysts also earned high median annual wages of $102,600 in May 2021.
What does it take to become a software professional?
Requirements to enter the software field depend on the position and the employer. While many software occupations require a bachelor’s degree at a minimum, other paths are possible. Candidates can access the field with an associate degree in some cases or pursue specialized training via bootcamps.
Other routes include vendor-specific tech certifications, which may qualify graduates for positions working with those particular technologies and programs. Information technology professionals might also qualify for software careers based on their experience.
While the BLS projects 13% growth for computer and information technology occupations between 2020 and 2030, the many available paths to the field make software careers competitive for applicants.
When deciding how to switch careers to tech, look at the requirements for software careers in your area.
Advice from a software professional
Jonathan Tanner started his career as a software engineer intern for Barracuda Networks. In 2013, he won their annual hackathon at San Jose State University (where he obtained his computer science degree with minors in mathematics and linguistics).
Jonathan takes part in computer science competitions to this day, such as the DEFCON Wireless Capture the Flag. At Jonathan’s first DEFCON, he became enthralled with cybersecurity research. He built Barracuda’s malware detection ATP platform and now helps lead their threat research program.
Responses have been edited for length and clarity.
ZDNet: What type of person is successful and thrives in a software career? What type of person may not be the best fit?
Jonathan Tanner: Software development requires problem-solving, attention to detail, a lot of research and reading (new technologies, documentation, etc.), often some creativity, and most of all, a passion for the job.
ZDNet: What tasks do you typically work on?
JT: I oversee field Q&A requests and look into threats that Barracuda systems detect to write about campaigns or trends that we see on our blog. I have to be up to date on industry trends to stay relevant to the current threat landscape and what our customers and employees need to know as well as break down technical details so that anyone can understand the threats on at least a basic level.
In addition, I work on systems to better collect and track the data that we see to make it easier and more efficient to do my job. I also occasionally evaluate potential new solutions that might be useful for better protecting our customers.
ZDNet: Who do you communicate with?
JT: I typically communicate with my team, as well as marketing and PR as relates to outreach such as Q and A requests and blogs. Sometimes I need to communicate with various product teams that might have insights or data on threats to look into.
Prior to the pandemic, I would frequently seek events that would allow me to socialize with others that work in or are interested in software development and cybersecurity, such as conferences or meet-ups.
ZDNet: What kind of hours do you keep?
JT: Software development jobs often place more importance on the results achieved rather than the hours worked, to some extent, which can provide both flexibility as well as greater expectations.
There was a time when my typical workday was from 10 a.m. to 7 p.m., since I had the flexibility to work those hours and would not describe myself as a “morning person.” Being results-oriented, however, this meant that if something went wrong with the software or critical bugs needed fixing, extra hours would be necessary.
I feel fortunate to have only worked weekends a handful of times, but that is the norm for some companies and roles.
The gaming industry, in particular, has what’s referred to as “crunch time,” which is the weeks or months leading up to a large release where it’s not uncommon for more time to be spent in the office than outside of it trying to finish the game on time.
ZDNet: Who are your coworkers?
JT: I typically interact with my team and marketing, but Barracuda also has large engineering and sales teams that can provide useful insights and data.
ZDNet: What knowledge do you use?
JT: While it is possible to do software development without a more traditional knowledge in computer science and math that colleges teach, I have certainly leaned on this information many times both in programming and finding bugs. Understanding how the software entities I’m using actually work behind the scenes helps in this regard.
This relates to cybersecurity as well, since understanding how things work on a deeper level provides many useful insights. For example, understanding the various types of malware in use and how they work is necessary to analyze attacks and campaigns.
Even understanding the tactics and motives of the attackers is very useful for gaining and providing insights into these as well.
ZDNet: Since becoming a software pro, has there been anything about the role that you didn’t expect or anticipate?
JT: When I first started, I definitely didn’t anticipate how much I would have to learn on the job to create software.
Learning or knowing databases is pretty straightforward, but some aspects of the job, such as building the software itself and utilizing dependencies, were completely new and not covered very much in school.
In conclusion
Software careers occupy a dynamic space full of different types of positions, professionals from diverse backgrounds, and constant change. The field welcomes new graduates from various study disciplines and experienced professionals changing careers. Prospective software professionals can prepare with a college or university degree, a bootcamp, or industry certification.
Use this guide to help you decide which software career is best for you and find a path to the career that makes the most sense for your goals and location.
Unless otherwise noted, job growth and salary data was drawn from the U.S. Bureau of Labor Statistics as of April 27, 2022.