Blog / tech-101
How to Become a Software Engineer Without a Degree
How to become a software engineer without a degree: the skills to learn, how to build a portfolio, how to get real experience, and what hiring managers check.
If you want to know how to become a software engineer without a degree, here’s the honest short answer: pick one direction, learn the fundamentals well, build a few real projects that solve real problems, put them where people can see them, and apply consistently while you keep getting better. A computer science degree can help, but it isn’t the only door. Plenty of working engineers got in through self-study, bootcamps, career switches inside their company, or freelance work that grew into a job.
I’m Sal. I’m a software engineer who works on NetSuite, integrations and website builds. This post is the roadmap I’d hand a friend who asked me, “Can I really do this without going back to school?” Yes, you can. It takes time and steady effort, but it’s possible.
The quick version
- Choose a lane first. Web development, data, integrations, mobile, or business systems like ERPs.
- Learn the fundamentals in one language before jumping to the next shiny thing.
- Build 2 to 4 real projects instead of 20 tutorials.
- Show your work on GitHub and a simple portfolio site.
- Get real experience wherever you can: freelance, volunteer, open source, or your current job.
- Apply and network every week. Most of the work is consistency.
Can you become a software engineer without a degree?
Yes. Many companies care most about whether you can do the work: write code that runs, understand what you built, work with a team, and learn quickly. Some employers still list a degree as a requirement, and some roles (like certain government or research jobs) may truly require one. But a lot of job posts list a degree as “preferred,” and a strong portfolio plus clear communication can get you in the conversation.
What hiring managers usually check, in my experience:
- Can you explain your projects? Why you built them, what was hard, and what you’d do differently.
- Do you know the basics? Variables, loops, functions, data structures, and how the web works.
- Can you use the everyday tools? Git, a code editor, the command line, and reading documentation.
- Can you solve problems you haven’t seen before? Not memorizing answers, but breaking problems down.
- Are you easy to work with? Clear writing, asking good questions, taking feedback well.

My story: how I did it without a degree
I’m self-taught, so this isn’t theory for me.
When my daughter was born, I was working a minimum-wage job at Devereux, supporting people with disabilities and mental health needs. I learned to code at night. Over time, I started working with other people and building real things, and then I went through a software engineering bootcamp.
After I graduated, I got an internship. I did so well that they extended it, but they didn’t offer me a full-time job. I kept going. After that, I landed two more software engineering jobs, worked with lots of clients, and learned data science, NetSuite and Celigo along the way.
The whole time, I was taking online courses on Coursera and DataCamp and building projects and websites. Fun fact: when I left Dream Project, my severance came with a year of Coursera, because they knew how much I used it.
You don’t need those exact courses. Plenty of free resources work too. But if I could learn at night while working a minimum-wage job with a new baby at home, you can do this too. Here’s the path I’d follow.
Step 1: Pick a lane
“Software engineer” covers a lot of jobs. Picking a lane keeps you from learning everything and mastering nothing.
| Lane | What you’d build | Common starting language |
|---|---|---|
| Front-end web | Websites and the parts of apps people click on | HTML, CSS, JavaScript |
| Back-end web | Servers, APIs, databases | JavaScript (Node.js), Python, Java, C# |
| Data | Reports, dashboards, data pipelines | Python and SQL |
| Integrations and business systems | Connecting tools like ERPs, CRMs and stores | JavaScript, SQL, the system’s own scripting |
| Mobile | Phone apps | Swift, Kotlin, or a cross-platform framework |
If you’re not sure, web development is a friendly starting point because you can see results in your browser right away. I’ll go deeper on choosing a language and a study path in an upcoming post.

