By nature, I am a from-scratch person. In addition to the enjoyment of doing stuff yourself, this probably comes from starting in the old times (C64) where you for example needed to write your own music editor & player to make sure the music would not take too much resources.
As time has passed on, I've accepted using third party solutions for small, isolated problems like image loading. And for things that so far go over my head, like 3D rigid body physics.
When working professionally, there's often not the luxury of time / resources so you may have to take 3rd party libraries or frameworks for even larger problems, and they become part of your application's identity. For example basing your application on Qt's UI, metaprogramming and scripting, which turns out not to be a good idea if you want a performant 3D toolkit.
Something that I'd consider a more devious case is for example the choice of whether or not to use SDL for crossplatform graphics context initialization & input. SDL is a proven solution, and I'd argue the problem it solves is small enough, but by using it you don't learn each underlying platform's specifics, and if it turns out SDL doesn't work right on some platform in your specific case, you can be in for a lot of sudden learning and pain.
If the end product you're writing is a game, you're probably more justified in just using whatever 3rd party libraries get the job done. However if you're writing an engine or toolkit for others to use, you'd better be able to vouch for all the libraries you're using, and understand them on a fairly deep level, because the support for the whole combination will still be up to you.