
In 2016, I’m documenting my journey through Andrew Ng’s Machine Learning course—building intuition, writing Octave code, and learning how to think in data.
Axel Domingues
In 2016, “Machine Learning” is one of those terms that keeps popping up everywhere: recommendations, fraud detection, ad targeting, even self-driving cars. It’s exciting… and a little frustrating.
Exciting because it feels like a new superpower for software.
Frustrating because a lot of the discussion sounds like magic.
This blog series is my attempt to remove the magic. I’m going through Andrew Ng’s Machine Learning course and turning the lectures + exercises into something practical: notes, intuition, and small implementations that I can actually reason about.
I’m not learning ML to collect buzzwords. I’m learning it because I want to be able to:
There are plenty of ML resources, but this one has a few things I really value:
Each article will follow a consistent structure so it stays useful later (and not just “random notes”):
I’m keeping the code and outputs versioned so the learning is reproducible.
This course is built around Octave (the open-source Matlab alternative). It’s not the same ecosystem as Python, but it’s perfect for learning because it forces you to focus on:
At minimum, I want a working CLI and plots.
I keep each exercise in its own folder, along with notes and outputs.
For example: after implementing the cost function, after gradient descent, after passing tests.
The point is to show learning progress, not just final code.
This isn’t just a personal learning log—it’s also a portfolio artifact. By the end of the course, I want to demonstrate I can:
And importantly: explain these ideas clearly enough to teach them.
I’m treating each model like a system:
This mindset is what I want to carry into real-world ML projects.
The next post is where things get real: Linear Regression from scratch—cost function, gradient descent, and plots that show the model converging.
Because the course is designed around it, and it forces me to think in vectors/matrices early. Once I understand the fundamentals, porting to Python/NumPy is straightforward (and I fully plan to do that later).
Engineering. I want to build things that work, understand why they work, and know what to do when they don’t. This course feels like the right foundation.
Yes—with the emphasis on learning. I’ll include notes on bugs, wrong turns, and the small “aha” moments, not just final code.