edX Online

How to become a software engineer without a degree in 5 steps

A career in software engineering requires continuous learning and development, which can open the door for professionals who are self-taught. Explore alternative pathways for entering the software engineering field.

Browse online software engineering programs and courses

What does a software engineer do?

A software engineer is responsible for designing, developing, testing, and maintaining software applications and systems.

This dynamic and ever-evolving discipline combines technical skills like programming with problem-solving abilities to create efficient and reliable solutions for real-world challenges. As technology continues to advance at a rapid pace, software engineering remains a field of lifelong learning.

How to become a software engineer without a degree

Becoming a self-taught software engineer won’t happen overnight. Before you land your first software engineer job, it can take months or years to learn all of the necessary skills, like programming languages, tools, and API design.

Here are five steps you can take to pursue a career as a software engineer without entering a formal computer science degree program. Keep in mind there are many pathways to consider, this is just one.

Step 1: Familiarize yourself with a programming language

From JavaScript to Python, there are several programming languages to choose from when learning computer science. Common entry-level programming languages for software engineers include:

  • Java: high-level, open-source programming language to create applications that run in browsers and virtual machines.

  • JavaScript: text-based scripting language that makes webpages interactive (e.g. animations, audio functionality, carousels, etc.).

  • Python: high-level programming language often used by data scientists and business analysts.

Ultimately, the language you pick should be relevant to your career goals. For example, if you want to be a front-end web developer, you’ll want to make sure that you learn JavaScript fundamentals and backend programming.

Alternatively, learners interested in game or app development might want to learn Java, a programming language that is used often in enterprise software applications.

Beginners may want to learn Python to build a solid foundation in programming concepts. Python's simplicity, readability, strong community support, and wide range of applications make it a popular choice for beginners who want to embark on their coding journey without feeling overwhelmed.

Step 2: Gain an understanding of data structures and algorithms

Once you’ve mastered one or two programming languages, the next step is to learn about data structures and algorithms.

Data structures improve the efficiency of storing, fetching, and organizing data. Algorithms, which you can think of as sets of operations and instructions, are applied to data structures to get a desired output. It’s important to learn about algorithms and data structures because you will be expected to use them in the field and tech companies often have questions about them in their coding interviews.

Step 3: Build a portfolio on GitHub

If you lack professional experience, learn about GitHub and use its features to your advantage with an online portfolio.

With a platform like GitHub, you can contribute to open-source projects as a way to work with other developers, refine your technical abilities, and showcase your skills. Some tips for keeping your GitHub profile impressive include:

  • Organize your repositories: Use clear names and descriptions. Include a README file in each repository, detailing what the project does, how to run it, and any other relevant information.

  • Clean your code and add documentation: Add comments and documentation to explain your thought process and implementation. This not only helps others understand your work but also demonstrates your ability to write maintainable code.

  • Participate in coding challenges: Solve problems and build projects within a constrained time frame. These experiences can demonstrate your ability to work under pressure and quickly develop functional prototypes.

  • Work on group projects: Showcase your teamwork and communication skills by working with other developers on a project. This could also be a good opportunity to network.

Step 4: Ace the coding interview

A coding interview allows potential employers and recruiters to evaluate your technical skills and problem-solving ability. One effective way of preparing for a technical interview is to practice solving technical questions using resources like LeetCode, which crowdsources thousands of interview questions. Another pathway could be to learn coding techniques with online short courses or boot camps.

If you’re interviewing for a role with a specialization, you should also review concepts and frameworks related to that specific technology or stack.

Lastly, it might help to have a partner to help you learn interview techniques. This will help you practice explaining your thought process when solving problems.

Step 5: Expand your knowledge

There are many avenues of study available to learn software engineering. From enrolling in a coding boot camp to obtaining a course certificate, only you know which is the best path for you.

Learn the skills to become a self-taught software engineer

Becoming a good software engineer without an associate’s degree, bachelor's, or master’s degree is possible. If you’re interested in learning computer science fundamentals or want to add computer science skills to start your software engineering career, explore industry-aligned courses and programs on edX today.

Browse online software engineering boot camps

Frequently asked questions

Last updated: August 2023