Companies everywhere need software engineers for a variety of functions, from building embedded systems to helping design next-generation video games. As a result, there are multiple pathways toward a fulfilling career in software engineering. Which is best for you?
Before we plunge in, one quick thing to note: software engineers aren’t necessarily synonymous with software developers, even though many companies treat the roles interchangeably. In general, software engineers work on a broader level than software developers, figuring out how to design, implement, and iterate upon entire platforms (whether an app, service, or something else). Meanwhile, software development is a much more tactical role—you’re in charge of actually coding the project.
With the current tech unemployment rate hovering at 1.8 percent, according to the latest analysis of U.S. Bureau of Labor Statistics (BLS) data by CompTIA, companies are hungry for software engineers, and they’re often willing to overlook things like formal education if you can prove you have the skills and experience necessary to do the job. That being said, a formal degree can help open up additional opportunities, especially at organizations that are adamant about all job candidates having a degree in computer science or related discipline.
Software Engineer Career Path: Formal Education
If you want to earn a bachelor’s degree that will help you secure a job as a software engineer, you have a number of options. For example, you could earn a “general” computer science degree, which is great for learning the principles of software engineering. You could also opt to pursue a degree in information technology or mathematics, which will also teach you the fundamentals necessary for a successful software engineering career.
Choosing a minor is also important; for example, a liberal arts minor can help you develop the critical thinking skills necessary to solve problems and think through abstract concepts.
Software Engineer Career Path: DIY
Some aspiring software engineers don’t have the time or resources to earn a formal degree—but that won’t necessarily hold your career back. There are lots of online courses for learning the fundamentals of software engineering, along with lots of self-directed tutorials and videos. Sites like w3schools can teach you about key tools and languages, for instance.
If you’re going the “DIY” route for a software engineer career, it’s key to build your own community of like-minded technology professionals. Participate in open-source projects on GitHub, which will give you the added benefit of growing your portfolio of projects. Join software engineering groups on Reddit and other online forums, and do your best to participate in the discussions. The contacts you make now will help you enormously when it comes time to find new jobs, clients, and more.
Software Engineer Career Path: Salary
Glassdoor, which also crowdsources salary data, places the average software engineer salary at $90,321; according to the latest Dice Tech Salary Report, it stands at $104,566.
With the right skills and experience, that can rise still higher; for example, those software engineers who opt to learn management skills can make as much as $700,000 per year in total compensation from a handful of the country’s highest-paying companies for software engineering managers.
Software Engineer Career Path: The Future
In other words, if you want to open yourself to the widest possible range of opportunities, master the principles of software engineering, along with the cloud, building products for the web, and any kind of data management. Although Lightcast predicts that the job market for software engineers will grow at around 17 percent over the next 10 years, you’ll stand out more on your job hunt if you can demonstrate deep knowledge of in-demand tools and highly specialized disciplines.
In addition, keep an eye on machine learning and artificial intelligence (A.I.), which could impact software development in significant (and unexpected) ways in coming years. If no- and low-code tools become more sophisticated and powerful, for instance, it may fundamentally change the software-building process in ways all software engineers will need to take into account.
Whether or not you eventually want to assume a management role, learning “soft skills” such as empathy and communication is important. Virtually all software engineers work in teams, and you’ll need to effectively interact with team members (as well as other stakeholders throughout an organization) to get projects done.
As you progress along your career path, keep in mind that you don’t necessarily need to become a manager, as more organizations are building out roles for distinguished engineers and subject-matter specialists. If you keep growing your skills, you can have a significant say in an organization’s software strategy without necessarily needing to move into management.