Reinvent The Wheel
As engineers, one thing we hear over and over again throughout our careers is “Don’t reinvent the wheel”. And it’s with good reason — there are very few good reasons to rebuild something for a production system which has already been built, tested, and put through the paces. I’m not advocating this at all. Setting aside the case where you need to rely upon production quality functionality (or need to quickly build a prototype), you should absolutely reinvent the wheel and here’s why…
Furthermore, you can learn a lot about a problem if you try to solve it yourself without relying on a third party library. You may not succeed in coming up with a superior solution (or any solution at all) but you WILL walk away with a greater understanding the problem that library set out to solve. Armed with this insight, you’re in a better position to better utilize said library or even optimize it should you feel the need.