Why build them by hand
Coding these algorithms manually surfaced strengths, weaknesses and implementation pitfalls that stay invisible when you simply import them from a library. It solidified my understanding of the underlying principles and improved how I select and tune models for a given problem.
