How do you grow as a developer? How do you get better at your craft? What should you be doing? There are lots of recommendations online, lots of proposed approaches. I think it comes down to a couple of things though. The first is practice. Solve lots of different problems. Not the same thing over and over again.
One of my old marching band instructors said "Don't practice until you get it right, practice until you can't get it wrong." That works for marching band, where you're doing the same thing over and over again, but not for us where we're trying to solve new problems all the time. In "Outliers" Malcom Gladwell wrote that it takes 10,000 hours to be an expert. And it's 10,000 different hours, not the same hour 10,000 times. Not just trying new things, but making new mistakes and learning from them.
The second is reading and reviewing code. Reading and reviewing code does lots of different things. It helps you know what else is going on around you and how your part fits in. It helps you learn new things by seeing how other people solved problems. It also makes you teach. When you see something that seems wrong in a PR and you need to explain yourself then one of the first things you need to do is deeply understand the point you're trying to make.
What do you all think? What makes a senior developer?