I've been using Drupal for over 10 years, and during that time I've had to continually refresh my skills and train colleagues. Here are some tips I've learnt along the way.

Apart from having some good training resources, there are other techniques which I've found to be useful in the past to continually develop Drupal skills. These are probably applicable to other areas of software development.

You will never know everything

Accept the fact you cannot learn everything. Do not attempt to learn everything, just focus on what you need to learn, and steadily increase your skills through practice. You will find over time your knowledge base will expand as you need it to. Don't be ashamed of not knowing, but be confident that you have the learning skills to find things out as you need to.

Give yourself time

Learning Drupal takes time. Make sure you have the space and time to dedicate stretches of time in an environment where you can work uninterrupted.

Take breaks frequently, let things sink in. When I run training courses I make sure we have at least 20 minutes break every 2 hours.

Be patient, you won't be an expert overnight.

Work with others

If you have the opportunity to work with others, take it. Pairing with a colleague really helps to understand the thought process a developer will go through when either building something new, or debugging something that doesn't work.

This is a good practice within the workplace and I would recommend it as both a learning process, and for problem solving. It might seem half as efficient having 2 people on the same issue, but if you solve the issue and it never recurs, 2 people learn from it, and you are likely to have a better solution. This actually becomes a much more efficient development process.

Help others

A great way of learning is to train others, as it requires you to think things through in a way that the person learning would understand. This really helps to clarify concepts and how things work. 

You will also find this helps when talking to other 'non technical' team members, as you will develop ways of explaining the inner workings of Drupal in simple ways.

Involve yourseld in meetups

If you are fortunate to live near a city, there are usually meetups covering a large number of areas around software development. Even if these are not Drupal centric, they will likely have an impact on what you to day to day, and can have a very positive impact on you and your organisation.

Never be the smartest person in the room

If you think you've learnt everything there is to know, and you appear to the the source of all knowledge in a team, this does not mean you can stop learning. If you decide you know everything, and outsmart everyone, and don't need to learn anything else, there is only one way you will go, down. If you must, find a bigger room!. Try to move into a situation or project where you are out of your depth and need to improve your knowledge and skills again.

Ask the rubber duck

When I run training courses, I give each of my students a rubber duck. This is more symbolic than anything, and it helps to remember a key concept when problem solving called 'Rubber Ducking'.

Put simply, this is when you explain the problem to someone else, in terms that someone new to the problem will understand. This process often reveals something you hadn't considered and helps to identify what the cause of the problem is. 

Explain the facts back to someone

If you are learning from someone, a good technique is to explain back to the person in your own words the concept you are discussing. Likewise, if you are training someone else and you want to make sure they understand what you have told them, ask them to explain how something works back to you in their own words.