There’s a lot of talk online and a big push at the moment around not “reinventing the wheel”. What this really means is don’t solve problems someone else has already solved, just use their solution. With package managers like composer and NPM this is easier than ever.
So here’s a controversial opinion: DO REINVENT THE WHEEL! Hear me out. For production code in client applications, use a package manager and utilise all the open source code you need. However, for internal applications, small proofs of concept or personal projects have a go with something new! The best way to improve your skills as a developer is to practise and try new things. Often that will be new libraries or frameworks (which you might need a package manager to install!) but don’t limit yourself.
One of the things I do to keep honing my skills and for a bit of fun is rebuild the same application, with exactly the same spec, using different tools, libraries and frameworks. This is a really good way to not only improve your skills by widening your experience but to also compare different tools and libraries, to find what works best with your workflow, and what their strengths and weaknesses are. Being the nerd that I am, I have little competitions against myself where I try to build the application as quick as possible, and then compare its performance (load averages).
It takes quite a bit of motivation to get started with this approach, but after your first few builds it starts to become really fun. What better way to learn a new thing than to have a go at something different? After all, that is what we do!