Can a non-techy really learn to build software? My honest thoughts.
My honest take on what the journey from zero to building software actually looks like, and the four things you really need.
“Can someone who isn’t technical actually learn to build software?”
I get asked this a lot, so I wanted to write something really honest about what the journey looks like. Not the polished version. The real one.
My story
I studied business and law at university, then trained to be an accountant and went to work in banking.
Spreadsheets were a huge part of my job, and I genuinely loved that part. Building new sheets, working out the formulae, making everything fit together. In my head, it felt a lot like software development.
I always wished I could just build software that ran on a spreadsheet, because I understood how spreadsheets worked.
After leaving banking, I spent years working in startups, but never in technical roles. I was always alongside developers, and I envied them. I could navigate websites, admin dashboards, and apps just fine. But I had no idea how any of it worked under the hood.
So I tried to learn to code. Multiple times.
I paid someone I found on the internet for three hours of HTML and CSS lessons, then carried on by myself until I could build very simple websites. I messed around with WordPress and could just about copy and paste some PHP, but half the time it would break the site and I had no idea why.
I did courses on Ruby on Rails and various other frameworks, but always ended up stuck. I spent hours, sometimes days, searching Stack Overflow. I pasted commands into my terminal without understanding what they did.
Eventually, I gave up.
I also co-founded a startup with a technical guy and we ended up with a team of developers. I’d sit with them looking at their code and have them explain it to me. Even with all that support, I still felt like they were on a completely different level.
For about a decade, I wanted to build software and couldn’t.
Discovering no-code
In 2019 I was browsing Product Hunt and discovered Glide Apps, which promised to let you make an app based on a spreadsheet. This was literally the thing I’d wished for years earlier.
I jumped in immediately, and then I found Bubble, one of the most powerful visual development tools out there. It gave me full flexibility to design interfaces, workflows, and logic exactly the way I wanted.
I didn’t do any courses on Bubble. I just started building and learning as I went.
After my first year, I recorded a course to teach other beginners how to use it. That forced me to learn things I’d glossed over, and I immediately realised I was doing a lot of stuff wrong.
Eventually I felt confident enough to start freelancing. I joined AirDev, a well-known Bubble agency, as one of their developers. The tests I had to pass validated some things I was doing well and exposed what I’d been getting wrong.
I worked on loads of client projects, always learning as I went. I really enjoyed thinking through the business use case and user experience with clients, not just taking orders and building.
Learning Bubble was a huge amount easier than learning to code. I tried to learn to code for a decade, and then I tried Bubble and built a fully functional SaaS app in my first month.
But you still need to think logically, understand how to structure databases, and know how to store and pass data. There’s still a learning curve, even if it’s an easier one.
Then came vibe coding
With vibe coding, the entire experience changed again. You no longer need to do the logic part yourself.
When I was building on Bubble, if I wanted users to be able to comment on another user’s post, I’d need to think through the whole process. How are comments created, updated, deleted? Who can see them? Who has admin rights? How are they stored? Is it scalable? Is it secure?
Now, I can just say “I want users to be able to comment on other users’ posts, and admins should be able to moderate them.” And it builds the whole thing.
This raises some honest questions. Can you really call yourself a software developer if you don’t understand the software you’re building? Is it safe? Are you creating risks or technical debt that’s going to bite you later?
I think we don’t fully know the answers yet. But I also think the question is a bit wrong.
Most people asking “can I build software?” aren’t trying to become software engineers. They’re trying to bring an idea to life, solve a problem in their business, or stop paying £5,000 a month for a developer to make changes they wish they could make themselves.
And for those people, the barrier has never been lower.
Three types of people building software right now
Existing developers are basically super-powered. They don’t write code anymore, they just review it. Their job has completely changed, but they understand the infrastructure, can read through the code and check it, and they’re doing fine.
People coming from no-code (like me) had a solid understanding of databases, app logic, user interfaces, and debugging. But it was all within the walled garden of our platform.
Things like managing servers, deploying on GitHub, pushing to production, and creating test environments were all done for us. We’re now having to learn it from scratch.
We’re also used to looking at our software visually and understanding how workflows run. Now we just have files full of code, so we rely heavily on asking the AI.
But being able to ask the AI is an invaluable gift that didn’t exist a few years ago. When Stack Overflow was the only real resource, learning was incredibly painful.
Now I can ask the AI to explain things in simple terms using metaphors and analogies I actually understand. I literally have a system prompt that tells it I want everything explained using a Bubble analogy, and this has really helped me get to grips with new concepts.
The switch from no-code to vibe coding has been extremely enjoyable. Steep learning curve, but with the help of AI, achievable. I’ve seen a number of my freelance clients who were intermediate Bubble users jump on vibe coding, and now they’re unstoppable.
Complete beginners - the ones who skipped no-code entirely and are going straight to vibe coding. This is a big proportion of people. The question is, can you really go from nothing to building software?
I honestly think the answer is YES.
But only if you tick a few boxes…
The four things you actually need
☑️ You need to really enjoy building. If you don’t enjoy it, you won’t last the hard and frustrating journey of learning. You’ll be able to vibe code a quick prototype, but making something robust still takes real persistence, determination, and time.
☑️ You need to be good at problem solving. Debugging is one of the biggest parts of any developer’s life, and it never goes away. With AI-generated code, the process looks a lot like copying error messages into AI, gathering screenshots, asking it to access logs, and keeping going until the bug is fixed. Different from debugging on Bubble, but still problem-solving at its core.
☑️ You need to be comfortable with overwhelm. Imposter syndrome and doubt will show up. For the longest time I was nervous about using Claude Code because it involved the terminal, which I found intimidating.
Once I jumped in, I realised it was nowhere near as bad as I thought. And being unafraid of the terminal now gives me a huge advantage, because it’s a window into the latest AI tooling that developers can access before anyone else.
☑️ You need to care about building good software. It’s pretty easy to build something bad and be irresponsible with user data. It’s harder to build good, secure, scalable software, but not that much harder.
It’s a case of being aware of potential issues and making sure your AI is keeping an eye out for vulnerabilities. If you’re building for external users, there are loads of penetration testing tools and services to help.
If you tick those boxes, start building right now
If I were starting from scratch today, this is the process I’d follow:
- Pick any vibe coding tool. There are loads out there and they will come and go. Don’t become wedded to one. Use it as part of the learning journey.
- Build a simple website. Create a GitHub account and a Vercel account, push your code to GitHub, and deploy it live on Vercel. Put it on a custom domain if you have one.
- Add a blog to the website. Ask the AI to create an automated blog that publishes a new post once a day. You can give it an API key for a keyword research tool to find the best opportunities, and give it specific instructions on style and quality, just like prompting a chatbot.
- Build yourself a personal dashboard. Host it behind your website or on a different domain. You’ll need user authentication, which means integrating a database like Supabase or Convex. This is great because you’re learning about authentication and user accounts, but the only data at risk is your own.
The personal dashboard is where you really start to learn. You can build anything on it:
- A daily briefing on topics you’re interested in
- Features to visualise different parts of your life or business
- Custom calendar functionality
- Your own to-do list
- Scrapers that pull information from different sources
- Connections to third-party APIs, replacing automations you’ve built with tools like Zapier
The best thing about the personal dashboard is it gives you freedom to mess around, break things, and try stuff without worrying about other users being affected.
Once you’re confident with that, you’re ready to start building for other people, whether that’s as a freelancer or building a SaaS project.
If you’re serious about learning to build, now is the best time to start.