If you are looking to pursue a career in software engineering and aren't sure where to begin, here's your guide to salaries, job markets, skills and common interview questions in the field.
With the economy suffering serious damage due to the volatility of 2020, workers are looking to find the best jobs with the most stability. The job market is recovering, and employers are either hiring or planning to, thanks to widespread vaccinations.
One of the better options is software engineering. Software engineer applications accounted for 19% of all job applications from Gen Z applicants in the U.S., making it the most in-demand job among that generation, according to a recent Glassdoor report.
To help those interested in the industry figure out how to launch a career in software engineering, we compiled the most important details and resources. We'll show you how to be a computer software engineer. For a free PDF version of this software engineering career guide, download this ebook. This article will be updated on a regular basis.
(Note: This article about how to become a software engineer is available as a free PDF download.)
Why is there an increased demand for software engineers?
Software engineer is No. 9 on Glassdoor's list, the 50 Best Jobs in America in 2021, along with mobile engineer at No. 8, front-end engineer at No. 11 and back-end engineer at No. 16. As of January 2021, there were more than 40,000 job openings for software engineers, the report said. Java software developer was listed No. 1.
Backend, full stack and frontend engineers are in highest demand, landing more than half of all interview requests for software engineering roles, said Hired's 2021 State of Software Engineers report.
The demand for software engineers correlates with the ebbs and flows of new technology. For example, the explosion of blockchain in the past year has resulted in a need for software engineers with blockchain skills, the report found.
Most companies are trying to stay competitive, resulting in a greater investment in technology, across all sectors, according to Glassdoor's Economic Research Blog. As more companies are trying to transform into tech companies, software engineers are needed in those industries (retail, finance, manufacturing, etc.) to plan, manage and launch the software.
Demand for engineering talent still far exceeds supply, and 64% of engineers say there's a computer software engineer shortage in their companies with concerning consequences on innovation and growth, according to a 2021 report by Terminal.
- Low-code platforms: An insider's guide (free PDF) (TechRepublic)
- How to successfully work remotely in an engineering organization (TechRepublic)
- Developers and IT pros are in demand, but how long will the hiring wave last? (TechRepublic)
- 16 full-time remote jobs in cryptocurrency for developers, leaders and recruiters (TechRepublic)
- 5 tech jobs that keep going unfilled, and why they might be vacant (TechRepublic)
- Developers dread these programming languages, but which one pays the most? (TechRepublic)
- Do engineers prefer to work from home or in the office? One expert explains (TechRepublic)
- Software and IT services hiring is surging as workers move to these cities en masse (TechRepublic)
- Developers are exhausted. Now, managers are worried they will quit (TechRepublic)
What does a software engineer do?
Software engineers are responsible for building, developing, launching and maintaining software products and systems, according to Indeed's career guide. Software systems include operating systems, business applications, connected hardware, networking systems and mobile and web applications.
Software engineers and software developers are interconnected, but mutually exclusive. Software developers help maintain existing software performance, recommend improvements and develop updates or new software programs in code. The key difference is in the word "engineer," because engineers are involved in the development of software, but software developers don't necessarily have the engineering background to be involved in that part of the process.
- 10 ways to prevent developer burnout (free PDF) (TechRepublic)
- How to become an Alexa developer: A cheat sheet (TechRepublic)
- How to become a Unity developer for VR and AR (TechRepublic)
- How DevOps teams are taking on a more pivotal role and improving responsiveness to change (TechRepublic)
- Pressures of the pandemic motivate a big shift to agile programming practices (TechRepublic)
- The latest trends in DevOps: Infrastructure-as-code, automation and the importance of communication (TechRepublic)
- GitHub is set to better empower collaboration with Issues and Projects (TechRepublic)
- What are the most dreaded antipatterns in web development? (TechRepublic)
- 9 unexpected skills you need for today's tech team (TechRepublic)
- Want to ruin a developer's day? Coders reveal what really destroys their productivity (TechRepublic)
- Software QA testing: Secrets from a veteran QA engineer (TechRepublic)
What are some software engineer job roles?
Computer software engineers can choose from a number of different career paths. Here are the nine most in-demand software engineering jobs and their growth rates year over year, according to the Hired report. Mobile and embedded engineers were some of the few roles that saw slight demand growth compared with 2019, the report said. This is likely a result of people spending more time on their mobile devices amid lockdowns in 2020, with mobile web traffic being 11.4% higher in April 2020 compared with 2019.
Highest-demand jobs in 2021 by interview request, according to Hired:
- Backend engineer: 58%
- Full stack: 57% (down 1%)
- Front end: 30% (down 2%)
- Data: 9% (down 1%)
- Mobile: 8% (same as 2020)
- Machine learning: (4% down 2%)
- Search: 2% (down 1%)
- Security: 2% (same as 2020)
- Natural language processing: 1% (down 1%)
- Computer vision, gaming, embedded, AR/VR, blockchain engineer and manager all were at 1% with no change.
- How to build a successful developer career (free PDF) (TechRepublic)
- How to become a machine learning engineer: A cheat sheet (TechRepublic)
- Cheat sheet: How to become a cybersecurity pro (TechRepublic)
- Cheat sheet: How to become a data scientist (TechRepublic)
- How to build a successful career as a cloud engineer (free PDF) (TechRepublic)
- Job description: DevOps engineer (TechRepublic Premium)
- Job description: Systems engineer (TechRepublic Premium)
- Job description: Full stack developer (TechRepublic Premium)
What programming languages or other skills are best to learn to become a software engineer?
Software engineers typically have at least a bachelor's degree in software engineering or information technology. Those in the field are often well-versed in software development and have extensive experience working with various programming languages such as Python, Java, and C++, along with great technical skills.
The fastest-growing skills in 2019 for software engineers include experience with Flutter, Android design, NUXT.JS, continuous integration and software development, and angular material, according to a LinkedIn report.
SEE: Programming languages and software developer career resources coverage (TechRepublic on Flipboard)
For software engineers in management positions, or those trying to reach management level, soft skills are becoming increasingly important. To fuel high-performing teams, software engineering managers' skill sets must include people management, leadership, team management, team building and strategic planning, the LinkedIn report found.
- DevOps: A cheat sheet (TechRepublic)
- Java and SQL Server persist: How tech moves fast, yet enterprise IT moves so slow (TechRepublic)
- JetBrains Academy launches new free Kotlin Basics course (TechRepublic)
- Top programming languages: C and Java remain tops as Python surges (TechRepublic)
- These old programming languages are still critical to big companies. But nobody wants to learn them (TechRepublic)
- Faster Python programming: How these developers built Pyston, and where it goes next (TechRepublic)
- Programming languages: Python is coming for the crown as "possible future champions" wait in the wings (TechRepublic)
- What programming language is the most popular for developers? No, it's not Python (TechRepublic)
- Programming languages: The latest beta preview of Python 3.10 is here (TechRepublic)
- Programming languages: Python's growth is "absolutely explosive," says Anaconda CEO, and not slowing down (TechRepublic)
- Programming languages: Why Python 4.0 might never arrive, according to its creator (TechRepublic)
- Programming languages: How to learn Kotlin with these resources for software developers (TechRepublic)
What is the average salary for a software engineer?
Software engineers are one of the highest-paying tech jobs of 2021. As of April 2019, software engineers in the U.S. earn an average base salary of $103,984 per year, according to Indeed. Software engineers just starting out in the U.S. have a median base salary of $110,245 with more than 40,000 job openings, according to data from Glassdoor. ZipRecruiter says the national average salary for software engineers is $99,729
The highest-paying companies for software engineers, according to Indeed, were:
- Citi: $184,513
- Apple: $170,536
- Facebook: $159,151
- Octo Consulting Group: $153,511
- Capital One: $151,009
- Developer burnout: How managers can recognize and prevent it (TechRepublic)
- Want to make your developers stick around longer? This one change could do it (TechRepublic)
- OutSystems releases software development accelerators for AWS (TechRepublic)
- Some developers are ready for a return to the office. But not everyone wants to go back (TechRepublic)
- DevOps is getting code released faster than ever. But security is lagging behind (TechRepublic)
- Java code testing: These open source tools and rethinking the process can reduce the burden for developers (TechRepublic)
- 3 ways the CI/CD approach to software has made work better for developers (TechRepublic)
- Follow these 7 steps to ask the boss for a hybrid schedule (TechRepublic)
- Want to get the most out of your developers? Give them business context (TechRepublic)
What are the hottest markets for software engineer jobs?
The 10 highest paying cities in the U.S. for software engineers in 2021 and their average salaries, according to ZipRecruiter, are as follows (as of this writing):
- San Jose, California ($123,178)
- Oakland, California ($121,760)
- Tanaina, Alaska ($121,208)
- Wasila, Alaska ($121, 206)
- Hayward, California ($119,210)
- Seattle ($118,406)
- Concord, California ($118,110)
- Sunnyvale, California ($117,435)
- Santa Cruz, California ($116,076)
- Redmond, Washington ($115,862)
- Programming theory: A waste of time, or key to your dream coding job? (TechRepublic)
- How to succeed in software engineering management (TechRepublic)
- 20 full-time, 100% remote jobs with a 6-figure salary (TechRepublic)
- Should documentation writers get paid more than developers? (TechRepublic)
- Developer experience engineers aim to increase ROI while keeping software developers happy (TechRepublic)
- These 15 entry-level tech jobs pay well, even without a college degree (TechRepublic)
- 13 tech job sites make it easy to find a new job whether you want to work from home or not (TechRepublic)
- 25 in-demand blockchain jobs available right now on Indeed, Dice and Glassdoor (TechRepublic)
- Software industry's impact in 2020: 15.8 million jobs and $933 billion to the US economy (TechRepublic)
- Low-code and no-code won't kill developer jobs, here's why (TechRepublic)
- Coding is now the fastest-growing profession. But it's not all good news (TechRepublic)
What are typical software engineer interview questions?
Some questions that a software engineer can expect during a job interview, according to Indeed, include:
- What programming languages have you used in the past? What are your top two coding languages?
- How much are you coding on a daily basis? If you do not code on a daily basis, what is typical in your role?
- How comfortable are you in a startup environment, or do you prefer working in a more established company?
- What distinguishes a great software engineer from a good one? Do you feel you have those qualities?
- What's the most important thing to look for or check when reviewing another team member's code?
- In your opinion, what are the principles of good software engineering? What are some basic principles everyone should follow?
- If needed, how would you go about designing scalable applications? Walk us through your process.
- Interview tips: How to land your next tech job (free PDF) (TechRepublic)
- How to make a lasting impression in a tech interview: 3 tips (TechRepublic)
- 3 big mistakes to avoid in an in-person interview (TechRepublic)
- 7 tips for navigating a pair programming session during a job interview (TechRepublic)
- Coding interviews suck. Can we make them better? (TechRepublic)
- Developer career 101: How to stand out in the field of software development and engineering (TechRepublic)
Where can I find resources for a career in software engineering?
There are many different paths to becoming a software engineer, and most take the one less traveled, according to Hired's previously mentioned 2019 State of Software Engineering report (the 2021 report did not update these statistics). While 46% of respondents start their software engineering careers by earning a bachelor's degree in computer science, one in five said they are instead self-taught. While some people choose to get a master's degree, it's not necessary. Some 13% of respondents said they took a more hybrid approach, working on a degree in computer science and taking advantage of software developer bootcamps through companies like General Assembly and Hack Reactor, the report found.
In terms of learning top programming languages, sites like GitHub offer plenty of guides and resources to get started.
Coding bootcamps have proven to be extremely beneficial for software engineers: 76% of bootcamp graduates said the courses helped prepare them for their software engineering job. Coding bootcamps are a great resource for software engineers looking to reskill, upskill or break into the field, the Hired report added. Bootcamps are also a great way to get around working on a computer science degree.
For prospective software engineers who want more in-depth knowledge on the topic, EdX offers plenty of courses and degree plans for software engineers. The best part is all courses are online, which could be helpful for working professionals and parents. EdX has introductory courses on how to become a software engineer, as well as advanced certificate programs.
- Software Engineering Mastery Bundle (TechRepublic Academy)
- 3 tips to spot a fraud coding bootcamp and choose the right one (TechRepublic)
- Coding camp grads can land a higher salary than developers with college degrees, but there's a catch (TechRepublic)
- Google and Udacity launch free course to help you master machine learning (TechRepublic)
- Getting started with Python: A list of free resources (free PDF) (TechRepublic)
- Which universities are producing today's programming talent? (TechRepublic)
- The way we teach coding is all wrong. Here's how it needs to change (TechRepublic)
- Level up your DevOps skills with these one-day virtual micro conferences (TechRepublic)
- Labor Department approves apprenticeship guidelines for most in-demand tech roles (TechRepublic)
- Daily.dev is bringing innovative, diverse "TED-like" events to the developer community (TechRepublic)
- Tech skills gaps continue: Bootcamps can help those looking for a new career (TechRepublic)
Developer Essentials Newsletter
From the hottest programming languages to the jobs with the highest salaries, get the developer news and tips you need to know. WeeklySign up today
- Microsoft is boosting its support for the Python programming ecosystem (TechRepublic)
- Rust, not Firefox, is Mozilla's greatest industry contribution (TechRepublic)
- Programming languages: Objective-C slides down the popularity rankings (TechRepublic)
- Listen to TechRepublic's Dynamic Developer podcast (TechRepublic)
- How to become a developer: A cheat sheet (TechRepublic)
- 5 programming languages application solutions developers should learn (free PDF) (TechRepublic)
- A guide to The Open Source Index and GitHub projects checklist (TechRepublic Premium)
- Programming languages and developer career resources (TechRepublic on Flipboard)