Someone who is...
- consistently trying to help other developers improve through mentorship, community involvement or teaching opportunities
- has the foresight to predict edge cases and trade-offs for solutions to technical problems
- has experienced many failures and is able to recover from them quickly when they arise
- can clearly articulate their knowledge and explain technical concepts in multiple ways
- has confidence in admitting what they don't know and the ability to ask questions when they need help
- has familiarity with common patterns of programming, application architecture and structure so they can easily navigate new technical environments and tools
- knows how and when to refactor code without burning things to the ground (or knowing when to just burn things to the ground)
- has a lower-level understanding of how the tools and technologies being used actually work
- Find a safe person or community where you feel comfortable asking questions
- Remember that your questions are still eye-opening for others, often times, they are a learning opportunity for seniors
- Write the tests and documentation - both of these expose potential areas for improvement in the codebase. If it's hard to test, or hard to write about in documentation, the code probably needs a refactor.
- Literally build all of the apps - the more apps you build the more opportunity you have to make mistakes
- Record the problems you run into and the mistakes you make, you're guaranteed to run into them again in the future, or see others dealing with the same problems
- Listen to podcasts
- Read books
- Listen to and give talks at meetups and conferences
- Surround yourself with people who want to talk about code
- Make yourself visible however you feel comfortable
- Write blog posts, attend and participate in meetups and conferences, interact with tech communities online
- Try to teach something - it will help you recognize the holes in your own understanding
- Look through the code reviews on pull requests for the tools you use and learn how to effectively communicate where there is room for improvement
Most importantly, once you're a senior, don't lose your perspective! It's easy to forget what it's like to be a junior, but keeping track of your struggles as a junior will make you a better senior in the future.