Explore the other side & learn a new language

If you want to become a better programmer, my number one advice is to learn another programming language. The further away from your comfort zone the better.

The first language I professionally programmed in was PHP. Building web applications, I occasionally wrote JavaScript, which wasn't to hard of a transition coming from PHP as they have similar syntaxes.

After a few years, I considered myself a proficient PHP programmer. There was more to learn, but diving deeper into the possibilities and quirks of the language didn't turn me into a better developer.

I wanted to learn another language. I could have picked up C# or Python, but I'd be looking at code from the same angle as PHP. Instead, I decided to experiment with Elixir. Elixir—and the constraints imposed by functional programming—were different enough to unlock another part of my brain.

Now, a lot of my PHP an JavaScript programming is inspired by functional programming paradigms. I grew more from a basic understanding of a foreign language than I would have from a strong understanding of another dialect.

This doesn't only apply to languages, but frameworks and paradigms too. If you've been using React, try Livewire or HTMX. If you've been using ActiveRecord, try a data mapper. You don't need to end up using it, but you'd be surprised how much you can learn on the other side.