As the tech industry has continued to boom in recent years, creating exciting jobs that are often coupled with lucrative salaries, it’s no surprise that a growing number of people are making career changes to get in on the action.

While some of those transitioning into the tech workforce already have a background in software engineering or hold a relevant college degree, a growing contingent is starting from scratch, enrolling in specific training programs or bootcamps to shore up their skills and prepare them for a new career. And it’s working. Course Report has found that when it comes to return on investment, coding bootcamps “require less time, less money, and offer nearly equal earnings when compared to a CS degree.” Hiring managers at some of the world’s top tech companies have also stressed the importance of a candidate’s skill and attitude over the school listed on their CV.

All of this is to say that whether you’re new to the workforce or ready to make a mid-career leap, there are paths into software engineering that don’t require a college degree. The following guide offers key strategies for ensuring you have all the necessary skills to do the job and stand out from a competitive hiring pool.

Do You Need a Degree To Be a Software Engineer?

Do You Need a Degree To Be a Software Engineer

The short answer is no, you do not need a degree to be a software engineer. Although a complex and highly technical profession, the skill of software engineering can be self-taught or learned through any number of comprehensive bootcamps or online courses. And, as far as hiring managers are concerned, it makes little difference whether a job candidate learned to code from a four-year computer science degree or a nine-month software engineering bootcamp. Many industry professionals from the likes of Bill Gates, Steve Wozniak, and Margaret Hamilton were self-taught, and there is no shortage of bootcamp success stories.

In fact, it’s not uncommon for bootcamp graduates and self-taught individuals to have an advantage over recent college graduates — several hiring managers have said that fresh graduates lack skill in writing production-ready code — in other words, their capstone projects remain prototypes, so they might not have real-world experience in developing and testing complete solutions. Bootcamps and online courses, meanwhile, are geared toward making graduates workforce-ready.

How To Become a Software Engineer Without a Degre

software engineer without degree

Becoming a software engineer requires a significant time investment, and gaining a competitive edge through portfolio projects or certifications can take even longer. But if you’re willing to put in the work, it can lead to a rewarding career.

Perfect Your Prerequisites

Software engineering is a highly technical profession that requires in-depth knowledge of web development tools and platforms, programming languages, and server- and client-side technology. When developing your software engineering skills, but sure to familiarize yourself with the following:
  • Containers. Containers allow software engineers to optimize for multiple operating systems. Containers bundle the software that engineers develop into virtual packages that can speak to a variety of different operating systems. Proficiency in either Docker or Kubernetes is an increasingly sought-after skill in the software engineering world.
  • Cloud platforms. As tech continues to shift towards big data, software engineers continue to hone their skills in cloud platforms such as AWS (Amazon Web Services) and GCP (Google Cloud Platform). Cloud platforms allow companies and products to scale and require software engineers to have experience working with cloud-native applications. Products or platforms that promote strengths in data science, artificial intelligence, or machine learning all utilize cloud platforms.
  • Version control tools (Github). When a software engineer writes code, they store it in a platform called a “source-control.” If teams of software engineers are all writing code for the same product or application, version control tools allow them to collaborate without interfering with each other’s work. Github is overwhelmingly popular and is the best version control tool for software engineering beginners.

Refine Your Coding Skills

Refine Your Coding Skills

All software engineers need to be proficient in one or more of the following programming languages.
  1. Python. Currently one of the most popular programming languages in the world, Python allows software engineers a common and open-source language to use for general-purpose programming. Python offers a dynamic feature set that is portable across a variety of operating systems. Python also has automatic memory management – this means that software engineers don’t have to keep manual tabs on memory management. Python is one of the most key skills for software engineers today.
  2. Javascript. Another general-purpose programming language, Java has nearly a two-decade run of being a foundational object-oriented language and one of the most important skills for software engineers to know. Java is particularly trusted by software engineers due to its strength in security. Also platform-agnostic, Java enables software engineers a reliably safe and design-friendly language that can find them jobs almost anywhere.
  3. SQL. More than 30 years old now, SQL is one of the most
    widespread database languages. Software engineers typically aren’t responsible for maintaining or organizing databases, but they do need to understand how to navigate databases so that they can build programs that speak to them.
  4. Ruby. Developed originally in 2011, Ruby is another object-oriented language that software engineers utilize to build web applications at a high pace. Often, Ruby is paired with the Ruby on Rails framework. Open-sourced as well, Ruby also utilizes automatic memory management (or “garbage collection”) to support multiple programming paradigms or features.

