edX is part of 2U: the next era of online learning begins today! Visit our Help Center to read more about changes at edX.

4 steps for how to become a self-taught software engineer

Software engineering is a lucrative, remote-friendly, highly sought-after computer science career. But what makes it truly unique is that software engineers spend more time learning than other professions. This reliance on learning removes the traditional barrier of computer science bachelor’s degrees and opens the door to self-taught software engineering.

Below, learn more about the responsibilities of software engineers and non-degree pathways for entering the field.

What Does a Software Engineer Do? 

Software engineers code and design software applications. Part of their responsibility includes working with a team of quality assurance analysts, product managers, and software developers to test the quality of the software and identify any errors. 

Did you know?

Digital Skills Although technical skills are essential in software engineering, problem-solving and interpersonal skills are critical. The role is highly cross-functional and software engineers often need to communicate with product managers to have a clear understanding of the software or application they are building.

Software Engineering: Are You the Right Fit?

Software engineering is not just about knowing how to program. It also requires strong problem-solving skills, interpersonal skills, and an affinity for learning. 

Regardless of whether you are a good fit for software engineering, there are many career paths within computer science. Cybersecurity, for instance, is technical, lucrative, and highly in-demand. 

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 to years to learn all of the necessary skills (i.e., programming languages, tools, API design).

Here are four steps you can take to become a software engineer without entering a formal computer science degree program. 

1. Learn a Programming Language

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

  • Java: is a high-level, open-source programming language to create applications that run in browsers and virtual machines.
  • Javascript: Javascript is a text-based scripting language that makes webpages interactive (e.g,. animations, audio functionality, carousels, etc.).
  • Python: Python is a 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 understand javascript fundamentals and backend programming. 

layer "For beginners, I would suggest Python to start with. It is an easy language to pick up, highly productive, and also is useful in many practical situations such as data analysis."

However, if you aren’t really sure what you want to specialize in, you may want to explore Python. “For beginners, I would suggest Python (or similar scripting languages) to start with,” said Dr. S.M. Yiu, professor at the Department of Computer Science of the University of Hong Kong. “It is an easy language to pick up, highly productive, and also is useful in many practical situations such as data analysis.” 

2. Learn Data Structures and Algorithms

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

What Are 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. Several top tech companies such as Google and Microsoft often have data structure and algorithm questions in their coding interviews.

“If you look at every master’s or graduate degree in computer science or cybersecurity in our country and other countries, they all require the knowledge of programming and data structures,” said Aspen Olmsted, an adjunct faculty member in the New York University Tandon School of Engineering in the Computer Science and Engineering department and instructor for the Microbachelors® Program in Programming and Data Structures. “If you want to do computer science, [learning data structures] is how you know you can do computer science.” 

3. Build a Portfolio on Github

If you lack experience, you can demonstrate your abilities with a portfolio. One of the most popular ways to do this is to contribute to open source projects on platforms like Github, which is often used by startups and large tech companies. With open source projects, you can get a taste of what it’s like to work with other developers and refine your technical abilities. 

4. Ace the Coding Interview

A coding interview allows potential employers and recruiters to evaluate your technical skills and problem-solving ability. The best way to prepare for a technical interview is to practice solving technical questions using resources like LeetCode, which crowdsources thousands of interview questions. 

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

Lastly, it helps to have a partner to help you practice explaining your thought process when solving problems.

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 or even a master's degree, only you know which is the best path for you. 

Did you know?

layer edX has a community of learners that shares tips and tricks on how to stay ahead of what they’re learning. Click here to join our fantastic community of highly driven learners.     

Learn the Skills To Become a Software Engineer

Becoming a good software engineer without an associate’s degree, bachelor's, or master’s degree is not impossible. 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.

Explore Computer Science Courses