Being a junior, middle, or senior programmer has little to do with the years of experience. It is more about skills and a mindset. And even a senior programmer with vast experience can grow and become a better professional by improving his mindset.
You need to understand that as a senior, your job is not only working on the most complex tasks but also mentoring mid- and junior-level programmers. You have the highest responsibility.
Senior (and actually mid-level) programmers should not live in their own world and be respectful towards junior colleagues. You always have to understand that people can make errors, and very often, juniors don't know how to fix the problem they've caused. It will be your job. Be prepared and try to prevent such situations from even happening in the first place. The best way of doing it is by helping others.
Vice versa, as a junior specialist, you have to be open to new knowledge, listen to more experienced colleagues and never hesitate to ask for help. This will significantly speed up your progress.
Using coding standards and standard-compliant libraries allows you to build better software with lesser effort. Using PSR, http://openjdk.java.net/jeps/0, PEPs, and compliant libraries help a lot.
Even if some tool or library works slower than you might want, it is always better to use such compliant tools as a foundation for further work rather than coding everything from scratch.
When using compliant libraries, you will be able to change things under the hood, but the implementation of UI elements, APIs and other important things will remain operational.
As a result, the outcome of your work will be robust, consistent, and reliable.
If you want to grow your skills, you need to gather an understanding of what is right and what is not. When you learn from your mistakes, it is always a good idea to translate this experience into a text of a somewhat similar to a coding guide.
If you develop a habit of implementing coding guides, analyzing the ones from the internet, the whole coding process will become more sustainable. This is especially handy for newbie programmers.
Standards are crucial to set up transparent rules to follow so that no one was wondering why people ask particular questions during the code review. When you are doing the code review, you can refer to the specific rule in the standard, which simplifies the communication.
Sure, when working on real projects, very often, you will have deadlines and limited time for the delivery. This is especially typical for tech startups, which need to get to the market ASAP to test the product and the demand.
However, even if you have almost no time for writing automated tests, it is not a reason for avoiding quality assurance at all.
Use free code analyzers like SonarQube when you need to deliver fast, and there is no time for implementing proper automated Quality assurance (QA) process. Especially if you are using a scripting language. Sure, code analyzers can't replace the whole QA process and automated tests, but this is better than nothing.
Premature optimization is evil. If you spend a lot of time on something that you may not actually need, it will not make you a better programmer. Instead, it will add unnecessary complexity and cause bugs.
This involves both thinking about solving problems that do not exist at a current product development stage or doing irrelevant things like covering 100% of the code by tests for the not yet released product.
For an early-stage product, the acceptable level of test coverage is 30-50%. You have to balance the development speed and code quality. The faster you move, the lower the quality you will get.
Always think about delivering the product, getting the feedback, and solving problems users have. These are the only things that matter for you as a programmer. All other bells and whistles are the number two priority.