Practice With Coding Projects

If you don’t have work experience, this section is the most important part of your resume. Projects can be anything programming-related, be it a Python script, Java program, webpage, or mobile app. Don’t just list the technologies and languages you know; show how you’ve used them. Assuming you’re submitting an electronic copy of your resume, embed hyperlinks to each project within your resume.

Select projects that show a variety of skills, such as using standard frameworks/libraries, understanding full-stack development, creating mobile apps, and setting up a development environment.

Many software developers use their GitHub profile as both a portfolio and a place where they practice coding projects because it shows potential hiring managers all of the open-source projects you’ve contributed to as well as projects you’ve started. Your dashboard indicates at-a-glance how often you commit code and how popular your code is. Consequently, GitHub is one of the first destinations hiring managers go to evaluate a candidate’s web presence.

When it comes to optimizing your GitHub profile, consistent activity on the site is a key factor. Your profile lists your contributions to repositories with a color-coded heat map broken down by month and year. Each individual contribution needn’t be major — it could be a bug fix, feature suggestion, or commit message — but you should make sure you create proper documentation each time. Remember, a good coder also knows how to write documentation for other humans to engage with their code.

When you create your own project, a well-written ReadMe file is one of the most important parts of a good repository. It tells people:

  • What the code is for
  • How to build/install the code
  • How to contribute to the project

When you contribute to an open-source project, write a detailed commit message to explain why you changed the code. This helps a recruiter assess how well you’ll work on a team.

  • The subject line should describe what was changed in 50 characters or less. Also, include a short annotation about the type of commit, such as a big fix, feature, change to the documentation and so on.
  • The body should give a more detailed description of the change. This should typically be 72 characters per line to ensure that the message fits into a terminal window when using Git on the command line.

Network or Find a Mentor

software engineer without degree - Network or Find a Mentor

One of the most common ways in which software engineers learn about job opportunities is through word-of-mouth and referrals. Because of this, it’s important to build out a network of industry mentors and peers who, in addition to sharing job news, can also offer professional guidance. If you’re currently enrolled in a bootcamp or online course, make the most of the support network of mentors and career counselors available to you. If you’re working for an organization, proactively reach out to software engineers and managers within the company.

Build a Portfolio

software engineer without degree - Build a Portfolio

Start working on building different applications that showcase your software engineering skills. Think about the kind of position you’d like to hold within a company. Your portfolio should contain a variety of applications to let interviewers see that you can back up the skills highlighted in your resume.

‌Expand beyond the projects you built for school or through a bootcamp. Talk about how your work on different projects impacted your desire to continue pursuing software engineering. Create projects that highlight your innovation and ability to develop solutions that can benefit companies where you wish to apply.

Consider Related Jobs

Taking a related job or internship can be a great way to gain exposure and experience with the problems and skills a software engineer deals with. For example, internships often offer candidates rotations across different departments, giving interns a chance to work on a variety of projects alongside industry professionals. Alternatively, working as a front-end or backend developer can bolster an individual’s programming skills, develop their understanding of design, and build their experience with working on teams.

Practice Your Interview Skills

software engineer without degree - Practice Your Interview Skills

The software engineer hiring process typically involves a portfolio, cover letters, and references. Many organizations also use interview loops to measure a candidate’s talent and qualification for a role, which can involve technical interviews, tests that involve writing algorithms, a coding interview, and a series of questions designed to reveal a candidate’s values.

Many of the interview questions — both technical and behavioral — can be challenging, which it’s why it’s important to prepare as best you can. Many former candidates have shared commonly asked interview questions, mentors and bootcamp instructors can help students workshop their answers, and whether you’re interviewing in person or remotely, read up on the best practices that will ensure a smooth and successful interview.

