Look for books that go deeper than what I know now. Take notes, draw diagrams with Exalidraw. Write a book review on the concepts that I've learned.
For me, the below would be a good list to start with:
- The Pragmatic Programmer (General)
- The Impostor's Handbook (General / CS)
- You Don't Know JS (JS)
The more languages you know, the more you can evaluate their strengths and weaknesses. It's also easier to pick up new languages.
Pair programming is a great way to pick the brains of more senior developers. It's also useful for reinforcing your knowledge when pairing with more junior devs. Not to mention the fact that you can form strong bonds with your colleagues by doing so.
It's hard to grasp the value of unit tests until you experience it first-hand. Well-written unit tests give you confidence that the code is working as intended. Refactoring code is a safer, more straightforward process with adequate test coverage, too.
Learn the shortcuts of your IDE for refactoring. Practice this regulary instead of opting for copy-pasting. Learn how best to approach both small and large refactorings on projects at work. Better yet, pair with a senior dev on the team when a refactor is necessary.
Look for opportunities to work on different stacks, different domains, and challenging projects. When you push yourself, you learn far quicker. Get involved with learning about the business of the company that you work for. Become product-minded.
Write blog posts. Mentor other developers. Give presentations or talks. Even sitting down with another developer on your team to explain a part of the codebase. All of these things will help reinforce your knowledge. Or, it will identify gaps in your knowledge that you may want to fill.