Are you interested in learning how to become a software engineer, but don’t have years to dedicate to studying CS at university?
Well, good news: you can absolutely become a software developer without a college degree!
Whether you’re re-entering the workforce or stuck in a career you dislike (administration, operations, banking, etc.), becoming a software engineer is totally within your grasp—as long as you’re willing to put in the hard work. 💪
(Not sure what a software engineer is? Read my guide, What Does a Software Engineer Do?)
According to US News, software developers earn a median salary of $110,140 per year, and have an unemployment rate of 3%, making it one of the most lucrative technology careers. Additionally, the profession offers an above-average work-life balance.
Even more, the Bureau of Labor Statistics projects that between 2020 and 2030 there will be a 22% growth rate. Meanwhile, the average growth for all occupations is 8 percent. This translates into 272,780 job openings. It’s a great time to learn how to get into software development! 🎉
And guess what? Despite the positive outlook and abundance of opportunities, only 3% of college grads study computer and information science. As you can see in the image below, in 2020 there were 1.4 million computing jobs versus the 400,000 CS students.
You get the picture: learning how to be a developer can bring more financial security as well as flexibility in your day-to-day. But most people don’t have the time to sit through four years of CS classes to learn software engineering! 😅
You’re probably wondering, do you need a degree to be a software engineer? Is there a good way to learn how to become a computer programmer without a degree? And once you have the skills, how do you get a programming job without a degree and launch yourself on this lucrative software engineer career path?
➡️ Here’s the good news: it’s totally possible to learn how to become a software developer from scratch! This 17-step guide will lift the veil and show you how to become a software engineer without a degree. So read on!
Disclosure: I’m a proud affiliate for some of the resources mentioned in this article. If you buy a product through my links on this page, I may get a small commission for referring you. Thanks!
⭐ Sponsored Resource ⭐
Roadmap: How to Become a Software Engineer Without a Degree
Before we get started, understand that the following software engineer roadmap steps are specific for those who want to know how to get into software engineering as a full-time job/career path.
The software developer roadmap will be less helpful for the person who is 👇
- Dabbling with code for the first time
- Unsure if coding is right for them
- Wishing to pursue web design, UX, UI, or any other design-related field
- Wanting to freelance full-time
- Hoping to start their own business
But those are all great things to be aiming toward, and the rest of the blog is full of content about these topics too!
Now, let’s dive into the 17 steps of how to become a software engineer.
👣 First Steps: Preparing to Become a Software Engineer
Getting started on the right foot can be immensely helpful in your software engineer learning path. These beginning steps will help orient you in the right direction, choose some initial software engineer training resources, etc.
Step #1: Gather inspiration
To keep you motivated on your journey of learning how to become a software developer without a degree, it can be worth it to start by reading about success stories of people who started out in your situation. Starting with this step can keep you motivated and focused on your journey — especially when things start getting tougher.
🎧 The LTCWM podcast has tons of stories that can inspire you, including:
- Admin assistant ➡ to software developer
- Washing dishes ➡ managing engineers
- Stay at home mom ➡ front-end developer
- Frying chicken ➡ working at Google
- And more!
How did they get to where they are? What steps did they take and how did they manage their time? If you’re a parent, for example, you can research stories of parents who’ve learned to code and glean their advice for juggling a family with learning how to become a developer. You can also learn from their struggles.
Step #2: Be crystal clear about your end goal in software engineering
Transitioning into a new career is not easy. But when you have a final destination in mind, it helps tremendously when you hit bumps in the road. A crystal-clear goal looks something like this:
- “I want to work as a software developer at an established tech company.”
- “I want to work at a brand new startup, as a software engineer, in the industry I adore.”
- “I want to build useful, meaningful projects with a great team, and get paid well for it.”
No matter the specifics of your dream, if you want to make it through all 17 steps, you MUST be committed to the end goal of becoming a software engineer. That’s what will drive you forward when the going gets tough—because learning how to be a software developer isn’t easy, with or without a degree!
As well as the software engineering role itself, think about the type of company, industry, work environment, company culture, etc. you’re looking for, if possible.
💡 To help you discover the role that’s right for you, check out Break Into Tech’s Find Your Fit course, a step-by-step guide for finding and positioning yourself for the perfect tech job.
Step #3: Choose a good software engineering language to learn
When starting out, many people get stuck on the question of how to learn software engineering as a beginner. It starts with which programming language (and framework) they should learn. Ruby on Rails? Python and Django? MEAN stack? So many options, so little time.
Here’s the thing: once you know a particular language/stack well, it is not difficult to transition to a new one. That means that when you’re becoming a software engineer, your first goal should simply be understanding programming fundamentals. In essence, learning how to learn software engineering skills.
Once you have a solid foundation, you can easily transition to new languages, frameworks, and technologies. As co-founder of Flatiron School Avi Flombaum says, “The most important aspect of it is that you’re learning how to think like a developer.”
All of this said, you should focus on one language/framework to start your software engineer training.
With so many languages out there, it can be hard to know which one to pick. I recommend taking some time to learn about the different languages. This podcast episode on picking a programming language is a great place to start.
Another trick is to reverse-engineer job postings. To do this, take a look at job openings for your dream software engineering roles on sites like Indeed or LinkedIn. Look at the skills, experience, and education requirements and start a list of the things you’ll need to learn and accomplish to qualify for your ideal roles.
For many wondering “what should I study to become a software engineer?”, Python is an excellent way to go.
Python is readable and efficient, making it much easier to get comfortable with than some other languages. It’s also open-source, so you’ll have access to plenty of tools and a community of other developers, all for free. And perhaps most importantly, it’s flexible: the language is used by plenty of companies (Google, Facebook, Netflix, Spotify, etc.) and gives you a solid foundation to branch out into other languages later.
⭐ Sponsored Resources ⭐
There are lots of great Python courses on Udemy. Here are 3 of the most popular ones:
- 2022 Complete Python Bootcamp From Zero to Hero in Python
- 100 Days of Code: The Complete Python Pro Bootcamp for 2022
- Learn Python: The Complete Python Programming Course
Want to master Python?
Then download my list of favorite Python learning resources.
While you don’t 100% need to know what type of software engineering you want to do in the future (front-end, back-end, databases, etc.) it can be helpful to have a general idea. For example, Java could be a good option if you plan on doing back-end development.
Especially when you’re learning how to become a programmer without a degree, it helps to target some specialized skills.
⭐ Sponsored Resources ⭐
Here are some courses to get you started:
- HTML/CSS: Build Responsive Real-World Websites with HTML and CSS
- Java: Java for Absolute Beginners
Check out my articles categorized by types of tech jobs to learn more about the various roles under the software engineering umbrella.
Step #4: Pick a platform/course
There are so many software developer classes and programs out there that it can be difficult to choose how to learn software engineering without a degree. Here are some questions that can help guide you to the right software engineer training option!
🖥️ Would you prefer smaller, individual software development courses/tutorials or big bootcamp-style software developer programs?
Many online learning platforms have different types of course formats. You could start with small, one-off tutorials and courses that teach you the basics of a skill or programming language.
Or, for another level up, some platforms might have curated collections of software engineering courses that teach you the skills in-depth more. On Coursera, for example, these collections of courses are known as Specializations.
Some platforms also have bootcamp-style courses that are very comprehensive and require more of a time commitment. edX, for example, has online bootcamps in various tech subjects. Here are 18 other online coding bootcamp options.
📅 Are you more comfortable with self-paced or structured courses with deadlines?
Some courses are self-paced, meaning you work through the materials in your free time and assignments/quizzes aren’t “due” at any specific time; you set your own schedule and typically watch pre-recorded videos.
Others are time-bound, which can sometimes mean you watch live videos or webinars, turn in assignments and quizzes on a set schedule, and work with your peers in a more collaborative way.
The best option for you depends on your preferred learning style. For example, if you need more accountability, a time-bound course may be the best fit. If you have a busy schedule, need more flexibility, and have the drive to stay on top of things, a self-paced course may be the best way to learn software development for you.
⭐ Sponsored Resource: Udemy ⭐
If you like working at your own pace, Udemy could be the perfect platform for you. Udemy courses are all self-paced and once you buy one, it’s yours forever—so you can come back to it whenever you want. Click here to see their software engineering courses.
📚 Do you learn better with reading instead of videos? If you prefer reading/books to videos and online materials, check out this list of 54 programming books to help you learn to code.
🔁 Are you open to testing a bunch of courses with trial and error? Maybe try a few (for free) to see which you prefer before committing: Here’s a list of 101 places to learn to code for free.
Alternatively, check out some of Learn to Code With Me’s favorite platforms to learn below.
🤓 Next phase: Learn smart
As you dive into your software developer learning path, this next section of the software engineering roadmap will help you make the most of the process.
Step #5: Practice software development skills…and practice some more
What makes a good software engineer? It’s simple: a good software developer is just someone who works hard to develop software every day!
While the stack you learn doesn’t matter a whole lot, what does matter is learning by doing. This means dedicating some real time to perfecting your new craft. You must set aside a significant amount of time every day, every week, to learning and practicing how to be a developer.
You can’t become a software developer after 10 hours of practice. It’s just not possible.
⏰ Some people say it takes 10,000 hours to become an expert. Now, you don’t need 10,000 hours of practice to get your first software developer job. But you do need to dedicate some serious time.
To give one example, the Computer Science Essentials for Software Development curriculum on edX takes about 4 months (7-9 hours per week) to make it through.
To motivate you to practice, try doing the #100DaysOfCode challenge. In this challenge, you code a minimum of an hour every day for 100 days and tweet your progress every day with the #100DaysOfCode hashtag to stay accountable. Listen to this podcast episode with the creator of the challenge to learn more.
Check out this podcast episode to learn time management strategies and systems for productivity to make practicing coding fun and consistent.
Step #6: Use tools that real software developers use
While free coding resources like Codecademy are great, you’re not in a real-world environment when you use them. Instead, you’re typing directly into the web browser and getting a score based on a quiz or some other kind of interactive activity.
This is certainly useful as a way to get yourself accustomed to coding and solidifying the concepts in your mind. However, in the real world, you’re not going to be working like this.
So, what you want to do from the beginning is to build how real software engineers build. You want to use the tools that they use. Down the road, this will make it much easier to transition into a full-time role and join a team.
But it’s hard to build how real devs build, and use tools real devs use, when you’re first starting out. (If you’re anything like I was, it’s hard to even know where to begin.)
The good news is that there are programs out there that teach you how to use these tools—like Version Control with Git, an online course through Coursera.
Its curriculum touches on the tools and processes real engineers use every day, like:
This will enable you to adjust much faster once you’re in a real job, rather than having yet another steep learning curve to master.
Another Git course to check out is The Ultimate Git Mastery Course by Code With Mosh, which is taught by a software engineer with over 20 years of experience in the industry.
Step #7: Read code written by other software engineers
Another important aspect of becoming a software engineer is learning how to read other people’s code. You can do this by browsing through GitHub repositories, and looking through documentation.
👀 Sometimes, documentation can be wrong…but the source code never lies. By learning to read that code, you’ll be able to understand what’s going on and how a program is working. (This skill is also important when it comes to debugging, because you’ll be able to identify which piece of the code shouldn’t be there.)
This is often an overlooked skill, but it can really benefit you to see how experienced developers do things. Don’t just do a cursory skim of the code, either. Delve in deep, learn the ins and outs, map out the functionality, and finally, recreate it if you can. This way, you’ll be able to reverse-engineer an existing program, helping you understand that much better how to become a software developer who can create your own programs.
You can even contribute to open source projects on GitHub. Making changes to real developer projects and collaborating with a network of other developers can help you build your confidence, your resume, and your portfolio.
Step #8: Stay informed (podcasts, news, events, social media, etc.)
Another way to learn smarter is to regularly listen to experts in the industry and immerse yourself in the world of code. This helps you stay on top of new developments and figure out the best things to learn next.
- Swipe to Unlock is a great, comprehensive book on the must-know concepts of technology and business strategy. A great starting point. It’s available on Amazon.
- Tech News Briefing is an excellent daily, bite-sized podcast that gives you a run down of all the important tech news trends, from new gadgets to consumer trends to cyber issues. 10-minutes long so not a huge time commitment.
- Techmeme Ride Home is another great podcast that keeps you up to date on the day’s important tech news and topics. 15 minutes and you’re up to date.
📰 If you’re not a huge fan of listening to podcasts, try subscribing to a few tech newsletters. Here are a few to try:
- StrictlyVC: Gives you all the info you need to know about the VC scene in Silicon Valley and beyond.
- The Information: Paid site, but free newsletters. Focused on Silicon Valley news.
- Built In NYC: They have ones in different US metro hubs, so choose the one that’s closest to you. Stay up to-date with the latest tech news & trends.
- TLDR: daily newsletter with links and TLDRs of the most interesting stories in tech, science, and coding
Beyond that, you can follow tech thought leaders on Twitter or Instagram, join relevant Slack groups in your city, and/or join groups on Facebook to make tech a part of your daily life — even if just in a small way.
Step #9: Build actual coding projects
Don’t just read tutorials and watch videos—put your skills into use. Solve problems along the way, just like everyday software developers do.
When you do this, you not only further your learning, you also show potential employers that you can hack it. (Because the end goal is to get a job and become a software developer, right!?)
You can build projects solo, or with a group.
For example, by the end of Mammoth Interactive’s Hello Coding: Anyone Can Learn to Code (170 Hours), you’ll have plenty of projects to show off. You’ll build several applications throughout the course. And they’re not just boring “fill in the blanks” projects: they include a Flappy Bird game clone, 3D ping pong game, weather app for iOS, and a finance calculator app for the web.
Step #10: Make sure you understand core CS fundamentals
Software engineers often need to have a solid grasp on computer science fundamentals. Unlike web designers or even web developers, software engineers need to understand algorithms and data structures in order to solve complex problems with code.
For those who pursue a CS/software engineering degree at a college, these topics are built into the program. However, self-taught software engineers often aren’t exposed to these topics at all. Making an effort to learn them can give you a real competitive advantage. You’ll especially need to understand these topics to pass tech interviews (more about this later).
CS50’s Introduction to Computer Science on edX is a super popular, comprehensive CS course taught by Harvard University. The on-campus version of this course is actually Harvard’s largest course. It teaches you how to think algorithmically and concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development.
Step #11: Build experience with side gigs or internships or related jobs
Another way to build up your programming portfolio and practice on real projects is by taking on a technical side gig. In other words, make money while you’re learning to code instead of waiting until you’re a full-fledged software engineer. One programmer even earned $5,000 in his first year of learning to code!
Technical side gigs allow you to apply your skills in a different way. You can often learn faster by doing, rather than watching a video or tutorial. Plus, when a client is expecting work, you’ll be more motivated to solve problems and deliver the project, unlike a course where you have minimal external factors motivating you to get work done.
Side hustles can also help you learn what “real world” work you enjoy (and what you don’t) before you get a full-time job. Here are some other benefits of starting a technical side gig.
Similarly, you could also get an entry-level job in IT or tech support at a relevant company to help learn the industry and start making connections. There are several tech-related jobs you can get with little schooling. This is ideal for someone who is transitioning from a job like waiting tables or working retail, so you aren’t taking a huge pay downgrade.
🤜 Get support to give yourself the best chance of success
Hard things (like changing careers) get a lot easier when you have a solid support system. Here are some tips for building one!
Step #12: Find a supportive software engineering community
Finding a community to learn with can make or break your success as a software engineer—especially when you’re just starting to learn software development.When you are surrounded by a community of like-minded people, you have an automatic support system: a group of individuals you can call on when you get stuck, or lose motivation. (Both of which can happen to the best of us!)
While learning with Launch School, an online school for software engineers, for example, you gain access to a community forum, which is where Launch School students share studying tips, create study groups, help each other with problems, and everything else you’d expect from a dedicated school. You’ll also get access to their Slack chatroom, where students and staff hangout throughout the day. Not to mention, a monthly meetup-style webinar series called “Tech Talks.”
Zero to Mastery is similar, too—with over 150,000 students, alumni, TAs, mentors, and instructors registered to their Discord server, they have plenty of opportunities to network and find the support you need while you study!
Step #13: Cultivate your professional tech network
As you learn how to get into software engineering, code, build projects, etc., you should be slowly but surely cultivating your professional network.
When it comes to finding a great job in the 2022, it takes more than just applying for jobs online (which, these days, can just be a waste of time).
Beyond tapping into your first-degree network, you can also get intros to your second-degree connections (friends of friends). The goal is to set up informal coffee meetings with people connected to companies you’d like to work for, which builds connections and sometimes leads to real interviews.
A few other ways to make new connections without having a mutual friend:
- Go to meetups
- Maintain a blog (which will give you exposure)
- Speak at events
- Make connections on LinkedIn
Get involved, and contribute to the tech/software engineering community, and almost inevitably, opportunities will come your way.
The Fastest Way to Land a Tech Job is a course that teaches you networking strategies, including why you should attend meetup groups and the best ways to market yourself as a techie.
Another good option? Break Into Tech’s Land the Perfect Job with LinkedIn masterclass. It goes over how to build an army of supporters + put them to work for you, get a referral that gets you a guaranteed interview and leverage insider info to ace your interview + negotiation.
💼 Ace the job hunt & progress as a software engineer
So, you’ve built up an arsenal of software engineer skills and made connections in the industry. Now, how to get a programming job without a degree?
Step #14: Master your pre-interview essentials
After starting to build connections with peers and influencers in the field, it’ll be time to get ready to apply to the jobs themselves. (However, if you make a really solid connection, you may be able to get a personal referral and skip this step altogether!)
Even in a modernizing world, resumes are necessary. Hiring managers still look at them to get a snapshot of your skills and experience. Similarly, cover letters are needed when applying for jobs online; they’re your opportunity to get someone’s attention and make an impression.
Those are basics across industries. But beyond resumes and cover letters, there is also your online presence to consider.
This is incredibly important for anyone in the tech industry, and it’s something you should be building and maintaining over time, especially as a self-taught software engineer. Your digital footprint matters because it’s what recruiters and hiring managers will see when they Google your name before inviting you in for an interview.
Your online presence, as a software developer, is made up of a few things:
- LinkedIn profile
- Personal website (or portfolio site)
- Blogging (which can be an addition to your personal website)
Employers will check these and form impressions of you based on what they see. So make sure those impressions are good! When you’re trying to stand out as a software engineer without a degree, your online presence can set you apart.
Step #15: Ace your software engineer job interview
Finally, there is the interview itself. Most companies start with a screening interview, usually done online, at home. After that comes a phone interview. If you make it through those two, you’ll land the on-site interview.
In addition to the standard “greatest strength/weakness etc. etc.” questions, you’ll need to be ready for technical and behavioral questions. You may be asked to build a project or work through a code challenge, or describe how you’ve handled difficult situations in the past.
Fortunately, you don’t have to prep on your own. For example, Interview Cake has an entire course on acing the tech interview, including 50+ hours of practice questions. You’ll learn the tricks to quickly solving problems you’ve never seen before (and get $30,000+ higher salary offers).
AlgoExpert is another online platform that helps you prep for coding interviews, with 160 hand-picked questions (in 9 different languages) and 100+ hours of video explanations. Read my review of AlgoExpert.
Another good interview prep option? Byte by Byte, with practice coding interview questions, behavioral interview advice, and everything else you need to ace your coding interview.
One more: Skilled.dev. With video explanations, articles, and a code environment to try your solutions in.
Step #16: Accept the job offer and officially become a software engineer!
🎉 Congrats—you’ve cracked the code of how to become a software engineer and have an exciting career ahead of you!
After you make it through a series of interviews and demonstrate your new skills, it’s just a matter of time before you get an offer. And yeah, it might be entry-level at first, but you have to start somewhere! Be sure to check out our 5 salary negotiation tips for software engineers.
As you continue to learn and grow as a developer, you’ll continue to climb the software engineering career ladder to bigger and better positions.
Step #17: Keep learning!
The thing about tech is that it’s constantly changing and you’ll need to keep learning constantly to keep up.
To stay on top of your skills, check out Pluralsight’s Skill IQ tool which is a free quiz that identifies your knowledge gaps and strengths. In other words, what do you already know well and what are some opportunities for learning and growth?
Additionally, stay on top of tech trends with industry newsletters, podcasts, and social media.
Becoming a Software Engineer FAQ
Got some questions about how to become a software developer without a degree? Let’s answer a few! ⬇️
Is it hard to become a software engineer? Can I really do this?
Short answer: yes (to both). It’s not easy, and I can all but guarantee that you’ll get frustrated sometimes. But it is absolutely doable.
And you can probably even achieve it all on your own, through self-teaching and networking. Many people have successfully transitioned into software development this way.
Do you need a degree to be a software engineer?
You absolutely do not need a degree to be a software developer. Plenty of people have achieved it all on their own, through self-teaching and networking. (Coding bootcamps are also a good option if you have the time and budget — here are 18 of the best ones.)
Tons of guests on the Learn to Code With Me Podcast have stories demonstrating how to become a programmer without a degree!
The thing is, for the majority of people, learning on your own makes everything harder, whether it’s mastering the skills or searching for jobs. It’s important to figure out how to learn software engineering skills in a way that works for you.
Is there a bootcamp you recommend for software engineering?
There are plenty of great coding bootcamps, but specifically for software engineer training, I want to spotlight Launch School.
Launch School’s software developer program makes it possible to fast-track your career as a software engineer. What really differentiates Launch School’s program is that it teaches you to master the important concepts of software development that stay solid and consistent even while technology is rapidly evolving, so you’ll build lifelong habits that help you succeed. Ultimately, their goal isn’t just to help you find one job, but to help you launch a career.
And the numbers don’t lie. For the past 3 years, 100% of the program’s graduates have accepted job offers within 180 days of graduation. In 2018, Capstone graduates were earning an average of $122,316 within 12 weeks. Graduates from Launch School have been hired at industry-leading companies including Intel, Peloton, HP, and LinkedIn, as well as quickly-rising startups.
Aside from the numbers, one of the best ways to get a feel for a program is to hear from those who have done it before. The majority of former Launch School students report great experiences with the program. Here’s what a few of them have said:
- “Launch School did nothing short of radically transforming my life and jump-starting my career.” – Tannr
- “I cannot recommend Launch School enough. I honestly would not be in the career I am today, or as passionate about it as I am today, without all of the hard work and dedication they put into designing the program and continuously improving it.” – Steve
- “Launch School gave me all of the core tools I needed to start building meaningful, useful software applications. If you are serious about learning how to program and can put the time in over a sustained period of time, this program is for you!” – Charlie
If you have a dream of becoming a software developer and want the most direct route to achieving that goal, it’s definitely worth your while to check out Launch School.
Start coding now
Stop waiting and start learning! Get my 10 tips on teaching yourself how to code.
What does it take to be a software engineer? How long does it take?
The amount of time it’ll take to land a job as a software engineer via the self-taught route will depend a lot on your learning style, how much time you can dedicate per day/week, whether or not you have a full-time job, family, other responsibilities, etc. Common time periods range from just 6 months to around two years.
- Clément Mihailescu went from newbie coder to Google software engineer in just 6 months.
- Christina Gorton was a stay-at-home mom for five years before she became interested in tech. She managed to level up her skills and land a job as a remote junior developer in just nine months.
- Josh Kemp went from blacksmith and farrier to junior developer in just over 9 months (827 hours of study total).
To get a ballpark estimate that takes into account your own situation and goals, check out my article about how long it takes to learn to code.
Beyond time, you’ll need internal motivation, a passion for coding, and the discipline to continue even when times get tough.
Can you become a software engineer if you’re older?
Yes! You can become a software engineer no matter what age you start.
For example, Syk Houdeib didn’t write his first HTML snippet until he was 39, and now he works as a front-end developer. Kevin Smith started learning to code at age 47 and is now a web developer. Nathalie Christmann-Cooper didn’t land her first full-time job as a software engineer until she was 48.
🎧 For more tips and inspiration, listen to this LTCWM podcast episode on how to make a midlife career change into tech!
Is it Your Time to Become a Software Engineer?
So, here you have it —17 steps for how to become a software engineer. Now the only thing between you and a career in software development is the work and time you’ll need to put in!
Learning how to become a programmer without a degree might not be the easiest thing in the world, but when you look back on your journey in the end, you’ll know it was worth it.
Now get out there and turn today’s “I want to be a software engineer” into tomorrow’s “I’m so happy I changed careers!” 🙌
Note: This article contains Amazon affiliate links. As an Amazon Associate, I earn from qualifying purchases.