Back to Blog
Education
How I Taught Myself Algorithms and Coding in My 40s – And Built Emma
James Zhang
October 27, 2025
7 min read
Share:

I'm not supposed to be writing this post.
By every conventional metric, I should have given up years ago. I'm in my 40s. My university degree from the University of Melbourne is in ancient history, philosophy, and languages – about as far from computer science as you can get.
I spent nine years teaching children aged 5-16, immersing myself in literature, history, and the beauty of dead languages.
When I tried to learn programming in 2016, I failed. Not "struggled a bit" failed – I gave up entirely. Self-learning advanced mathematics, algorithms, and coding felt impossible. The resources were fragmented, the feedback loop was broken, and every time I hit a conceptual wall, I had nowhere to turn.
So I stopped trying.
But in 2023, something changed. And that change led me to teach myself calculus, linear algebra, computer science, Python, C++, Swift, Rust, Latin, and ancient Greek. It led me to build Emma – an AI tutor for Australian children – over the course of a year.
This is the story of how that happened.
The Impossible Became Possible
I've always been interested in developing apps. That itch never went away after my 2016 failure. But what changed between 2016 and 2023 wasn't my discipline or intelligence – it was the availability of a fundamentally new learning tool.
AI.
I started using ChatGPT, Claude, and Gemini from the very beginning – not as novelties, but as serious learning partners. I watched them evolve through every escalating step of their advancement.
And as I used them, I began to realize something profound: AI can fundamentally change our experience of learning as students and our experience of teaching as teachers.
This wasn't theoretical. I was experiencing it firsthand.
For the first time in my life, I had a patient, infinitely knowledgeable tutor available 24/7.
I could ask "stupid" questions without shame. I could work through problems at 2am when inspiration struck. I could get unstuck immediately instead of waiting days for a response on a forum or spending hours searching through documentation.
So I decided to try again. But this time, I wouldn't be trying alone.
The Learning Journey: From Humanities to STEM
I still use AI profusely every day. Not just for programming – for everything. I'm currently studying cosmology from textbooks full of equations that would have been completely impenetrable to me three years ago. I'm learning ancient Greek (returning to my linguistic roots, but with a more powerful tool). I'm diving into Rust, probably the most complex programming language I've tackled yet.
My learning structure is simple: I use Claude, OpenAI, and Gemini as my primary teachers. I read, I attempt problems, I get stuck, I ask for help, I work through the explanation, I try again. Repeat. Constantly.
The subjects came one after another, sometimes in parallel:
Calculus – the foundation for everything else in STEM
Linear algebra – essential for understanding machine learning
Computer science fundamentals – algorithms, data structures, computational thinking
Python – my first real programming language
C, C++, Swift, Rust – each teaching me different paradigms and deeper systems understanding
Each subject built on the previous ones. Each breakthrough made the next challenge more approachable.
The "Aha!" Moment That Changed Everything
Let me tell you about linear algebra.
The first time I tried learning it, I didn't use AI systematically. I used traditional resources – textbooks, videos, occasional forum posts when stuck. I moved slowly. Painfully slowly.
I'd get stuck on a single hard problem and feel frustrated, discouraged, unable to move forward to the next chapter. The experience was isolating and demoralizing. I started to wonder if maybe I just wasn't cut out for this.
Then I had an idea: what if I designed a tool that learned how I learn and adapted to my specific struggles? What if it could identify exactly where my understanding broke down and provide targeted help at that precise moment?
I began prototyping what would eventually become Emma. And once I had even a basic version working, I made a decision: I would restart linear algebra from chapter one, but this time using my own AI-powered learning tool.
The difference was staggering.
Concepts I'd struggled with for weeks suddenly clicked. My error rate on exercises dropped dramatically. I moved through chapters smoothly, building genuine understanding instead of memorizing procedures. Most importantly, I wasn't stuck and frustrated anymore – I was excited.
That was my "aha!" moment. That was when I knew this wasn't just about me learning to code. This was about building something that could transform learning for millions of students.
Why Emma Had to Exist
Here's what I realized through hundreds of hours using general AI tools for learning: they're brilliant, but they're not designed specifically for education. More importantly, they're not designed for the specific curriculum and schooling context of Australian students. They weren't built by veteran teachers who understand how children actually learn.
I've spent nine years teaching kids aged 5-16. I know what works. I know where students get confused. I know the difference between a student who's truly stuck and one who just needs a gentle nudge. I know how to scaffold learning appropriately, when to challenge, when to support, and how to make concepts accessible without dumbing them down.
Current generative AI is powerful, but it's general-purpose. Emma needed to be:
Personalized – adapting to each student's specific learning patterns
Localized – understanding Australian curriculum, NAPLAN, VCE, HSC contexts
"Good-teacherized" – drawing on pedagogical expertise that comes from years in real classrooms
The general intelligence of AI is incredible, but it needs to be focused, shaped, and guided by educational expertise.
That's what Emma is: the power of frontier AI, channeled through the lens of experienced teaching.
Building Emma: From Dream to Reality
I started building Emma after completing my first MVP – Bilby Live, a simple voice chatbot that led children through basic learning activities. Bilby gave me invaluable feedback, but it wasn't enough. It wasn't sophisticated enough, focused enough, or intelligent enough to truly transform learning.
So I decided to build an evolved version. That decision was made in early 2024.
One year later, Emma exists.
I coded it myself. But I wasn't alone in the journey.
I received tremendous consultory help from people who believed in the vision:
Russ Dsa, David Zhao, Ben Cherry, C. Wilson from Livekit – who provided crucial technical guidance and helped with real-time capabilities
Sebastian Raschka – whose book "Build LLM from Scratch" helped me become LLM-capable, and whose warm, encouraging responses kept me going during difficult moments
Justin Uberti from OpenAI and Logan Kilpatrick from Gemini – whose insights shaped my understanding of what's possible with current LLMs.
However, the biggest technical challenge wasn't the code – it was capturing the essence of what makes a great teacher. The insight, the tone, the vibe. How do you program empathy? How do you encode the moment when a teacher sees exactly where a student is confused and knows precisely what to say?
AI at this stage handles most use cases brilliantly, but occasionally stumbles into loops or errors. This can shake user confidence, especially with parents trusting a tool with their child's education. That's why I emphasize that Emma isn't final – she's constantly developing, improving, learning. The pace of that improvement will accelerate as we receive more feedback from real families.
What I Learned About Learning
Before this journey, I didn't believe AI could handle the nuances that only humans can manage in conversation – the subtlety of knowing when to push harder, when to ease up, when to rephrase, when to encourage.
I was wrong.
AI can do these things. Not perfectly, not always, but increasingly often. And it's getting better every month.
My 12-year-old daughter uses Emma constantly. Watching her learn with it – seeing her eyes light up when she finally understands a fraction problem that had frustrated her, hearing her excitedly explain a concept she just mastered – that's the validation I needed. Not as a developer, but as a father and teacher.
What This Means for You
If there's one message I want to leave you with, it's this: With AI, there is now nothing you cannot learn. No matter what background you have, no matter your age.
I mean that literally.
I'm in my 40s, from a pure humanities background, teaching kids and reading ancient philosophy. I taught myself advanced mathematics, multiple programming languages, and built a sophisticated AI application – something I thought was impossible eight years ago.
If you are committed, you can learn almost anything, at a very low financial price.
The tools exist. The knowledge is accessible.
The only question is: will you start?
Don't wait eight years like I did. Don't let 2016 become 2024. Start today.
And if you have children struggling with homework, if you've seen them crying over math problems they don't understand, if you've felt the helplessness of wanting to support them but lacking the expertise or resources – maybe Emma can help your family the way she's helped mine.
I am still learning every day alongside my daughter. Emma is my attempt to give every child what I wish I'd had in 2016: a patient, knowledgeable teacher who never gives up on you, available whenever you need help, at a price every family can afford.
The future of education isn't replacing teachers – it's empowering every student with personalized support that makes learning feel less like struggle and more like discovery.
That future is already here.
About me
My name is James Zhang, the founder of Intallaga. We provide the best ai tutor Emma. We are based in Adelaide, Australia.