Step 2: Learn the fundamentals (in order)
Here’s a simple order that works for most lanes:
- One programming language, to the point where you can write small programs without copying.
- Git and GitHub, so you can save versions of your work and share it.
- How the web works: requests, responses, APIs and JSON.
- Databases and SQL: storing and querying data. Almost every job touches data somehow.
- Basic data structures and problem solving: arrays, objects or dictionaries, loops, and breaking a problem into steps.
- Testing and debugging: reading error messages, using a debugger, and writing simple tests.
Go deep, not wide. It’s better to be solid in one language than shaky in five.
Step 3: Build real projects (not just tutorials)
Tutorials are great for learning. But a portfolio full of tutorial copies doesn’t tell an employer much. A real project is one where you made the decisions.
Good beginner project ideas:
- A tool that solves a problem in your own life. A budget tracker, a chore chart for the kids, a meal planner.
- A website for a real person or small business, like a friend’s barbershop or your church’s events page.
- A small app that uses a public API, like weather, books or sports data.
- An automation that saves you time, like a script that renames files or sends you a reminder.
For each project, write a short README that explains what it does, why you built it, the tools you used, and how to run it. That README is often what a hiring manager actually reads.
Step 4: Show your work
You need one simple place that proves what you can do:
- GitHub: clean, pinned repositories with clear READMEs.
- A portfolio site: a short intro, 2 to 4 projects with screenshots and links, and how to contact you.
- LinkedIn: a headline that says what you do (“Junior web developer” or “Aspiring software engineer focused on integrations”), plus your projects.
You can see how I present my own work on my Software page. Notice it’s about the problems each project solved, not just the tech list.
Step 5: Get real experience before your first job title
This is the part people skip, and it’s often what makes the difference.
- Use your current job. Is there a spreadsheet everyone hates? A manual report? Offer to automate it. Many people move into tech roles inside the company they already work for.
- Freelance small projects. Simple websites for local businesses, churches, or nonprofits. Start small and do great work. If you’d like to find freelance clients online too, marketplaces like Upwork let you create a profile and apply for projects.
- Contribute to open source. Fixing documentation or small bugs counts. It shows you can work in someone else’s codebase.
- Volunteer. Community groups often need help with websites and simple tools.
Real experience gives you real stories to tell in interviews, and that matters more than you might think.
Step 6: Prepare for interviews
Technical interviews vary a lot by company. Common pieces include:
- Talking through your projects in detail.
- Coding problems, sometimes live, sometimes take-home.
- Practical tasks, like fixing a bug or adding a small feature.
- Behavioral questions, like “Tell me about a time you got stuck.”
Practice explaining your thinking out loud. If you’d like structured practice, Educative offers interactive, text-based coding courses and interview prep you can work through in the browser.
Step 7: Apply, network, and keep going
- Apply every week, even when you don’t feel “ready.” You’ll learn a lot from the process.
- Tailor your resume to each role. Put projects and skills near the top.
- Talk to people. Local meetups, online communities, and friendly messages to engineers whose work you admire.
- Track your applications in a simple spreadsheet so you can follow up.
- Keep building while you apply. Each new project makes your next application stronger.
Rejection is part of it. I’ve learned to treat every “no” as information, not a verdict on my worth. I believe the doors that are meant for you will open in their time, and our job is to keep showing up prepared.
A simple 6-month plan
| Month | Focus |
|---|---|
| 1 | Pick a lane. Learn the basics of one language. Set up Git and GitHub. |
| 2 | Keep practicing. Build a tiny project each week. |
| 3 | Learn how APIs and databases work. Start your first real project. |
| 4 | Finish and polish project one. Start project two for a real person or problem. |
| 5 | Build your portfolio site and clean up GitHub and LinkedIn. Start applying. |
| 6 | Interview practice, networking, more applications, and project three. |
Everyone’s pace is different. If you work full time and have a family, it may take longer, and that’s okay. Steady beats fast.
FAQ
How long does it take to become a software engineer without a degree?
It depends on how many hours you can put in each week, the lane you choose, and the job market where you’re applying. Some people land a first role in under a year of focused study, and others take longer. Building real projects and getting real experience usually speeds things up.
Do I need a bootcamp?
No. A bootcamp can give you structure, community and deadlines, which helps some people a lot. Others do well with free and low-cost resources plus a good plan. Compare the cost, the curriculum and the support before you decide.
What’s the best programming language to learn first?
The one that fits the job you want. JavaScript is a strong choice for web development, and Python plus SQL is a common path for data roles. The concepts you learn carry over to other languages later.
Do employers really hire self-taught engineers?
Many do, especially when you can show working projects and explain them clearly. Some employers still require a degree, so read job posts closely and focus your time on companies that list skills over credentials.
Can I learn to code while working full time?
Yes. Many people study early in the morning, at lunch, or after the kids are asleep. Even 30 to 60 minutes a day adds up over months. Consistency matters more than marathon weekends.
Keep going, you can do this
If you’re starting from zero, take a deep breath. Everyone who writes code for a living started by not knowing anything. Pick your lane this week, start one small project, and keep showing up.
If you want to build your coding foundation, my ebook, Zero to Hero Python Masterclass (2026 Edition), walks through Python step by step. If you’d like to learn with a university course, edX has free and paid computer science courses you can take at your own pace. And if you’re a small business owner who needs a website or integration built rather than learning it yourself, check out my web services page.
Want more plain-English tech posts like this? Join the free Sal Talks Life newsletter. You can also browse the Tech 101 posts or watch along on YouTube and TikTok.
Some links in this post are affiliate links, which means I may earn a small commission at no extra cost to you. I only share resources I think can help.
Want the video version? Find more on Sal Talks Life.
Comments & reactions
Comments are coming soon. Until then, ask your question under the matching video on YouTube (opens in a new tab) or TikTok (opens in a new tab), or send me a message.