Mostly practice. I'd build toy versions of tools like Redis, Docker, Git etc. from scratch. I now help others do the same with CodeCrafters.io.
One underrated book that I found very helpful: "A Philosophy of Software Design" by John Ousterhout.
One underrated book that I found very helpful: "A Philosophy of Software Design" by John Ousterhout.
Indeed, very interesting little book! He's done a talk[0] about it if you want a taste before buying.