The University of California, Irvine campus, as seen in January 2022. (Photo by Paul Bersebach—MediaNews Group/Orange County Register/Getty Images)
When you think of software engineering, programming commonly comes to mind, but coding is actually just a small part of what software engineers are responsible for on a day-to-day basis. Professionals in this field rely on a comprehensive knowledge of computer science to develop software and are often working on product requirements, design, testing, documentation, security, and the maintenance of software.
Software engineering is an exciting career that’s becoming increasingly popular, with higher-than-average job growth prospects and starting salaries in excess of $100,000. Whether you’re entering the workforce for the first time or shifting careers after a tenure in another field, here are five steps to take when looking to break into software engineering.
1. Make sure you’re invested in becoming a software engineer
The process of becoming a software engineer involves a fair amount of commitment, which is why it’s beneficial to first make sure it’s really what you want to do.
“A good place to start is to try and teach yourself a particular technology that you’re curious about,” says Mollie Khine, senior director of coaching at Flatiron School, a popular coding boot camp in New York City.
You can also take an hour-long online course, or simply read a technically based book to better understand what the potential course work and career field will entail. “You have to prove to yourself that you’re willing to put in the work,” Khine adds.
2. Pick an education path to pursue
There are three ways to go about getting an education in this field: earn a college degree, complete a boot camp, or take a self-taught route. Each option has pros and cons depending on your background, education, and postgraduate goals.
University or college
Perhaps the most “traditional” first step to the software engineering education path is a four-year degree. However, a computer science degree is relatively new to the higher education world and not necessarily a requirement for the job. “The college I graduated from didn’t even have a degree in computer science,” says Susan K. (Kathy) Land, program manager at the Missile Defense Agency and the 2021 president of IEEE, the world’s largest technical professional organization.
Pro: The benefit of a formal degree at an accredited university in computer software is the widely accepted legitimacy and comprehensive nature of the course work. Not only will you learn programming languages, but also software modeling, computer architecture, digital design, and you will be able to participate in capstones that provide real-world experience, according to Land. The notoriety of a college degree is likely to serve you well if you’re interested in working at a more traditional technology company.
Con: Whether it’s because of a lack of resources or shortage of time, getting an undergraduate or master’s degree isn’t realistic for everyone. Additionally, the world of academia is hard pressed to keep up with the fast-paced evolution of tech, so while you’ll learn foundational skills, it’s very possible you won’t be learning the same exact technical skills that will be required of you on the job.
You can get a crash course in software engineering by attending a boot camp. Programs are generally about 15 weeks long and defined as outcomes-based educational programs, meaning they are designed with the end goal of securing a job. Many schools offer boot camps specific to software engineering, such as the Flatiron School.
“A boot camp program is really targeted on learning foundational skills to be able to code in common programming languages,” Khine says. “You effectively learn how to learn.”
Pro: Boot camps are tailor-made for people looking to study technology for the first time in a structured environment. Oftentimes boot camps appeal to people with undergraduate degrees in nontechnical areas looking to make a career change, people with a high-school level education who want to break into the field, or people with a computer science background looking for more hands-on experience, according to Khine.
Con: If you do choose to complete a boot camp, a possible criticism of your experience will likely be that you don’t have the software engineering foundations and theory knowledge of a four-year degree graduate.
“It doesn’t mean that they can’t close that knowledge gap, but I think it’s important to recognize that there is a gap,” says Evol Greaves, vice president of engineering at Betterment. He graduated from the University of Florida with a bachelor’s degree in software engineering.
The third option is both the lowest cost and lowest time investment, but requires the highest personal investment. The self-taught option is for highly motivated individuals to combine free or low-cost digital courses and resources, and curate their own curriculum.
“One of the best engineers I have worked with in my career is someone who is self-taught.” says Greaves. “He doesn’t have the credentials of an engineer who went through a four-year institution, but that doesn’t take away from his ability to do excellent work.”
3. Consider software engineering certifications
After you’ve completed some form of education, it’s a good idea to showcase your mastered skills to employers through certifications. These can provide proof that you’re actively skilled in the items on your résumé. Khine of Flatiron recommends that anyone looking into cybersecurity, in particular, p
ursue these types of credentials.
“We see people get jobs every day without pursuing additional certifications, but anything you can do to build credibility in your new field is helpful,” says Khine.
4. Demonstrate your programming skills
Another way to showcase your skills is through a portfolio or personal project. It’s a trademark skill of a software engineer to be able to continually learn, given the ever-changing nature of this field. Doing so proactively with a passion project will indicate to prospective employers that you’re ready to do so on the job.
“I’m looking for their desire to learn and grow,” Greaves says of interviewing entry-level candidates for jobs in software engineering. “I’m looking to see if they’re good listeners and they’re willing to take feedback.”
5. Apply for software engineer roles
Colleges almost always have a career center to help with résumé editing, interview prep, and job applications. Boot camps offer similar services, and may be even better suited to give career support as the programs are hyper-focused on preparing people for the workforce. If you’re entering the computer science field for the first time, it’s a good idea to get as much advice as possible from the career centers available to you.
Companies are trending toward conducting skills-based interviews, rather than relying on résumé experience. As a result, you should be prepared to perform a code challenge or showcase some recent completed work during the application process.
Salary expectations and growth opportunities for software engineers
The outlook is positive for both salary expectations and job opportunities for software engineers. The U.S. Bureau of Labor Statistics reports that the median software engineer salary in 2020 was $110,140. In addition, employment is projected to grow 22% between 2020 and 2030, more than twice as fast as the 8% average for all occupations.
Because software engineering is such a high-growth field, continued education is essential to keep ahead of the curve and boost career opportunities. After you’ve been in the workforce and gained some experience, master’s degrees or additional courses at a local college can be a great way to expand your skills. However, some experts recommend holding off on pursuing a master’s degree directly following an undergraduate degree, unless you’re planning to go into academia.
“I would suggest that people get out and work and get some real-world experience,” Land says. “And then, if they’re going to go back to school, focus on a more narrow technical track. Or get a master’s degree in product management.”