Would implementing ML/math libraries from scratch actually help me learn deeply?
I’m currently taking a couple of NPTEL courses (for those outside India, NPTEL is a government-backed online platform where IIT professors teach full university-level courses, often pretty mathematically rigorous). I have just completed my 1st year in 2 degees ( CS and DS) and now have a 3 month summer break that I don't wanna waste and build some Projects too along with Mathematical theory.
Right now I’m doing: - second course in Linear Algebra and a Regression Analysis / Linear Models course
And I had this idea that I wanted some opinions on.
Instead of just “finishing” the courses, I was thinking of learning week-by-week and trying to implement small systems based on whatever I’ve learned so far.
For example:
As I go through linear algebra topics like: - vector spaces, linear maps ,projections ,eigenvalues ,SVD
…I gradually try building a very small educational linear algebra engine / mini-NumPy from scratch.
Not because I think I can build something remotely close to actual NumPy, but because I feel like struggling through:
- matrix operations, decoposition methods, numerical issues, performance bottlenecks, stability problems might teach me a lot more deeply than only using high-level APIs.
Similarly, with the regression course, I was thinking of eventually building a small regression library from scratch (OLS, diagnostics, regularization, etc.) kind of inspired by sklearn’s regression modules.
And I want to document the process as blogs/dev logs:
- what broke
- what confused me
- numerical issues I ran into
- why certain algorithms are implemented the way they are
- what I learned about the math/computation behind these libraries
My question is:
Do you think this is actually a valuable way to learn ML/math/programming systems? Or is this one of those things that sounds cool in theory but ends up being a massive time sink with low practical return?
I’m mainly interested in: building deeper intuition and understanding what’s happening under the hood and becoming better at mathematical/computational thinking and hopefully becoming stronger for ML internships/research later on
Would love honest opinions from people who’ve tried similar things.... and also also, will it look good on the Portfolio.... I have a feeling it will be a good differentiator in portfolo and something I can grow in futue when I am done with Low Latency Systems...
Syllabus Links
Second Course in Linear Algebra
Regression Analysis