Work Towards the Job You Want

software engineer without degree - Work Towards the Job You Want

Similar to considering related jobs, your first job in software engineering might not be the one you want. That said, there is immense value in getting a foot in the door and making lateral moves toward your dream job. For example, if you get your start in web design, you can strengthen your technical skills in front end development, learning skills such as CSS, HTML, and Java, which will ultimately be useful in a software engineering role. Alternatively, if you get your start in data science or analytics, the knowledge you develop on data structures, databases, and coding languages such as SQL will make you a stronger software engineer. Every technical and soft skill you gain can bring you closer to the job you want.

Resources To Help You Become a Software Engineer Without a Degree

Whether you’re looking to teach yourself software engineering skills, are a recent college graduate looking for hands-on experience with projects, or you’ve finished a coding bootcamp and are looking for ways to practice your new skills, there are many free resources at your disposal.
  • CodingBat. CodingBat is a free site of live coding problems using Java and Python. Users don’t have to download or install any software, get immediate in-browser feedback, and can practice writing live code to address short problem statements.
  • Try.GitHub.io. A free resource to help you learn Git. If you already understand basic Git commands, this guide will help you understand more challenging concepts such as branch, revert, merge, cherry-pick, rebase, and more.   
  • Free Code Camp. A nonprofit repository of tutorials, Free Code Camp offers free lessons in HTML, CSS, Java, SQL, and Python. Students can access coding challenges, interact with an online community, and pair up with other students to work on projects.
  • Learn Git Branching. Offering both a visual and interactive way to learn Git, Learn Git Branching includes step-by-step demonstrations of powerful Git features, challenging levels, and a sandbox.
  • LearnPython.org. As the name suggests, LearnPython.org helps students learn Python through tutorials and interactive coding challenges. The website also has counterparts for other programming languages, such as Java, SQL, Perl, Ruby, PHP, and HTML.

What if You’re Considering a Degree?

What if You’re Considering a Degree

If you want to pursue a college degree on your path to becoming a software engineer, below are some degree options to consider.

Degree Paths To Consider

People working in software engineering often hold a bachelor’s degree in computer science. However, a degree in a related field such as mathematics, engineering, physics, or information technology can also offer a path to a software engineering career.

While the average software engineer holds a bachelor’s degree, many also hold a master’s degree in a relevant field. Those who work in more advanced areas of software engineering, such as machine learning and neural networks, might also hold PhDs.

FAQs About Becoming a Software Engineer Without a Degree

FAQ

Still have questions about pursuing software engineering without a degree? Check out our answers below to frequently asked questions.

What Percent of Software Engineers Don’t Have a Degree?

A 2018 survey of software engineers by Overstack Flow found that 27% do not hold any type of college degree. Of all respondents, 86.7% said they had taught themselves programming languages, tools, and frameworks without taking a formal course.

Can I Call Myself an Engineer Without a Degree?

In short, yes. Many software engineers don’t have a college degree in a relevant field (or, in some cases, don’t have a degree at all). What matters to organizations is that a software engineer possesses the relevant technical and soft skills needed to do the job.

What’s a Good Degree To Pursue To Become a Software Engineer?

A bachelor’s degree in computer science, software engineering, or a related field such as IT, mathematics, physics, or engineering can help prepare individuals for a career in software engineering.

Ready to switch careers to software engineering?

Springboard offers a comprehensive software engineering bootcamp. You’ll work with a one-on-one mentor to learn key aspects of front-end web development, back-end web development, databases, and data structures and algorithms. Modules include learning resources, practice exercises, projects, and career-related coursework. 

Check out Springboard’s Software Engineering Career Track to see if you qualify.

Not quite ready to dive into a software engineering bootcamp?

Springboard also offers a Software Engineering Prep Course, where you can learn the foundational web development skills (HTML, CSS, and JavaScript) needed to pass the technical skills survey for the Software Engineering Career Track.