Build it before you abstract it away
Most of us learn to call model.fit() long before we understand what happens inside it. I wanted the opposite order, so I built a neural network from scratch.
A tiny 2 → 2 → 1 network, predicting salary (LPA) from CGPA and a profile score. Forward pass, backpropagation, gradient descent — all hand-written, every weight update derived using the chain rule on paper before it became code.
No black box
The point wasn't accuracy. The point was that I could tell you exactly why every single number changes on every update. When the loss dropped, I knew which derivative moved it and by how much. There was nothing hiding.
Then I wrapped it in a small Streamlit app so you don't have to trust me — you can train it yourself, tweak the learning rate, watch the loss curve fall in real time, and get live predictions.
Why it mattered
Building this changed how I think about everything downstream — transformers, attention, fine-tuning — because it is all the same chain rule, just with more layers and better bookkeeping.
Sometimes the best way to actually learn something is to stop using the library that hides it from you. Build it first. Abstract it away second.